Почему информация о глобальных переменных не отображается для Arduino Due в IDE?

Если я соберу скетч для Arduino Mega:

Sketch uses 1804 bytes (0%) of program storage space. Maximum is 253952 bytes.
Global variables use 188 bytes (2%) of dynamic memory, 
leaving 8004 bytes for local variables. Maximum is 8192 bytes.

Если я скомпилирую тот же скетч для Arduino Due:

Sketch uses 26304 bytes (5%) of program storage space. Maximum is 524288 bytes.

Почему для Due не поддерживается часть глобальных переменных, мне кажется, это довольно важно (даже больше, чем размер скетча).

Или я могу как-то включить эту опцию? (и если да, то как)

, 👍0


1 ответ


Лучший ответ:

0

Существует разница в том, как система сборки рассчитывает объем памяти для AVR и SAM. Файл platform.txt содержит правило расчета размера. Есть разница, как это делается для SAM (Arduino Due).

Правила размера AVR (https://github.com/arduino/ArduinoCore- avr/blob/master/platform.txt#L79):

## Compute size
recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/{build.project_name}.elf"
recipe.size.regex=^(?:\.text|\.data|\.bootloader)\s+([0-9]+).*
recipe.size.regex.data=^(?:\.data|\.bss|\.noinit)\s+([0-9]+).*
recipe.size.regex.eeprom=^(?:\.eeprom)\s+([0-9]+).*

И правила для SAM (https://github.com/arduino/ArduinoCore -sam/blob/master/platform.txt#L91):

recipe.size.pattern="{compiler.path}{compiler.size.cmd}" -A "{build.path}/{build.project_name}.elf"
recipe.size.regex=\.text\s+([0-9]+).*

Они могут быть обновлены, чтобы предоставить больше информации о размере памяти. Хороший справочник по этому вопросу: http://www.support.code-red-tech.com/CodeRedWiki. /FlashRamSize, который показывает, что выходные данные команды size для SAM содержат гораздо больше информации.

Я предполагаю, что из приведенной выше информации вы видите, как это можно обновить.

Ура!

,

Большое вам спасибо ... этот вывод очень похож на то, что я получаю, когда компилирую программное обеспечение для STM32. Тем не менее, я пытался найти, как запустить arm-none-eabi-nm -S --size-sort -s project.axf, но я не могу найти файл axf и есть - по крайней мере, нет пункта меню - запустить arm- нет-eabi-нм, @Michel Keijzers