RO,RW,ZI,FLASH,RAM前世今生

本文探讨了嵌入式系统中的内存分配概念,如RO、RW和ZI区域,并解释了它们与FLASH和RAM之间的关系。此外还介绍了ARM程序启动流程及不同内存区域的作用。

好久没写博客,-.-。

因为接触两个新的平台,芯翼和OPL,又发现对内存和flash分布的一些疑问,或许是自己根基不够稳吧,如果要搞清楚这些的意义,需要以下几个步骤:

2.RO,RW,ZI 是什么

3.flash,ram是什么

4.flash,ram和ro,rw,zi的关系

5.熟悉ARM程序启动流程

其实4和5是联系的,ARM程序的启动决定了flash,ram和ro,rw,zi的关系。

RO,RW,ZI是什么前面博文已经介绍过,

FLASH 一个是就是嵌入式系统的‘硬盘’,是存储器的一种,支持断电保存数据,可擦写,且速度快;

RAM 称为随机存取存储器,也是一种存储器,特点断电数据丢失,擦写数据快,就是我们称之为的‘内存’,存放全局变量,堆栈等数据;

相信很多人跟我一致有这种体会,网上一堆资料,逛了一圈后感觉自己已经掌握了又似乎没掌握,

我做了下总结,有不一致评论写一下:

关于第4点:

flash=ro+rw没有ZI

ram=rw+zi,因为ZI都是会被初始化为0,STM32(嵌入式系统平台大概率都是)启动后rw会从flash被拷贝到ram中执行,flash里的rw只存了初始值不为0的数据,ZI是没初始化和初始化为0的数据,ro因为包括代码段和常量,不会被拷贝到RAM,因为嵌入式RAM资源紧张,但是如果你的RAM够大也可通过技术手段将代码拷贝到RAM执行(我不会)。

上面介绍的是RW和ZI的执行,那么我们的RO呢,即code代码,以Cortex-M3为例,支持XIP模式,即代码都在flash中执行,有部分中断高频代码会拷贝到RAM中。

第5点参考链接:https://www.pianshen.com/article/4701173996/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值