boards/esp32s3-devkit: disable C++ in usbmsc to avoid esptool align assert
Some checks are pending
Build Documentation / build-html (push) Waiting to run
MemBrowse Memory Report / changes-filter (push) Waiting to run
MemBrowse Memory Report / load-targets (push) Waiting to run
MemBrowse Memory Report / identical (push) Blocked by required conditions
MemBrowse Memory Report / analyze (push) Blocked by required conditions

The esp32s3-devkit:usbmsc config uses CONFIG_ESPRESSIF_SIMPLE_BOOT, so
the image is packaged with "esptool elf2image --ram-only-header".  With
esptool v5.2.0, that path asserts that each flash segment satisfies
  (f.tell() + 8 + BOOTLOADER_FLASH_OFFSET) % IROM_ALIGN
    == segment.addr % IROM_ALIGN
When .flash.text lands right on a 64 KB (IROM_ALIGN) boundary the
assertion cannot be satisfied and elf2image fails with AssertionError,
even though NuttX itself links cleanly.

usbmsc is a plain C test and does not need the C++ runtime.  Disabling
CONFIG_HAVE_CXX / CONFIG_HAVE_CXXINITIALIZE moves .flash.text off the
IROM_ALIGN boundary so the SIMPLE_BOOT image can be generated, without
changing the boot mode or the test's intent.

Signed-off-by: yukangzhi <yukangzhi@xiaomi.com>
This commit is contained in:
yukangzhi 2026-08-26 14:21:15 +08:00 committed by GUIDINGLI
parent ea4a4585cd
commit b42ec9a2c1

View file

@ -11,3 +11,5 @@ CONFIG_SYSTEM_USBMSC_DEVPATH2="/dev/esp32s3flash"
CONFIG_USBMSC=y
CONFIG_USBMSC_EPBULKIN=2
CONFIG_USBMSC_EPBULKOUT=1
# CONFIG_HAVE_CXX is not set
# CONFIG_HAVE_CXXINITIALIZE is not set