嵌入式系统中的内存使用情况

库纳尔·索农(Kunal Sonone)

我正在从事一个嵌入式C项目。嵌入式系统的主要问题是内存有限。我遇到一个问题,我需要使用中断从串行通信链路中获取32字节数据,然后将这些数据保存到EEPROM。

在EEPROM中写入一个字节的时间需要4毫秒的时间。为了节省内存,我可以在从串行接口(在ISR内部)接收数据时写入数据。但这不是一个可行的解决方案。

我可以使用的另一种方法是使用一个包含32字节缓冲区的结构:

struct example_struct
{
unsigned char buffer[32];
};

分配32字节的内存,用它将我的数据保存在ISR中,并在写入EEPROM后释放内存。不幸的是,我的C编译器没有这种自由。开发环境不支持malloc和free。

具体来说,我想优化内存使用。代替使用全局缓冲区保存数据,在ISR和EEPROM写功能之间传输数据的可能方法是什么?

可用于处理的RAM限制为368字节。

嵌入式系统中的malloc ; 嵌入式C中的动态内存分配

请指教

谢谢

谢尔盖·卡里尼琴科(Sergey Kalinichenko)

由于mallocfree丢失,“释放”内存的概念就变成“为了不同的目的重用同一静态分配的内存块”。

为此,union只要注意不要一次将其用于多种用途,就可以通过在global内分配内存块来重用它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章