`
anlx27
  • 浏览: 496116 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Keil MDK中的Code, RO-data , RW-data, ZI-data分别代表什么意思?(转)

阅读更多

一 基础知识

字节  8位
半字  16位
字    32位

 

二 解惑

Code, RO-data,RW-data,ZI-data

Code为程序代码部分
RO-data 表示 程序定义的常量const temp;
RW-data 表示 已初始化的全局变量
ZI-data 表示 未初始化的全局变量

Program Size: Code="18248" RO-data=320 RW-data=260 ZI-data=3952

Code, RO-data,RW-data ............flash
RW-data, ZIdata...................RAM

三 详细分析

初始化时RW-data从flash拷贝到RAM

生成的map文件位于list文件夹下 (KEIL)

    Total RO  Size (Code + RO Data)                18568 (  18.13kB)
    Total RW  Size (RW Data + ZI Data)              4212 (   4.11kB)
    Total ROM Size (Code + RO Data + RW Data)      18828 (  18.39kB)

ARM指令的长度刚好是1个字(分配为占用4个字节),Thumb指令的长度刚好是半字(占用2个字节)

R0-R15 (R15-PC,R14-LR,R13-SP) 32位

每个异常模式还带有一个程序状态保存寄存器 (SPSR),它用于保存在异常事件发生之前的CPSR

LDMIA R1!,{R2-R7, R12} ;将R1单兀中的数据读出到R2-R7,R12,  R1自动加1
STMIA RO!,{R3-R6,R10}  ;将R3-R6,R10中的数据保存到RO指向的地址,RO自动加1

 

在数据传送之前,将偏移量加到Rn中,其结果作为传送数据的存储地址.若使用后缀“!”,则结果写回到Rn中,且Rn值不允许为R15.指令举例如下:
LDR   Rd, [Rn, #Ox4]!

LDMFD  SP!,{R0-R3,PC}^ ;中断返回
“^”符号表示这是一条特殊形式的指令。这条指令在从存储器中装载PC的同时(PC是最后恢复的),CPSR也得到恢复

大端格式(Big-endian)
小端格式(Little-endian)

数据0x12345678存储格式
      大端格式
低地址<----0x12|0x34|0x56|0x78---->高地址
      小端格式
低地址<----0x78|0x56|0x34|0x12---->高地址

ARM微处理器支持7种运行模式,分别为: CPSR M[4:0]

1.用户模式(usr):ARM处理器正常的程序执行状态。       10000
2.快速中断模式(fiq):用于高速数据传输或通道处理。    10001
3.外部中断模式(irq):用于通用的中断处理。            10010
4.管理模式(svc):操作系统使用的保护模式。            10011
5.数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。10111
6.系统模式(sys):运行具有特权的操作系统任务。        11111
7.定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。 11011

 

ARM正常工作一般工作在用户模式和系统模式,复位的时候进入管理模式。

对于ARM指令集来说,PC指向当前指令的下两条指令的地址,

注意pc,在调试的时候显示的是当前指令地址,而用mov lr,pc的时候lr保存的是此指令向后数两条指令的地址

假设反汇编代码:  0x000001 :  mov lr pc   

(此时查看PC寄存器的值是0x000001,但实际PC值是0x000003, lr里面保存的就是0x000003)

 

fields 指定传送的区域(psr  CPSR或SPSR)
c 控制域屏蔽字节(psr[7..0])
x 扩展域屏蔽字节(psr[15..8])
s 状态域屏蔽字节(psr[23..16])
f 标志域屏蔽字节(psr[31..24])

例如:MSR cpsr_c, #0xD3 ;  CPSR[7...0] = 0xD3

分享到:
评论

相关推荐

    keil中的Code_RO-data_RW-dat_ZI-data

    ### Keil中的Code_RO-data_RW-dat_ZI-data详解 #### 1. 概念解析 在Keil C51环境中,编译链接过程会将程序分成不同的段进行管理,其中最重要的四种类型包括: - **Code**:代码段,存放程序的机器码。 - **RO-data*...

    Keil MDK中使用pc-lint的详细方法.doc

    Keil MDK 中使用 PC-Lint 的详细方法 Keil MDK 是一个功能强大的集成开发环境(IDE),它提供了一个完整的开发工具链,包括编译器、调试器、编辑器等。PC-Lint 是一个静态代码分析工具,能够帮助开发者检测源代码...

    keil MDK代码配色方案-暗黑主题

    KEIL MDK,全称Microcontroller Development Kit,是由ARM公司推出的嵌入式系统开发工具,广泛应用于基于ARM架构的微控制器编程。它包含了C编译器、宏汇编器、链接器、库管理器以及调试器等全套工具,是嵌入式开发的...

    MDK5.39热乎安装包

    Keil MDK,也称MDK-ARM、Realview MDK、I-MDK、uVision4 等。Keil MDK是由三家国内代理商提供技术支持和相关服务。MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。 MDK-ARM...

    KEIL_MDK537.exe (Keil_MDK ARM单片机软件开发环境)

    Keil MDK,也称MDK-ARM、Realview MDK、I-MDK、uVision4 等。Keil MDK是由三家国内代理商提供技术支持和相关服务。 MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。 MDK-ARM...

    Keil MDK编译器与J-LINK使用

    前几天进手了一个J-LINK,因为H-JTAG毕竟对MDK支持的不是太完美,比如用keil mdk上面的下载按钮烧录程序,不是直接就能烧录进去,而是弹出H-Flash软件,再手工选择文件烧录;而且用H_JTAG单步调试还容易莫名其妙的跑...

    Image$$RO$$Limit ARM中的RO、RW和ZI DATA.doc

    ARM映像文件中的RO、RW和ZI DATA ARM映像文件是一种可执行文件,包括bin或hex两种格式,可以直接烧到ROM中执行。在ARM集成开发环境中,一个程序包括只读的代码段和可读写的数据段。只读的代码段和常量被称作RO段...

    STM32H7XX-KEIL-MDK-外部FLASH-FLM下载算法-Application-Note

    STM32H7XX系列MCU在开发过程中,有时需要使用外部Flash作为程序存储空间,这时就涉及到MDK(Keil uVision)的下载算法。本文主要围绕STM32H7XX在KEIL-MDK环境下,针对外部Flash的FLM(Flash Loader Demonstrator)...

    Keil_MDK-ARM_5.28a_Downloadly.ir.rar

    Keil_MDK-ARM_5.28a_Downloadly.ir.rar Keil For ARM 5.28版本。MDK:Microcontroller Developer Kit微控制器开发工具。 Keil MDK-ARM是美国Keil软件公司(现已被ARM公司收购)出品的支持ARM微控制器的一款IDE(集成...

    STM32 Pack Keil.MDK-Middleware

    这个"STM32 Pack Keil.MDK-Middleware"文件包是专门为STM32微控制器系列设计的,确保了在Keil MDK(Microcontroller Development Kit)中进行高效且便捷的开发。 STM32 Pack的主要作用在于提供固件库,这些库包括...

    Keil MDK-ARM Version 5 第二部分

    2013年10月份,ARM/KEIL正式推出KEIL MDK V5.00,该版本使用uVision5 IDE集成开发环境,是目前针对ARM微控制器,尤其是ARM Cortex-M内核最为便捷,功能最全的一款开发工具。 总共6个部分,全部下载再解压安装。 (MD5...

    ARM开发工具KEIL MDK-ARM v5.0强势来袭 part4

    在蛰伏了一年后ARM MDK再度发力,新一代集成开发工具V5震撼上市!和以往的版本V4相比有许多新的特色。

    keil5软件安装包 keil5 MDK 5.34版本

    keil5 MDK 5.34版本keil5软件安装包 keil5 MDK 5.34版本keil5软件安装包 keil5 MDK 5.34版本keil5软件安装包 keil5 MDK 5.34版本keil5软件安装包 keil5 MDK 5.34版本keil5软件安装包 keil5 MDK 5.34版本keil5软件...

    Keil MDK主题美化和代码美化

    Keil MDK主题美化和代码美化!! Keil MDK主题美化和代码美化!! Keil MDK主题美化和代码美化!! Keil MDK主题美化和代码美化!! Keil MDK主题美化和代码美化!! Keil MDK主题美化和代码美化!! Keil MDK主题...

    Keil MDK最新版本下载地址(MDK-ARM Version 5.29)4-4 MDK529.part4.rar

    总大小:850M,因上传限制最大... MDK-ARM MDK-ARM Version 5.29 Version 5.29 ...Toolchain: MDK-ARM Plus Version: 5.29.0.0 ...Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.0.7.0 Dialog DLL: TCM.DLL V1.36.5.0

    keil-MDK开发环境uCOS-III移植到STM32上源码,开发者著作

    keil-MDK开发环境uCOS-III移植到STM32上源码,keil-MDK开发环境uCOS-III移植到STM32上源码,开发者著作keil-MDK开发环境uCOS-III移植到STM32上源码,keil-MDK开发环境uCOS-III移植到STM32上源码,开发者著作

    STM32_IAR工程-Keil_MDK转换详解

    目前市场上较为流行的两款开发工具分别是IAR Systems的Embedded Workbench for ARM(简称IAR)与Keil公司的uVision(基于Keil MDK)。虽然大部分的STM32示例程序是基于IAR开发环境构建的,但由于Keil MDK拥有更加...

    图文解说Keil MDK下ST-Link II的连接设置

    在嵌入式开发中,Keil MDK是一款广泛使用的集成开发环境(IDE),尤其在STM32微控制器的开发中占据了重要地位。ST-Link II是意法半导体(STMicroelectronics)推出的调试器和编程器,用于连接开发板和电脑,以便进行...

    亲测Keil MDK5.32完美运行开发环境

    Keil MDK,也称MDK-ARM、Realview MDK、I-MDK、uVision4 等。Keil MDK是由三家国内代理商提供技术支持和相关服务。 MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。 MDK-...

    Keil MDK介绍

    ### Keil MDK-ARM详尽解析 #### 一、Keil MDK-ARM概述 Keil MDK-ARM(Microcontroller Development Kit for ARM)是一款由ARM公司推出的、专为ARM架构处理器设计的嵌入式软件开发工具。该工具集是在ARM收购Keil...

Global site tag (gtag.js) - Google Analytics