Почему информация о глобальных переменных не отображается для 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 не поддерживается часть глобальных переменных, мне кажется, это довольно важно (даже больше, чем размер скетча).
Или я могу как-то включить эту опцию? (и если да, то как)
@Michel Keijzers, 👍0
1 ответ
Лучший ответ:
Существует разница в том, как система сборки рассчитывает объем памяти для 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 содержат гораздо больше информации.
Я предполагаю, что из приведенной выше информации вы видите, как это можно обновить.
Ура!
- Альтернатива 5В Due?
- Распределение памяти на Arduino Due никогда не возвращает NULL
- Есть ли хороший справочник для Arduino архитектуры и использования памяти?
- Как получить размер моей программы во время выполнения?
- Портирование «дальнего» доступа к флэш-памяти с Arduino Mega на Due
- Как сделать выводы Tx и Rx на ESP-8266-01 в выводах GPIO?
- Предупреждение при проверке скетча с кодом VS
- Arduino Due vs Mega 2560
Большое вам спасибо ... этот вывод очень похож на то, что я получаю, когда компилирую программное обеспечение для STM32. Тем не менее, я пытался найти, как запустить arm-none-eabi-nm -S --size-sort -s project.axf, но я не могу найти файл axf и есть - по крайней мере, нет пункта меню - запустить arm- нет-eabi-нм, @Michel Keijzers