13、系统初始化详解:从硬件到软件的全面解析
系统初始化详解:从硬件到软件的全面解析
1. 内存布局
在嵌入式系统中,内存布局是系统初始化的关键部分。应用程序的内存通常划分为五个区域:程序代码(文本)、已初始化的静态数据(数据)、未初始化的静态数据(bss)、堆栈和堆。这些区域的相对位置可能会有所不同,但初始向量表和代码必须位于非易失性内存(如闪存EPROM)中,向量表位于地址0,其他内容位于可读写内存(RAM)中。
内存组织图
graph TD
A[内存布局] --> B[程序代码 (text)]
A --> C[已初始化静态数据 (data)]
A --> D[未初始化静态数据 (bss)]
A --> E[堆栈]
A --> F[堆]
B --> G[非易失性内存 (Flash)]
C --> H[可读写内存 (RAM)]
D --> H
E --> H
F --> H
内存布局示意图
<
区域
描述
程序代码 (text)
存储程序代码,位于非易失性内存中
已初始化静态数据
存储已初始化的静态变量,位于可读写内存中