历史上的今天
今天是:2025年02月12日(星期三)
2020年02月12日 | ARM开发总结的小知识 Code,RO-data,RW-data,ZI-
2020-02-12 来源:eefocus
ARM开发总结的小知识
字节 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]
用户模式(usr):ARM处理器正常的程序执行状态。 10000
快速中断模式(fiq):用于高速数据传输或通道处理。 10001
外部中断模式(irq):用于通用的中断处理。 10010
管理模式(svc):操作系统使用的保护模式。 10011
数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。10111
系统模式(sys):运行具有特权的操作系统任务。 11111
定义指令中止模式(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
上一篇:ARM 启动过程
史海拾趣
|
双激式开关电源变压器存在的风险 开关电源原理与设计(连载56) 2-1-1-7.双激式开关电源变压器存在的风险 上面我们对双激式开关电源变压器工作原理进行分析,都是考虑双激式开关电源变压器完全工作于理想的情况下而得出的结果。因此,图2-6、图2-7和(2-17)、(2-18)式的分析结果都是在理想的工作条件下进行 ...… 查看全部问答> |
|
本帖最后由 jameswangsynnex 于 2015-3-3 19:58 编辑 在中国,京东方科技集团(BOE Technology Group)及华星光电技术(Shenzhen China Star Optoelectronics Technology)等本土企业将从2011年下半年开始利用第7.5代(底板尺寸为1950mm×2250mm) ...… 查看全部问答> |
|
VirtualAlloc,分配的空间大小可以超过32MB吗? 我的开发板有128M的内存。 OS分配32MB RAM分配32MB 显存分配64MB 这样可以吗? 显存的空间需要用VirtualAlloc来做,我的bsp里是这么做的,但是它限制大小为小于32M。… 查看全部问答> |
|
stm32f10x_i。.c里的/******************************************************************************** Function Name : CAN_SCE_IRQHandler* Description : This funct ...… 查看全部问答> |
|
F2810 的引脚CAP1_QEP1、CAP2_QEP2、CAP3_QEPI1作为GPIO信号输入端,我设置了: GpioMuxRegs.GPAMUX.all = 0x00; GpioMuxRegs.GPADIR.all = 0xFF00; GpioMuxRegs.GPAQUAL.al ...… 查看全部问答> |
|
各位硬件大神,出来帮我看哈呢。 -7V这路9.1V的稳压管一接上就发烫,且越来越烫。是什么原因呢,当不接稳压管和其相连的电容的时候,输出大约-20V的样子。另一路16V和10.4V输出正常。TPS61040的电感用的是工字型的100uh带屏蔽的功率电感。求分析一 ...… 查看全部问答> |




