ARM汇编
danwuxie
这个作者很懒,什么都没留下…
展开
-
汇编中跳转指令
B: 跳转。B label 满足条件立即跳转到Lable指定的地址执行BL: 带链接的跳转。 首先将当前指令的下一条指令地址保存在LR寄存器,然后跳转的lable。通常用于调用子程序,可通过在子程序的尾部添加mov pc, lr 返回。BX: 带状态切换的跳转。最低位为1时,切换到Thumb指令执行,为0时,解释为ARM指令执行。BLX: 带链接和状态切换的跳转。结合了B...转载 2018-07-31 08:15:30 · 4630 阅读 · 0 评论 -
伪指令ADR和LDR的区别
ARM汇编有ldr指令以及ldr、adr伪指令,他门都可以将标号表达式作为操作数,下面通过分析一段代码以及对应的反汇编结果来说明它们的区别。 ldr r0, _start adr r0, _start ldr r0, =_start_start: b _start 编译的时候设置 RO 为 0x30000000(运行地址,runa...转载 2018-07-31 08:27:32 · 405 阅读 · 0 评论 -
ARM State和Thumb State切换
在ARM的体系结构中,可以工作在三种不同的状态,一是ARM状态,二是Thumb状态及Thumb-2状态,三是调试状态。《嵌入式系统开发与应用教程(第2版)》上介绍说:有两种状态ARM状态和Thumb状态,当时初学甚为不解,现在一知半解时再看忽然想到了显示中的例子: ARM核就好比一个高中学校,那种包含普通高中和职业高中的。普通高中就相当于ARM状态,职业高中就相当于Thumb状态,...转载 2018-07-31 08:40:46 · 2022 阅读 · 0 评论 -
按键中断裸机编程操作步骤
1、需要把CPSR寄存器bit7给清零,这是中断的总开关,如果bit7设置为1,cpu无法响应任何中断bic r0, r0, #(1<<7) /* 清除I位, 使能中断 */msr cpsr, r02、设置异常入口 ldr pc, irq_addr /* vector 0x18 : irq 一定要放在内存为0x18 的地方*/ irq_addr:...原创 2018-08-04 13:58:02 · 668 阅读 · 0 评论 -
汇编中.word
_undefined_instruction: .word undefined_instruction _undefined_instruction是一个标号,处理到这里时,asm会把undefined_instruction的值按16bit的形式放在此标号处。 ldr pc, _undefined_instruction 就是从_undefined_instruction处取值,即unde...转载 2018-07-31 08:49:36 · 2638 阅读 · 0 评论 -
NorFlash原理及硬件操作
使用UBOOT体验NOR FLASH的操作(开发板设为NOR启动,进入UBOOT)先使用OpenJTAG烧写UBOOT到NOR FLASHNOR FLASH可以像nei内存一样读,但不可以向内存一样写1. 读数据md.b 0 2. 读IDNOR手册上:往地址555H写AAH往地址2AAH写55H往地址555H写90H读0地址得到厂家ID: C2H读1地址得到设备ID: ...原创 2018-08-01 09:04:47 · 1936 阅读 · 0 评论