消费级MCU如何管理内存
1、问题
(1)消费级MCU的RAM 都只有几 kB 甚至几百字节,所以需要精打细算。
(2)明确问题是如何管理堆内存,还是如何对内存精打细算的使用,
2、51内核单片机
3、Cortex-M0单品机
(1)内存包括栈内存、堆内存、全局的变量等数据段所占的内存。
(2)栈空间的节省:看实际 SP 走到哪里,再把 stack 压到最小。
(3)能用局部变量的就不用全局变量,局部变量用完就出栈。
(4)变量能用8位的就不用32位的;结构体按1字节对齐,不用为了提高效率而使用内存4字节对齐。
(5)常量使用const或宏定义,让这些东西存在flash中。
(6)通信缓冲区“分时复用”——UART、SPI、I²C 不要各开各的,只留一个最大帧长。
(7)编译器的优化等。
注:需要留有一定冗余,往后需要更新升级。
