rom大小 stm32f205_STM32-MAP文件中固件大小说明

STM32-MAP

文件中固件大小说明

一般在

stm32

工程使用

keil

编译之后,

keil

build output

栏目下面会出现如图所示的输出信息,

其中

会显示

code

大小

RO-data

RW-data

ZI-data

的大小。一般别人不怎么会在意这个的大小。

ARM

程序的组成

此处所说的

“ARM

程序

是指在

ARM

系统中正在执行的程序,而非保存在

ROM

中的

bin

映像(

image

)

文件,这一点清注意区别。

一个

ARM

程序包含

3

部分:

RO

RW

ZI

RO

是程序中的指令和常量;

RW

是程序中的已初始化变量

;ZI

是程序中的未初始化的变量

.

由以上

3

点说明可以理解为:

RO

就是

readonly

RW

就是

read/write

ZI

就是

zero

ARM

映像文件的组成

所谓

ARM

映像文件就是指烧录到

ROM

中的

bin

文件,也称为

image

文件。以下用

Image

文件来称呼

它。

Image

文件包含了

RO

RW

数据。之所以

Image

文件不包含

ZI

数据,是因为

ZI

数据都是

0

,没必要包

含,只要程序运行之前将

ZI

数据所在的区域一律清零即可。包含进去反而浪费存储空间。

Q

:为什么

Image

中必须包含

RO

RW

A

:因为

RO

中的指令和常量以及

RW

中初始化过的变量是不能像

ZI

那样

无中生有

的。

ARM

程序的执行过程

从以上两点可以知道,烧录到

ROM

中的

image

文件与实际运行时的

ARM

程序之间并不是完全一样的。因

此就有必要了解

ARM

程序是如何从

ROM

中的

image

到达实际运行状态的。

实际上,

RO

中的指令至少应该有这样的功能:

1.

RW

ROM

中搬到

RAM

中,因为

RW

是变量,变量不能存在

ROM

中。

2.

ZI

所在的

RAM

区域全部清零,因为

ZI

区域并不在

Image

中,所以需要程序根据编译器给出的

ZI

地址及大小来将相应得

RAM

区域清零。

ZI

中也是变量,同理:变量不能存在

ROM

在程序运行的最初阶段,

RO

中的指令完成了这两项工作后

C

程序才能正常访问变量。

否则只能运行不含变

量的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值