user@DESKTOP-87N36PP:~/openmv-sdk-1.6.0/stedgeai/Utilities/linux$ ~/openmv/tools/ci.sh
user@DESKTOP-87N36PP:~/openmv-sdk-1.6.0/stedgeai/Utilities/linux$ ~/openmv-sdk-1.6.0/stedgeai/Utilities/linux/stedgeai generate --target stm32n6 --model /home/user/openmv/lib/models/force_int_quant.tflite --relocatable --st-neural-art default@/home/user/openmv/lib/stai/scripts/neuralart.json --workspace /home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/workspace --output /home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen --verbosity 1
ST Edge AI Core v4.0.0-20500 359356bb0
>>>> EXECUTING NEURAL ART COMPILER
/home/user/openmv-sdk-1.6.0/stedgeai/Utilities/linux/atonn -i "/home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen/force_int_quant_OE_3_3_1.onnx" --json-quant-file "/home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen/force_int_quant_OE_3_3_1_Q.json" -g "network.c" --load-mdesc "/home/user/openmv-sdk-1.6.0/stedgeai/Utilities/configs/stm32n6.mdesc" --load-mpool "/home/user/openmv/lib/stai/scripts/stm32n6.mpool" --load-cdesc /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/configs/cortex-m55.cdesc --save-mpool-file "/home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/workspace/neural_art__network/stm32n6.mpool" --out-dir-prefix "/home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/workspace/neural_art__network/" --network-name "network" --native-float --cache-maintenance --Ocache-opt --enable-virtual-mem-pools --Os --optimization 3 --Oauto-sched --all-buffers-info --csv-file "network.csv" --enable-epoch-controller --output-info-file "c_info.json"
<<<< DONE EXECUTING NEURAL ART COMPILER
>>>> EXECUTING EPOCH_CONTROLLER POST_PROCESSING
<<<< DONE EXECUTING EPOCH_CONTROLLER POST_PROCESSING
Exec/report summary (generate)
------------------------------------------------------------------------------------------------
model file : /home/user/openmv/lib/models/force_int_quant.tflite
type : tflite
c_name : network
compression : lossless
options : allocate-inputs, allocate-outputs, relocatable
optimization : balanced
target/series : stm32n6npu
workspace dir : /home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/workspace
output dir : /home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen
model_fmt : float
model_name : force_int_quant
model_hash : 0x3b7ce6dc2f0a44ef4b4a2051312b0c28
params # : 6,945 items (7.23 KiB)
------------------------------------------------------------------------------------------------
input 1/1 : 'Input_0_out_0', f32(1x36), 144 Bytes, activations
output 1/1 : 'Dequantize_17_out_0', f32(1x1), 4 Bytes, activations
macc : 6,944
weights (ro) : 6,865 B (6.70 KiB) (1 segment) / -20,915(-75.3%) vs float model
activations (rw) : 180 B (180 B) (1 segment) *
ram (total) : 180 B (180 B) = 180 + 0 + 0
------------------------------------------------------------------------------------------------
(*) 'input'/'output' buffers are allocated in the activations buffer
Neural ART - Package for runtime loadable model - v 1.4.1
STM32 series : stm32n6npu
scripts directory : /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/linux/../../scripts/N6_reloc
python executable : /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/linux/python
cwd : /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/linux
output directory : /home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen
workspace directory : /home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/workspace
c-name : network
user options : []
custom file : None
>>> Shell execution has FAILED (returned code = 255)
$ /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/linux/python /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/linux/../../scripts/N6_reloc/npu_driver.py --input /home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen/network.c --output /home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/workspace/network_npu_reloc_build --log /home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/workspace/network_npu_reloc_build/npu_driver.log --json /home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/workspace/network_npu_reloc_build/network_generate_rel.json --no-color
NPU Utility - Relocatable model generator (version 1.4)
Creating date : Sat May 9 13:13:06 2026
Input file : /home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen/network.c
Output/build dir : /home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/workspace/network_npu_reloc_build
clang mode : False
compatible mode : False
custom : no-file
[E] E701(ExecutableNotFoundError): Unable to find a valid lib in Middlewares/ST/AI/Lib/GCC/ARMCortexM55
<<<
E102(RelocExecError): Script /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/linux/../../scripts/N6_reloc/npu_driver.py failed with return code -1
user@DESKTOP-87N36PP:~/openmv-sdk-1.6.0/stedgeai/Utilities/linux$
Sorry, source ~/openmv/tools/ci.sh first.
user@DESKTOP-87N36PP:~/openmv/tools$ ~/openmv/tools/ci.sh
user@DESKTOP-87N36PP:~/openmv/tools$
So?
I’m ashamed that I don’t know how to work on Linux (
user@DESKTOP-87N36PP:~/openmv/tools$ ci.sh
ci.sh: command not found
When you source it then it injects some variables into the terminal environment. An example, this is from our build system on github:
cd openmv
source tools/ci.sh && ci_update_submodules
sudo apt-get update
sudo apt-get install -y qemu-system-arm
source tools/ci.sh && ci_install_sdk
source tools/ci.sh && ci_install_fvp
source tools/ci.sh && ci_build_target OPENMV_N6 false 0 false
My build succeeds without issue on running all of the above line by line.
cd openmv
source tools/ci.sh && ci_update_submodules
sudo apt-get update
sudo apt-get install -y qemu-system-arm
source tools/ci.sh && ci_install_sdk
I did it.
On command source tools/ci.sh && ci_install_fvp
user@DESKTOP-87N36PP:~/openmv$ source tools/ci.sh && ci_install_fvp
Installing FVP 11.31.28...
--2026-05-09 13:32:58-- https://artifacts.tools.arm.com/avh/11.31.28/avh-linux-x86_11.31_28_Linux64.tar.gz
Resolving artifacts.tools.arm.com (artifacts.tools.arm.com)... failed: Temporary failure in name resolution.
wget: unable to resolve host address ‘artifacts.tools.arm.com’
FVP download failed: https://artifacts.tools.arm.com/avh/11.31.28/avh-linux-x86_11.31_28_Linux64.tar.gz
user@DESKTOP-87N36PP:~/openmv$
Just skip the arm fvp stuff. It shouldn’t be important. But, I have it installed.
…
That https://artifacts.tools.arm.com/avh/11.31.28/avh-linux-x86_11.31_28_Linux64.tar.gz URL works for me…
Installation is underway on the 3rd attempt . It’s going to install now and I’ll check it out. A few minutes…
HTTP request sent, awaiting response... 200 OK
Length: 144891067 (138M) [application/x-gzip]
Saving to: ‘/tmp/tmp.WCBAjjOOpL’
/tmp/tmp.WCBAjjOOpL 100%[====================================>] 138.18M 237KB/s in 4m 45s
2026-05-09 13:43:24 (497 KB/s) - ‘/tmp/tmp.WCBAjjOOpL’ saved [144891067/144891067]
FVP 11.31.28 installed to /home/user/fvp-11.31.28
user@DESKTOP-87N36PP:~/openmv$ source tools/ci.sh && ci_install_sdk
OpenMV SDK 1.6.0 already installed.
user@DESKTOP-87N36PP:~/openmv$ source tools/ci.sh && ci_build_target OPENMV_N6 false 0 false
make: Entering directory '/home/user/openmv/lib/micropython/mpy-cross'
Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
make: Leaving directory '/home/user/openmv/lib/micropython/mpy-cross'
Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
Including User C Module from /home/user/openmv/modules
Memory region Used Size Region Size %age Used
RAM: 22576 B 128 KB 17.22%
ROM: 46316 B 512 KB 8.83%
text data bss dec hex filename
46284 32 22320 68636 10c1c /home/user/openmv/build/OPENMV_N6/bin/bootloader.elf
-------------------------------------------------------------------
STM32 Signing Tool v2.21.0
-------------------------------------------------------------------
[Header v2.3] Align the payload to the 0x400 offset by adding padding bytes at the beginning of the payload.
Adding head padding bytes for payload with header v2.3
Header version 2.3 preparation...
Extracting Entry point value from the input file...
Entry point value : 0x34184b39
The headred image file generated successfully: /home/user/openmv/build/OPENMV_N6/bin/bootloader.bin
AR /home/user/openmv/build/OPENMV_N6/lib/libmicropython.a
GEN linker script
Memory region Used Size Region Size %age Used
DTCM: 128 KB 128 KB 100.00%
ITCM: 6256 B 64 KB 9.55%
SRAM1: 1040288 B 1 MB 99.21%
SRAM2: 1 MB 1 MB 100.00%
SRAM3: 1792 KB 1792 KB 100.00%
SRAM7: 1 KB 32 KB 3.12%
DRAM: 56 MB 64 MB 87.50%
FLASH_TEXT: 1892216 B 3584 KB 51.56%
GEN romfs image
Model: force_int_quant
XIP size = 4,992 data(596)+got(52)+bss(4288) sections
COPY size = 16,512 +ro(11520) sections
extra sections = 220 got:52(1.0%) header+rel:168(1.5%)
params size = 6,865
acts size = 180
binary file size = 19,104
params file size = 0
+--------------------------+----------------------------------+------+------------+------+
| name (addr) | flags | foff | dst | size |
+--------------------------+----------------------------------+------+------------+------+
| xSPI2 (0x20001b58) | 0x01010500 RELOC.PARAM.0.RCACHED | 0 | 0x00000000 | 6865 |
| AXISRAM5 (0x20001b5e) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x342e0000 | 180 |
| <undefined> (0x00000000) | 0x00000000 UNUSED | 0 | 0x00000000 | 0 |
+--------------------------+----------------------------------+------+------------+------+
Table: mempool c-descriptors (off=40000218, 3 entries, from RAM)
Model: fomo_face_detection
XIP size = 29,440 data(596)+got(56)+bss(28736) sections
COPY size = 72,008 +ro(42568) sections
extra sections = 240 got:56(0.2%) header+rel:184(0.4%)
params size = 20,753
acts size = 138,240
binary file size = 64,064
params file size = 0
+--------------------------+----------------------------------+------+------------+--------+
| name (addr) | flags | foff | dst | size |
+--------------------------+----------------------------------+------+------------+--------+
| xSPI2 (0x2000344c) | 0x01010500 RELOC.PARAM.0.RCACHED | 0 | 0x00000000 | 20753 |
| AXISRAM5 (0x20003452) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x342e0000 | 138240 |
| <undefined> (0x00000000) | 0x00000000 UNUSED | 0 | 0x00000000 | 0 |
+--------------------------+----------------------------------+------+------------+--------+
Table: mempool c-descriptors (off=40000218, 3 entries, from RAM)
Model: person_detect
XIP size = 48,384 data(548)+got(56)+bss(47744) sections
COPY size = 110,216 +ro(61832) sections
extra sections = 236 got:56(0.1%) header+rel:180(0.3%)
params size = 211,745
acts size = 55,296
binary file size = 274,272
params file size = 0
+--------------------------+----------------------------------+------+------------+--------+
| name (addr) | flags | foff | dst | size |
+--------------------------+----------------------------------+------+------------+--------+
| xSPI2 (0x2000352f) | 0x01010500 RELOC.PARAM.0.RCACHED | 0 | 0x00000000 | 211745 |
| AXISRAM5 (0x20003535) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x342e0000 | 55296 |
| <undefined> (0x00000000) | 0x00000000 UNUSED | 0 | 0x00000000 | 0 |
+--------------------------+----------------------------------+------+------------+--------+
Table: mempool c-descriptors (off=400001e8, 3 entries, from RAM)
stedgeai command failed with exit code -6
stedgeai generate --target stm32n6 --model /home/user/openmv/lib/models/yolo_lc_192.tflite --relocatable --st-neural-art default@/home/user/openmv/lib/stai/scripts/neuralart.json --workspace /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace --output /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen --verbosity 1
Model: blazeface_front_128
XIP size = 88,704 data(5696)+got(756)+bss(82240) sections
COPY size = 193,216 +ro(104512) sections
extra sections = 1,444 got:756(0.9%) header+rel:688(0.7%)
params size = 108,673
acts size = 540,672
binary file size = 220,232
params file size = 0
+--------------------------+----------------------------------+------+------------+--------+
| name (addr) | flags | foff | dst | size |
+--------------------------+----------------------------------+------+------------+--------+
| xSPI2 (0x20003eea) | 0x01010500 RELOC.PARAM.0.RCACHED | 0 | 0x00000000 | 108673 |
| AXISRAM5 (0x20003ef0) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x342e0000 | 425984 |
| AXISRAM4 (0x20003ef9) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x34270000 | 114688 |
| <undefined> (0x00000000) | 0x00000000 UNUSED | 0 | 0x00000000 | 0 |
+--------------------------+----------------------------------+------+------------+--------+
Table: mempool c-descriptors (off=400015f0, 4 entries, from RAM)
Model: face_landmarks_192
XIP size = 146,304 data(2336)+got(220)+bss(143744) sections
COPY size = 303,488 +ro(157184) sections
extra sections = 608 got:220(0.2%) header+rel:388(0.2%)
params size = 616,577
acts size = 737,280
binary file size = 776,616
params file size = 0
+--------------------------+----------------------------------+------+------------+--------+
| name (addr) | flags | foff | dst | size |
+--------------------------+----------------------------------+------+------------+--------+
| xSPI2 (0x20002e6a) | 0x01010500 RELOC.PARAM.0.RCACHED | 0 | 0x00000000 | 616577 |
| AXISRAM5 (0x20002e70) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x342e0000 | 442368 |
| AXISRAM4 (0x20002e79) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x34270000 | 294912 |
| <undefined> (0x00000000) | 0x00000000 UNUSED | 0 | 0x00000000 | 0 |
+--------------------------+----------------------------------+------+------------+--------+
Table: mempool c-descriptors (off=400008d0, 4 entries, from RAM)
Model: yolov8n_192
XIP size = 195,648 data(5148)+got(252)+bss(190208) sections
COPY size = 415,816 +ro(220168) sections
extra sections = 1,192 got:252(0.1%) header+rel:940(0.4%)
params size = 3,006,993
acts size = 276,480
binary file size = 3,233,408
params file size = 0
+--------------------------+----------------------------------+------+------------+---------+
| name (addr) | flags | foff | dst | size |
+--------------------------+----------------------------------+------+------------+---------+
| xSPI2 (0x200064e7) | 0x01010500 RELOC.PARAM.0.RCACHED | 0 | 0x00000000 | 3006993 |
| AXISRAM5 (0x200064ed) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x342e0000 | 276480 |
| <undefined> (0x00000000) | 0x00000000 UNUSED | 0 | 0x00000000 | 0 |
+--------------------------+----------------------------------+------+------------+---------+
Table: mempool c-descriptors (off=400013e0, 3 entries, from RAM)
Cascade: haarcascade_eye
Format: Old
Size: 20x20
Number of Stages: 24
Number of Features: 1066
Number of Rectangles: 2299
Cascade: haarcascade_smile
Format: Old
Size: 36x18
Number of Stages: 20
Number of Features: 569
Number of Rectangles: 1245
Cascade: haarcascade_frontalface
Format: Old
Size: 24x24
Number of Stages: 25
Number of Features: 2913
Number of Rectangles: 6383
Model: palm_detection_full_192
XIP size = 323,200 data(2112)+got(220)+bss(320832) sections
COPY size = 666,192 +ro(342992) sections
extra sections = 596 got:220(0.1%) header+rel:376(0.1%)
params size = 1,122,641
acts size = 1,506,496
binary file size = 1,468,248
params file size = 0
+--------------------------+----------------------------------+------+------------+---------+
| name (addr) | flags | foff | dst | size |
+--------------------------+----------------------------------+------+------------+---------+
| xSPI2 (0x20004e75) | 0x01010500 RELOC.PARAM.0.RCACHED | 0 | 0x00000000 | 1122641 |
| AXISRAM6 (0x20004e7b) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x34350000 | 294912 |
| AXISRAM5 (0x20004e84) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x342e0000 | 457920 |
| AXISRAM4 (0x20004e8d) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x34270000 | 294912 |
| AXISRAM3 (0x20004e96) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x34200000 | 458752 |
| <undefined> (0x00000000) | 0x00000000 UNUSED | 0 | 0x00000000 | 0 |
+--------------------------+----------------------------------+------+------------+---------+
Table: mempool c-descriptors (off=400007c8, 6 entries, from RAM)
Model: hand_landmarks_full_224
XIP size = 128,320 data(968)+got(64)+bss(127232) sections
COPY size = 265,856 +ro(137536) sections
extra sections = 304 got:64(0.0%) header+rel:240(0.2%)
params size = 3,182,977
acts size = 1,781,248
binary file size = 3,321,688
params file size = 0
+--------------------------+----------------------------------+------+------------+---------+
| name (addr) | flags | foff | dst | size |
+--------------------------+----------------------------------+------+------------+---------+
| xSPI1 (0x20002407) | 0x01020601 RELOC.ACTIV.1.WCACHED | 0 | 0x00000000 | 802816 |
| xSPI2 (0x2000240d) | 0x01010500 RELOC.PARAM.0.RCACHED | 0 | 0x00000000 | 3182977 |
| AXISRAM5 (0x20002413) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x342e0000 | 451584 |
| AXISRAM4 (0x2000241c) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x34270000 | 451584 |
| AXISRAM3 (0x20002425) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x34200000 | 75264 |
| <undefined> (0x00000000) | 0x00000000 UNUSED | 0 | 0x00000000 | 0 |
+--------------------------+----------------------------------+------+------------+---------+
Table: mempool c-descriptors (off=40000350, 6 entries, from RAM)
Model: movenet_singlepose_192
XIP size = 143,360 data(924)+got(92)+bss(142336) sections
COPY size = 302,480 +ro(159120) sections
extra sections = 312 got:92(0.1%) header+rel:220(0.1%)
params size = 2,638,753
acts size = 1,327,104
binary file size = 2,799,016
params file size = 0
+--------------------------+----------------------------------+------+------------+---------+
| name (addr) | flags | foff | dst | size |
+--------------------------+----------------------------------+------+------------+---------+
| xSPI2 (0x20003d07) | 0x01010500 RELOC.PARAM.0.RCACHED | 0 | 0x00000000 | 2638753 |
| AXISRAM5 (0x20003d0d) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x342e0000 | 442368 |
| AXISRAM4 (0x20003d16) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x34270000 | 425984 |
| AXISRAM3 (0x20003d1f) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x34200000 | 458752 |
| <undefined> (0x00000000) | 0x00000000 UNUSED | 0 | 0x00000000 | 0 |
+--------------------------+----------------------------------+------+------------+---------+
Table: mempool c-descriptors (off=40000338, 5 entries, from RAM)
concurrent.futures.process._RemoteTraceback:
"""
Traceback (most recent call last):
File "/home/user/openmv-sdk-1.6.0/python/lib/python3.12/concurrent/futures/process.py", line 258, in _process_worker
r = call_item.fn(*call_item.args, **call_item.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/openmv/tools/mkromfs.py", line 100, in process_entry
stedge_compile(file_path, build_dir, entry["profile"], stedge_args.split())
File "/home/user/openmv/tools/modelc.py", line 99, in stedge_compile
raise(e)
File "/home/user/openmv/tools/modelc.py", line 94, in stedge_compile
result = subprocess.run(generate_command, check=True, text=True, env=env,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/openmv-sdk-1.6.0/python/lib/python3.12/subprocess.py", line 571, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['stedgeai', 'generate', '--target', 'stm32n6', '--model', '/home/user/openmv/lib/models/yolo_lc_192.tflite', '--relocatable', '--st-neural-art', 'default@/home/user/openmv/lib/stai/scripts/neuralart.json', '--workspace', '/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace', '--output', '/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen', '--verbosity', '1']' died with <Signals.SIGABRT: 6>.
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/user/openmv/tools/mkromfs.py", line 238, in <module>
main()
File "/home/user/openmv/tools/mkromfs.py", line 232, in main
romfs_build(romfs_cfg, p, args)
File "/home/user/openmv/tools/mkromfs.py", line 145, in romfs_build
results[idx] = future.result()
^^^^^^^^^^^^^^^
File "/home/user/openmv-sdk-1.6.0/python/lib/python3.12/concurrent/futures/_base.py", line 449, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/home/user/openmv-sdk-1.6.0/python/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
subprocess.CalledProcessError: Command '['stedgeai', 'generate', '--target', 'stm32n6', '--model', '/home/user/openmv/lib/models/yolo_lc_192.tflite', '--relocatable', '--st-neural-art', 'default@/home/user/openmv/lib/stai/scripts/neuralart.json', '--workspace', '/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace', '--output', '/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen', '--verbosity', '1']' died with <Signals.SIGABRT: 6>.
make: *** [/home/user/openmv/ports/stm32/port_config.mk:187: /home/user/openmv/build/OPENMV_N6/bin/romfs.stamp] Error 1
user@DESKTOP-87N36PP:~/openmv$
I have executed all the commands
cd openmv
source tools/ci.sh && ci_update_submodules
sudo apt-get update
sudo apt-get install -y qemu-system-arm
source tools/ci.sh && ci_install_sdk
source tools/ci.sh && ci_install_fvp
source tools/ci.sh && ci_build_target OPENMV_N6 false 0 false
But it’s still a mistake.
Hmm, no there’s an improvement. Almost all of them completed. Just one for the yolo_lc_network failed.
So, sourcing and installing some of the libs fixed being able to run st’s tool.
Now you are back to the tool randomly failing sometimes when run…
You’ve already got your systems set up, but I’m starting from scratch, and I’m probably going to need some adjustments to make my system work as smoothly as yours.
I re-ran the command
source tools/ci.sh && ci_build_target OPENMV_N6 false 0 false
concurrent.futures.process._RemoteTraceback:
"""
Traceback (most recent call last):
File "/home/user/openmv-sdk-1.6.0/python/lib/python3.12/concurrent/futures/process.py", line 258, in _process_worker
r = call_item.fn(*call_item.args, **call_item.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/openmv/tools/mkromfs.py", line 100, in process_entry
stedge_compile(file_path, build_dir, entry["profile"], stedge_args.split())
File "/home/user/openmv/tools/modelc.py", line 99, in stedge_compile
raise(e)
File "/home/user/openmv/tools/modelc.py", line 94, in stedge_compile
result = subprocess.run(generate_command, check=True, text=True, env=env,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/openmv-sdk-1.6.0/python/lib/python3.12/subprocess.py", line 571, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['stedgeai', 'generate', '--target', 'stm32n6', '--model', '/home/user/openmv/lib/models/yolo_lc_192.tflite', '--relocatable', '--st-neural-art', 'default@/home/user/openmv/lib/stai/scripts/neuralart.json', '--workspace', '/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace', '--output', '/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen', '--verbosity', '1']' died with <Signals.SIGABRT: 6>.
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/user/openmv/tools/mkromfs.py", line 238, in <module>
main()
File "/home/user/openmv/tools/mkromfs.py", line 232, in main
romfs_build(romfs_cfg, p, args)
File "/home/user/openmv/tools/mkromfs.py", line 145, in romfs_build
results[idx] = future.result()
^^^^^^^^^^^^^^^
File "/home/user/openmv-sdk-1.6.0/python/lib/python3.12/concurrent/futures/_base.py", line 449, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/home/user/openmv-sdk-1.6.0/python/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
subprocess.CalledProcessError: Command '['stedgeai', 'generate', '--target', 'stm32n6', '--model', '/home/user/openmv/lib/models/yolo_lc_192.tflite', '--relocatable', '--st-neural-art', 'default@/home/user/openmv/lib/stai/scripts/neuralart.json', '--workspace', '/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace', '--output', '/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen', '--verbosity', '1']' died with <Signals.SIGABRT: 6>.
make: *** [/home/user/openmv/ports/stm32/port_config.mk:187: /home/user/openmv/build/OPENMV_N6/bin/romfs.stamp] Error 1
user@DESKTOP-87N36PP:~/openmv$
Hi Frank, I’m going to bed right now. However, please run this and post the output:
~/openmv-sdk-1.6.0/stedgeai/Utilities/linux/stedgeai generate --target stm32n6 --model /home/user/openmv/lib/models/yolo_lc_192.tflite --relocatable --st-neural-art default@/home/user/openmv/lib/stai/scripts/neuralart.json --workspace /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace --output /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen --verbosity 1
It should print some more info on where it’s crashing. The error should be different this time than the missing libraries.
Of course, I’ll do it right now !
user@DESKTOP-87N36PP:~/openmv$ ~/openmv-sdk-1.6.0/stedgeai/Utilities/linux/stedgeai generate --target stm32n6 --model /home/user/openmv/lib/models/yolo_lc_192.tflite --relocatable --st-neural-art default@/home/user/openmv/lib/stai/scripts/neuralart.json --workspace /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace --output /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen --verbosity 1
ST Edge AI Core v4.0.0-20500 359356bb0
>>>> EXECUTING NEURAL ART COMPILER
/home/user/openmv-sdk-1.6.0/stedgeai/Utilities/linux/atonn -i "/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen/yolo_lc_192_OE_3_3_1.onnx" --json-quant-file "/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen/yolo_lc_192_OE_3_3_1_Q.json" -g "network.c" --load-mdesc "/home/user/openmv-sdk-1.6.0/stedgeai/Utilities/configs/stm32n6.mdesc" --load-mpool "/home/user/openmv/lib/stai/scripts/stm32n6.mpool" --load-cdesc /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/configs/cortex-m55.cdesc --save-mpool-file "/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace/neural_art__network/stm32n6.mpool" --out-dir-prefix "/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace/neural_art__network/" --network-name "network" --native-float --cache-maintenance --Ocache-opt --enable-virtual-mem-pools --Os --optimization 3 --Oauto-sched --all-buffers-info --csv-file "network.csv" --enable-epoch-controller --output-info-file "c_info.json"
<<<< DONE EXECUTING NEURAL ART COMPILER
>>>> EXECUTING EPOCH_CONTROLLER POST_PROCESSING
<<<< DONE EXECUTING EPOCH_CONTROLLER POST_PROCESSING
Exec/report summary (generate)
-----------------------------------------------------------------------------------------------------------------------
model file : /home/user/openmv/lib/models/yolo_lc_192.tflite
type : tflite
c_name : network
compression : lossless
options : allocate-inputs, allocate-outputs, relocatable
optimization : balanced
target/series : stm32n6npu
workspace dir : /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace
output dir : /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen
model_fmt : float
model_name : yolo_lc_192
model_hash : 0x8e420151112787b4ba1bb9d8357aa4f4
params # : 277,566 items (276.73 KiB)
-----------------------------------------------------------------------------------------------------------------------
input 1/1 : 'Input_0_out_0', uint8(1x192x192x3), 108.00 KBytes, QLinear(0.003921569,0,uint8), activations
output 1/1 : 'Transpose_61_out_0', f32(1x12x12x30), 16.88 KBytes, activations
macc : 62,044,272
weights (ro) : 275,905 B (269.44 KiB) (1 segment) / -834,359(-75.1%) vs float model
activations (rw) : 258,048 B (252.00 KiB) (1 segment) *
ram (total) : 258,048 B (252.00 KiB) = 258,048 + 0 + 0
-----------------------------------------------------------------------------------------------------------------------
(*) 'input'/'output' buffers are allocated in the activations buffer
Neural ART - Package for runtime loadable model - v 1.4.1
STM32 series : stm32n6npu
scripts directory : /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/linux/../../scripts/N6_reloc
python executable : /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/linux/python
cwd : /home/user/openmv
output directory : /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen
workspace directory : /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace
c-name : network
user options : []
custom file : None
>>> Shell execution has FAILED (returned code = 255)
$ /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/linux/python /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/linux/../../scripts/N6_reloc/npu_driver.py --input /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen/network.c --output /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace/network_npu_reloc_build --log /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace/network_npu_reloc_build/npu_driver.log --json /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace/network_npu_reloc_build/network_generate_rel.json --no-color
NPU Utility - Relocatable model generator (version 1.4)
Creating date : Sat May 9 14:25:05 2026
Input file : /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen/network.c
Output/build dir : /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace/network_npu_reloc_build
clang mode : False
compatible mode : False
custom : no-file
STEdge AI core : /home/user/openmv-sdk-1.6.0/stedgeai (4.0.0-20500)
-> [STEP.0] Preparing the generated c-files..
Entry point : '/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen/network.c' (name='no-name')
clang mode : False
CNpuNetworkDesc(v0.4): <no epoch descriptors>, 39 buffers, ro=(0 B, 269.44 KB), rw=(252.00 KB, 0 B)
NPU compiler : STAI-3.0.0-254-g7cc65410 (1, 1, 3, 262)
model : /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen/yolo_lc_192_OE_3_3_1.onnx
json quant : /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen/yolo_lc_192_OE_3_3_1_Q.json
mempool : /home/user/openmv/lib/stai/scripts/stm32n6
mdesc : /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/configs/stm32n6
cdesc : /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/configs/cortex-m55
c_name : network
buffers_info : True
epoch ctrl : True
virt mempool : True
ocache opt : True
cache maint. : True
+----------------------------------------------------+-----------+-------+------------+-------------+-------------+
| MPOOL ([id], addr, attrs) | data | const | data (ext) | const (ext) | # buffers |
+----------------------------------------------------+-----------+-------+------------+-------------+-------------+
| hyperRAM ([4], _mem_pool_xSPI1_network, rw/c/r/-) | | | | | 0:0 0:0 |
| octoFlash ([5], _mem_pool_xSPI2_network, ro/c/r/-) | | | | 269.44 KB | 0:0 16:0 |
| npuRAM6 ([0], 34350000, rw/-/a/-) | | | | | 0:0 0:0 |
| npuRAM5 ([1], 342e0000, rw/-/a/-) | 252.00 KB | | | | 23:0 0:0 |
| npuRAM4 ([2], 34270000, rw/-/a/-) | | | | | 0:0 0:0 |
| npuRAM3 ([3], 34200000, rw/-/a/-) | | | | | 0:0 0:0 |
| | | | | | |
| total | 252.00 KB | 0 B | 0 B | 269.44 KB | |
+----------------------------------------------------+-----------+-------+------------+-------------+-------------+
Table: mempools - act=252.00 KB params=269.44 KB
+-----------------------+-------------+-----------+------------------+--------------------+
| IO TENSOR | type | size | shape | addr |
+-----------------------+-------------+-----------+------------------+--------------------+
| I: Input_0_out_0 | UINT8 (8b) | 108.00 KB | [1, 192, 192, 3] | (0x342e0000UL + 0) |
| O: Transpose_61_out_0 | FLOAT (32b) | 16.88 KB | [1, 12, 12, 30] | (0x342e0000UL + 0) |
+-----------------------+-------------+-----------+------------------+--------------------+
Table: io - 108.00 KB/16.88 KB
Preparing the C-descriptors for mempools..
checking the memory initializers from '/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen' folder..
found 'network_atonbuf.xSPI2.raw' file for xSPI2 (fsize=275905, expected=275905)
found 'ZERO_MPOOL.AXISRAM5.raw' file for AXISRAM5 (fsize=0, expected=258048)
xSPI2 : RELOC.PARAM.0.RCACHED foff=00000000 dst=00000000 size=275905 raw_data=275912 c_label=_mem_pool_xSPI2_network
AXISRAM5 : RESET.ACTIV.WRITE foff=00000000 dst=342e0000 size=258048 raw_data=0
Generating relocatable C-files..
creating /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace/network_npu_reloc_build/network_reloc_ecblobs.h
creating /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace/network_npu_reloc_build/network_reloc.c
creating /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace/network_npu_reloc_build/network_reloc_mempools.c
creating /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace/network_npu_reloc_build/network_reloc_conf.h
creating /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace/network_npu_reloc_build/network_reloc_mempools.raw (size=275,912)
<- done - Took 0.0726s
-> [STEP.1] Building the intermediate executable..
Cleaning the generated intermediate files..
Build..
CWD=/home/user/openmv-sdk-1.6.0/stedgeai/scripts/N6_reloc/resources
-f
makefile_gcc
SECURE_MODE=y
BUILD_DIR=/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace/network_npu_reloc_build
TARGET=network
RESOURCES_DIR=/home/user/openmv-sdk-1.6.0/stedgeai/scripts/N6_reloc/resources
RT_ATON_ROOT_DIR=/home/user/openmv-sdk-1.6.0/stedgeai/Middlewares/ST/AI/Npu
SW_LIB_PATH=/home/user/openmv-sdk-1.6.0/stedgeai/Middlewares/ST/AI/Lib/GCC/ARMCortexM55/NetworkRuntime1200_CM55_GCC_PIC.a
SW_LIB_INC_DIR=/home/user/openmv-sdk-1.6.0/stedgeai/Middlewares/ST/AI/Inc
PLT_DIR=/home/user/openmv-sdk-1.6.0/stedgeai/scripts/N6_reloc/resources/platform/STM32N6xx
EB_DBG_INFO=y
ECBLOB_IN_PARAMS=n
[E] ----------------------------
[E] THIS_MAKEFILE = /home/user/openmv-sdk-1.6.0/stedgeai/scripts/N6_reloc/resources/makefile_gcc
[E] BUILD_DIR = /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace/network_npu_reloc_build
[E] TARGET = network
[E] RESOURCES_DIR = /home/user/openmv-sdk-1.6.0/stedgeai/scripts/N6_reloc/resources
[E] RT_ATON_ROOT_DIR = /home/user/openmv-sdk-1.6.0/stedgeai/Middlewares/ST/AI/Npu
[E] RT_ATON_DEVICES_DIR = /home/user/openmv-sdk-1.6.0/stedgeai/Middlewares/ST/AI/Npu/Devices/STM32N6xx
[E] RT_ATON_LL_ATON_DIR = /home/user/openmv-sdk-1.6.0/stedgeai/Middlewares/ST/AI/Npu/ll_aton
[E] SW_LIB_INC_DIR = /home/user/openmv-sdk-1.6.0/stedgeai/Middlewares/ST/AI/Inc
[E] SW_LIB_PATH = /home/user/openmv-sdk-1.6.0/stedgeai/Middlewares/ST/AI/Lib/GCC/ARMCortexM55/NetworkRuntime1200_CM55_GCC_PIC.a
[E] PLT_DIR = /home/user/openmv-sdk-1.6.0/stedgeai/scripts/N6_reloc/resources/platform/STM32N6xx
[E] LKR_FILE = /home/user/openmv-sdk-1.6.0/stedgeai/scripts/N6_reloc/resources/reloc_network_gcc.lkr
[E] COMPATIBLE_MODE =
[E] ECBLOB_IN_PARAMS = n
[E] EB_DBG_INFO = y
[E] ----------------------------
[E]
[E] mkdir -p /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace/network_npu_reloc_build
[E] arm-none-eabi-gcc -mthumb -mcpu=cortex-m55 -mfpu=fpv4-sp-d16 -mtune=cortex-m55 -mfloat-abi=hard -mcmse -fpic -mno-pic-data-is-text-relative -msingle-pic-base -mpic-register=r9 -std=gnu99 -mno-thumb-interwork -ffast-math -fsingle-precision-constant -fvisibility=hidden -fno-unwind-tables -fstack-reuse=all -ffunction-sections -fdata-sections -fno-math-errno -fomit-frame-pointer -fno-builtin -Os -DBUILD_AI_NETWORK_RELOC -DMODEL_CONF=\"network_reloc_conf.h\" -DLL_ATON_DUMP_DEBUG_API -DLL_ATON_PLATFORM=LL_ATON_PLAT_STM32N6 -DLL_ATON_OSAL=LL_ATON_OSAL_BARE_METAL -DLL_ATON_RT_MODE=LL_ATON_RT_ASYNC -DLL_ATON_SW_FALLBACK -DLL_ATON_EB_DBG_INFO -DLL_ATON_DBG_BUFFER_INFO_EXCLUDED=1 -DLL_ATON_RT_RELOC -I/home/user/openmv-sdk-1.6.0/stedgeai/scripts/N6_reloc/resources/platform/STM32N6xx -I/home/user/openmv-sdk-1.6.0/stedgeai/scripts/N6_reloc/resources/platform/STM32N6xx/.. -I/home/user/openmv-sdk-1.6.0/stedgeai/Middlewares/ST/AI/Npu/ll_aton -I/home/user/openmv-sdk-1.6.0/stedgeai/Middlewares/ST/AI/Npu/Devices/STM32N6xx -I/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace/network_npu_reloc_build -MMD -c "/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace/network_npu_reloc_build/network_reloc.c" -o "/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace/network_npu_reloc_build/network_reloc.o"
[E] /bin/sh: 1: arm-none-eabi-gcc: not found
[E] make: *** [makefile_gcc:144: /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace/network_npu_reloc_build/network_reloc.o] Error 127
[E] E702(ExecutableExecError): returned code = 2 command = /bin/make -f makefile_gcc SECURE_MODE=y BUILD_DIR=/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace/network_npu_reloc_build TARGET=network RESOURCES_DIR=/home/user/openmv-sdk-1.6.0/stedgeai/scripts/N6_reloc/resources RT_ATON_ROOT_DIR=/home/user/openmv-sdk-1.6.0/stedgeai/Middlewares/ST/AI/Npu SW_LIB_PATH=/home/user/openmv-sdk-1.6.0/stedgeai/Middlewares/ST/AI/Lib/GCC/ARMCortexM55/NetworkRuntime1200_CM55_GCC_PIC.a SW_LIB_INC_DIR=/home/user/openmv-sdk-1.6.0/stedgeai/Middlewares/ST/AI/Inc PLT_DIR=/home/user/openmv-sdk-1.6.0/stedgeai/scripts/N6_reloc/resources/platform/STM32N6xx EB_DBG_INFO=y ECBLOB_IN_PARAMS=n
<<<
E102(RelocExecError): Script /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/linux/../../scripts/N6_reloc/npu_driver.py failed with return code -1
user@DESKTOP-87N36PP:~/openmv$
As you wrote to me that this is also happening to you, I have some instability as well. I just started the build make -j$(nproc) TARGET=OPENMV_N6, and 7 files were created in the bin folder, including the romfs.stamp and romfs0.img files.
Model: movenet_singlepose_192
XIP size = 143,360 data(924)+got(92)+bss(142336) sections
COPY size = 302,480 +ro(159120) sections
extra sections = 312 got:92(0.1%) header+rel:220(0.1%)
params size = 2,638,753
acts size = 1,327,104
binary file size = 2,799,016
params file size = 0
+--------------------------+----------------------------------+------+------------+---------+
| name (addr) | flags | foff | dst | size |
+--------------------------+----------------------------------+------+------------+---------+
| xSPI2 (0x20003d07) | 0x01010500 RELOC.PARAM.0.RCACHED | 0 | 0x00000000 | 2638753 |
| AXISRAM5 (0x20003d0d) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x342e0000 | 442368 |
| AXISRAM4 (0x20003d16) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x34270000 | 425984 |
| AXISRAM3 (0x20003d1f) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x34200000 | 458752 |
| <undefined> (0x00000000) | 0x00000000 UNUSED | 0 | 0x00000000 | 0 |
+--------------------------+----------------------------------+------+------------+---------+
Table: mempool c-descriptors (off=40000338, 5 entries, from RAM)
romfs image: "romfs0.img" usage: 12282.3KiB / 24576.0KiB (50.0%)
-size: 64064 alignment: 32 path: /rom/fomo_face_detection.tflite
-size: 15 alignment: 4 path: /rom/fomo_face_detection.txt
-size: 19104 alignment: 32 path: /rom/force_int_quant.tflite
-size: 274272 alignment: 32 path: /rom/person_detect.tflite
-size: 17 alignment: 4 path: /rom/person_detect.txt
-size: 317848 alignment: 32 path: /rom/yolo_lc_192.tflite
-size: 8 alignment: 4 path: /rom/yolo_lc_192.txt
-size: 3233408 alignment: 32 path: /rom/yolov8n_192.tflite
-size: 8 alignment: 4 path: /rom/yolov8n_192.txt
-size: 220232 alignment: 32 path: /rom/blazeface_front_128.tflite
-size: 776616 alignment: 32 path: /rom/face_landmarks_192.tflite
-size: 1468248 alignment: 32 path: /rom/palm_detection_full_192.tflite
-size: 3321688 alignment: 32 path: /rom/hand_landmarks_full_224.tflite
-size: 2799016 alignment: 32 path: /rom/movenet_singlepose_192.tflite
-size: 19041 alignment: 4 path: /rom/haarcascade_eye.cascade
-size: 10280 alignment: 4 path: /rom/haarcascade_smile.cascade
-size: 52396 alignment: 4 path: /rom/haarcascade_frontalface.cascade
text data bss dec hex filename
46284 32 22320 68636 10c1c /home/user/openmv/build/OPENMV_N6/bin/bootloader.elf
text data bss dec hex filename
1884720 7496 62759832 64652048 3da8310 /home/user/openmv/build/OPENMV_N6/bin/firmware.elf
user@DESKTOP-87N36PP:~/openmv$
Guys, I have a big request for you. I want to reinstall WLS from 0 and configure the system so that it performs the bare minimum and nothing more for building N6 firmware.
In the first part, after installing Ubuntu, I ran the following commands:
sudo apt-get update
sudo apt-get install git build-essential
git clone --recursive https://github.com/openmv/openmv.git
cd openmv
make sdk
make -j$(nproc) -C lib/micropython/mpy-cross
There was an error with the stedgeai command, and in the second part, we added the following commands:
cd openmv
source tools/ci.sh && ci_update_submodules
sudo apt-get update
sudo apt-get install -y qemu-system-arm
source tools/ci.sh && ci_install_sdk
source tools/ci.sh && ci_install_fvp
How to combine these two parts correctly and in what order, so that I can check it and create an instruction for configuring WSL. Do I need to remove something or change the order of the commands? Can you provide a list ?
And how do the teams differ?
make -j$(nproc) TARGET=OPENMV_N6
and
source tools/ci.sh && ci_build_target OPENMV_N6 false 0 false ?
Which one is better to use?
I’ve improved the error reporting so if it fails again we can see the actual error instead of some exit code.
You can’t run those commands manually unless you add the SDK/toolchain to the path. stedgeai compiles a relocatable binary, like firmware, that’s how ST models work, so they need the SDK.
git clone --recursive
This is too slow, it will clone every repo recursively. All you need to build a firmware image is the following:
git clone --depth 1 https://github.com/openmv/openmv
git submodule update --init --depth=1
make -j$(nproc) -C lib/micropython/mpy-cross
make -j$(nproc) TARGET=OPENMV_N6 submodules
make -j$(nproc) TARGET=OPENMV_N6
user@DESKTOP-87N36PP:~/openmv$ git pull origin master
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 5 (delta 3), reused 4 (delta 3), pack-reused 0 (from 0)
Unpacking objects: 100% (5/5), 1.64 KiB | 11.00 KiB/s, done.
From https://github.com/openmv/openmv
* branch master -> FETCH_HEAD
557c65f3..7b63a800 master -> origin/master
Updating 557c65f3..7b63a800
Fast-forward
tools/modelc.py | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
user@DESKTOP-87N36PP:~/openmv$ make -j$(nproc) TARGET=OPENMV_N6 submodules
Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
Updating submodules: lib/mbedtls lib/lwip lib/cyw43-driver lib/mynewt-nimble lib/libhydrogen lib/stm32lib lib/tinyusb lib/micropython-lib
Synchronizing submodule url for 'lib/cyw43-driver'
Synchronizing submodule url for 'lib/libhydrogen'
Synchronizing submodule url for 'lib/lwip'
Synchronizing submodule url for 'lib/mbedtls'
Synchronizing submodule url for 'lib/micropython-lib'
Synchronizing submodule url for 'lib/mynewt-nimble'
Synchronizing submodule url for 'lib/stm32lib'
Synchronizing submodule url for 'lib/tinyusb'
user@DESKTOP-87N36PP:~/openmv$ make -j$(nproc) TARGET=OPENMV_N6
Use make V=1 or set BUILD_VERBOSE in your environment to increase build verbosity.
Including User C Module from /home/user/openmv/modules
Memory region Used Size Region Size %age Used
RAM: 22576 B 128 KB 17.22%
ROM: 46316 B 512 KB 8.83%
text data bss dec hex filename
46284 32 22320 68636 10c1c /home/user/openmv/build/OPENMV_N6/bin/bootloader.elf
-------------------------------------------------------------------
STM32 Signing Tool v2.21.0
-------------------------------------------------------------------
[Header v2.3] Align the payload to the 0x400 offset by adding padding bytes at the beginning of the payload.
Adding head padding bytes for payload with header v2.3
Header version 2.3 preparation...
Extracting Entry point value from the input file...
Entry point value : 0x34184b39
The headred image file generated successfully: /home/user/openmv/build/OPENMV_N6/bin/bootloader.bin
GEN /home/user/openmv/build/OPENMV_N6/lib/micropython/genhdr/mpversion.h
CC ../../py/modsys.c
CC ../../extmod/modos.c
CC ../../extmod/modplatform.c
CC ../../shared/runtime/pyexec.c
AR /home/user/openmv/build/OPENMV_N6/lib/libmicropython.a
GEN linker script
Memory region Used Size Region Size %age Used
DTCM: 128 KB 128 KB 100.00%
ITCM: 6256 B 64 KB 9.55%
SRAM1: 1040288 B 1 MB 99.21%
SRAM2: 1 MB 1 MB 100.00%
SRAM3: 1792 KB 1792 KB 100.00%
SRAM7: 1 KB 32 KB 3.12%
DRAM: 56 MB 64 MB 87.50%
FLASH_TEXT: 1892216 B 3584 KB 51.56%
GEN romfs image
Model: force_int_quant
XIP size = 4,992 data(596)+got(52)+bss(4288) sections
COPY size = 16,512 +ro(11520) sections
extra sections = 220 got:52(1.0%) header+rel:168(1.5%)
params size = 6,865
acts size = 180
binary file size = 19,104
params file size = 0
+--------------------------+----------------------------------+------+------------+------+
| name (addr) | flags | foff | dst | size |
+--------------------------+----------------------------------+------+------------+------+
| xSPI2 (0x20001b58) | 0x01010500 RELOC.PARAM.0.RCACHED | 0 | 0x00000000 | 6865 |
| AXISRAM5 (0x20001b5e) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x342e0000 | 180 |
| <undefined> (0x00000000) | 0x00000000 UNUSED | 0 | 0x00000000 | 0 |
+--------------------------+----------------------------------+------+------------+------+
Table: mempool c-descriptors (off=40000218, 3 entries, from RAM)
Model: yolo_lc_192
XIP size = 34,560 data(596)+got(52)+bss(33856) sections
COPY size = 75,776 +ro(41216) sections
extra sections = 228 got:52(0.2%) header+rel:176(0.4%)
params size = 275,905
acts size = 258,048
binary file size = 317,848
params file size = 0
+--------------------------+----------------------------------+------+------------+--------+
| name (addr) | flags | foff | dst | size |
+--------------------------+----------------------------------+------+------------+--------+
| xSPI2 (0x20001b69) | 0x01010500 RELOC.PARAM.0.RCACHED | 0 | 0x00000000 | 275905 |
| AXISRAM5 (0x20001b6f) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x342e0000 | 258048 |
| <undefined> (0x00000000) | 0x00000000 UNUSED | 0 | 0x00000000 | 0 |
+--------------------------+----------------------------------+------+------------+--------+
Table: mempool c-descriptors (off=40000218, 3 entries, from RAM)
Model: fomo_face_detection
XIP size = 29,440 data(596)+got(56)+bss(28736) sections
COPY size = 72,008 +ro(42568) sections
extra sections = 240 got:56(0.2%) header+rel:184(0.4%)
params size = 20,753
acts size = 138,240
binary file size = 64,064
params file size = 0
+--------------------------+----------------------------------+------+------------+--------+
| name (addr) | flags | foff | dst | size |
+--------------------------+----------------------------------+------+------------+--------+
| xSPI2 (0x2000344c) | 0x01010500 RELOC.PARAM.0.RCACHED | 0 | 0x00000000 | 20753 |
| AXISRAM5 (0x20003452) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x342e0000 | 138240 |
| <undefined> (0x00000000) | 0x00000000 UNUSED | 0 | 0x00000000 | 0 |
+--------------------------+----------------------------------+------+------------+--------+
Table: mempool c-descriptors (off=40000218, 3 entries, from RAM)
Model: yolov8n_192
XIP size = 195,648 data(5148)+got(252)+bss(190208) sections
COPY size = 415,816 +ro(220168) sections
extra sections = 1,192 got:252(0.1%) header+rel:940(0.4%)
params size = 3,006,993
acts size = 276,480
binary file size = 3,233,408
params file size = 0
+--------------------------+----------------------------------+------+------------+---------+
| name (addr) | flags | foff | dst | size |
+--------------------------+----------------------------------+------+------------+---------+
| xSPI2 (0x200064e7) | 0x01010500 RELOC.PARAM.0.RCACHED | 0 | 0x00000000 | 3006993 |
| AXISRAM5 (0x200064ed) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x342e0000 | 276480 |
| <undefined> (0x00000000) | 0x00000000 UNUSED | 0 | 0x00000000 | 0 |
+--------------------------+----------------------------------+------+------------+---------+
Table: mempool c-descriptors (off=400013e0, 3 entries, from RAM)
Model: blazeface_front_128
XIP size = 88,704 data(5696)+got(756)+bss(82240) sections
COPY size = 193,216 +ro(104512) sections
extra sections = 1,444 got:756(0.9%) header+rel:688(0.7%)
params size = 108,673
acts size = 540,672
binary file size = 220,232
params file size = 0
+--------------------------+----------------------------------+------+------------+--------+
| name (addr) | flags | foff | dst | size |
+--------------------------+----------------------------------+------+------------+--------+
| xSPI2 (0x20003eea) | 0x01010500 RELOC.PARAM.0.RCACHED | 0 | 0x00000000 | 108673 |
| AXISRAM5 (0x20003ef0) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x342e0000 | 425984 |
| AXISRAM4 (0x20003ef9) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x34270000 | 114688 |
| <undefined> (0x00000000) | 0x00000000 UNUSED | 0 | 0x00000000 | 0 |
+--------------------------+----------------------------------+------+------------+--------+
Table: mempool c-descriptors (off=400015f0, 4 entries, from RAM)
stedgeai generate failed for /home/user/openmv/lib/models/person_detect.tflite (exit code -6)
stedgeai generate --target stm32n6 --model /home/user/openmv/lib/models/person_detect.tflite --relocatable --st-neural-art default@/home/user/openmv/lib/stai/scripts/neuralart.json --workspace /home/user/openmv/build/OPENMV_N6/lib/models/person_detect/workspace --output /home/user/openmv/build/OPENMV_N6/lib/models/person_detect/gen --verbosity 1 --quiet
ST Edge AI Core v4.0.0-20500 359356bb0
>>>> EXECUTING NEURAL ART COMPILER
/home/user/openmv-sdk-1.6.0/stedgeai/Utilities/linux/atonn -i "/home/user/openmv/build/OPENMV_N6/lib/models/person_detect/gen/person_detect_OE_3_3_1.onnx" --json-quant-file "/home/user/openmv/build/OPENMV_N6/lib/models/person_detect/gen/person_detect_OE_3_3_1_Q.json" -g "network.c" --load-mdesc "/home/user/openmv-sdk-1.6.0/stedgeai/Utilities/configs/stm32n6.mdesc" --load-mpool "/home/user/openmv/lib/stai/scripts/stm32n6.mpool" --load-cdesc /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/configs/cortex-m55.cdesc --save-mpool-file "/home/user/openmv/build/OPENMV_N6/lib/models/person_detect/workspace/neural_art__network/stm32n6.mpool" --out-dir-prefix "/home/user/openmv/build/OPENMV_N6/lib/models/person_detect/workspace/neural_art__network/" --network-name "network" --native-float --cache-maintenance --Ocache-opt --enable-virtual-mem-pools --Os --optimization 3 --Oauto-sched --all-buffers-info --csv-file "network.csv" --enable-epoch-controller --output-info-file "c_info.json"
<<<< DONE EXECUTING NEURAL ART COMPILER
>>>> EXECUTING EPOCH_CONTROLLER POST_PROCESSING
<<<< DONE EXECUTING EPOCH_CONTROLLER POST_PROCESSING
Exec/report summary (generate)
------------------------------------------------------------------------------------------------------------------
model file : /home/user/openmv/lib/models/person_detect.tflite
type : tflite
c_name : network
compression : lossless
options : allocate-inputs, allocate-outputs, relocatable
optimization : balanced
target/series : stm32n6npu
workspace dir : /home/user/openmv/build/OPENMV_N6/lib/models/person_detect/workspace
output dir : /home/user/openmv/build/OPENMV_N6/lib/models/person_detect/gen
model_fmt : float
model_name : person_detect
model_hash : 0xac6e1b872f90cff2f52b1a28664814ed
params # : 210,706 items (213.79 KiB)
------------------------------------------------------------------------------------------------------------------
input 1/1 : 'Input_0_out_0', int8(1x96x96x1), 9.00 KBytes, QLinear(0.007843138,-1,int8), activations
output 1/1 : 'Quantize_130_out_0', int8(1x2), 2 Bytes, QLinear(0.003906250,-128,int8), activations
macc : 8,705,153
weights (ro) : 211,745 B (206.78 KiB) (1 segment) / -631,079(-74.9%) vs float model
activations (rw) : 55,296 B (54.00 KiB) (1 segment) *
ram (total) : 55,296 B (54.00 KiB) = 55,296 + 0 + 0
------------------------------------------------------------------------------------------------------------------
(*) 'input'/'output' buffers are allocated in the activations buffer
Neural ART - Package for runtime loadable model - v 1.4.1
STM32 series : stm32n6npu
scripts directory : /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/linux/../../scripts/N6_reloc
python executable : /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/linux/python
cwd : /home/user/openmv
output directory : /home/user/openmv/build/OPENMV_N6/lib/models/person_detect/gen
workspace directory : /home/user/openmv/build/OPENMV_N6/lib/models/person_detect/workspace
c-name : network
user options : []
custom file : None
Compilation details
---------------------------------------------------------------------------------
Compiler version: 1.1.3-262
Compiler arguments: -i /home/user/openmv/build/OPENMV_N6/lib/models/person_detect/gen/person_detect_OE_3_3_1.onnx --json-quant-file /home/user/openmv/build/OPENMV_N6/lib/models/person_detect/gen/person_detect_OE_3_3_1_Q.json -g network.c --load-mdesc /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/configs/stm32n6.mdesc --load-mpool /home/user/openmv/lib/stai/scripts/stm32n6.mpool --load-cdesc /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/configs/cortex-m55.cdesc --save-mpool-file /home/user/openmv/build/OPENMV_N6/lib/models/person_detect/workspace/neural_art__network/stm32n6.mpool --out-dir-prefix /home/user/openmv/build/OPENMV_N6/lib/models/person_detect/workspace/neural_art__network/ --network-name network --native-float --cache-maintenance --Ocache-opt --enable-virtual-mem-pools --Os --optimization 3 --Oauto-sched --all-buffers-info --csv-file network.csv --enable-epoch-controller --output-info-file c_info.json
====================================================================================
Memory usage information (input/output buffers are included in activations)
---------------------------------------------------------------------------------
npuRAM3 [0x34200000 - 0x34270000]: 0 B / 448.000 kB ( 0.00 % used) -- weights: 0 B ( 0.00 % used) activations: 0 B ( 0.00 % used)
npuRAM4 [0x34270000 - 0x342E0000]: 0 B / 448.000 kB ( 0.00 % used) -- weights: 0 B ( 0.00 % used) activations: 0 B ( 0.00 % used)
npuRAM5 [0x342E0000 - 0x34350000]: 54.000 kB / 448.000 kB ( 12.05 % used) -- weights: 0 B ( 0.00 % used) activations: 54.000 kB ( 12.05 % used)
npuRAM6 [0x34350000 - 0x343C0000]: 0 B / 448.000 kB ( 0.00 % used) -- weights: 0 B ( 0.00 % used) activations: 0 B ( 0.00 % used)
octoFlash [0x71000000 - 0x72000000]: 206.782 kB / 16.000 MB ( 1.26 % used) -- weights: 206.782 kB ( 1.26 % used) activations: 0 B ( 0.00 % used)
hyperRAM [0x92000000 - 0x93000000]: 0 B / 16.000 MB ( 0.00 % used) -- weights: 0 B ( 0.00 % used) activations: 0 B ( 0.00 % used)
Total: 260.782 kB -- weights: 206.782 kB activations: 54.000 kB
====================================================================================
Used memory ranges
---------------------------------------------------------------------------------
npuRAM5 [0x342E0000 - 0x34350000]: 0x342E0000-0x342ED800
octoFlash [0x71000000 - 0x72000000]: 0x71000000-0x71033B30
====================================================================================
Epochs details
---------------------------------------------------------------------------------
Total number of epochs 29
>> pure software (SW) epochs 1
>> hybrid epochs (using both software and hardware) 0
>> pure hardware (HW or EC) epochs 28 (implemented in 1 epoch controller blobs/meta epochs)
+-------------------+------+---------+
| epoch ID | Type | Details |
+-------------------+------+---------+
| epochs 2 -> 29 | EC | |
| epoch_30 | SW | Softmax |
+-------------------+------+---------+
====================================================================================
Runtime Loadable Model - Memory Layout (series="stm32n6npu")
--------------------------------------------------------------------------------
v8.0 dbg=True async=True sec=True 'Embedded ARM GCC' cpuid=D22 fpu=True float-abi=2
XIP size = 48,384 data(548)+got(56)+bss(47744) sections
COPY size = 110,216 +ro(61832) sections
extra sections = 236 got:56(0.1%) header+rel:180(0.3%)
params size = 211,745
acts size = 55,296
binary file size = 274,272
params file size = 0
+--------------------------+----------------------------------+------+------------+--------+
| name (addr) | flags | foff | dst | size |
+--------------------------+----------------------------------+------+------------+--------+
| xSPI2 (0x2000352f) | 0x01010500 RELOC.PARAM.0.RCACHED | 0 | 0x00000000 | 211745 |
| AXISRAM5 (0x20003535) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x342e0000 | 55296 |
| <undefined> (0x00000000) | 0x00000000 UNUSED | 0 | 0x00000000 | 0 |
+--------------------------+----------------------------------+------+------------+--------+
Table: mempool c-descriptors (off=400001e8, 3 entries, from RAM)
rt_ctx: c_name="network", acts_sz=55,296, params_sz=211,745, ext_ram_sz=0
rt_ctx: rt_version_desc="STAI-3.0.0-254-g7cc65410 (RELOC.GCC)"
Generated files (9)
----------------------------------------------------------------------------------------------
/home/user/openmv/build/OPENMV_N6/lib/models/person_detect/gen/person_detect_OE_3_3_1.onnx
/home/user/openmv/build/OPENMV_N6/lib/models/person_detect/gen/person_detect_OE_3_3_1_Q.json
/home/user/openmv/build/OPENMV_N6/lib/models/person_detect/gen/network.c
/home/user/openmv/build/OPENMV_N6/lib/models/person_detect/gen/network_atonbuf.xSPI2.raw
/home/user/openmv/build/OPENMV_N6/lib/models/person_detect/gen/network_c_info.json
/home/user/openmv/build/OPENMV_N6/lib/models/person_detect/gen/network.h
/home/user/openmv/build/OPENMV_N6/lib/models/person_detect/gen/network_ecblobs.h
/home/user/openmv/build/OPENMV_N6/lib/models/person_detect/gen/network_rel.bin
/home/user/openmv/build/OPENMV_N6/lib/models/person_detect/gen/network_generate_rel.json
Creating txt report file /home/user/openmv/build/OPENMV_N6/lib/models/person_detect/gen/network_generate_report.txt
Do you allow statistics to improve the command line? (y)es / (n)o
elapsed time (GENERATE): 167.692s
Fatal Python error: _enter_buffered_busy: could not acquire lock for <_io.BufferedReader name='<stdin>'> at interpreter shutdown, possibly due to daemon threads
Python runtime state: finalizing (tstate=0x568b51094f00)
Current thread 0x00007ea124866740 (most recent call first):
<no Python frame>
Model: movenet_singlepose_192
XIP size = 143,360 data(924)+got(92)+bss(142336) sections
COPY size = 302,480 +ro(159120) sections
extra sections = 312 got:92(0.1%) header+rel:220(0.1%)
params size = 2,638,753
acts size = 1,327,104
binary file size = 2,799,016
params file size = 0
+--------------------------+----------------------------------+------+------------+---------+
| name (addr) | flags | foff | dst | size |
+--------------------------+----------------------------------+------+------------+---------+
| xSPI2 (0x20003d07) | 0x01010500 RELOC.PARAM.0.RCACHED | 0 | 0x00000000 | 2638753 |
| AXISRAM5 (0x20003d0d) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x342e0000 | 442368 |
| AXISRAM4 (0x20003d16) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x34270000 | 425984 |
| AXISRAM3 (0x20003d1f) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x34200000 | 458752 |
| <undefined> (0x00000000) | 0x00000000 UNUSED | 0 | 0x00000000 | 0 |
+--------------------------+----------------------------------+------+------------+---------+
Table: mempool c-descriptors (off=40000338, 5 entries, from RAM)
Cascade: haarcascade_eye
Format: Old
Size: 20x20
Number of Stages: 24
Number of Features: 1066
Number of Rectangles: 2299
Cascade: haarcascade_smile
Format: Old
Size: 36x18
Number of Stages: 20
Number of Features: 569
Number of Rectangles: 1245
Cascade: haarcascade_frontalface
Format: Old
Size: 24x24
Number of Stages: 25
Number of Features: 2913
Number of Rectangles: 6383
Model: face_landmarks_192
XIP size = 146,304 data(2336)+got(220)+bss(143744) sections
COPY size = 303,488 +ro(157184) sections
extra sections = 608 got:220(0.2%) header+rel:388(0.2%)
params size = 616,577
acts size = 737,280
binary file size = 776,616
params file size = 0
+--------------------------+----------------------------------+------+------------+--------+
| name (addr) | flags | foff | dst | size |
+--------------------------+----------------------------------+------+------------+--------+
| xSPI2 (0x20002e6a) | 0x01010500 RELOC.PARAM.0.RCACHED | 0 | 0x00000000 | 616577 |
| AXISRAM5 (0x20002e70) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x342e0000 | 442368 |
| AXISRAM4 (0x20002e79) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x34270000 | 294912 |
| <undefined> (0x00000000) | 0x00000000 UNUSED | 0 | 0x00000000 | 0 |
+--------------------------+----------------------------------+------+------------+--------+
Table: mempool c-descriptors (off=400008d0, 4 entries, from RAM)
Model: palm_detection_full_192
XIP size = 323,200 data(2112)+got(220)+bss(320832) sections
COPY size = 666,192 +ro(342992) sections
extra sections = 596 got:220(0.1%) header+rel:376(0.1%)
params size = 1,122,641
acts size = 1,506,496
binary file size = 1,468,248
params file size = 0
+--------------------------+----------------------------------+------+------------+---------+
| name (addr) | flags | foff | dst | size |
+--------------------------+----------------------------------+------+------------+---------+
| xSPI2 (0x20004e75) | 0x01010500 RELOC.PARAM.0.RCACHED | 0 | 0x00000000 | 1122641 |
| AXISRAM6 (0x20004e7b) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x34350000 | 294912 |
| AXISRAM5 (0x20004e84) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x342e0000 | 457920 |
| AXISRAM4 (0x20004e8d) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x34270000 | 294912 |
| AXISRAM3 (0x20004e96) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x34200000 | 458752 |
| <undefined> (0x00000000) | 0x00000000 UNUSED | 0 | 0x00000000 | 0 |
+--------------------------+----------------------------------+------+------------+---------+
Table: mempool c-descriptors (off=400007c8, 6 entries, from RAM)
Model: hand_landmarks_full_224
XIP size = 128,320 data(968)+got(64)+bss(127232) sections
COPY size = 265,856 +ro(137536) sections
extra sections = 304 got:64(0.0%) header+rel:240(0.2%)
params size = 3,182,977
acts size = 1,781,248
binary file size = 3,321,688
params file size = 0
+--------------------------+----------------------------------+------+------------+---------+
| name (addr) | flags | foff | dst | size |
+--------------------------+----------------------------------+------+------------+---------+
| xSPI1 (0x20002407) | 0x01020601 RELOC.ACTIV.1.WCACHED | 0 | 0x00000000 | 802816 |
| xSPI2 (0x2000240d) | 0x01010500 RELOC.PARAM.0.RCACHED | 0 | 0x00000000 | 3182977 |
| AXISRAM5 (0x20002413) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x342e0000 | 451584 |
| AXISRAM4 (0x2000241c) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x34270000 | 451584 |
| AXISRAM3 (0x20002425) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x34200000 | 75264 |
| <undefined> (0x00000000) | 0x00000000 UNUSED | 0 | 0x00000000 | 0 |
+--------------------------+----------------------------------+------+------------+---------+
Table: mempool c-descriptors (off=40000350, 6 entries, from RAM)
concurrent.futures.process._RemoteTraceback:
"""
Traceback (most recent call last):
File "/home/user/openmv-sdk-1.6.0/python/lib/python3.12/concurrent/futures/process.py", line 258, in _process_worker
r = call_item.fn(*call_item.args, **call_item.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/openmv/tools/mkromfs.py", line 100, in process_entry
stedge_compile(file_path, build_dir, entry["profile"], stedge_args.split())
File "/home/user/openmv/tools/modelc.py", line 105, in stedge_compile
raise(e)
File "/home/user/openmv/tools/modelc.py", line 95, in stedge_compile
result = subprocess.run(generate_command, check=True, text=True, env=env,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/openmv-sdk-1.6.0/python/lib/python3.12/subprocess.py", line 571, in run
raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['stedgeai', 'generate', '--target', 'stm32n6', '--model', '/home/user/openmv/lib/models/person_detect.tflite', '--relocatable', '--st-neural-art', 'default@/home/user/openmv/lib/stai/scripts/neuralart.json', '--workspace', '/home/user/openmv/build/OPENMV_N6/lib/models/person_detect/workspace', '--output', '/home/user/openmv/build/OPENMV_N6/lib/models/person_detect/gen', '--verbosity', '1', '--quiet']' died with <Signals.SIGABRT: 6>.
"""
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/user/openmv/tools/mkromfs.py", line 238, in <module>
main()
File "/home/user/openmv/tools/mkromfs.py", line 232, in main
romfs_build(romfs_cfg, p, args)
File "/home/user/openmv/tools/mkromfs.py", line 145, in romfs_build
results[idx] = future.result()
^^^^^^^^^^^^^^^
File "/home/user/openmv-sdk-1.6.0/python/lib/python3.12/concurrent/futures/_base.py", line 449, in result
return self.__get_result()
^^^^^^^^^^^^^^^^^^^
File "/home/user/openmv-sdk-1.6.0/python/lib/python3.12/concurrent/futures/_base.py", line 401, in __get_result
raise self._exception
subprocess.CalledProcessError: Command '['stedgeai', 'generate', '--target', 'stm32n6', '--model', '/home/user/openmv/lib/models/person_detect.tflite', '--relocatable', '--st-neural-art', 'default@/home/user/openmv/lib/stai/scripts/neuralart.json', '--workspace', '/home/user/openmv/build/OPENMV_N6/lib/models/person_detect/workspace', '--output', '/home/user/openmv/build/OPENMV_N6/lib/models/person_detect/gen', '--verbosity', '1', '--quiet']' died with <Signals.SIGABRT: 6>.
make: *** [/home/user/openmv/ports/stm32/port_config.mk:187: /home/user/openmv/build/OPENMV_N6/bin/romfs.stamp] Error 1
user@DESKTOP-87N36PP:~/openmv$
I will reinstall wsl and try again from 0 to install, configure and assemble the firmware.
That’s stedgeai either crashing, which we can’t really fix, or getting killed, which is more likely. It might be running out of memory due to the many parallel runs. You could try raising WSL’s memory, it’s capped at 50% of the host’s memory by default, or adding --jobs 1 to ports/stm32/port_config.mk invocation of mkromfs.py or just hardcoding 1 in mkromfs.py, whichever is easier for you:
# mkromfs.py
parser.add_argument('-j', '--jobs', type=int, default=1, help='Number of parallel jobs (default: CPU count)')
In WSL setting, I made a memory capacity of 16384 MB (it was 10184)
The order of my actions: I installed the Ubuntu distribution from 0 (I deleted the old)
wsl.exe --install Ubuntu
Completed the commands:
sudo apt-get update
sudo apt-get install git build-essential
I stopped and restarted WSL:
wsl --shutdown
Executed the commands sequentially :
git clone --depth=1 https://github.com/openmv/openmv.git
cd openmv
git submodule update --init --depth=1 --no-single-branch
git -C lib/micropython/ submodule update --init --depth=1
Installed the SDK:
cd openmv
make sdk
Just in case, I rebooted WSL again and executed:
cd openmv
make -j$(nproc) -C lib/micropython/mpy-cross
make -j$(nproc) TARGET=OPENMV_N6 submodules
make -j$(nproc) TARGET=OPENMV_N6
Log :
GEN linker script
Memory region Used Size Region Size %age Used
DTCM: 128 KB 128 KB 100.00%
ITCM: 6256 B 64 KB 9.55%
SRAM1: 1039392 B 1 MB 99.12%
SRAM2: 1 MB 1 MB 100.00%
SRAM3: 1792 KB 1792 KB 100.00%
SRAM7: 1 KB 32 KB 3.12%
DRAM: 56 MB 64 MB 87.50%
FLASH_TEXT: 1892224 B 3584 KB 51.56%
GEN romfs image
stedgeai generate failed for /home/user/openmv/lib/models/force_int_quant.tflite (exit code -6)
stedgeai generate --target stm32n6 --model /home/user/openmv/lib/models/force_int_quant.tflite --relocatable --st-neural-art default@/home/user/openmv/lib/stai/scripts/neuralart.json --workspace /home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/workspace --output /home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen --verbosity 1 --quiet
ST Edge AI Core v4.0.0-20500 359356bb0
>>>> EXECUTING NEURAL ART COMPILER
/home/user/openmv-sdk-1.6.0/stedgeai/Utilities/linux/atonn -i "/home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen/force_int_quant_OE_3_3_1.onnx" --json-quant-file "/home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen/force_int_quant_OE_3_3_1_Q.json" -g "network.c" --load-mdesc "/home/user/openmv-sdk-1.6.0/stedgeai/Utilities/configs/stm32n6.mdesc" --load-mpool "/home/user/openmv/lib/stai/scripts/stm32n6.mpool" --load-cdesc /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/configs/cortex-m55.cdesc --save-mpool-file "/home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/workspace/neural_art__network/stm32n6.mpool" --out-dir-prefix "/home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/workspace/neural_art__network/" --network-name "network" --native-float --cache-maintenance --Ocache-opt --enable-virtual-mem-pools --Os --optimization 3 --Oauto-sched --all-buffers-info --csv-file "network.csv" --enable-epoch-controller --output-info-file "c_info.json"
<<<< DONE EXECUTING NEURAL ART COMPILER
>>>> EXECUTING EPOCH_CONTROLLER POST_PROCESSING
<<<< DONE EXECUTING EPOCH_CONTROLLER POST_PROCESSING
Exec/report summary (generate)
------------------------------------------------------------------------------------------------
model file : /home/user/openmv/lib/models/force_int_quant.tflite
type : tflite
c_name : network
compression : lossless
options : allocate-inputs, allocate-outputs, relocatable
optimization : balanced
target/series : stm32n6npu
workspace dir : /home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/workspace
output dir : /home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen
model_fmt : float
model_name : force_int_quant
model_hash : 0x3b7ce6dc2f0a44ef4b4a2051312b0c28
params # : 6,945 items (7.23 KiB)
------------------------------------------------------------------------------------------------
input 1/1 : 'Input_0_out_0', f32(1x36), 144 Bytes, activations
output 1/1 : 'Dequantize_17_out_0', f32(1x1), 4 Bytes, activations
macc : 6,944
weights (ro) : 6,865 B (6.70 KiB) (1 segment) / -20,915(-75.3%) vs float model
activations (rw) : 180 B (180 B) (1 segment) *
ram (total) : 180 B (180 B) = 180 + 0 + 0
------------------------------------------------------------------------------------------------
(*) 'input'/'output' buffers are allocated in the activations buffer
Neural ART - Package for runtime loadable model - v 1.4.1
STM32 series : stm32n6npu
scripts directory : /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/linux/../../scripts/N6_reloc
python executable : /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/linux/python
cwd : /home/user/openmv
output directory : /home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen
workspace directory : /home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/workspace
c-name : network
user options : []
custom file : None
Compilation details
---------------------------------------------------------------------------------
Compiler version: 1.1.3-262
Compiler arguments: -i /home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen/force_int_quant_OE_3_3_1.onnx --json-quant-file /home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen/force_int_quant_OE_3_3_1_Q.json -g network.c --load-mdesc /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/configs/stm32n6.mdesc --load-mpool /home/user/openmv/lib/stai/scripts/stm32n6.mpool --load-cdesc /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/configs/cortex-m55.cdesc --save-mpool-file /home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/workspace/neural_art__network/stm32n6.mpool --out-dir-prefix /home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/workspace/neural_art__network/ --network-name network --native-float --cache-maintenance --Ocache-opt --enable-virtual-mem-pools --Os --optimization 3 --Oauto-sched --all-buffers-info --csv-file network.csv --enable-epoch-controller --output-info-file c_info.json
====================================================================================
Memory usage information (input/output buffers are included in activations)
---------------------------------------------------------------------------------
npuRAM3 [0x34200000 - 0x34270000]: 0 B / 448.000 kB ( 0.00 % used) -- weights: 0 B ( 0.00 % used) activations: 0 B ( 0.00 % used)
npuRAM4 [0x34270000 - 0x342E0000]: 0 B / 448.000 kB ( 0.00 % used) -- weights: 0 B ( 0.00 % used) activations: 0 B ( 0.00 % used)
npuRAM5 [0x342E0000 - 0x34350000]: 180 B / 448.000 kB ( 0.04 % used) -- weights: 0 B ( 0.00 % used) activations: 180 B ( 0.04 % used)
npuRAM6 [0x34350000 - 0x343C0000]: 0 B / 448.000 kB ( 0.00 % used) -- weights: 0 B ( 0.00 % used) activations: 0 B ( 0.00 % used)
octoFlash [0x71000000 - 0x72000000]: 6.704 kB / 16.000 MB ( 0.04 % used) -- weights: 6.704 kB ( 0.04 % used) activations: 0 B ( 0.00 % used)
hyperRAM [0x92000000 - 0x93000000]: 0 B / 16.000 MB ( 0.00 % used) -- weights: 0 B ( 0.00 % used) activations: 0 B ( 0.00 % used)
Total: 6.880 kB -- weights: 6.704 kB activations: 180 B
====================================================================================
Used memory ranges
---------------------------------------------------------------------------------
npuRAM5 [0x342E0000 - 0x34350000]: 0x342E0000-0x342E00C0
octoFlash [0x71000000 - 0x72000000]: 0x71000000-0x71001AE0
====================================================================================
Epochs details
---------------------------------------------------------------------------------
Total number of epochs 5
>> pure software (SW) epochs 2
>> hybrid epochs (using both software and hardware) 0
>> pure hardware (HW or EC) epochs 3 (implemented in 1 epoch controller blobs/meta epochs)
+------------------+------+------------------+
| epoch ID | Type | Details |
+------------------+------+------------------+
| epoch_1 | SW | QuantizeLinear |
| epochs 3 -> 5 | EC | |
| epoch_6 | SW | DequantizeLinear |
+------------------+------+------------------+
====================================================================================
Runtime Loadable Model - Memory Layout (series="stm32n6npu")
--------------------------------------------------------------------------------
v8.0 dbg=True async=True sec=True 'Embedded ARM GCC' cpuid=D22 fpu=True float-abi=2
XIP size = 4,992 data(596)+got(52)+bss(4288) sections
COPY size = 16,512 +ro(11520) sections
extra sections = 220 got:52(1.0%) header+rel:168(1.5%)
params size = 6,865
acts size = 180
binary file size = 19,104
params file size = 0
+--------------------------+----------------------------------+------+------------+------+
| name (addr) | flags | foff | dst | size |
+--------------------------+----------------------------------+------+------------+------+
| xSPI2 (0x20001b58) | 0x01010500 RELOC.PARAM.0.RCACHED | 0 | 0x00000000 | 6865 |
| AXISRAM5 (0x20001b5e) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x342e0000 | 180 |
| <undefined> (0x00000000) | 0x00000000 UNUSED | 0 | 0x00000000 | 0 |
+--------------------------+----------------------------------+------+------------+------+
Table: mempool c-descriptors (off=40000218, 3 entries, from RAM)
rt_ctx: c_name="network", acts_sz=180, params_sz=6,865, ext_ram_sz=0
rt_ctx: rt_version_desc="STAI-3.0.0-254-g7cc65410 (RELOC.GCC)"
Generated files (9)
--------------------------------------------------------------------------------------------------
/home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen/force_int_quant_OE_3_3_1.onnx
/home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen/force_int_quant_OE_3_3_1_Q.json
/home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen/network.c
/home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen/network_c_info.json
/home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen/network_atonbuf.xSPI2.raw
/home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen/network.h
/home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen/network_ecblobs.h
/home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen/network_rel.bin
/home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen/network_generate_rel.json
Creating txt report file /home/user/openmv/build/OPENMV_N6/lib/models/force_int_quant/gen/network_generate_report.txt
Do you allow statistics to improve the command line? (y)es / (n)o
elapsed time (GENERATE): 44.529s
Fatal Python error: _enter_buffered_busy: could not acquire lock for <_io.BufferedReader name='<stdin>'> at interpreter shutdown, possibly due to daemon threads
Python runtime state: finalizing (tstate=0x613861798e80)
Current thread 0x000071c26dae4740 (most recent call first):
<no Python frame>
stedgeai generate failed for /home/user/openmv/lib/models/yolo_lc_192.tflite (exit code -6)
stedgeai generate --target stm32n6 --model /home/user/openmv/lib/models/yolo_lc_192.tflite --relocatable --st-neural-art default@/home/user/openmv/lib/stai/scripts/neuralart.json --workspace /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace --output /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen --verbosity 1 --quiet
ST Edge AI Core v4.0.0-20500 359356bb0
>>>> EXECUTING NEURAL ART COMPILER
/home/user/openmv-sdk-1.6.0/stedgeai/Utilities/linux/atonn -i "/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen/yolo_lc_192_OE_3_3_1.onnx" --json-quant-file "/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen/yolo_lc_192_OE_3_3_1_Q.json" -g "network.c" --load-mdesc "/home/user/openmv-sdk-1.6.0/stedgeai/Utilities/configs/stm32n6.mdesc" --load-mpool "/home/user/openmv/lib/stai/scripts/stm32n6.mpool" --load-cdesc /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/configs/cortex-m55.cdesc --save-mpool-file "/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace/neural_art__network/stm32n6.mpool" --out-dir-prefix "/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace/neural_art__network/" --network-name "network" --native-float --cache-maintenance --Ocache-opt --enable-virtual-mem-pools --Os --optimization 3 --Oauto-sched --all-buffers-info --csv-file "network.csv" --enable-epoch-controller --output-info-file "c_info.json"
<<<< DONE EXECUTING NEURAL ART COMPILER
>>>> EXECUTING EPOCH_CONTROLLER POST_PROCESSING
<<<< DONE EXECUTING EPOCH_CONTROLLER POST_PROCESSING
Exec/report summary (generate)
-----------------------------------------------------------------------------------------------------------------------
model file : /home/user/openmv/lib/models/yolo_lc_192.tflite
type : tflite
c_name : network
compression : lossless
options : allocate-inputs, allocate-outputs, relocatable
optimization : balanced
target/series : stm32n6npu
workspace dir : /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace
output dir : /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen
model_fmt : float
model_name : yolo_lc_192
model_hash : 0x8e420151112787b4ba1bb9d8357aa4f4
params # : 277,566 items (276.73 KiB)
-----------------------------------------------------------------------------------------------------------------------
input 1/1 : 'Input_0_out_0', uint8(1x192x192x3), 108.00 KBytes, QLinear(0.003921569,0,uint8), activations
output 1/1 : 'Transpose_61_out_0', f32(1x12x12x30), 16.88 KBytes, activations
macc : 62,044,272
weights (ro) : 275,905 B (269.44 KiB) (1 segment) / -834,359(-75.1%) vs float model
activations (rw) : 258,048 B (252.00 KiB) (1 segment) *
ram (total) : 258,048 B (252.00 KiB) = 258,048 + 0 + 0
-----------------------------------------------------------------------------------------------------------------------
(*) 'input'/'output' buffers are allocated in the activations buffer
Neural ART - Package for runtime loadable model - v 1.4.1
STM32 series : stm32n6npu
scripts directory : /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/linux/../../scripts/N6_reloc
python executable : /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/linux/python
cwd : /home/user/openmv
output directory : /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen
workspace directory : /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace
c-name : network
user options : []
custom file : None
Compilation details
---------------------------------------------------------------------------------
Compiler version: 1.1.3-262
Compiler arguments: -i /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen/yolo_lc_192_OE_3_3_1.onnx --json-quant-file /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen/yolo_lc_192_OE_3_3_1_Q.json -g network.c --load-mdesc /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/configs/stm32n6.mdesc --load-mpool /home/user/openmv/lib/stai/scripts/stm32n6.mpool --load-cdesc /home/user/openmv-sdk-1.6.0/stedgeai/Utilities/configs/cortex-m55.cdesc --save-mpool-file /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace/neural_art__network/stm32n6.mpool --out-dir-prefix /home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/workspace/neural_art__network/ --network-name network --native-float --cache-maintenance --Ocache-opt --enable-virtual-mem-pools --Os --optimization 3 --Oauto-sched --all-buffers-info --csv-file network.csv --enable-epoch-controller --output-info-file c_info.json
====================================================================================
Memory usage information (input/output buffers are included in activations)
---------------------------------------------------------------------------------
npuRAM3 [0x34200000 - 0x34270000]: 0 B / 448.000 kB ( 0.00 % used) -- weights: 0 B ( 0.00 % used) activations: 0 B ( 0.00 % used)
npuRAM4 [0x34270000 - 0x342E0000]: 0 B / 448.000 kB ( 0.00 % used) -- weights: 0 B ( 0.00 % used) activations: 0 B ( 0.00 % used)
npuRAM5 [0x342E0000 - 0x34350000]: 252.000 kB / 448.000 kB ( 56.25 % used) -- weights: 0 B ( 0.00 % used) activations: 252.000 kB ( 56.25 % used)
npuRAM6 [0x34350000 - 0x343C0000]: 0 B / 448.000 kB ( 0.00 % used) -- weights: 0 B ( 0.00 % used) activations: 0 B ( 0.00 % used)
octoFlash [0x71000000 - 0x72000000]: 269.438 kB / 16.000 MB ( 1.64 % used) -- weights: 269.438 kB ( 1.64 % used) activations: 0 B ( 0.00 % used)
hyperRAM [0x92000000 - 0x93000000]: 0 B / 16.000 MB ( 0.00 % used) -- weights: 0 B ( 0.00 % used) activations: 0 B ( 0.00 % used)
Total: 521.438 kB -- weights: 269.438 kB activations: 252.000 kB
====================================================================================
Used memory ranges
---------------------------------------------------------------------------------
npuRAM5 [0x342E0000 - 0x34350000]: 0x342E0000-0x3431F000
octoFlash [0x71000000 - 0x72000000]: 0x71000000-0x710435D0
====================================================================================
Epochs details
---------------------------------------------------------------------------------
Total number of epochs 15
>> pure software (SW) epochs 1
>> hybrid epochs (using both software and hardware) 0
>> pure hardware (HW or EC) epochs 14 (implemented in 2 epoch controller blobs/meta epochs)
+----------------------+------+------------------+
| epoch ID | Type | Details |
+----------------------+------+------------------+
| epochs 2 -> 15 | EC | |
| epoch_16 | SW | DequantizeLinear |
| <no executed epochs> | EC | |
+----------------------+------+------------------+
====================================================================================
Runtime Loadable Model - Memory Layout (series="stm32n6npu")
--------------------------------------------------------------------------------
v8.0 dbg=True async=True sec=True 'Embedded ARM GCC' cpuid=D22 fpu=True float-abi=2
XIP size = 34,560 data(596)+got(52)+bss(33856) sections
COPY size = 75,776 +ro(41216) sections
extra sections = 228 got:52(0.2%) header+rel:176(0.4%)
params size = 275,905
acts size = 258,048
binary file size = 317,848
params file size = 0
+--------------------------+----------------------------------+------+------------+--------+
| name (addr) | flags | foff | dst | size |
+--------------------------+----------------------------------+------+------------+--------+
| xSPI2 (0x20001b69) | 0x01010500 RELOC.PARAM.0.RCACHED | 0 | 0x00000000 | 275905 |
| AXISRAM5 (0x20001b6f) | 0x03020200 RESET.ACTIV.WRITE | 0 | 0x342e0000 | 258048 |
| <undefined> (0x00000000) | 0x00000000 UNUSED | 0 | 0x00000000 | 0 |
+--------------------------+----------------------------------+------+------------+--------+
Table: mempool c-descriptors (off=40000218, 3 entries, from RAM)
rt_ctx: c_name="network", acts_sz=258,048, params_sz=275,905, ext_ram_sz=0
rt_ctx: rt_version_desc="STAI-3.0.0-254-g7cc65410 (RELOC.GCC)"
Generated files (9)
------------------------------------------------------------------------------------------
/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen/yolo_lc_192_OE_3_3_1.onnx
/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen/yolo_lc_192_OE_3_3_1_Q.json
/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen/network.c
/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen/network_c_info.json
/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen/network_atonbuf.xSPI2.raw
/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen/network.h
/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen/network_ecblobs.h
/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen/network_rel.bin
/home/user/openmv/build/OPENMV_N6/lib/models/yolo_lc_192/gen/network_generate_rel.json