一、arm的认知及基本概念
(一).arm的基本概念
1. 什么是arm
arm是一家英国电子公司的名字,全名是Advanced RISC Machine
这家企业设计了大量高性能、廉价、耗能低的RISC(精简指令集)处理器,ARM公司只设计芯片而不生产,它将
技术授权给世界上许多公司和厂商。目前采用arm技术知识产权内核的微处理器,即通常所说的arm微处理器
所以arm也是对一类微处理器的通称。
arm指令集体系版本号(软件)为V1 ~ V7 目前V1 ~ V3已很少见。从V4版不再与以前的版本兼容。
arm的CPU系列(硬件)主要有 ARM7 ~ ARM11
2. 典型的嵌入式处理器
arm 占市场79.5% ARM
mips 占市场13.9% MIPS
microSPARC 占市场3.1% SUN
PowerPc 占市场2.8% IBM
其它 占市场0.8%
3. arm的应用范围:
工业控制:如机床、自动控制等
无线通信:如手机
网络应用:如
电子产品:如音视频播放噐、机顶盒、游戏机、数码相机、打印机
其它各领域:如军事、医疗、机器人、智能家居等
4.计算机体系结构
见图:冯.诺依曼计算机体系图
冯.诺依曼体系结构
处理器使用同一个存储器,经由同一个总线传输
完成一条指令需要3个步骤:即取指令->指令译码->执行指令
指令和数据共享同一总线的结构
哈佛体系结构
将程序指令存储和数据存储分开
中央处理器首先到程序指令存储器中读取程序指令。解码后到数据地址,再到相应的数据存储器读取数据,然后执行指令
程序指令存储与数据存储分开,可以使指令和数据有不同的数据宽度。
5.复杂指令集与精简指令集
CISC 复杂指令集:采用冯.诺依曼体系结构。数据线和指令线分时复用(只能通过一辆车)。
存储器操作指令多 汇编程序相对简单 指令结束后响应中断 CPU电路丰富 面积大功耗大
RISC 精简指令集:采用哈佛体系结构。数据线和指令线分离(同时能通过多辆车)。
对存储器操作有限 汇编程序占空间大 在适当地方响应中断 CPU电路较少 体积小功耗低
ARM采用RISC精简指令集
Thumb是ARM体系结构中一种16位的指令集。
从ARMv4T之后,的ARM处理器有一种16-bit指令模式,叫做Thumb,较短的指令码提供整体更佳的编码密度,更有效地使用有限的内存带宽。所有 ARM9 和后来的家族,包括 XScale 都纳入了 Thumb 技术。
即ARM有两种指令集:RISC、Thumb
6. arm的思想
1) arm体系的总思想:
在不牺牲性能的同时,尽量简化处理器。同时从体系结构上灵活支持处理器扩展。采用RISC结构。RISC处理器简化了处理器结构,减少复杂功能指令的同时,提高了处理器速度。
ARM及MIPS都是典型的RISC处理器
2) arm的流水线结构
arm处理器使用流水线来增加处理器指令流的速度,这样可以使几个操作同时进行。并使处理和存储器系统连续操作。
arm处理器分为三级:取指->译码->执行
取指:指令从存储器中取出
译码:对指令使用的寄存器进行译码
执行:从寄存器组中读取寄存器,执行移位和ALU操作,寄存器被写回到寄存器组中
3) ARM处理器支持的类型
字节 8位
半字 16位
字 32位
**所有数据操作都以字为单位
**ARM指令的长度刚好是一个字,Thumb指令长度刚好是半个字
4) ARM处理器状态
ARM处理器内核使用ARM结构,该结构包含32位的ARM指令集和16位Thumb指令集,因此ARM有两种操作状态
ARM状态:32位
Thumb状态:16位
5) 处理器模式
ARM处理器共有7种运行模式:
用户: 正常程序工作模式,不能直接切换到其它模式
系统: 用于支持操作系统的特权任务,可以直接切换到其它模式
快中断:支持高速数据传输及通道处理,FIQ异常响应时进入此模式
汇编语言如何编程 中断: 用于通用中断处理,IRQ异常响应时进入此模式
管理: 操作系统保护代码,系统复位和软件中断响应时进入此模式
中止: 用于支持虚拟内存或存储器保护,用于MMU
未定义:支持硬件协处理器的软件仿真,未定义指令异常响应时进入此模式。
(二)、经典平台硬件组成
见图:arm硬件组成图
开发板一般是由一块组成的,有核心器件和外围器件接口等,但是有的是由两块板子组成,主版和核心板,主版上主要是外围接口,外围器件等,核心板上主要是核心器件,还有一些晶振电路等
1.核心板(天嵌 2440)
CPU处理器 S3C2440AL,主频400MHz(最高可达533MHz)
SDRAM内存 板载64MB SDRAM(标准配置), 32bit数据总线SDRAM时钟频率高达100MHz(支持运行133MHz)
Nand Flash 板载64MB Nand Flash或256MB Nand Flash(标准配置)
Nor Flash 板载2MB Nor Flash(最高可升级到8MB)
CorePower 专业1.25V核心电压供电
Power 核心板采用3.3V供电
Powerled 核心板电源指示灯
核心板接口 接口型号为DC-2.0双列直插
SDRAM:随机存储器,普遍使用的内存。用作主存。
NOR Flash和 NAND Flash是现在市场上两种主要的非易失闪存。
NOR的特点是芯片内执行,应用程序可以直接在flash 闪存内运行,不必再把代码读到系统RAM中。
NAND结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。
2.主板
电源
并口线
复位
RTC电源
RS232电平转换DB9插座
音频IIS,AC97
按键、PS/2与IC接口
数码管
触摸屏
以太网卡
主USB HUB 1转4
3.寄存器
见图:ARM模块和内核框图
寄存器是中央处理器内的组成部份。
寄存器是有限存贮容量的高速存贮部件,用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器(IR)和程序计数器(PC)。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器(ACC)。
IR 用于存储指令
PC 用于存储程序运行的地址(即当前指令在内存中的位置)
寄存器是由一个指令的输出或输入可以直接索引到的暂存器组。所有的计算机指令都是进入寄存器后被直接读取
ARM的汇编编程,本质上就是针对CPU寄存器的编程。
//*******重点 需要背讼*************************************************
ARM寄存器分为2类:普通寄存器和状态寄存器
(1)通用寄存器和计数器:共32个,15个通用寄存器
R0 -R7 未备份寄存器
R0(a1) R1(a1) R2(a3) R3(a4) R4(v1) R5(v2) R6(v3) R7(v4)
R8 -R12 备份寄存器
R8(v5) R9 (SB,v6) R10(SL,v7) R11(EP,v8) R12(IP) 数据寄存器
R15(PC) 程序计数器 它的值是当前正在执行的指令在内存中的位置。
当指令执行结束后,CPU会自动将PC值加上一个单位,PC值指向下一条即将执行的指令的地址
如果通过汇编指令对PC寄存器赋值,就会完成一次程序的跳转(如从子函数跳转回主函数内)
R14(LR) 链接寄存器 存放子程序的返回地址
例如:在主函数内,如果调用子函数,程序会进入到子函数内执行。当子函数执行完毕后,需要回到
主函数内,所以,在子函数调用前需要将这个地址先保存起来,否则无法到这个地址。
LR用于保存这个地址,这个地址也称为子程序返回地址。当子函数结束后,再将LR内的地址赋给PC即可。
如果子程序再调用孙程序,LR如何保存地址呢?
先把当前LR内的值压入内存的栈区,然后LR再保存孙程序的返回地址。当孙程序执行完后通过PC跳转到
子程序内,此时将栈区内的子程序返回地址取出保存在LR内。当子程序执行完
后,再通过PC跳转到主函数内。
R13(SP) 栈指针寄存器 用于存放堆栈的栈顶地址。
SP相当于指针变量,保存的是栈顶的地址,出栈时,从SP指向的内存中取出数据,入栈时将新的内存地址
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论