【ARM 处理器】程序存储详解

本篇文章主要介绍ARM处理器,Code, RO-data,RW-data,ZI-data 知识以及程序存储情况

目录

  • [1. 专业词汇](#1. 专业词汇)
  • [2. 程序存储](#2. 程序存储)
  • [3. 程序空间计算](#3. 程序空间计算)

1. 专业词汇

  • Code : 代码区,存储在 ROM 区域
  • RO-dataRead Only data,即只读数据域,存储在ROM
    • 比如 const 类型的变量
  • RW-dataRead Write data,即可读写数据域,程序运行时在 RAM 区域,应用程序可以修改其内容;
    • 比如 初始化为 非零 的全局变量
  • ZI-DataZero Initialie data,即0初始化数据,程序运行时在 RAM 区域,应用程序可以修改其内容;
    • 比如 初始化为 **零 ** 的全局变量

2. 程序存储

下图中,左侧为 未上电 状态,右侧为 上电程序运行 状态,上电过程描述为:

  1. 程序在存储状态时,RO段(RO section)及RW段都被保存在ROM区(数据不能被修改)
  2. 程序在运行状态时,内核从ROM中读取代码,并将RW端行ROM复制到RAM区域,并且在RAM中加入ZI端,ZI段的数据初始化为0

3. 程序空间计算

  1. 程序需要下载到芯片的FLASH空间,FLASH的最小空间应该大于Code + RO Data + RW Data的总和;

  2. 程序运行的时候,芯片内部RAM使用的空间应该大于RW Data + ZI Data之和;

相关推荐
TDengine (老段)6 小时前
什么是 TDengine IDMP?
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
带土17 小时前
1. ARM开始
arm开发
ElfBoard9 小时前
ElfBoard技术贴|如何在【RK3588】ELF 2开发板上进行UART引脚复用配置
人工智能·单片机·嵌入式硬件·物联网
小尧嵌入式13 小时前
基于HAL库实现F407的基本外设GPIO输入输出USART收发RTC时钟I2CEEPROM和SPIW25Q128读写及CAN通信
arm开发·单片机·嵌入式硬件
TDengine (老段)15 小时前
TDengine 字符串函数 LTRIM 用户手册
java·大数据·数据库·物联网·时序数据库·tdengine·涛思数据
Hubianji_0915 小时前
2026年第二届IEEE亚欧网络安全、物联网与软计算会议 (CITSC 2026)
物联网·安全·信息安全·国际会议·国际期刊·会议论文
小马_66616 小时前
[好记性不如烂笔头]RT_Thread http ota升级踩坑笔记(CRC校验不通过)
笔记·物联网·网络协议·http
楼兰公子20 小时前
arm-linux 系统allwinner R528 外挂的sd卡片为什么只能传输189.54M文件
linux·arm开发·sd卡
TDengine (老段)1 天前
优化 TDengine IDMP 面板编辑的几种方法
人工智能·物联网·ai·时序数据库·tdengine·涛思数据
北京盛世宏博1 天前
《Modbus RTU 与 TCP/IP:RS485 与 RJ45 温湿度传感器协议适配选型》
arm开发·传感器·温湿度