【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之和;

相关推荐
小绫网络安全2 小时前
Wireshark抓包完全入门教程:从零开始掌握网络分析
arm开发·测试工具·wireshark
2601_953988072 小时前
Ricon组态系统vs传统组态软件:为什么选择新一代Web组态平台
前端·后端·物联网·tcp/ip·数学建模·前端框架
Chief_fly3 小时前
【Windows 下载 ARM64 deb 包 麒麟 ARM 离线安装】
arm开发·windows
TDengine (老段)4 小时前
TDengine 第三方工具 — Telegraf、Kafka Connect、Flink、Spark
大数据·数据库·物联网·flink·kafka·时序数据库·tdengine
LCG元14 小时前
STM32+ESP8266+MQTT 物联网气象站:从零搭建温湿度远程监测系统(附完整源码)
stm32·物联网·struts
殷忆枫17 小时前
基于K210与STM32的智能垃圾分类与物联网监管系统
stm32·物联网·分类
zlinear数据采集卡18 小时前
D223的PWM电机控制:6路独立脉冲+加减速算法深度解析
arm开发·stm32·嵌入式硬件·算法·fpga开发·架构
奔跑的架构师21 小时前
[A-49]ARMv9/v8-PSCI接口规范与工作流程简介
android·linux·arm开发·arm
老孙讲技术1 天前
【4G IPC 上云】临时点位怎么免布线上云?listDeviceDetailsByPage + 辅码流预览|智慧工地实战
后端·物联网
振南的单片机世界1 天前
硬核菊花链:3个GPIO+无限74HC595=端口扩展“无限套娃”
arm开发·stm32·单片机·嵌入式硬件