Zephyr(RTOS)のようなEdge(エッジ)環境でAIを動かしたい場合です。
ビルドする際にtflite-microを含めたい必要が出てきます。
Zephyrのmanifestにどのように記載するかを紹介します。
Zephyrのwestでtflite-microをビルドしたい場合
Zephyr(RTOS)のようなEdge(エッジ)環境でAIを動かしたい場合です。
ビルドする際にtflite-microを含める必要が出てきます。
但し、何も設定しないで、ビルドすると下記のようなエラーがでます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
?[92m-- west build: building application [5/10] Performing build step for 'hello_world_9' [4/252] Generating include/generated/zephyr/version.h -- Zephyr version: 4.1.99 (C:/ncs/v3.1.1/zephyr), build: ncs-v3.1.1 [57/252] Building CXX object CMakeFiles/app.dir/src/main_functions.cpp.obj FAILED: CMakeFiles/app.dir/src/main_functions.cpp.obj C:\ncs\toolchains\c1a76fddb2\opt\zephyr-sdk\arm-zephyr-eabi\bin\arm-zephyr-eabi-g++.exe -DKERNEL -DK_HEAP_MEM_POOL_SIZE=0 -DMBEDTLS_CONFIG_FILE=\"nrf-config.h\" -DMBEDTLS_PSA_CRYPTO_CONFIG_FILE=\"nrf- psa-crypto-config.h\" -DMBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE=\"nrf-psa-crypto-user-config.h\" -DNRF54L15_XXAA -DNRF_APPLICATION -DNRF_CONFIG_CPU_FREQ_MHZ=128 -DPICOLIBC_DOUBLE_PRINTF_SCANF -DUSE_PARTIT ION_MANAGER=1 -D__LINUX_ERRNO_EXTENSIONS__ -D__PROGRAM_START -D__ZEPHYR__=1 -IC:/boards/test/hello_world_9/build/hello_world_9/zephyr/include/generated/zephyr -IC:/ncs/v3.1.1/zephyr/include -IC:/board s/test/hello_world_9/build/hello_world_9/zephyr/include/generated -IC:/ncs/v3.1.1/zephyr/soc/nordic -IC:/ncs/v3.1.1/zephyr/soc/nordic/nrf54l/. -IC:/ncs/v3.1.1/zephyr/soc/nordic/common/. -IC:/ncs/v3.1. 1/nrf/include -IC:/ncs/v3.1.1/nrf/tests/include -IC:/ncs/v3.1.1/modules/hal/cmsis/CMSIS/Core/Include -IC:/ncs/v3.1.1/modules/hal/cmsis_6/CMSIS/Core/Include -IC:/ncs/v3.1.1/zephyr/modules/cmsis_6/. -IC :/ncs/v3.1.1/nrf/modules/hal_nordic/. -IC:/ncs/v3.1.1/modules/hal/nordic/nrfx -IC:/ncs/v3.1.1/modules/hal/nordic/nrfx/drivers/include -IC:/ncs/v3.1.1/modules/hal/nordic/nrfx/mdk -IC:/ncs/v3.1.1/zephyr /modules/hal_nordic/nrfx/. -IC:/boards/test/hello_world_9/build/hello_world_9/generated/library_nrf_security_psa -IC:/ncs/v3.1.1/nrf/subsys/nrf_security/include -IC:/ncs/v3.1.1/modules/crypto/oberon-p sa-crypto/oberon/drivers -IC:/ncs/v3.1.1/nrf/subsys/nrf_security/src/threading/include -IC:/ncs/v3.1.1/nrf/subsys/nrf_security/src/utils -IC:/ncs/v3.1.1/nrf/subsys/nrf_security/src/drivers/cracen/comm on/include -IC:/ncs/v3.1.1/nrf/subsys/nrf_security/src/drivers/cracen/sxsymcrypt/include -IC:/ncs/v3.1.1/nrf/subsys/nrf_security/src/drivers/cracen/silexpk/target/baremetal_ba414e_with_ik -IC:/ncs/v3. 1.1/nrf/subsys/nrf_security/src/drivers/cracen/silexpk/include -IC:/ncs/v3.1.1/nrf/subsys/nrf_security/src/drivers/cracen/cracenpsa/include -IC:/ncs/v3.1.1/modules/crypto/oberon-psa-crypto/include -IC :/ncs/v3.1.1/modules/crypto/oberon-psa-crypto/library -IC:/ncs/v3.1.1/modules/crypto/mbedtls/library -IC:/ncs/v3.1.1/modules/crypto/mbedtls/include -IC:/ncs/v3.1.1/modules/crypto/mbedtls/include/libra ry -isystem C:/ncs/v3.1.1/zephyr/lib/libc/common/include -isystem C:/ncs/v3.1.1/zephyr/lib/cpp/minimal/include -fno-strict-aliasing -Os -fcheck-new -std=c++17 -Wno-register -fno-exceptions -fno-rtti - imacros C:/boards/test/hello_world_9/build/hello_world_9/zephyr/include/generated/zephyr/autoconf.h -fno-common -g -gdwarf-4 -fdiagnostics-color=always -mcpu=cortex-m33 -mthumb -mabi=aapcs -mfp16-form at=ieee -mtp=soft --sysroot=C:/ncs/toolchains/c1a76fddb2/opt/zephyr-sdk/arm-zephyr-eabi/arm-zephyr-eabi -imacros C:/ncs/v3.1.1/zephyr/include/zephyr/toolchain/zephyr_stdint.h -Wall -Wformat -Wformat-s ecurity -Wno-format-zero-length -Wdouble-promotion -Wpointer-arith -Wexpansion-to-defined -Wno-unused-but-set-variable -fno-pic -fno-pie -fno-asynchronous-unwind-tables -ftls-model=local-exec -fno-reo rder-functions --param=min-pagesize=0 -fno-defer-pop -fmacro-prefix-map=C:/boards/test/hello_world_9=CMAKE_SOURCE_DIR -fmacro-prefix-map=C:/ncs/v3.1.1/zephyr=ZEPHYR_BASE -fmacro-prefix-map=C:/ncs/v3.1 .1=WEST_TOPDIR -ffunction-sections -fdata-sections -specs=picolibc.specs -nostdinc++ -fno-threadsafe-statics -MD -MT CMakeFiles/app.dir/src/main_functions.cpp.obj -MF CMakeFiles\app.dir\src\main_funct ions.cpp.obj.d -o CMakeFiles/app.dir/src/main_functions.cpp.obj -c C:/boards/test/hello_world_9/src/main_functions.cpp C:/boards/test/hello_world_9/src/main_functions.cpp:21:10: fatal error: tensorflow/lite/micro/micro_mutable_op_resolver.h: No such file or directory 21 | #include <tensorflow/lite/micro/micro_mutable_op_resolver.h> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. [61/252] Building CXX object CMakeFiles/app.dir/src/output_handler.cpp.obj FAILED: CMakeFiles/app.dir/src/output_handler.cpp.obj C:\ncs\toolchains\c1a76fddb2\opt\zephyr-sdk\arm-zephyr-eabi\bin\arm-zephyr-eabi-g++.exe -DKERNEL -DK_HEAP_MEM_POOL_SIZE=0 -DMBEDTLS_CONFIG_FILE=\"nrf-config.h\" -DMBEDTLS_PSA_CRYPTO_CONFIG_FILE=\"nrf- psa-crypto-config.h\" -DMBEDTLS_PSA_CRYPTO_USER_CONFIG_FILE=\"nrf-psa-crypto-user-config.h\" -DNRF54L15_XXAA -DNRF_APPLICATION -DNRF_CONFIG_CPU_FREQ_MHZ=128 -DPICOLIBC_DOUBLE_PRINTF_SCANF -DUSE_PARTIT ION_MANAGER=1 -D__LINUX_ERRNO_EXTENSIONS__ -D__PROGRAM_START -D__ZEPHYR__=1 -IC:/boards/test/hello_world_9/build/hello_world_9/zephyr/include/generated/zephyr -IC:/ncs/v3.1.1/zephyr/include -IC:/board s/test/hello_world_9/build/hello_world_9/zephyr/include/generated -IC:/ncs/v3.1.1/zephyr/soc/nordic -IC:/ncs/v3.1.1/zephyr/soc/nordic/nrf54l/. -IC:/ncs/v3.1.1/zephyr/soc/nordic/common/. -IC:/ncs/v3.1. 1/nrf/include -IC:/ncs/v3.1.1/nrf/tests/include -IC:/ncs/v3.1.1/modules/hal/cmsis/CMSIS/Core/Include -IC:/ncs/v3.1.1/modules/hal/cmsis_6/CMSIS/Core/Include -IC:/ncs/v3.1.1/zephyr/modules/cmsis_6/. -IC :/ncs/v3.1.1/nrf/modules/hal_nordic/. -IC:/ncs/v3.1.1/modules/hal/nordic/nrfx -IC:/ncs/v3.1.1/modules/hal/nordic/nrfx/drivers/include -IC:/ncs/v3.1.1/modules/hal/nordic/nrfx/mdk -IC:/ncs/v3.1.1/zephyr /modules/hal_nordic/nrfx/. -IC:/boards/test/hello_world_9/build/hello_world_9/generated/library_nrf_security_psa -IC:/ncs/v3.1.1/nrf/subsys/nrf_security/include -IC:/ncs/v3.1.1/modules/crypto/oberon-p sa-crypto/oberon/drivers -IC:/ncs/v3.1.1/nrf/subsys/nrf_security/src/threading/include -IC:/ncs/v3.1.1/nrf/subsys/nrf_security/src/utils -IC:/ncs/v3.1.1/nrf/subsys/nrf_security/src/drivers/cracen/comm on/include -IC:/ncs/v3.1.1/nrf/subsys/nrf_security/src/drivers/cracen/sxsymcrypt/include -IC:/ncs/v3.1.1/nrf/subsys/nrf_security/src/drivers/cracen/silexpk/target/baremetal_ba414e_with_ik -IC:/ncs/v3. 1.1/nrf/subsys/nrf_security/src/drivers/cracen/silexpk/include -IC:/ncs/v3.1.1/nrf/subsys/nrf_security/src/drivers/cracen/cracenpsa/include -IC:/ncs/v3.1.1/modules/crypto/oberon-psa-crypto/include -IC :/ncs/v3.1.1/modules/crypto/oberon-psa-crypto/library -IC:/ncs/v3.1.1/modules/crypto/mbedtls/library -IC:/ncs/v3.1.1/modules/crypto/mbedtls/include -IC:/ncs/v3.1.1/modules/crypto/mbedtls/include/libra ry -isystem C:/ncs/v3.1.1/zephyr/lib/libc/common/include -isystem C:/ncs/v3.1.1/zephyr/lib/cpp/minimal/include -fno-strict-aliasing -Os -fcheck-new -std=c++17 -Wno-register -fno-exceptions -fno-rtti - imacros C:/boards/test/hello_world_9/build/hello_world_9/zephyr/include/generated/zephyr/autoconf.h -fno-common -g -gdwarf-4 -fdiagnostics-color=always -mcpu=cortex-m33 -mthumb -mabi=aapcs -mfp16-form at=ieee -mtp=soft --sysroot=C:/ncs/toolchains/c1a76fddb2/opt/zephyr-sdk/arm-zephyr-eabi/arm-zephyr-eabi -imacros C:/ncs/v3.1.1/zephyr/include/zephyr/toolchain/zephyr_stdint.h -Wall -Wformat -Wformat-s ecurity -Wno-format-zero-length -Wdouble-promotion -Wpointer-arith -Wexpansion-to-defined -Wno-unused-but-set-variable -fno-pic -fno-pie -fno-asynchronous-unwind-tables -ftls-model=local-exec -fno-reo rder-functions --param=min-pagesize=0 -fno-defer-pop -fmacro-prefix-map=C:/boards/test/hello_world_9=CMAKE_SOURCE_DIR -fmacro-prefix-map=C:/ncs/v3.1.1/zephyr=ZEPHYR_BASE -fmacro-prefix-map=C:/ncs/v3.1 .1=WEST_TOPDIR -ffunction-sections -fdata-sections -specs=picolibc.specs -nostdinc++ -fno-threadsafe-statics -MD -MT CMakeFiles/app.dir/src/output_handler.cpp.obj -MF CMakeFiles\app.dir\src\output_han dler.cpp.obj.d -o CMakeFiles/app.dir/src/output_handler.cpp.obj -c C:/boards/test/hello_world_9/src/output_handler.cpp In file included from C:/boards/test/hello_world_9/src/output_handler.cpp:17: C:/boards/test/hello_world_9/src/output_handler.hpp:20:10: fatal error: tensorflow/lite/c/common.h: No such file or directory 20 | #include <tensorflow/lite/c/common.h> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. [70/252] Building C object modules/nrf/subsys/nrf_security/src/drivers/cracen/CMakeFiles/cracen_psa_driver.dir/cracenpsa/src/kmu.c.obj ninja: build stopped: subcommand failed. FAILED: _sysbuild/sysbuild/images/hello_world_9-prefix/src/hello_world_9-stamp/hello_world_9-build C:/boards/test/hello_world_9/build/_sysbuild/sysbuild/images/hello_world_9-prefix/src/hello_world_9-s tamp/hello_world_9-build cmd.exe /C "cd /D C:\boards\test\hello_world_9\build\hello_world_9 && C:\ncs\toolchains\c1a76fddb2\opt\bin\cmake.exe --build ." ninja: build stopped: subcommand failed. FATAL ERROR: command exited with status 1: 'C:\ncs\toolchains\c1a76fddb2\opt\bin\cmake.EXE' --build C:/boards/test/hello_world_9/build |
デフォルトだとtflite-microの環境には(重いためか)、入っていません。
このエラーの対応で、Zephyrのmanifestにどのように記載するかを紹介します。
「Zephyr(west)」と「nRF Connect」の2つの環境で紹介します
Zephyr
Zephyr(West)の環境では、下記を実行すればOKです
west update
参考
https://wiki.seeedstudio.com/XIAO-nRF52840-Zephyr-RTOS/#tflite---hello-world
nRF Connect
NordicのnRF Connectの環境についてです。
インストールしたnRF Connectのwest.ymlを開きます。
筆者の例だと、C:\ncs\v*.* .*\nrf\west.yml の name-allowlist:にtflite-microを追加します
その後、nRF環境でwestをアップデートします。
参考
https://devzone.nordicsemi.com/f/nordic-q-a/106613/ncs-2-5-hello-world-tensorflow-example
Hello Worldでテスト
Zephyr公式のサンプルにある、tflite-macroでテストします。
https://github.com/zephyrproject-rtos/zephyr/tree/main/samples/modules/tflite-micro/hello_world
今回は、nRF ConnectでXIAO nRF54L15 Senseのボード向けにビルドしています
問題なくビルド出来ます。
tflite-macroが入るので、ビルドが長めになります
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
Building hello_world_9 west build --build-dir c:/boards/test/hello_world_9/build c:/boards/test/hello_world_9 --pristine --board xiao_nrf54l15/nrf54l15/cpuapp --sysbuild -- -DBOARD_ROOT="c:/ncs/platform-seeedboards/zephyr" -- west build: generating a build system Loading Zephyr module(s) (Zephyr base): sysbuild_default -- Found Python3: C:/ncs/toolchains/c1a76fddb2/opt/bin/python.exe (found suitable version "3.12.4", minimum required is "3.10") found components: Interpreter -- Cache files will be written to: C:/ncs/v3.1.1/zephyr/.cache -- Found west (found suitable version "1.4.0", minimum required is "0.14.0") -- Board: xiao_nrf54l15, qualifiers: nrf54l15/cpuapp Parsing C:/ncs/v3.1.1/zephyr/share/sysbuild/Kconfig Loaded configuration 'C:/boards/test/hello_world_9/build/_sysbuild/empty.conf' Merged configuration 'C:/boards/test/hello_world_9/build/_sysbuild/empty.conf' Configuration saved to 'C:/boards/test/hello_world_9/build/zephyr/.config' Kconfig header saved to 'C:/boards/test/hello_world_9/build/_sysbuild/autoconf.h' -- *********************************** * Running CMake for hello_world_9 * *********************************** Loading Zephyr default modules (Zephyr base). -- Application: C:/boards/test/hello_world_9 -- CMake version: 3.21.0 -- Found Python3: C:/ncs/toolchains/c1a76fddb2/opt/bin/python.exe (found suitable version "3.12.4", minimum required is "3.10") found components: Interpreter -- Cache files will be written to: C:/ncs/v3.1.1/zephyr/.cache -- Zephyr version: 4.1.99 (C:/ncs/v3.1.1/zephyr) -- Found west (found suitable version "1.4.0", minimum required is "0.14.0") -- Board: xiao_nrf54l15, qualifiers: nrf54l15/cpuapp -- Found host-tools: zephyr 0.17.0 (C:/ncs/toolchains/c1a76fddb2/opt/zephyr-sdk) -- Found toolchain: zephyr 0.17.0 (C:/ncs/toolchains/c1a76fddb2/opt/zephyr-sdk) -- Found Dtc: C:/ncs/toolchains/c1a76fddb2/opt/bin/dtc.exe (found suitable version "1.4.7", minimum required is "1.4.6") -- Found BOARD.dts: C:/ncs/platform-seeedboards/zephyr/boards/arm/xiao_nrf54l15/xiao_nrf54l15_nrf54l15_cpuapp.dts -- Generated zephyr.dts: C:/boards/test/hello_world_9/build/hello_world_9/zephyr/zephyr.dts -- Generated pickled edt: C:/boards/test/hello_world_9/build/hello_world_9/zephyr/edt.pickle -- Generated devicetree_generated.h: C:/boards/test/hello_world_9/build/hello_world_9/zephyr/include/generated/zephyr/devicetree_generated.h Parsing C:/ncs/v3.1.1/zephyr/Kconfig Loaded configuration 'C:/ncs/platform-seeedboards/zephyr/boards/arm/xiao_nrf54l15/xiao_nrf54l15_nrf54l15_cpuapp_defconfig' Merged configuration 'C:/boards/test/hello_world_9/prj.conf' Merged configuration 'C:/boards/test/hello_world_9/build/hello_world_9/zephyr/.config.sysbuild' Configuration saved to 'C:/boards/test/hello_world_9/build/hello_world_9/zephyr/.config' Kconfig header saved to 'C:/boards/test/hello_world_9/build/hello_world_9/zephyr/include/generated/zephyr/autoconf.h' -- Found GnuLd: c:/ncs/toolchains/c1a76fddb2/opt/zephyr-sdk/arm-zephyr-eabi/arm-zephyr-eabi/bin/ld.bfd.exe (found version "2.38") -- The C compiler identification is GNU 12.2.0 -- The CXX compiler identification is GNU 12.2.0 -- The ASM compiler identification is GNU -- Found assembler: C:/ncs/toolchains/c1a76fddb2/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc.exe =========== Generating psa_crypto_config =============== Backup: CONFIG_MBEDTLS_PSA_CRYPTO_SPM: False Backup: CONFIG_MBEDTLS_PSA_CRYPTO_C: True Backup: CONFIG_MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER: False Backup: CONFIG_MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT: False Backup: CONFIG_MBEDTLS_THREADING_C: True Backup: CONFIG_MBEDTLS_THREADING_ALT: True =========== Checkpoint: backup =============== Restore: CONFIG_MBEDTLS_PSA_CRYPTO_SPM: False Restore: CONFIG_MBEDTLS_PSA_CRYPTO_C: True Restore: CONFIG_MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER: False Restore: CONFIG_MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT: False Restore: CONFIG_MBEDTLS_THREADING_C: True Restore: CONFIG_MBEDTLS_THREADING_ALT: True =========== End psa_crypto_config =============== =========== Generating psa_crypto_library_config =============== Backup: CONFIG_MBEDTLS_PSA_CRYPTO_C: True Backup: CONFIG_MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER: False Backup: CONFIG_MBEDTLS_PSA_CRYPTO_SPM: False Backup: CONFIG_MBEDTLS_USE_PSA_CRYPTO: True Backup: CONFIG_MBEDTLS_PLATFORM_PRINTF_ALT: False Backup: CONFIG_MBEDTLS_THREADING_C: True Backup: CONFIG_MBEDTLS_THREADING_ALT: True =========== Checkpoint: backup =============== Restore: CONFIG_MBEDTLS_PSA_CRYPTO_C: True Restore: CONFIG_MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER: False Restore: CONFIG_MBEDTLS_PSA_CRYPTO_SPM: False Restore: CONFIG_MBEDTLS_USE_PSA_CRYPTO: True Restore: CONFIG_MBEDTLS_PLATFORM_PRINTF_ALT: False Restore: CONFIG_MBEDTLS_THREADING_C: True Restore: CONFIG_MBEDTLS_THREADING_ALT: True =========== End psa_crypto_library_config =============== -- Found gen_kobject_list: C:/ncs/v3.1.1/zephyr/scripts/build/gen_kobject_list.py -- Configuring done -- Generating done -- Build files have been written to: C:/boards/test/hello_world_9/build/hello_world_9 -- Configuring done -- Generating done -- Build files have been written to: C:/boards/test/hello_world_9/build ?[92m-- west build: building application [5/10] Performing build step for 'hello_world_9' [4/413] Generating include/generated/zephyr/version.h -- Zephyr version: 4.1.99 (C:/ncs/v3.1.1/zephyr), build: ncs-v3.1.1 [74/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/signal/micro/kernels/fft_flexbuffers_generated_d[85/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/signal/micro/kernels/window_flexbuffers_generate[91/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/signal/src/kiss_fft_wrappers/kiss_fft_int16.cc.o[100/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/micro_allocation_info.cc.[105/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/test_helper_custom_ops.cc[108/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/micro_interpreter_graph.c[116/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3..../tflite-micro/tensorflow/lite/micro/arena_allocator/recording_single_arena_buffer_[117/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/micro_resource_variable.c[118/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3....es/lib/tflite-micro/tensorflow/lite/micro/arena_allocator/persistent_arena_buffer_[120/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3....ib/tflite-micro/tensorflow/lite/micro/arena_allocator/non_persistent_arena_buffer_[121/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3..../modules/lib/tflite-micro/tensorflow/lite/micro/tflite_bridge/flatbuffer_conversio[123/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3....ptional/modules/lib/tflite-micro/tensorflow/lite/micro/memory_planner/linear_memor[125/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3....ptional/modules/lib/tflite-micro/tensorflow/lite/micro/memory_planner/greedy_memor[127/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3....ptional/modules/lib/tflite-micro/tensorflow/lite/micro/memory_planner/linear_memor[130/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/kernels/internal/tensor_ctypes.[131/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3....l/modules/lib/tflite-micro/tensorflow/lite/kernels/internal/reference/portable_ten[137/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/activations.cc.ob[139/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/activations_commo[141/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/assign_variable.c[142/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/batch_matmul.cc.o[143/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/arg_min_max.cc.ob[146/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/broadcast_args.cc[148/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/broadcast_to.cc.o[150/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/circular_buffer.c[152/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/circular_buffer_c[154/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/decompress_common[156/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/conv_common.cc.ob[159/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/batch_to_space_nd[159/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/dequantize_common[160/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/depth_to_space.cc[162/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/depthwise_conv.cc[163/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/depthwise_conv_co[164/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/detection_postpro[168/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/comparisons.cc.ob[263/413] Building C object modules/nrf/subsys/nrf_security/src/core/nrf_oberon/CMakeFiles/psa_core.dir/C_/ncs/v3.1.1/modules/crypto/oberon-psa-crypto/library/psa_crypto_slot_manageme[273/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/expand_dims.cc.ob[297/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/logistic_common.c[298/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/logical_common.cc[301/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/lstm_eval_common.[302/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/maximum_minimum.c[303/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/log_softmax.cc.ob[307/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/micro_tensor_util[313/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/pooling_common.cc[315/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/log_softmax.cc.ob[317/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/prelu_common.cc.o[318/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/quantize_common.c[319/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/reduce_common.cc.[321/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/reshape_common.cc[323/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/resize_bilinear.c[325/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/resize_nearest_ne[328/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/pooling_common.cc[330/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/space_to_depth.cc[333/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/squared_differenc[335/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/strided_slice.cc.[339/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/resize_nearest_ne[342/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3....ptional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/unidirectional_sequ[345/413] Building CXX object modules/tflite-micro/CMakeFiles/modules__tflite-micro.dir/C_/ncs/v3.1.1/optional/modules/lib/tflite-micro/tensorflow/lite/micro/kernels/transpose_conv.cc[352/413] Building C object modules/hal_nordic/modules/hal_nordic/nrfx/CMakeFiles/modules__hal_nordic__nrfx.dir/C_/ncs/v3.1.1/modules/hal/nordic/nrfx/helpers/nrfx_flag32_allocator.c.o[413/413] Linking CXX executable zephyr\zephyr.elf Memory region Used Size Region Size %age Used FLASH: 72536 B 1428 KB 4.96% RAM: 9984 B 188 KB 5.19% IDT_LIST: 0 GB 32 KB 0.00% Generating files from C:/boards/test/hello_world_9/build/hello_world_9/zephyr/zephyr.elf for board: xiao_nrf54l15 [10/10] Generating ../merged.hex |
実際にデバイス繋いでプログラム書き込みましたら、実行出来ました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
*** Booting nRF Connect SDK v3.1.1-e2a97fe2578a *** *** Using Zephyr OS v4.1.99-ff8f0c579eeb *** x_value: 0.000000, y_value: 0.000000 x_value: 0.314159, y_value: 0.372770 x_value: 0.628319, y_value: 0.559154 x_value: 0.942478, y_value: 0.847203 x_value: 1.256637, y_value: 0.982756 x_value: 1.570796, y_value: 1.042060 x_value: 1.884956, y_value: 0.957340 x_value: 2.199115, y_value: 0.864148 x_value: 2.513274, y_value: 0.609986 x_value: 2.827433, y_value: 0.313465 |
まとめ
Zephyr(RTOS)のようなEdge(エッジ)環境でAIを動かしたい場合です。
ビルドする際にtflite-microを含めたい必要が出てきます。
Zephyrのmanifestにどのように記載するかを紹介しました。
コメント