使用Arduino中的C ++编程语言最大限度地减少动态内存使用

时间:2018-02-15 14:06:59

标签: c++ memory struct arduino

我需要帮助弄清楚如何最小化我的全局变量使用的动态内存的使用。大多数内存由包含我的struct数据的数组使用。我希望在不使用太多动态内存的情况下获得有关此类数据的任何其他方式的帮助。

typedef struct{
    int fingerID;
    int idNo;
    char sirName[20];
}USER;
USER users[200];

1 个答案:

答案 0 :(得分:1)

您有硬件约束。假设你有一个Uno,你只有2Kb的RAM。动态分配只会将你的问题推向未来,你不会适应200条记录。您需要硬件解决方案来实现硬件约束。

最简单的解决方案是使用外部I2C EEPROM连接Arduino。只需很少的努力就可以获得大量内存。 Here is an example solution with a very common device。那里有很多代码/硬件选项。

另一个简单的解决方案是不同的CPU。 Mega将为您提供8Kb的RAM。那里有很多其他的CPU,我喜欢ESP8266的实现。

最后一个解决方案是仅将Arduino用作传感器接口,并将信息存储在功能更强大的设备上,并在那里实现控制逻辑。