Получите свободное место на цели от размера руки-нет-Eabi

Я хочу вычислить пространство, оставшееся на моей встроенной цели.

Arduino IDE показывает это в окне вывода:

Sketch uses 9544 bytes (3%) of program storage space. Maximum is 262144 bytes.

avr-size имеет -C опция, которая показывает "xx% left":

$ avr-size -C --mcu=atmega32u4 build/myproject.hex
AVR Memory Usage
----------------
Device: atmega32u4

Program:    8392 bytes (25.6% Full)
(.text + .data + .bootloader)

Data:       2196 bytes (85.8% Full)
(.data + .bss + .noinit)

Однако на самом деле я пишу файл CMake для разработки кода для платы Arduino с процессором Arm Cortex M0, поэтому я использую arm-none-eabi-size, который показывает размер кода следующим образом:

[100%] Built target hex
   text    data     bss     dec     hex filename
   8184     208    1988   10380    288c build/myproject
[100%] Built target size
*** Finished ***

Есть ли способ рассчитать программу и пространство данных, оставшиеся на устройстве? Или мне нужно пересмотреть вывод и рассчитать процент от жестко запрограммированного значения?

1 ответ

Если вы используете набор инструментов arm-none-eabi, вы можете добавить опцию компоновщика-Wl,--print-memory-usageкоторый печатает использование оперативной памяти и флэш-памяти в процентах. Вывод выглядит следующим образом:

      Memory region         Used Size  Region Size  %age Used
             RAM:        8968 B        20 KB     43.79%
           FLASH:       34604 B       128 KB     26.40%

Я использую файл make, созданный CubeMX, чтобы включить эту печать, я добавил параметр в конец строки LDFLAGS. Для CMake этот поток может быть полезен.

Другие вопросы по тегам