2013-08-29 4 views
0

Кажется, что некоторые из моих функций помещаются в раздел .data. Это для библиотеки, которая имеет классы.Код программы Arduino в .data

Я посмотрел на карту памяти, как предложено здесь: http://www.nongnu.org/avr-libc/user-manual/group_demo_project.html

Я также использую AVR-размера, чтобы увидеть размер .data и .text вопросы.

Любые идеи, почему код программы помещается в .data, а не .text?

+0

Добавить раздел кода и карту, которая показывает пример того, что вы видите. – jdr5ca

ответ

0

Я думаю, что я понял, что происходит.

Это было похоже, что код входил в раздел .data. То, что на самом деле происходило, было char * от сообщений отладки и, таким образом, занимало большие доли пространства.

Например, у меня была куча Serial.println("debug message that is a long string.");. Для Serial.println это простой способ использования макроса F(), который хранит строку во FLASH вместо RAM (раздел данных, который я видел).

Кроме того, эта ссылка обеспечивает хорошие данные по сохранению памяти строк: http://arduino.cc/en/Reference/PROGMEM

Смежные вопросы