stm32有两个存储空间,一个是片上的flash,一个是片上的ram。ram相当于内存,flash相当于硬盘。(以下英文大小写不分)
keil下,工程编译完成总会出现上面的信息,这些信息都代表什么呢?代表程序占用的空间。
code表示程序代码部分
ro-data 表示程序定义的常量(如:intconst x等);
rw-data 表示已初始化的全局变量
zi-data 表示未初始化的全局变量,以及初始化为0的变量
下面给出三个值:
ro size= code + rodata (程序占用flash空间的大小)
rw size=rw data + zidata (运行时程序占用ram空间的大小)
rom size=code + ro data + rwdata (烧写时程序占用flash空间的大小)
我们都知道,在烧写程序的时候,需要烧写bin文件或者hex文件到stm32的flash当中,被烧写的文件称为映像文件image。image的内容包含三部分:code,ro-data 和rw-data。
为什么image不包含zi数据呢,是因为zi数据都是0,没必要包含,只要程序运行之前将zi数据所在的区域(这一区域在ram中)一律清零即可。包含进去反而浪费flash存储空间。
stm32上电启动以后,cpu根据boot0和boot1的硬件引脚决定从flash还是ram中启动,默认是从flash中启动;启动之后会搬运rw-data到ram,但是不会搬运code;也就是说cpu执行的代码是在flash中读取的,而不是在ram中。当然这个flash是nor型的.
5G-A是通向6G的必由之路
使用NVIDIA操作符加速Kubernetes
环氧树脂固体绝缘开关柜常见故障
诺基亚8 华为P10 iPhone8 三星S8大批旗舰机来袭
800V电驱系统电气架构技术分析
ARM STM32中的程序是在RAM里还是在FLASH里运行?
Fairchild简化了宽范围可调光LED照明设计
如何平衡超快充和电池寿命?
苹果意外在iOS12.3中修复的漏洞,为iOS12.4此越狱打开了大门
物联网,能复刻互联网的赚钱路吗?
iQOO 7今天正式发布!详细规格参数信息曝光
有源去磁正激电源变压器的计算
谷歌街景数据建立车祸预测新模型
GlobalFoundries流片20nm测试芯片
可隔空与手机连接的超声波通信协议
FIBBR2022 HDMI2.1光纤线新品品鉴会顺利举行
罗技MK540/MK545键鼠套装评测 工作不讲形式日久才见价值
认知无线电之中频谱感知技术研究
全球首次使用非侵入式芯片实验室技术在孕妇血样检测领域取得突破
清锋科技接受全国主流媒体组团采访:国产3D打印技术已走向全球