关键词不能为空

当前您在: 主页 > 英语 >

STM32芯片的ROM与RAM

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-03-03 12:53
tags:

-

2021年3月3日发(作者:街坊)




按照上边的例子,





Keil


中编译工程成功后,在下面的


Bulid Ouput


窗口中会 输出下面这样一段


信息:



Program Size: Code=119222 RO-data=18266 RW-data=320 ZI-data=23492




代表的意思:



Code


:是程序中代码所占字节大小



RO- data


:程序中所定义的指令和常量大小



(个人理解




Read Only




RW-data


:程序中已初始化的变量大小


(


个人理解”:


Read/Write)


ZI-Data


:程序中未初始化的变量大小


(


个人理解




Zero Initialize)






ROM(Flash) size = Code+RO-data+RW-data;


RAM size = RW-data+ZI-data


可 以通过


.map


查看占用的


flash



ram


大小





Code


是代码占用的空间,


RO- data



Read Only


只 读常量的大小,



const


型,


RW-data


是(


Read Write




初始化了的可读写变量的大小,


ZI- data


是(


Zero


Initialize




没有初始化的可读写变量的大小。


ZI-data


不会被算做代码里因


为不会被初始化。





简单的说就是在烧写的时候是


FLASH


中的被占用的空间为:


Code +RO



Data+RW



Da


ta


程序运行的时候,芯片内部


RAM


使用的空间为:



RW



Data



+



ZI



Data






ARM


编译中的


RO



RW



ZI DATA


区段



ARM


程序


(


指在


ARM

< p>
系统中正在执行的程序,


而非保存在


ROM


中的


bin


文件


)< /p>


的组




一个< /p>


ARM


程序包含


3


部分:


RO


段,


RW


段和


ZI




RO


是程序中的指令和常量



RW


是程序中的已初始化变量



ZI


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



由以上


3


点说明可以理解为:



RO


就是


readonl y




RW


就 是


read/write




ZI


就是


zero


ARM


映像文件的组成



所谓


ARM


映像文件就是指烧录到

< br>ROM


中的


bin


文件,


也成为


image


文件。

以下用


Image


文件来称呼它。



Image


文件包含了


RO

< p>


RW


数据。



之所以


Image


文件不包含

< br>ZI


数据,是因为


ZI


数据都是


0


,没必要包含,只要程


序运行之前将


ZI


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



Q


:为什么


Image


中必须包含


RO



RW




A



因为


RO


中的指令和 常量以及


RW


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


ZI


那样


“无中生


有”的。



ARM


程序的执行过程



从以上两点可以知道,


烧录到


ROM


中的


image


文件与实际运行时的

< br>ARM


程序之间


并不是完全一样的。

因此就有必要了解


ARM


程序是如何从

ROM


中的


image


到达实


际运行状态的。



实际上,


RO


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



1.



RW



ROM


中搬到


RAM


中,因为


RW


是变量,变量不能存在

< br>ROM


中。



2.

< p>


ZI


所在的


RAM


区域全部清零,因为


ZI


区域并不在


Image


中,所以需要程


序根据编译器给出 的


ZI


地址及大小来将相应得


RAM< /p>


区域清零。


ZI


中也是变量,

< p>
同理:变量不能存在


ROM



在程序运行的最初阶段,


RO


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


C


程序才能正常访问


变量。否则只能运行不含变量的代码。



说了上面的可 能还是有些迷糊,


RO



RW



ZI


到底是什么,下面我将给出几个例


子,最直观的来说明


RO


< br>RW



ZI


< br>C


中是什么意思。



1; RO


看下面两段程序,


他们之间差了一条语句,

这条语句就是声明一个字符常量。



此按照我们之前说的, 他们之间应该只会在


RO


数据中相差一个字节(字符常量



1


字节)。



Prog1




#include


void main(void)


{


;


}


Prog2




#include


const char a = 5




void main(void)


{


;


}


Prog1


编译出来后的信息如下:



======================================= ==============================


========= ==


Code RO Data RW Data ZI Data Debug


948 60 0 96 0 Grand Totals


= ================================================== ==================


===========


Total RO Size(Code + RO Data) 1008 ( 0.98kB)


Total RW Size(RW Data + ZI Data) 96 ( 0.09kB)


Total ROM Size(Code + RO Data + RW Data) 1008 ( 0.98kB)


=== ================================================== ================


===========


Prog2


编译出来后的信息如下:



======================================= ==============================


========= ==


Code RO Data RW Data ZI Data Debug


948 61 0 96 0 Grand Totals


= ================================================== ==================


===========


Total RO Size(Code + RO Data) 1009 ( 0.99kB)


Total RW Size(RW Data + ZI Data) 96 ( 0.09kB)


Total ROM Size(Code + RO Data + RW Data) 1009 ( 0.99kB)


=== ================================================== ================


===========


以上两个程序编译出来后的信息可以看出:


< br>Prog1



Prog2



RO


包含了


Code



RO Data


两类数据。他们的唯一区别就是

< p>
P


rog2



RO Da ta



Prog1


多了


1


个字节。这正和之前的推测一致。



如果增加的是一条指令而不是一个常量,则结果应该是


Code


数据大小有差别。



2; RW

同样再看两个程序,


他们之间只相差一个


“已初始化的变量 ”



按照之前所讲的,


已初始化的变量 应该是算在


RW


中的,所以两个程序之间应该是


RW


大小有区别。



Prog3




#include


void main(void)


{


;


}


Prog4




#include


char a = 5



-


-


-


-


-


-


-


-



本文更新与2021-03-03 12:53,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/700090.html

STM32芯片的ROM与RAM的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文