ARM裸機(jī)開發(fā)bootloader內(nèi)部看ARM
1、芯片:s3c2440、s3c6410、s5pv210
本文引用地址:http://m.butianyuan.cn/article/201611/318217.htm2、ARM核:A8、ARM9、ARM11
3、指令架構(gòu):armv7、armv6
2440使用的是arm9的核,內(nèi)核使用的是armv4的指令架構(gòu);
6410使用的是arm11的核,內(nèi)核使用的是armv6的指令架構(gòu);
210使用的是A8的核,內(nèi)核使用的是armv7的指令架構(gòu)。
arm11cortexA5 A8 A9
arm9cortexR4
arm7cortexM0 M1M3 M4
ARM經(jīng)典cortexM cortexR cortexA
CortexM主要用于工業(yè)控制領(lǐng)域,不能安裝操作系統(tǒng);
CortexR用于實(shí)用控制;
CortexA用于多媒體。
4、核對比
ARM7類似CortexM3主要用于裸機(jī)開發(fā)。
ARM9和ARM11是介于CortexR與CortexA中間的ARM內(nèi)核。
5、芯片對比
2440 | 6410 | 210 | |
處理速度 | 400-500M | 533-667M | 800-1G |
緩存 | 16K | 16K | 32K |
內(nèi)存接口 | SDRAM | DDR SDRAM | DDR1 DDR2 |
支持OS | wince/linux | wince/linux/andoid | wince/linux/andoid |
其它 | 停產(chǎn) | 生產(chǎn)中 | 生產(chǎn)中 |
二、ARM工作模式
1、ARM一共有幾種工作模式,為什么
ARM共有7種工作模式,usr、svc、sys、irq、fiq、und、abt
不同的工作模式下,可以訪問不同的寄存器和指令。這就保證了不同工作任務(wù)的分類處理。例如在linux中應(yīng)用程序工作在usr模式下,而linux內(nèi)核工作在svc模式下。
sys是在armv4中新加入的模式,一般不會(huì)用到。
usrnormal program execution mode
fiqsupports a high-speed data transfer or channel process
irqused for general-purpose interrupt handling
svca protected mode for the operating system
abtimplements virtual memory and memory protection
undsupports software emulation of hardware coprocessors
sysruns privileged operating system tasks(armv4 and above)
2、ARM寄存器詳解
ARM寄存器{通用寄存器{未分組寄存器(r0-r7)、分組寄存器(r8-r14)、程序計(jì)數(shù)器(r15)}、狀態(tài)寄存器{cpsr、spsr}}
ARM共有37個(gè)寄存器,其中31個(gè)通用寄存器和6個(gè)狀態(tài)寄存器。
R13:SP堆棧指針寄存器
R14:鏈接寄存器{執(zhí)行函數(shù)返回地址、中斷返回地址}
R15:PC指針,計(jì)數(shù)器。
CPSR和SPSR都是狀態(tài)寄存器,它們有著共同的模式。當(dāng)發(fā)生中斷等異常時(shí),將CPSR中的狀態(tài)數(shù)字保存到相應(yīng)的異常模式下的SPSR,等要返回原來模式時(shí),就調(diào)用SPSR中的狀態(tài)數(shù)字,就可以返回原來模式了。
三、ARM的尋址方式
1、什么是尋址方式
尋址方式就是指根據(jù)指令中信息來查找操作數(shù)的方式
2、都有哪些尋址方式
1、立即數(shù)尋址
就是其中指令就是操作數(shù),對指令進(jìn)行操作就是對操作數(shù)直接操作。
2、寄存器尋址
寄存器中存放的是操作數(shù),對寄存器進(jìn)行操作就是對寄存器中的內(nèi)容操作數(shù)進(jìn)行操作。
3、寄存器間接尋址
寄存器中存放的是內(nèi)存地址,通過內(nèi)存地址對操作數(shù)進(jìn)行間接的存取。
4、基址變址尋址
寄存器中存放的是基址,而后又加變址,基址加變址就是一個(gè)操作數(shù)的內(nèi)存地址。
5、相對尋址
跳轉(zhuǎn)指令中相對尋址PC指針的當(dāng)前值為基地址,指令中的地址標(biāo)號(hào)作為偏移量,將兩者相加之后得到操作數(shù)的有效地址。
評(píng)論