码迷,mamicode.com
首页 > 其他好文 > 详细

专题2-我从内部看ARM

时间:2015-04-15 18:55:35      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

一.家族检阅
1.名词分类:
(1)芯片名称:2440,210,6410,
(2)ARM核:a8,arm9,arm11
(3)指令架构:armv4,armv6,armv7
2.每一个芯片都包含了一个核,每一种类型的核都采用了一种具体的指令架构。而ARM公司就是出~~~~售arm核。芯片中最重要的是arm核,直接决定性能。
3.核历史演变
技术分享

图片:1.png

cortex有三个系列:
(1)M系列,列工控领域:无操作系统,类单片机
(2)R系列,实时系统:可以运行操作系统
(3)A系列,多媒体和无线通信:性能及高
他们的性能对比可从上图横向对比
4.芯片对比
                                2440                              6410                         210
(1)处理速度:400-500                         533-667                    800-1000
(2)缓存:          16kB                                   16kB                         32 kB
(3)内存接口:SDRAM                       SDRAM/DDR                    DDR1/DDR2
(4)支持OS: WINCE/Linux               WinCE/Linux/ANDRIOD     WinCE/Linux/ANDRIOD
(5)其他:     三星停产                    正常生产                              正常生产
二.工作模式
1.请出大帮手:ARM指令手册
2.有七种工作模式,为的是形成不同的使用级别,以防造成对系统的破坏。不同模式可以访问的寄存器不同,可以运行的指令不同。
3.
(1)usr:普通应用程序运行的模式(应用程序)
(2)FIQ:快速中断模式,以处理快速情况,高速数据传输
(3)IRQ:外部中断模式,普通中断处理
(4)svc:保护模式(管理模式),操作系统使用的特权模式(内核)
(5)abt:数据访问中止模式,用于虚拟存储和存储保护
(6)und:未定义指令终止模式,用于支持通过软件仿真硬件的协处理器
(7)sys:系统模式,用于运行特权级的操作系统任务(armv4以上版本才具有)
4.usr是普通模式
其他六种是特权模式
而除了usr和sys模式以外的五种模式是异常模式
三.寄存器和寻址
1.寄存器分类:
技术分享

图片:2.png

2.一共37个寄存器,31个通用寄存器,6个状态寄存器
技术分享

图片:3.png

其中usr和sys的寄存器很类似
3.通用寄存器:
(1)不分组寄存器0--7(2)分组寄存器:8--14
(3)PC指针:r15
4状态寄存器:只有在异常模式下,才会既有cpsr又有spsr,usr和sys模式下只有cpsr,为的是保护现场
技术分享

图片:4.png

(1)N:表示符号,1表示负数,0表示正数。如两个数进行比较和减法操作
(2)Z:当两个数相等,为1,否则为0,也是比较和加法操作居多(3)I:当他为1的时候,处理器不能产生中断,即中断屏蔽
(4)F:快速中断屏蔽,为1生效(5)M【4:0】:表明不同的工作模式,可读可写,及变换工作模式,一般用读,修改,写的方式来切换工作模式。
5.特殊寄存器
(1)r13:sp指针,堆栈寄存器(2)r14:LR链接寄存器。有两个特殊功能,每一种模式下都可以用于保存函数的返回地址,另外就是异常处理后的返回地址,如中断。
(3)r15:PC指针,程序计数器
6.寻址方式:处理器根据指令提供的信息找到所需要的操作数的过程,针对源操作数
7.立即寻址:操作数直接给出,以#作为前缀
               add     r0,r0,#0x3f
8.寄存器寻址:操作数存放在寄存器中,以寄存器直接出现在指令中               add     r0,r1,r2
9.寄存器间接寻址:操作数在内存中,其对应的地址存放在寄存器中,以【寄存器】的形式出现在指令中
               ldr     r0,[r2]
10.基址变址寻址:操作数在内存中,其对应的地址由基址寄存器里的值作为基地址,然后加上偏移量,从而得到操作数在内存中实际的物理地址,以【基址寄存器,偏移量】形式出现在指令中               ldr     r0,[r1,#4]
11.相对寻址:和基址变址相似,只不过以当前PC指针的值作为基地址,然后加上标号偏移量,从而得到实际的操作数地址,常用于程序的跳转和返回。
                              bl     next(相对寻址)
               ...     ...               next
               ...     ...               mov     pc,lr

专题2-我从内部看ARM

标签:

原文地址:http://www.cnblogs.com/YanfeiHao/p/4429056.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!