MCU程序中变量过多引发内存不足现象
每一款MCU都有固定大小的闪存(存储程序代码)和内存(存储运行阶段产生的变量),以STM32为例,如果设计原理阶段选用的芯片RAM较小,而程序代码中变量分配较多时,可能出现的一个现象就是,单步断点调试的时候,变量值输出都是对的,一旦恢复连续运行,就会有部分变量值丢失或者明显异常(连续运行模式下,可通过串口持续吐出的变量数据观发现).
改进方法是:1.改用同引脚的,ram容量大的芯片。2.优化程序代码,压缩非必要的变量,节省ram空间。
总结,程序并不是逻辑对了,语法无误,就一定能得到正确的结果,尤其是这种和芯片关联的下位机程序,必须要考虑硬件的环境和感受,适当的优化是必要的。