好久没写博客,-.-。

因为接触两个新的平台,芯翼和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/

RO,RW,ZI,FLASH,RAM前世今生相关推荐

  1. code ro rw zi 编译的一个ARM的程序,编译结果中的一句话

    code ro rw zi 编译的一个ARM的程序,编译结果中的一句话 Program Size: Code=8044 RO-data=52 RW-data=56 ZI-data=5184 其中: C ...

  2. RO/RW/ZI区别及在mcu中的存储分配

    1 前言 本文所解决的问题是:KEIL编译出来的文件信息中包含RO RW ZI 大小,该信息到底是flash 还是ram大小? 2 ARM程序的组成 此处所说的"ARM程序"是指在 ...

  3. linux硬盘ro改为rw,RO,RW,ZI 和scatter file详解(转载)

    要了解RO,RW和ZI需要首先了解以下知识: (1) ARM程序的组成 此处所说的"ARM程序"是指在 ARM系统中正在执行的程序,而非保存在ROM中的bin映像(image)文件 ...

  4. RO,RW,ZI 和scatter file详解(转载)

    要了解RO,RW和ZI需要首先了解以下知识:       (1) ARM程序的组成             此处所说的"ARM程序"是指在 ARM系统中正在执行的程序,而非保存在R ...

  5. 日常技术积累-ARM中RO/RW/ZI

    ARM中RO/RW/ZI 背景 定义 LINUX内存为例 ARM程序烧录 总结 背景 一直以来,对ARM体系中的RO/RW/ZI不是很清楚,只是知道有这些东西存在.有时看资料.项目中也会看到这些字眼. ...

  6. stm32 RO RW ZI

    1.RO段包括只读代码段(code段/.text段)和常量段(RO Data段/.constdata段).  2.RW段(.data段)指已被初始化成非0值的变量段.  3.  ZI段(.bss段)指 ...

  7. CODE RO RW ZI

    一直以来对于ARM体系 中所描述的RO,RW和ZI数据存在似是而非的理解,这段时间对其仔细了解了一番,发现了一些规律,理解了一些以前书本上有的但是不理解的东西,我想应该 有不少人也有和我同样的困惑,因 ...

  8. CODE RO RW ZI的区别

    一直以来对于ARM体系 中所描述的RO,RW和ZI数据存在似是而非的理解,这段时间对其仔细了解了一番,发现了一些规律,理解了一些以前书本上有的但是不理解的东西,我想应该 有不少人也有和我同样的困惑,因 ...

  9. RO,RW,ZI概念

    RO: RO=read-only RW: RW=read-write ZI: ZI=zero-initialized 各部分在空间上的分配结构如下图: When you compile a stand ...

最新文章

  1. java HashMap的使用
  2. 模板引擎--handlebars
  3. 系统优化怎么做-SQL优化
  4. 有关缅甸语学习的一些网站
  5. log file sync
  6. 《JavaScript 每周导读》【第一期】
  7. 刘润《五分钟商学院》思维导图笔记 - 商业篇
  8. Python实现修改图片尺寸
  9. 17.光照(点光源)
  10. gateway断言工厂Path,Weight
  11. 百度网盘 linux 上传文件大小限制,Linux 下载百度网盘大文件的方法
  12. 【Web技术】1352- 如何防止他人恶意调试你的web程序
  13. 微信小程序——打开地图 选择位置 完整功能实现代码(定位,检索周边,可移动选点,可搜索,腾讯地图API)
  14. 元宇宙并不是区块链的延伸 因为区块链并未跳出虚拟的牵绊
  15. 操作系统 请求分页存储管理方式(含页面置换算法)
  16. 数据分析2021年最实用工具排名前6位出炉
  17. 如何优雅地读写HttpServletRequest和HttpServletResponse的请求体
  18. gin:结合gorilla实现webSocket
  19. 行人重识别(1)——行人检测综述
  20. 机器学习之LASSO,岭回归

热门文章

  1. ELK+grok+华为防火墙USG6500会话日志
  2. 使用GloVe生成中文词向量
  3. excel查找在哪里_HR:对不起,我们公司不招25岁还用不好Excel的人
  4. Java公式编辑器开发思路,附项目源码
  5. PMP项目管理培训总结
  6. Module parse failed: Unexpected token(双问号无法识别)
  7. UDP传输rtp数据包丢帧
  8. 2022年版中国腰果酚市场趋势研究与竞争策略分析报告
  9. R语言当前文件工作路径
  10. 一顿操作猛如虎,3000 行代码重构成 15 !