单片机RAM不够用怎么办?

公告

大中华汽车电子生态圈社区并入开发者社区- 更多资讯点击此

Tip / 登入 to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Bellawu
Employee
Employee
First solution authored 50 sign-ins 5 replies posted

来自一位用户的咨询,麻烦帮忙解答。越详细越好,有图有真相。如有相关的视频、文档也可以辅助说明,谢谢。

单片机RAM不够用怎么办?

单片机都有RAM,如果我们一下子定义了一大堆的变量,使得变量占的空间大于RAM,这样单片机还能运行吗?电脑出现这种问题是怎么解决的

0 点赞
1 解答
Qi_Colin
Moderator
Moderator
Moderator
50 likes received 100 solutions authored 5 questions asked

Hi @Bellawu :

单片机都是采用动态内存管理的方式进行RAM的使用,假设出现RAM不够用的时候,单片机会运行出错,出现一些不正常的工作现象,如程序跑飞或者内存溢出等错误。

通常来说,我们在编译的时候会有程序占用RAM空间大小的log,若已经接近芯片物理RAM最大值,则建议开发时选用更大RAM空间的单片机来开发,后期按照实际情况再调整单片机型号,选用适当RAM size的型号。

另外,我们也会通过优化用户代码(裁剪部分代码)或者修改编译器编译优化等级等方式,来减少RAM开支,这需要基于实际项目进行客制化操作。

Best Regards,

Colin

在原帖中查看解决方案

0 点赞
1 回复
Qi_Colin
Moderator
Moderator
Moderator
50 likes received 100 solutions authored 5 questions asked

Hi @Bellawu :

单片机都是采用动态内存管理的方式进行RAM的使用,假设出现RAM不够用的时候,单片机会运行出错,出现一些不正常的工作现象,如程序跑飞或者内存溢出等错误。

通常来说,我们在编译的时候会有程序占用RAM空间大小的log,若已经接近芯片物理RAM最大值,则建议开发时选用更大RAM空间的单片机来开发,后期按照实际情况再调整单片机型号,选用适当RAM size的型号。

另外,我们也会通过优化用户代码(裁剪部分代码)或者修改编译器编译优化等级等方式,来减少RAM开支,这需要基于实际项目进行客制化操作。

Best Regards,

Colin

0 点赞