MCU中的BSS和data都占用SRAM空间吗?

**在MCU中,BSS段data段都占用SRAM空间,但它们的存储方式和用途有所不同。**‌

BSS段

BSS段(Block Started by Symbol)用于存储未初始化的全局变量和静态变量。这些变量在程序启动时会被清零,因此它们不占用Flash空间,只占用SRAM空间。在程序启动时,启动代码会将对应的RAM区域清零‌1。

Data段

Data段用于存储已初始化的全局变量和静态变量。这些变量在编译时就已经被赋予了初始值,并且在程序运行过程中需要保留这些初始值。因此,data段既占用Flash空间(存储初始值),也占用SRAM空间(在程序运行时从Flash复制到SRAM)‌。

Flash和SRAM的区别

  • Flash‌:用于存储程序代码和只读数据,具有掉电不丢失数据的特性,适合存储程序代码和常量数据。在程序运行时,代码和数据会从Flash加载到SRAM中,以便处理器能够快速访问和执行‌2。
  • SRAM‌:用于存储程序运行时的数据和变量,访问速度快但掉电后数据会丢失。BSS段和已初始化的data段的数据在程序运行时存储在SRAM中‌。
相关推荐
驱动探索者3 小时前
RISC-V PLIC 深度解析:从 Spec 到 Zephyr 驱动实现
单片机·嵌入式硬件·中断控制器
LCG元4 小时前
STM32 FreeRTOS 实战:任务调度 + 互斥锁 + 消息队列 + 串口命令解析器
stm32·单片机·嵌入式硬件
Hello_Damon_Nikola4 小时前
姿态式饮水量估算从原理到实战
嵌入式硬件
LCG元4 小时前
STM32 SPI Flash 读写实战:W25Q64 驱动 + FatFS 文件系统移植 + 日志存储系统
stm32·单片机·嵌入式硬件
不想学习!!5 小时前
【STM32 基础复习 01】初识 STM32F103ZET6:型号、封装、引脚编号与特殊引脚
stm32·单片机·嵌入式硬件
wuyk5555 小时前
66.嵌入式C语言进阶:共用体(Union)实战指南——单片机内存省一半的神级技巧
c语言·开发语言·stm32·单片机·嵌入式硬件
ACP广源盛139246256737 小时前
此芯 P1 AI BOX / AI NAS@ACP#IX8008、IX8024 应用场景与市场机会
大数据·人工智能·分布式·单片机·嵌入式硬件
广药门徒13 小时前
虚拟机联网20260725
嵌入式硬件
国产化创客14 小时前
Kindle 嵌入式交叉开发环境
嵌入式硬件·智能硬件
szxinmai主板定制专家16 小时前
RK3568+FPGA高速并行采集|半导体探针测试设备多通道同步数据采集系统设计
人工智能·嵌入式硬件·计算机视觉·fpga开发