ARM裸机开发-bootloader-内部看ARM

来源:互联网 发布:js select 设置选中值 编辑:程序博客网 时间:2024/06/04 18:24

一、嵌入式大汇总

1、芯片:s3c2440、s3c6410、s5pv210

2、ARM核:A8、ARM9、ARM11

3、指令架构:armv7、armv6

2440使用的是arm9的核,内核使用的是armv4的指令架构;

6410使用的是arm11的核,内核使用的是armv6的指令架构;

210使用的是A8的核,内核使用的是armv7的指令架构。

arm11 cortexA5 A8 A9

arm9 cortexR4

arm7 cortexM0 M1M3 M4 

ARM经典 cortexM cortexR cortexA

CortexM主要用于工业控制领域,不能安装操作系统;

CortexR用于实用控制;

CortexA用于多媒体。

4、核对比

ARM7类似CortexM3主要用于裸机开发。

ARM9和ARM11是介于CortexR与CortexA中间的ARM内核。

5、芯片对比

芯片对比 24406410210处理速度400-500M533-667M800-1G缓存16K16K32K内存接口SDRAMDDR
SDRAMDDR1
DDR2支持OSwince/linuxwince/linux/andoidwince/linux/andoid其它停产生产中生产中

二、ARM工作模式

1、ARM一共有几种工作模式,为什么

ARM共有7种工作模式,usr、svc、sys、irq、fiq、und、abt

不同的工作模式下,可以访问不同的寄存器和指令。这就保证了不同工作任务的分类处理。例如在linux中应用程序工作在usr模式下,而linux内核工作在svc模式下。

sys是在armv4中新加入的模式,一般不会用到。

usr normal program execution mode

fiq supports a high-speed data transfer or channel process

irq used for general-purpose interrupt handling

svc a protected mode for the operating system

abt implements virtual memory and memory protection

und supports software emulation of hardware coprocessors

sys runs privileged operating system tasks(armv4 and above)

2、ARM寄存器详解

ARM寄存器{通用寄存器{未分组寄存器(r0-r7)、分组寄存器(r8-r14)、程序计数器(r15)}、状态寄存器{cpsr、spsr}}

ARM共有37个寄存器,其中31个通用寄存器和6个状态寄存器。

R13:SP堆栈指针寄存器

R14:链接寄存器{执行函数返回地址、中断返回地址}

R15:PC指针,计数器。

CPSR和SPSR都是状态寄存器,它们有着共同的模式。当发生中断等异常时,将CPSR中的状态数字保存到相应的异常模式下的SPSR,等要返回原来模式时,就调用SPSR中的状态数字,就可以返回原来模式了。

三、ARM的寻址方式

1、什么是寻址方式

寻址方式就是指根据指令中信息来查找操作数的方式

2、都有哪些寻址方式

1、立即数寻址

就是其中指令就是操作数,对指令进行操作就是对操作数直接操作。

2、寄存器寻址

寄存器中存放的是操作数,对寄存器进行操作就是对寄存器中的内容操作数进行操作。

3、寄存器间接寻址

寄存器中存放的是内存地址,通过内存地址对操作数进行间接的存取。

4、基址变址寻址

寄存器中存放的是基址,而后又加变址,基址加变址就是一个操作数的内存地址。

5、相对寻址

跳转指令中相对寻址PC指针的当前值为基地址,指令中的地址标号作为偏移量,将两者相加之后得到操作数的有效地址。

0 0
原创粉丝点击