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

MOTIX™ MCU Forum Discussions

Bellawu
Employee
Employee
10 likes given 5 likes given 50 questions asked

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

单片机RAM不够用怎么办?

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

0 Likes
1 Solution
Qi_Colin
Moderator
Moderator
Moderator
250 sign-ins 50 solutions authored 25 likes received

Hi @Bellawu :

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

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

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

Best Regards,

Colin

View solution in original post

0 Likes
1 Reply
Qi_Colin
Moderator
Moderator
Moderator
250 sign-ins 50 solutions authored 25 likes received

Hi @Bellawu :

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

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

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

Best Regards,

Colin

0 Likes