Получите свободное место на цели от размера руки-нет-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 этот поток может быть полезен.