【问题标题】:How to measure the amount of memory or RAM consumed by a code on Arduino Mega or Due如何测量 Arduino Mega 或 Due 上的代码消耗的内存或 RAM 量
【发布时间】:2013-08-06 10:42:52
【问题描述】:

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

【问题讨论】:

    标签: arduino arduino-ide


    【解决方案1】:

    这个问题有两种数字: 全局静态使用和当前运行时间。

    可以通过添加以下行来确定静态估计使用量(如果它不存在)

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

    uno.upload.maximum_ram_size=2048
    

    这允许编译器在 IDE 的结果窗口中输出以下示例中的第二行

    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 的 board.txt 文件确实包含这些 ram_sizes,但它实际上并没有使用显示用途。原始 Arduino IDE 1.5.5 的功能以及 Arduino ERW 1.0.5 的功能(不受支持的分支)。

    【讨论】:

    • uno.upload.maximum_ram_size=2048 - 这是否适用于 arduino mega 2560 和 arduino 到期?我正在使用 arduino ide 1.5.2。它会在那里工作吗?
    • 对于 mega2560.upload.maximum_ram_size=8192 不确定但希望它适用于 Due... 98304
    • 突然想到boards.txt中的maximum_ram_size,可能只是“Arduino ERW”的IDE的一个特性。而不是在股票 IDE 中。
    • 这可以在任何版本的 IDE 中工作吗?我使用的是 1.5.2 版
    • 这可以在任何版本的 IDE 中工作吗?我使用 1.0.5 并使用 mega2560.upload.maximum_ram_size=8192 行编辑了 board.txt 文件。但什么也没发生。
    【解决方案2】:

    在我的 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

    然后我会使用我的记忆

    最好的问候!

    【讨论】:

      【解决方案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);
      
      }
      

      【讨论】:

      • 在我到期时,此报告为负数。
      猜你喜欢
      • 2017-10-01
      • 2014-12-29
      • 2020-02-26
      • 2017-05-28
      • 1970-01-01
      • 1970-01-01
      • 2021-11-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多