有人可以告诉我如何测量在Arduino Mega或Due上运行的特定代码的消耗RAM。
答案 0 :(得分:3)
这个问题有两种数字: 全局静态使用和当前运行时间。
静态估计使用量可以通过添加以下行来确定(如果它尚不存在)
\ Arduino的1.5.5 \硬件\ Arduino的\ AVR \ boards.txt
uno.upload.maximum_ram_size=2048
然后,这允许编译器在IDE的结果窗口
中输出以下示例中的附加第2行Binary sketch size: 25,880 bytes (of a 32,256 byte maximum)
Estimated used SRAM memory: 990 bytes (of a 2048 byte maximum)
查看在任何给定点使用的内存量。包括当前正在使用的内存空间,仅存在于函数和成员中。这包括HEAP等。我在代码中的特定点使用以下MemoryFree library来揭示高水位。自述文件解释了如何通过打印来保存不必要/无意使用的RAM。
注意:虽然原始的Arduino IDE 1.0.5的boards.txt文件确实包含这些ram_sizes,但它实际上并不使用显示用法。最初的Arduino IDE 1.5.5与Arduino ERW 1.0.5一起使用(不支持的fork)。
答案 1 :(得分:1)
我在Arduino Playground(Arduino的wiki)上发现了一篇文章:Arduino Playground - Available Memory
我想你可能会感兴趣。
答案 2 :(得分:0)
int freeRam () {
extern int __heap_start, *__brkval;
int v;
int fr = (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
Serial.print("Free ram: ");
Serial.println(fr);
}
答案 3 :(得分:0)
在我的Arduino IDE 2.1.0中
我编辑文件:/usr/share/arduino/hardware/arduino/boards.txt
但第二行没有出现
阅读后: check-ram-memory-usage-arduino-optimization
我试过了:
Show vervose output during compilation
并使用avr-size /tmp/build4042914391435450796.tmp/XXXXXXX.cpp.elf
然后我得到了我的记忆
最诚挚的问候!