Question/Issue:
I’m trying to build the Edge Impulse firmware for EPII_CM55M using the instructions provided in the repository:
./build.sh --build
However, the build consistently fails during linking with the following error:
/usr/lib/gcc/arm-none-eabi/10.3.1/…/…/…/arm-none-eabi/bin/ld: obj_epii_evb_icv30_bdv10/gnu_epii_evb_WLCSP65/EPII_CM55M_gnu_epii_evb_WLCSP65_s.elf section .text_1' will not fit in region CM55M_S_APP_ROM’
/usr/lib/gcc/arm-none-eabi/10.3.1/…/…/…/arm-none-eabi/bin/ld: region CM55M_S_APP_ROM' overflowed by 19092 bytes /usr/lib/gcc/arm-none-eabi/10.3.1/../../../arm-none-eabi/bin/ld: /usr/lib/gcc/arm-none-eabi/10.3.1/../../../arm-none-eabi/lib/thumb/v8-m.main+dp/hard/libc_nano.a(lib_a-aligned_alloc.o): in function aligned_alloc’:
/build/newlib-pB30de/newlib-3.3.0/build_nano/arm-none-eabi/thumb/v8-m.main+dp/hard/newlib/libc/stdlib/…/…/…/…/…/…/…/…/newlib/libc/stdlib/aligned_alloc.c:35: undefined reference to `posix_memalign’
Memory region Used Size Region Size %age Used
CM55M_S_APP_ROM: 281236 B 256 KB 107.28%
CM55M_S_APP_DATA: 132516 B 256 KB 50.55%
CM55M_S_SRAM: 127062 B 1924 KB 6.45%
CM55M_S_FLASH_XIP: 10896 B 14 MB 0.07%
collect2: error: ld returned 1 exit status
make: *** [options/rules.mk:246: obj_epii_evb_icv30_bdv10/gnu_epii_evb_WLCSP65/EPII_CM55M_gnu_epii_evb_WLCSP65_s.elf] Error 1
Environment
| Component | Version |
|---|---|
| Toolchain | GNU ARM Embedded Toolchain 13.2.rel1 |
| OS | (Linux) |
| Build command | ./build.sh --build |
| Firmware path | EPII_CM55M_APP_S/app/scenario_app/edge_impulse_firmware |
Project ID:
firmware-seeed-grove-vision-ai-module-v2
Summary:
The final firmware image exceeds the allocated CM55M_S_APP_ROM region by ~19 KB, which results in linking failure. Based on the map output, .text_1 is too large — ~281 KB vs. the allowed 256 KB.
In addition, the error shows an undefined reference to posix_memalign when linking libc_nano.a, which may indicate a compatibility or configuration issue.
Questions
- Is this a known issue with the latest firmware sources or Toolchain 13.2.rel1?
- Are there recommended configuration changes (e.g., disabling modules / adjusting linker script / optimization flags)?
- Is there a specific toolchain version that is verified to build this firmware successfully?
Any guidance to resolve this build overflow will be greatly appreciated.
Thanks in advance!
Steps to Reproduce:
I’m trying to build the Edge Impulse firmware for EPII_CM55M using the instructions provided in the repository:
./build.sh --build
However, the build consistently fails during linking with the above error
Expected Results:
build should successfully done.
Actual Results:
/usr/lib/gcc/arm-none-eabi/10.3.1/…/…/…/arm-none-eabi/bin/ld: obj_epii_evb_icv30_bdv10/gnu_epii_evb_WLCSP65/EPII_CM55M_gnu_epii_evb_WLCSP65_s.elf section .text_1' will not fit in region CM55M_S_APP_ROM’
/usr/lib/gcc/arm-none-eabi/10.3.1/…/…/…/arm-none-eabi/bin/ld: region CM55M_S_APP_ROM' overflowed by 19092 bytes /usr/lib/gcc/arm-none-eabi/10.3.1/../../../arm-none-eabi/bin/ld: /usr/lib/gcc/arm-none-eabi/10.3.1/../../../arm-none-eabi/lib/thumb/v8-m.main+dp/hard/libc_nano.a(lib_a-aligned_alloc.o): in function aligned_alloc’:
/build/newlib-pB30de/newlib-3.3.0/build_nano/arm-none-eabi/thumb/v8-m.main+dp/hard/newlib/libc/stdlib/…/…/…/…/…/…/…/…/newlib/libc/stdlib/aligned_alloc.c:35: undefined reference to `posix_memalign’
Memory region Used Size Region Size %age Used
CM55M_S_APP_ROM: 281236 B 256 KB 107.28%
CM55M_S_APP_DATA: 132516 B 256 KB 50.55%
CM55M_S_SRAM: 127062 B 1924 KB 6.45%
CM55M_S_FLASH_XIP: 10896 B 14 MB 0.07%
collect2: error: ld returned 1 exit status
make: *** [options/rules.mk:246: obj_epii_evb_icv30_bdv10/gnu_epii_evb_WLCSP65/EPII_CM55M_gnu_epii_evb_WLCSP65_s.elf] Error 1
Reproducibility:
- [=] Always
- [ ] Sometimes
- [ ] Rarely
Environment:
- OS Version: [Ubuntu 22.04]
-
Edge Impulse Version (Firmware): [e.g., 1.2.3]
To find out Edge Impulse Version: - if you have pre-compiled firmware: run edge-impulse-run-impulse --raw and type AT+INFO. Look for Edge Impulse version in the output.
- if you have a library deployment: inside the unarchived deployment, open model-parameters/model_metadata.h and look for EI_STUDIO_VERSION_MAJOR, EI_STUDIO_VERSION_MINOR, EI_STUDIO_VERSION_PATCH
- Edge Impulse CLI Version: [e.g., 1.5.0]
- Project Version: [e.g., 1.0.0]
-
Custom Blocks / Impulse Configuration: [Describe custom blocks used or impulse configuration]
Logs/Attachments:
[Include any logs or screenshots that may help in diagnosing the issue]
Logs/Attachments:

Additional Information:
[Any other information that might be relevant to the issue]