消费级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)编译器的优化等。

注:需要留有一定冗余,往后需要更新升级。

相关推荐
不能跑的代码不是好代码11 小时前
STM32窗口看门狗(WWDG)知识点及标准库使用指南
stm32·单片机·嵌入式硬件
bingquan333311 小时前
在 Ghidra 中分析STM32裸机固件
stm32·单片机·嵌入式硬件
羽获飞11 小时前
从零开始学嵌入式之STM32——11.STM32---USART串行通讯
stm32·单片机·嵌入式硬件
宵时待雨13 小时前
STM32笔记归纳9:定时器
笔记·stm32·单片机·嵌入式硬件
逐步前行13 小时前
STM32_新建工程(寄存器版)
stm32·单片机·嵌入式硬件
bai54593614 小时前
STM32 CubeIDE 通过PWM占空比控制舵机角度
stm32·单片机·嵌入式硬件
松涛和鸣15 小时前
72、IMX6ULL驱动实战:设备树(DTS/DTB)+ GPIO子系统+Platform总线
linux·服务器·arm开发·数据库·单片机
简单中的复杂16 小时前
【避坑指南】RK3576 Linux SDK 编译:解决 Buildroot 卡死在 host-gcc-final 的终极方案
linux·嵌入式硬件
上海合宙LuatOS16 小时前
LuatOS核心库API——【audio 】
java·网络·单片机·嵌入式硬件·物联网·音视频·硬件工程
Hhh __灏16 小时前
stm32的SRAM内存不足如何分析和优化?堆栈空间如何优化?
单片机