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

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

相关推荐
R6bandito_2 小时前
STM32 HAL库原子操作编译问题解决指南
c语言·ide·经验分享·stm32·单片机·嵌入式硬件·mcu
Jerry丶Li2 小时前
三十、STM32的USART (串口发送+接收)
stm32·单片机·嵌入式硬件
从零点2 小时前
STM32连接以太网失败自动重新连接
stm32·单片机·嵌入式硬件
python百炼成钢3 小时前
13.RTC实时时钟
linux·stm32·单片机·嵌入式硬件·实时音视频
国科安芯3 小时前
FreeRTOS 在 AS32系列RISC-V 架构MCU电机驱动中的应用实践与优化
单片机·嵌入式硬件·安全·架构·压力测试·risc-v·安全性测试
染予3 小时前
GPIO中断实现流程
单片机·嵌入式硬件
门思科技3 小时前
LoRaWAN通信协议详解:架构、加密机制与核心应用
运维·服务器·网络·嵌入式硬件·物联网
小柯博客4 小时前
STM32MP1 没有硬件编解码,如何用 CPU 实现 H.264 编码支持 WebRTC?
c语言·stm32·嵌入式硬件·webrtc·h.264·h264·v4l2
Jerry丶Li6 小时前
二十九、STM32的USART (串口发送)
stm32·单片机·嵌入式硬件