一 基础知识
字节 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详解 #### 1. 概念解析 在Keil C51环境中,编译链接过程会将程序分成不同的段进行管理,其中最重要的四种类型包括: - **Code**:代码段,存放程序的机器码。 - **RO-data*...
Keil MDK 中使用 PC-Lint 的详细方法 Keil MDK 是一个功能强大的集成开发环境(IDE),它提供了一个完整的开发工具链,包括编译器、调试器、编辑器等。PC-Lint 是一个静态代码分析工具,能够帮助开发者检测源代码...
KEIL MDK,全称Microcontroller Development Kit,是由ARM公司推出的嵌入式系统开发工具,广泛应用于基于ARM架构的微控制器编程。它包含了C编译器、宏汇编器、链接器、库管理器以及调试器等全套工具,是嵌入式开发的...
Keil MDK,也称MDK-ARM、Realview MDK、I-MDK、uVision4 等。Keil MDK是由三家国内代理商提供技术支持和相关服务。MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。 MDK-ARM...
Keil MDK,也称MDK-ARM、Realview MDK、I-MDK、uVision4 等。Keil MDK是由三家国内代理商提供技术支持和相关服务。 MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。 MDK-ARM...
前几天进手了一个J-LINK,因为H-JTAG毕竟对MDK支持的不是太完美,比如用keil mdk上面的下载按钮烧录程序,不是直接就能烧录进去,而是弹出H-Flash软件,再手工选择文件烧录;而且用H_JTAG单步调试还容易莫名其妙的跑...
ARM映像文件中的RO、RW和ZI DATA ARM映像文件是一种可执行文件,包括bin或hex两种格式,可以直接烧到ROM中执行。在ARM集成开发环境中,一个程序包括只读的代码段和可读写的数据段。只读的代码段和常量被称作RO段...
STM32H7XX系列MCU在开发过程中,有时需要使用外部Flash作为程序存储空间,这时就涉及到MDK(Keil uVision)的下载算法。本文主要围绕STM32H7XX在KEIL-MDK环境下,针对外部Flash的FLM(Flash Loader Demonstrator)...
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微控制器系列设计的,确保了在Keil MDK(Microcontroller Development Kit)中进行高效且便捷的开发。 STM32 Pack的主要作用在于提供固件库,这些库包括...
2013年10月份,ARM/KEIL正式推出KEIL MDK V5.00,该版本使用uVision5 IDE集成开发环境,是目前针对ARM微控制器,尤其是ARM Cortex-M内核最为便捷,功能最全的一款开发工具。 总共6个部分,全部下载再解压安装。 (MD5...
在蛰伏了一年后ARM MDK再度发力,新一代集成开发工具V5震撼上市!和以往的版本V4相比有许多新的特色。
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主题...
总大小: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上源码,开发者著作
目前市场上较为流行的两款开发工具分别是IAR Systems的Embedded Workbench for ARM(简称IAR)与Keil公司的uVision(基于Keil MDK)。虽然大部分的STM32示例程序是基于IAR开发环境构建的,但由于Keil MDK拥有更加...
在嵌入式开发中,Keil MDK是一款广泛使用的集成开发环境(IDE),尤其在STM32微控制器的开发中占据了重要地位。ST-Link II是意法半导体(STMicroelectronics)推出的调试器和编程器,用于连接开发板和电脑,以便进行...
Keil MDK,也称MDK-ARM、Realview MDK、I-MDK、uVision4 等。Keil MDK是由三家国内代理商提供技术支持和相关服务。 MDK-ARM软件为基于Cortex-M、Cortex-R4、ARM7、ARM9处理器设备提供了一个完整的开发环境。 MDK-...
### Keil MDK-ARM详尽解析 #### 一、Keil MDK-ARM概述 Keil MDK-ARM(Microcontroller Development Kit for ARM)是一款由ARM公司推出的、专为ARM架构处理器设计的嵌入式软件开发工具。该工具集是在ARM收购Keil...