如何测量Arduino Mega或Due上代码消耗的内存或RAM量

时间:2013-08-06 10:42:52

标签: arduino arduino-ide

有人可以告诉我如何测量在Arduino Mega或Due上运行的特定代码的消耗RAM。

4 个答案:

答案 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

measuring-free-memory

我试过了: Show vervose output during compilation 并使用avr-size /tmp/build4042914391435450796.tmp/XXXXXXX.cpp.elf

然后我得到了我的记忆

最诚挚的问候!

相关问题