解决Arduino Uno上传代码时提示内存不足的问题
这些信息告诉你在上传代码时,你的程序(Sketch)使用了12918字节,占总可用空间的40%,最大可用空间为32256字节。动态内存(RAM)使用了9597字节,占总可用空间的468%,最大可用空间为2048字节。此时要确保你的代码不超过板子自身存储和内存的限制,以避免出现问题或导致程序崩溃。如果你的代码接近或超过了最大限制,你可能需要优化代码或考虑使用更高容量的Arduino板子。
问题描述
在Arduino界面上传代码后,会在控制台打印如下的输出日志:
Sketch uses 1978 bytes (6%) of program storage space. Maximum is 32256 bytes.
Global variables use 188 bytes (9%) of dynamic memory, leaving 1860 bytes for local variables. Maximum is 2048 bytes.
正常日志是上面那样的,但是如果你的代码优化的不够好,或者代码量过大,超出了板子的存储容量限制,就会显示下面这样的报错日志:
Sketch uses 12918 bytes (40%)of program storage space. Maximum is 32256 bytes.
Global variables use 9597 bytes (468%) of dynamic memory, leaving -7549 bytes for local variables. Maximum is 2048 bytes.
Not enough memory; see https://support.arduino.cc/hc/en-us/articles/360013825179 for tips on reducing your footprint.
data section exceeds available space in board
Compilation error: available spacedatasectionexceedsin board
这些信息告诉你在上传代码时,你的程序(Sketch)使用了12918字节,占总可用空间的40%,最大可用空间为32256字节。动态内存(RAM)使用了9597字节,占总可用空间的468%,最大可用空间为2048字节。
此时要确保你的代码不超过板子自身存储和内存的限制,以避免出现问题或导致程序崩溃。如果你的代码接近或超过了最大限制,你可能需要优化代码或考虑使用更高容量的Arduino板子。
解决方案
- 使用ChatGPT优化自己的代码,控制占用的存储空间和运行内存在板子允许的范围内。
- 更换板子:比如上面的Arduino Uno存储空间为32KB,内存为2KB,而你的程序需要使用9KB的内存,可以更换为Arduino Due(存储空间: 512KB,内存: 96KB)
以下是一些常见的Arduino板子及其存储容量信息:
Arduino Uno:
程序存储空间(Flash): 32KB
动态内存(RAM): 2KB
Arduino Nano:
程序存储空间(Flash): 32KB
动态内存(RAM): 2KB
Arduino Mega 2560:
程序存储空间(Flash): 256KB
动态内存(RAM): 8KB
Arduino Leonardo:
程序存储空间(Flash): 32KB
动态内存(RAM): 2.5KB
Arduino Due:
程序存储空间(Flash): 512KB
动态内存(RAM): 96KB
Arduino Nano Every:
程序存储空间(Flash): 48KB
动态内存(RAM): 6KB
Arduino MKR WiFi 1010:
程序存储空间(Flash): 256KB
动态内存(RAM): 32KB
ESP32:
程序存储空间(Flash): 4MB(通常为32Mb)
动态内存(RAM): 520KB(通常为520KB)
ESP8266:
程序存储空间(Flash): 4MB(通常为32Mb)
动态内存(RAM): 80KB(通常为80KB)
加入新媒体交互微信群,分享更多Unity开发技能
更多推荐
所有评论(0)