.data中的Arduino程序代码

时间:2013-08-29 18:12:32

标签: arduino

似乎我的一些函数被放入.data部分。这适用于具有类的库。

我按照此处的建议查看了内存映射: http://www.nongnu.org/avr-libc/user-manual/group_demo_project.html

我也一直在使用avr-size来查看.data和.text问题的大小。

为什么程序代码放在.data而不是.text?

的任何想法

1 个答案:

答案 0 :(得分:0)

我想我弄清楚发生了什么。

看起来代码只是进入了.data部分。实际上发生的是来自调试消息的char *,因此占用了大部分空间。

例如,我有一堆Serial.println("debug message that is a long string.");对于Serial.println,一个简单的方法是使用F()宏,它将字符串存储在FLASH而不是RAM中(.data部分我是看到)。

此外,此链接提供了有关字符串内存保护的一些好信息: http://arduino.cc/en/Reference/PROGMEM