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、芯片对比
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指针的当前值为基地址,指令中的地址标号作为偏移量,将两者相加之后得到操作数的有效地址。
- ARM裸机开发-bootloader-内部看ARM
- ARM裸机开发-bootloader-内部看ARM
- ARM裸机开发-bootloader-汇编语言
- ARM裸机开发-bootloader-我是bootloader设计师
- ARM裸机开发-bootloader-交叉工具链
- ARM裸机开发-bootloader-核心初始化
- ARM裸机开发-bootloader-内存初始化
- ARM裸机开发-bootloader-时钟初始化(ARM跑快了)
- ARM裸机开发-bootloader—点亮LED灯
- ARM裸机开发-bootloader-代码搬移从SRAM到DRAM
- ARM裸机开发(四):bootloader的设计
- arm裸机开发
- ARM裸机开发学习方法
- ARM裸机开发笔记3(ARM寄存器)
- linux 裸机开发arm程序
- ARM的裸机开发环境
- ARM裸机开发环境总结
- ARM的裸机开发环境
- Java设计模式--迭代器模式
- 第一次
- 【Java】javac编译时找不到文件的问题
- JavaScript__proto__原型链深入分析
- Bayesian Face和 Joint Bayesian Face两篇文献的公式推导
- ARM裸机开发-bootloader-内部看ARM
- ubuntu环境安装caffe
- mac虚拟机无法连接本机mysql
- css中浮动与清除
- java时间比较易错点
- ubuntu安装scipy出现的问题:no lapack/blas resources
- Div 3
- 1.4.4节练习
- 《张志俊揭秘太极拳》读书摘编