为什么启动文件中.data和.bss段要从Flash中复制到SRAM中?

问题描述 投票:0回答:1

我正在阅读有关 MCU 中的启动文件的信息,并了解了启动文件及其功能,但我无法理解程序的 .data 和 .bss 部分复制到闪存中的概念,有人可以吗请详细说明一下吗?

我在互联网上阅读了有关启动文件的信息,但无法完全理解此闪存到 SRAM 的数据副本。

embedded microcontroller compiler-specific
1个回答
0
投票

程序的.data和.bss部分是读写内存。闪存通常不是,至少不能将其视为程序具有与RAM相同的访问权限的内存。

同时程序启动前还必须初始化一些数据。 .data 部分有设置了初始值的对象,.bss 部分没有显式设置初始值,但那里的变量预计会初始化为零。

但是MCU中的RAM不具备以初始内容设置启动的能力。这是闪光灯和公羊相遇的地方。闪存存储要复制到 .data 部分的初始值,启动代码负责将该初始数据复制到 .data 部分,并将 .bss 部分中定义的静态对象清零。

© www.soinside.com 2019 - 2024. All rights reserved.