协处理器作用 协处理器用于执行特定的处理任务,如数学协处理器可以执行控制数字处理,以减轻处理器的负担.ARM处理器最多可以支持16个协处理器,其中CP15是最重要的一个协处理器 CP15的作用 CP15是系统控制协处理器,通过额外的寄存器可以控制cache,MMU,系统时钟等功能 访问协处理器 1.CP15有16组寄存器,通过mcr和mrc指令来访问协处理器里的寄存器,从而达到访问协处理器的目的 2.通过datasheet中的CP15 register map summary可以查找到相关的寄存…
算术和逻辑指令 1.mov 格式:mov {条件}{s} <dest>, <op> 作用:把一个值从一个地方移动到另一个地方,<dest>必须是寄存器 示例: @mov指令范例   “@”表示注释 mov r1, #8 mov r2, r1 2.mvn 格式:mvn {条件}{s} <dest>, <op> 作用:把一个值取反后从一个地方移动到另一个地方,<dest>必须是寄存器 示例: @“0b”表示二进制,”0x”表示十六进制,什…
[ARM处理器工作模式] 处理器工作模式 1.User(urs):用户模式,linux应用程序运行在用户模式 2.FIQ(fiq):快速中断模式 3.IRQ(irq):中断模式 4.Supervisor(svc):系统保护模式,linux内核运行在系统保护模式 5.Abort(abt):异常模式 6.Undefined(und):未定义指令模式 7.System(sys):系统模式 [ARM寄存器详解] ARM寄存器(37个) 通用寄存器(31个) 1.未分组通用寄存器(R0-R7) 2.分组通…
ARM芯片:2440(arm9) 6410(arm11) 210(cortex-A8) ARM核:arm9(arm-v4) arm11(arm-v6) cortex-A8(arm-v7) 指令架构:arm-v4 arm-v6 arm-v7 在一个芯片中最重要的是ARM核 ARM核演变 ARM经典: ARM7.ARM9.ARM11 Cortex系列: 1.Cortex-M:应用于工控 2.Cortex-R:应用于实时 3.Cortex-A:应用于多媒体 ARM芯片对比 芯片 2440 6410 4…
ARM机器码 1.汇编程序通过汇编器变成机器码,然后才能在ARM处理器上运行 2.ARM机器码是一个32位的数,被分成了多个段,每个段都有各自的含义 3.格式: cond:表示条件(4位) I:表示源操作数是寄存器还是立即数 opcode:表示指令类型(4位) S:表示是否影响cpsr寄存器 Rn:第一个源寄存器,有的指令中没有使用(4位) Rd:目的寄存器(4位) shift_operand:位移标志(4位)和第二个源寄存器或立即数(8位),所以mov指令中源操作数不能超过255 4.示例:…
汇编程序用途 1.在bootloader与内核初始化时,还没有建立C语言运行环境,需要用到汇编程序 2.在对访问效率要求很高的情况下,需要用到汇编程序 ARM汇编分类 1.ARM标准汇编:适合于Windows在平台下使用 2.GUN汇编:适合于Linux在平台下使用 汇编程序框架 完整版: .section .data 数据段 <初始化数据> .section bss bss段 <未初始化数据> .section .text 代码段 .global _start 通过global申…
寻找方式 1.处理器根据指令中给出的信息来找到指令所需操作数的方式 2.立即数寻址 操作数本身在指令中给出,立即数前加”#”表示立即数寻址,操作数在指令中 3.寄存器寻址 利用寄存器中的数值作为操作数,操作数在寄存器中 4.寄存器间接寻址 利用存放在寄存器中的内存地址中的数值作为操作数,在寄存器加上[],操作数存放在内存中 5.基址变址寻址 利用寄存器中保存的基地址和立即数中保存的偏移,找到内存地址中的数值作为操作数,操作数保存在内存中 6.相对寻址 利用PC指针的当前值做为基地址和指令中地址标…
2440启动流程 启动方式:nor flash启动.nand flash启动 地址布局: 选择nor flash启动时,SROM(nor flash)地址为0x00000000 选择nand flash启动时,SRAM(SteppingStone)地址为0x00000000 SDRAM(内存)地址为0x30000000 启动流程: 1.第一阶段 首先,处理器复制nand flash的BL1(前4KB)到Steppingstone中,执行BL1(bootloader第一部分).然后,复制BL2(b…
作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42408137 转载请著名出处 本博客相关文档下载 :  -- ARM 汇编手册 : http://download.csdn.net/detail/han1202012/8328375 -- ARM 手册 : http://download.csdn.net/detail/han1202012/8324641 -- ARM 9 芯片文档 : http://down…
伪指令本身没有对应的机器码 .global声明全局符号,点事GUN汇编的特点 .data定义数据段 .equ DA #0x89 定义宏 .align 4 4字节对齐 mov 指令里的立即数只能是8位的 ldr伪指令能给立即数8位的,也能给立即数小于8位的 ldr r0, =0x1ff arm-linux-objdump -D -S start.elf 反汇编 nop空指令 CP15协处理器 CP15用来控制系统,提供了16组寄存器 协处理器访问指令:mcr与mrc 看ARM架构手册…