How to measure the amount of memory or RAM consumed by a code on Arduino Mega or Due

不羁岁月 提交于 2019-12-08 01:54:39

问题


Can anybody tell me how to measure the consumed RAM for a particular code running on Arduino Mega or Due.


回答1:


There is two kinds of numbers to this question: Global static usage and current run time.

The static estimated usage can be determined by adding the following line to (if it does not already exist)

.\arduino-1.5.5\hardware\arduino\avr\boards.txt

uno.upload.maximum_ram_size=2048

This then allows the compiler to output the additional 2nd line in the following example in the IDE's result window

Binary sketch size: 25,880 bytes (of a 32,256 byte maximum)
Estimated used SRAM memory: 990 bytes (of a 2048 byte maximum)

To see the amount of memory used at any given point. Including memory space currently in use, that exists while only in functions and members. This includes the HEAP and such. I use the following MemoryFree library at specific points in the code to reveal the high-water. The readme explains how to save unnecessarily/unintentionally used RAM by prints.


Note: That while the original Arduino IDE 1.0.5's boards.txt files does contain these ram_sizes, it does not actually use display usage. Where the original Arduino IDE 1.5.5 does, along with Arduino ERW 1.0.5 does (an non-supported fork).




回答2:


I've found an article on the Arduino Playground (the wiki of Arduino): Arduino Playground - Available Memory

I think you might be interested.




回答3:


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);

}



回答4:


In my Arduino IDE 2.1.0

I edit the file: /usr/share/arduino/hardware/arduino/boards.txt but the second line don't appear

After read: check-ram-memory-usage-arduino-optimization

measuring-free-memory

I tried: Show vervose output during compilation and use avr-size /tmp/build4042914391435450796.tmp/XXXXXXX.cpp.elf

then i get my memory used

Best Regards!



来源:https://stackoverflow.com/questions/18077956/how-to-measure-the-amount-of-memory-or-ram-consumed-by-a-code-on-arduino-mega-or

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!