




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章嵌入式系统概述,Problem 什么叫嵌入式系统(Embedded system)? 定义:把计算机直接嵌入到各种应用系统中 IEEE: Devices used to control,monitor,or assist the operation of equipment, Machi- nery or plants. Intel:除了用于PC服务器等产品以外的处理器 应用都属于嵌入式系统的范畴 导致的结果: 嵌入式系统 无处不在,无所不在!,第1章嵌入式系统概述,嵌入式系统(Embedded System)是由: 嵌入式微处理器(Embedded CPU) 、 嵌入式操作系统(Emb
2、edded OS) 嵌入式应用软件(Embedded Application software),第1章嵌入式系统概述,Problem2 在嵌入式系统中,应如何将嵌入式微处理器(Embedded CPU)放到电 子系统,机械系统或各种其它产品中? 解决的办法有: 要知道微处理器的各种输入/输出接口标准 要让微处理器工作,如何编写各种应用程序? 既然是专用计算机,如何使用操作系统OS?,第1章嵌入式系统概述,Princeton ISA 计算机结构 存储缓冲寄存器(MBR):含有将要写到存储器中或从存储器中接收到的一个字。 存储地址寄存器(MAR):指定将要读到MBR或从MBR写到存储器的字的地址
3、。 指令缓冲寄存器(IR):用来暂时存放来自内存某个字的右边一条指令。 程序记数器(PC):存放将要内存中获取的下一对指令的地址。 累加器(AC)和乘商寄存器(MQ):用来暂时存放ALU运算的操作数和结果。例如,两个40位的数相乘,结果是一个80位的数,其中高40位放在AC中,低40位的数放在MQ中。,第1章嵌入式系统概述,第1章嵌入式系统概述,第1章嵌入式系统概述,Problem3 现在常用的嵌入式微处理器种类有哪些? 种类有: 68HCxxxMotorola,CISC. X86intel,CISC. SPARCSun,RISC. PowerPC601/4IBM,Motorola,RISC.
4、 ARM,MIPS,XScale,DSP ARM,MIPS,intel,TI RISC. etc.,第1章嵌入式系统概述,Problem4 ARM是什么意思? ARM是ARM(Advanced RISC Machines Limited)公司的名称成立于1990年,英国 1985 年4月 26日,第一个ARM原型在英国剑桥 的Acorn计算机有限公司诞生 ARM公司是RISC处理器的知识产权 IP供应商 为ARM架构处理器提供ARM 内核,第1章嵌入式系统概述,Problem5 ARM是现在发展的情况和进展? V1-ARM1 CPU V2-ARM2,ARM3 CPU V3-ARM6 V4-AR
5、M7,ARM8,ARM9 V5-ARM10,XScale ,V5TE-XScale增加了DSP 指令 V6-ARM11,第1章嵌入式系统概述,T:内含16bit压缩指令集Thumb. D: 支持片内的Debug调试 M: 采用增强型乘法器Multiplier I:内含嵌入式ICE宏单元 S:可综合的软核Softcore E:具有DSP的功能 J:Jazeller ,允许直接执行Java字节码,第1章嵌入式系统概述,Problem6 Intel公司和ARM公司有什么关系? Intel的 StrongARM 和 XScale嵌入式处理器是 采用了ARM的内核 SA-1:StrongARM. SA-
6、110:StrongARM. SA-1100:通用处理器MPU. SA-1110:通用处理器MPU. IXP1200:采用StrongARM核的网络处理器,第1章嵌入式系统概述,SA-1100:通用处理器MPU特点: StrongARM核I-Cache 16KB;D-Cache 16KB; Mini Data Cache 512KB;I-MMU;D-MMU;R/W缓冲 器存储器控制模块,可支持ROM,Flash,DRAM, SRAM,PCMCIA.系统控制模块,通用可中断GPIO: 28根,看门狗定时计数器间隔定时器中断控 制器外设控制模块,LCD液晶驱动控制器,串行 口UART,红外口irD
7、A,数字音频Codec,实时时 钟RTC,串行外围接口SPI,第1章嵌入式系统概述,Problem7 XScale处理器微架构有什么特点?,第1章嵌入式系统概述,Problem7 XScale处理器微架构有什么特点? 采用级超级流水线 新增乘加器MAC,DSP指令 指令I-Cache:32KB. 数据D-Cache:32KB. Mini D-Cache:2KB. I-MMU:32路TLB快表 D-MMU:32路TLB快表,第1章嵌入式系统概述,Problem7 XScale处理器微架构有什么特点? 中断控制器(Interrupt) 总线控制器(Bus) 调试接口(Debug) 动态电源管理 e
8、tc 结论1:嵌入式微处理器是嵌入式系统的硬件 核心,第1章嵌入式系统概述,嵌入式系统是包括硬件和软件两个部分 Problem8 市上主要有哪些嵌入式操作(OS)系统? VxWorks-Wind River.通信,军事,航空航天 Embedded Linux-精简,抢占式,双内核3个版本 WindowsCE6.0-Microsoft.PDA,信息家电/多媒体 Palm OSPalmPDA pSOSystem-ISI.通信,工业控制,信息家电 Nucleus,uC/OS II,Hope,DeltaOS, etc.,第1章嵌入式系统概述,VxWorks:1983年,业界第一个嵌入式实时操作系统.
9、1995年,第一个嵌入式集成开发工具IDETornado. 现在,集成嵌入式平台IEPind River Platform. VxWorksOS操作系统基本板 VxWorks AE国防,航空航天,测量,控制等 Tornado图形化的集成交叉开发工具,第1章嵌入式系统概述,Problem9 嵌入式操作系统和PC操作系统比较有什么特点? 编码体积小,精简 面向应用,可裁剪和移植,量体裁衣 实时性强,要求响应速度快 故又称RTOS(Real-Time OS). 可靠性高,第1章嵌入式系统概述,Problem10 设计开发嵌入式系统时,使用什么编程语言? 使用高级语言C/C+ 使用汇编语言 C与汇编语
10、言混编 最新的Java 结论2:嵌入式操作系统是嵌入式系统的软件 核心,第1章嵌入式系统概述,Problem11 设计开发嵌入式系统时,使用编程语言的特点? 与汇编语言的接口,即与汇编语言混合编程 对系统的资源可直接寻址和访问 需要较强的位操作功能 灵活、快速的中断处理和异常事件处理。 结论: 中断和异常事件处理是嵌入式系统最重要的特点。,第1章嵌入式系统概述,Problem11 设计开发嵌入式系统时,高级语言开发的过程?,第1章嵌入式系统概述,Problem12 嵌入式系统调试方法?,第1章嵌入式系统概述,Problem12 嵌入式系统JTAG调试方法(一)? 有调试主机、ARM仿真器(协议
11、转换protocol Con- verter)和目标板个部分组成 在调试主机上安装的工具有编辑和编译系统,库文 件在主机和目标板之间有协议转换模块,称为调 试代理其主要二个作用:协议转换;接口转换, 目标端是JTAG接口,主机端是RS-232口,或USB 口,或是并行口一般的ARM的仿真器大多是基于 JTAG的仿真器,第1章嵌入式系统概述,Problem12 嵌入式系统Angel调试方法(二)? 在目标板上的CPU已经固化了一个完整的调试监控 程序,该程序可接受调试主机的命令,并执行,如 设置断点、单步运行、读写存储器等同时监控 程序将数据传送到主机上 前提:目标板正常工作目标板上固化完整的
12、调试监控程序主机和目标板之间可用串口、并 口、以太网通信,非JTAG口,故占用了用户资源 有一个固化在目标板存储器中的调试监控程序,第1章嵌入式系统概述,Problem12 嵌入式系统仿真头调试方法(三)? 用仿真头的调试方法是传统的调试方法即使用一 个单片机作为仿真头,取代目标板上的CPU这种 在线仿真器和调试主机之间可以有多种连接方式 使用这种方法的仿真器一般设计复杂,因此价格较 昂贵,实际使用中较少,第1章嵌入式系统概述,Problem12 基于软件仿真的调试方法(四)? 前种方法是依赖硬件的调试方法没有CPU,就 无法调试软件调试方法可以不依赖硬件,此时调 试系统提供一个软件仿真工具这
13、个软件仿真工具 对于在调试系统中执行的用户指令作出解释,记录 和报告指令执行的结果,以及存储器和寄存器的变 化软件仿真调试方法主要应用在学习过程中,在 没有硬件支持下学习系统设计调试,检查程序,第1章嵌入式系统概述,思考题: 什么叫嵌入式系统(Embedded system)? XScale处理器微架构有什么特点? 嵌入式操作系统和PC操作系统比较有什么特点? 4. 设计开发嵌入式系统时,使用编程语言的特点? 5. 设计开发嵌入式系统时,高级语言开发的过程?,第2章ARM体系结构,结论:嵌入式微处理器是嵌入式系统的硬件核心 Problem 该如何认识,掌握和使用嵌入式微处理器ARM ? ARM
14、公司将ARM知识产权IP出售给许多IC厂 ARM处理器是32/16bit的RISC架构 ARM架构(Architecture)的特点: 开放的,可扩展结构.低功耗/电压,高集成度 半导体厂和SoC系统厂生产SoC Chip.,第2章ARM体系结构,Problem CISC Vs RISC? CISC:在微处理器的基本指令集不变的情况下,增 加新的指令和逻辑电路,使处理器的功能增强 新的复杂指令不断增加,使处理器设计更加复杂 指令集中的各条指令使用极不合理20%的指令经 常使用,占程序运行时间的80%;80%的指令很少 使用,占了程序运行时间的20% 结论:有用指令使用太少,无用的指令使用太多,
15、第2章ARM体系结构,典型指令使用频度,第2章ARM体系结构,ProblemRISC Vs CISC? RISC:不是简单地减少指令集,而是将着眼点放在 如何使微处理器的结构更加合理,提高运算效率 选取使用频率最高的简单的指令,避免复杂指令, 将指令长度固定,指令格式和寻址方式种类减少, 以硬联线为主,不用或少用微程序控制等措施来 达到目的大量使用寄存器,数据处理只对寄存器 进行,减少对存储器的访存次数优化编译技术,第2章ARM体系结构,ProblemCISC Vs RISC结构?,第2章ARM体系结构,Problem3. 什么是Thumb指令集 ? ARM 指令是32bit指令集, 但目前指
16、令代码利用率较低故定义了16bit Thumb指令集 Thumb指令有更好的代码密度,芯片的size仅仅比原先增加6%,可使程序存储器更小,第2章ARM体系结构,Problem4. ARM为何要有多种工作模式? 工作模式多,微处理器的功能也就强大 ARM有种工作模式: 用户,快中断,中断,管理, 中止,系统, 未定义 除用户模式外,其余均为特权模式提高效率,第2章ARM体系结构,Problem 什么叫在线仿真ICE-RT(In Circuit Emulator-Real Time)? 芯片内部的工作状态无法用常规的方法来测试,故 在设计芯片时,设计了在线实时ICE-RT逻辑,通过 JTAG来仿
17、真调试ARM架构的微处理机 在仿真调试过程中,通过该模块可以设置断点模 块内有多个寄存器,在调试时可以通过串行工作的 扫描链访问这些寄存器,第2章ARM体系结构,Problem 什么是JTAG?是Joint Test Action Group的缩写. 符合IEEE1149.1标准即关于测试访问接口和边界 扫描结构的标准 JTAG接口是目标CPU在调试时与外界连接的最主 要的接口 有条线:TDI 测试数据输入,TDO测试数据输出,TCK测试时钟,TMS测试模式选择 ARM开发工具ADS原理与应用赵星寒,北航出版ISBN7-81077-748-3,第2章ARM体系结构,Problem ARM架构有
18、什么样的接口和总线? 有协处理器接口,可接16个协处理器 即可使ARM内核最小,又方便扩充各种功能 有片上总线OCB(On-chip bus) 的AMBA(Advanced Micro-controller Bus Architecture).,第2章ARM体系结构,Problem8 什么是AMBA(Advanced Micro-controller Bus Architecture)总线架构? OCB(on-chip bus)定义了组总线 先进高性能总线AHB(Advanced high perfor-mance Bus) 先进系统总线ASB(Advanced System Bus) 先进外
19、设总线(Advanced Peripheral Bus),第2章ARM体系结构,Problem9 低电压,低功耗的设计 对CMOS电路来说,功耗Pc计算:,第2章ARM体系结构,Problem10 怎样降低CPU的功耗? 减小工作电压Vdd. 减少门的翻转次数 减少门的数目,降低芯片的集成度 降低时钟的频率,第2章ARM体系结构,Problem10 ARM的架构是怎样的?,第2章ARM体系结构,Problem11算数和逻辑单元ALU的逻辑结构?,第2章ARM体系结构,Problem12 算数逻辑单元ALU结构?,第2章ARM体系结构,Problem11算数和逻辑单元ALU的逻辑结构? 假设n-
20、bit的ALU由S=(Sk-1,S0)选择位决定对 n-bit的输入A=(An-1,.,A0),B=(Bn-1,B0)是执行算数运算还是逻辑运算,输出Z=(Zn-1,Z0). 假设有种功能,需要个选择变量S2,S1,S0.,第2章ARM体系结构,第2章ARM体系结构,第2章ARM体系结构,上图是完整的ALU.每一个操作数可选是否取反,然后相加或在逻辑单元中组合最终选需要的结果送到总线上 标识位C和V在加法器中产生,标志位N来自结果的31位的拷贝,标志位Z则从整个结果总线求值 产生标志位Z需要输入端的“或非”门 加法器在ARM9TDMI中进一步改进使用了进位判决(carry arbitratio
21、n)加法器,该加法器使用 “并行前置(parallel-prefix)”逻辑结构树,第2章ARM体系结构,Problem13 桶型移位寄存器结构? 减少移位延迟时间,采用3232的桶型移位器 可以使左移右移n位,环移n位和算数右移n位都可一次完成 例44为的桶形移位寄存器的示意图,第2章ARM体系结构,Problem13 桶型移位寄存器结构?,第2章ARM体系结构,Problem13 桶型移位寄存器工作 例:IN=1001,右移2位,变成 OUT=0010. 右的个交叉开关接上,OUT1=IN3,OUT0 =IN2. OUT2=OUT3=0不变 IN=1001,右环移位,变成OUT=1100.
22、 右1和左3开关同时接上,OUT0=IN1,OUT1= IN2,OUT2=IN3,OUT3=IN0. 算数右移只要把没有连接的输出位同时充以”0”.,第2章ARM体系结构,Problem15 高速乘法器有什么作用? 通常乘法器采用“加移位”的原理方法实现 ARM为提高运算速度,用了两位乘法的方法,第2章ARM体系结构,Problem16 高速乘法器有什么作用?,第2章ARM体系结构,Problem16 浮点部件有什么作用?,第2章ARM体系结构,Problem17 控制器部件有什么作用?,第2章ARM体系结构,Problem18为何要有寄存器?共有多少个寄存器? RISC的特点是大量使用寄存器
23、数据处理在R中 共有37个32bit寄存组被分成若干组(BANK) 31个通用寄存器:包括程序计数器PC. 6个状态寄存器:用以标识CPU的工作状态及程序的运行状态,目前只使用了其中的一部分 这些寄存器不能被同时访问,取决CPU的模式 但在任何时侯,通用寄存器R0R14,程序计数器PC,12个状态寄存器是可访问的,第2章ARM体系结构,Problem19 为何要有寄存器?共有多少个寄存器? R0R15是32bit通用寄存器,R15是程序计数器 PC,R14是链接寄存器LR,R13是堆栈指针SP. 当前状态寄存器CPSR(Current Program Status Register)包含N,Z
24、,C,V,Q,I,F,T,Mode位 保护程序状态寄存器SPSR(Saved ProgramStatus Register)在系统模式下保存CPSR中的内容,第2章ARM体系结构,Problem20 ARM的编程模式? 有用户模式和系统模式 系统模式包括:系统、快中断请求FIQ(Fast Int -errupt Request)、中断请求IRQ(Interrupt Req uest)、管理SVC(Supervisor)、中止(Abort)、和 未定义(Undefined)模式。 总共有种模式,第2章ARM体系结构,Problem20 CPSR中的每位含义 条件码标识: 负数标识 结果为标识 进
25、位位标识 溢出标识 DSP的溢出饱和(选用).,第2章ARM体系结构,Problem20 CPSR中的每位含义 控制位: I-IRQ中断禁止位 F-FIQ快中断禁止位 TThumb位 Mode:处理器的工作模式 SPSR:保存CPSR的内容,第2章ARM体系结构,Problem21何为ARM的Thumb状态 Thumb状态寄存器只是全部寄存器中的一部分 用R0-R7,R13(SP),R14(LR),R15(PC)和CPSR Thumb的工作模式和ARM的工作模式一样,也有种 每种模式都有一组:SP,LR SPSR寄存器.,第2章ARM体系结构,Problem21何为ARM的Thumb状态,第2
26、章ARM体系结构,Problem22 什么叫异常(Exception)? 是由内部或外部中断源产生,引起处理器处理 处理异常前,原状态必须保留,使得异常处理完成后,原来的程序又可重新执行下去 在同一个时刻,可能出现多个异常 工作在异常模式时,R14和SPSR用于保存状态,第2章ARM体系结构,Problem22如何处理异常(Exception)?,第2章ARM体系结构,R14_=return link SPSR_=CPSR CPSR4:0=execption mode number CPSR5=0 /* */ If=Reset or FIQ then CPSR6=1 /* */ CPSR7=1
27、 /* */ PC=exception vector address,第2章ARM体系结构,Problem23复位? 复位时完成下列操作 R14_svc=UNPREDICTABLE Value SPSR_svc=UNPREDICTABLE Value CPSR4:0=0b10011 CPSR5=0 CPSR6=1 CPSR7=1 PC=0 x0000 0000,第2章ARM体系结构,Problem24软件中断SWI(Software Interrupt)? 软件中断SWI指令进入管理模式,常用于调用OS. 完成以下操作: r14_svc=addre of next instruntion af
28、ter the SWI instruction SPSR_SVC=CPSR CPSR4:0=0b10011 CPSR5=0 CPSR7=1 PC=0 x0000 0008,第2章ARM体系结构,Problem25 中断请求IRQ(Interrupt Requist)做什么? 通过IRQ输入脚产生外部中断请求 CPSR中的I=1,禁中断=,开中断 R14_irq=address of next instruction to be executed+4 SPSR_irg=CPSR CPSR4:0=0b10010 CPSR5=0 CPSR7=1 PC=0 x0000 0018,第2章ARM体系结构,
29、Problem25 中断请求IRQ(Interrupt Requist)返回? 可通过“SUBS PC,R14,#4”指令从中端服务返回, 并恢复PC和CPSR的值,在继续执行被中断的原先 的程序,第2章ARM体系结构,Problem25 快速中断请求FIQ(Fast Interrupt Request) ? 通过FIQ输入脚产生外部快中断请求 FIQ优先级高于IRQ.进入FIQ会屏蔽IRQ CPSR的F=1,禁快中断; F=0开快中断,第2章ARM体系结构,R14_fiq=address of next instruction to be executed+4 SPSR_fiq=CPSR C
30、PSR4:0=0b10001 CPSR5=0 CPSR6=1 PC=0 x0000 001C 可通过“SUBS PC,R14,#4”指令从中端服务返回, 并恢复PC和CPSR的值,在继续执行被中断的原先 的程序,第2章ARM体系结构,Problem26 ARM流水线结构特点?,第2章ARM体系结构,Problem27 ARM架构的级流水线原理,第2章ARM体系结构,Problem28 ARM架构的级流水线原理,第2章ARM体系结构,Problem29 ARM架构流水线的数据相关问题,第2章ARM体系结构,Problem30 ARM架构流水线的控制相关问题,第2章ARM体系结构,Problem3
31、1 ARM处理器的存储器寻址空间有多大? ARM内部设计有高速缓冲存储器(Cache). 即指令快存:I-Cache;数据快存: D-Cache 目前可以寻址的空间是:,第2章ARM体系结构,Problem32 ARM处理器的内部有RAM 和 ROM吗? ARM处理器的片内没有RAM 和 ROM.系统需要的RAM ,ROM和Flash都需要通过总线Bus外接寻址空间范围是4GB. 片内有MMU(Memory Management Unit)进存储器的管理 可外接PCMCIA.,第2章ARM体系结构,Problem33 ARM处理器的存储空间是怎样规划的? 存储空间可以分为: 可快存可缓冲区(C
32、acheable/Bufferable). 不可快存不可缓冲区,第2章ARM体系结构,Problem34 ARM该如何连接 Memory? 首先要知道Memory细节: DRAM的时序图 DRAM的管脚图 ROM 发展趋势: Flash 逐步代替 ROM.,第2章ARM体系结构,Problem35动态DRAM的时序图,第2章ARM体系结构,Problem36 为何要设计高速缓冲存储器Cache? 主存和CPU之间有速度的差距 Cache存储器介于CPU和主存之间 Cache速度比主存快可解决存储速度的问题 构成:Cache-主存层次从CPU角度来看,速度接近Cache,而容量接近于主存,第2章
33、ARM体系结构,Problem37 ARM中Cache架构特点是什么? 以前是将指令和数据的Cache设计在一块 目前是将指令和数据的Cache分开设计,分别是 I-Cache, D-Cache.称为哈佛结构 哈佛结构可以提高处理器的处理速度,第2章ARM体系结构,Problem38Cache架构的性能比较,第2章ARM体系结构,Problem39 主存的信息是如何放到Cache中? Cache的容量比主存容量小 要用某种函数将主存地址映像到Cache中称为地址映像 三种映像: 直接映像(Direct Mapped), 组相联映像(Set associative), 全相联映像(Fully a
34、ssociative),第2章ARM体系结构,Problem40 什么是直接映像(Direct Mapped)? 如果: j是cache的字块号, i是主存的字块号 主存的第0,c, 2c+1块映像到cache的 第快,类推,第2章ARM体系结构,Problem41 什么是组相联映像(Set associative)? 如果把cache字块分为c组,每组含2r个字块, 则有c=c+r. 主存的字块 Mm(i)(0 i 2m -1)映像到 cache字块Mc(j)(0 j 2c -1) ,第2章ARM体系结构,Problem42 什么是全相联映像(Fully associative)? 主存的块
35、可以放到cache的任意一块中 用内容寻址存储器CAM(Content Addressed Memory)来实现 送来的地址与Cache所有项中的地址标识作比较,以判断是否命中 命中率高,但设计的芯片面积较大,第2章ARM体系结构,Problem42 ARM架构的映像方式是怎样的? 新型的ARM架构采用的是分块(段)的全相联结构,第2章ARM体系结构,Problem ARM 的MMU结构特点 ARM中有大页(64KB),小页(4KB),微页(1KB)和段(1MB) ARM的存储器管理通过系统控制协处理器CP15来实现 协处理器CP15共有16个寄存器R0R15 其中寄存器R4,R11,R12是
36、保留的,第2章ARM体系结构,Problem协处理器CP15中的各寄存器作用 R0-ID寄存器 R1-控制寄存器 R2-地址变换表基址 R3-域访问控制寄存器 R5-故障状态寄存器 R6-故障地址寄存器 R7-Cache快存操作,第2章ARM体系结构,Problem协处理器CP15中的各寄存器作用 R8-变换后备缓冲器TLB操作 R9-读缓冲操作 R10-变换后备缓冲器TLB锁住 R13进程ID映像 R14-调试支持 R15-调试和时钟控制,第2章ARM体系结构,Problem43 ARM架构处理器核和处理器内核的I/O结构是怎样的? ARM架构的核一般是没有I/O部件和模块. 处理器中的I/
37、O可以通过AMBA总线来扩充.,第2章ARM体系结构,Problem44 ARM是如何采用存储器映像I/O的方式? 将I/O端口地址作为特殊的存储器地址. I/O与真正的存储器读/写有不同之处,存储器可 重复读,读出值不变.I/O输入值会变化. I/O单元对用户码是不可访问的. I/O设备的访问只可以通过系统管理调用(SWI)或 C的库函数来使用这些调用.,第2章ARM体系结构,Problem45 ARM中何时使用DMA方式? 当数据流量比较大. 当中断处理比较频繁时 不需要处理器介入. SA-1110和XScale处理器具有DMA方式,第2章ARM体系结构,Problem4 ARM的中断方式
38、有哪些? 有快速中断FIQ. 有一般中断IRQ.,第2章ARM体系结构,Problem47 ARM的中断方式有哪些? 有快速中断FIQ. 有一般中断IRQ.,第2章ARM体系结构,Problem48 FIQ中断方式的特点有哪些? FIQ可以缩短中断的响应时间 FIQ的中断向量为0 x1C,位于中断向量表的最后 FIQ的中断处理服务程序可以直接放在0 x1C开始 的存储单元,省去中断中的分支指令,省时间 用cache的锁操作,将中断向量和处理程序一起锁在cache 中,提高响应速度,第2章ARM体系结构,Problem48 FIQ中断方式的特点有哪些? ,第2章ARM体系结构,Problem49
39、 ARM的协处理器接口特点? 增加硬件协处理器,可支持指令集的扩充 最多有个逻辑协处理器 每个协处理器有多达个寄存器 协处理器使用Load/Store体系结构,第2章ARM体系结构,Problem49 ARM7TDMI的协处理器接口特点?,第2章ARM体系结构,Problem49 ARM的AMBA(Advanced Microcontroller Bus)接口 有何特点? 是片上总线OCB(On-Chip Bus)的标准 有高性能总线AHB(Advanced High-performance Bus),先进系统总线ASB(Advanced System Bus), 先进外设总线APB(Adva
40、nced Peripheral Bus).,第2章ARM体系结构,Problem50ARM的AMBA(AdvancedMicrocontro ller Bus)接口如何连接?,第2章ARM体系结构,Problem51ARM的ASB(Advanced System Bus),有 啥特点? 用来连接高性能系统模块. 支持突发(Burst)方式数据传送. 可支持多主机.,第2章ARM体系结构,Problem52ARM的AHB(Advanced High-perfor- mance Bus),有啥特点? 支持突发(Burst)方式数据传送. 支持分离式总线事物处理,提高总线利用率. AHB有逐步代替A
41、SB的趋势,第2章ARM体系结构,Problem53ARM的APB(Advanced peripheral- Bus),有啥特点? 为外围宏单元提供接口. UART,Timer,Paraller Port.,第2章ARM体系结构,Problem54AMBA接口该如何测试好或坏? AMBA提供了模块测试的途径 测试设备作为ASB总线上的主设备,来测试AMBA上的各个模块,第2章ARM体系结构,Problem55JTAG是什么意思? ARM内核提供了IEEE1149.1标准的JTAG(Joint Test Action Group)调试接口 JTAG使用边界扫描技术 JTAG采用边界扫描技术与AR
42、M CPU内核通信,不使用ARM片上任何硬件资源,也不需要目标存储器, 且JTAG调试的目标程序是在目标板上执行的,故仿真调试更接近于目标硬件,容易发现程序中的问题另外JTAG较便宜,第2章ARM体系结构,第2章ARM体系结构,第2章ARM体系结构,第2章ARM体系结构,Problem55目前的ARM处理器内核有多少种? ARM架构的内核有: ARM7TDMI,ARM8,ARM9TDMI,ARM10TDMI,ARM11 StrongARM(SA-1)等,第2章ARM体系结构,Problem56ARM7TDMI内核组织结构?,第2章ARM体系结构,Problem57ARM7TDMI与存储器如何联
43、接? 用接口的32位地址总线A31:0. 用接口的32位双向数据总线D31:0. 单向32位数据总线Din31:0和Dout31:0. 存储器访问请求 . 地址顺序seq. 访问宽度mas1:0. 数据锁存控制bl3:0.,第2章ARM体系结构,Problem58ARM7TDMI访问存储器种类型? 访问存储器的种类型由mreq,seq信号控制 ,第2章ARM体系结构,Problem59ARM7TDMI协处理器接口信号? 应答信号 . 区分操作码和取数信号 . 协处理器指令信号 . 是协处理器至ARM7TDMI核应答信号.,第2章ARM体系结构,Problem60?,第2章ARM体系结构,Pro
44、blem61ARM7TDMI的JTAG调试方法?,第3章ARM指令系统,ARM指令集架构ISA(Instruction Set Architecture). 指令集架构ISA是软件与硬件层之间的接口 软件方面:提供了微处理器的汇编语言指令是用户和微处理器之间,在最最底层的接口 硬件方面:为指令提供了需要的寄存器组在微处理器中,会提供一组用户所看见的寄存器,第3章ARM指令系统,ARM指令集架构ISA(Instruction SetArchitecture).,第3章ARM指令系统,Problem60ARM指令系统有何特点? 与X86(CISC)不同. 看某条指令:SUBNES R4,R5,R7
45、,LSR R2 指令结构:,第3章ARM指令系统,Problem61指令结构的含义? cond,bit2831. I,bit25.决定operand2的格式 Opcode,bit2124.操作码 Rn,bit1619.第操作数寄存器编号 Rd,bit1215.结果寄存器编号 S,bit20.对标志寄存器的影响 operand2,bit011,第2操作数,第3章ARM指令系统,Problem61ARM指令特点? 所有的指令都是条件执行 第操作数是非常灵活 提供协处理器接口,增加复杂功能 16位的Thumb指令提高代码密度 指令的特点,指令少,且等长,利用流水线技术,使用多寄存器,且多为用简单的L
46、oad/Store指令,第3章ARM指令系统,Problem61ARM指令大致分类? 分支类指令 数据处理类指令 乘法类指令 数据传送类指令 协处理器类指令 及杂项指令,第3章ARM指令系统,Problem62ARM指令集,第3章ARM指令系统,第3章ARM指令系统,第3章ARM指令系统,第3章ARM指令系统,协处理器类及杂项指令,第3章ARM指令系统,第3章ARM指令系统,Problem62何为ARM指令的条件域? 在ARM状态下: 指令是根据CPSR以及条件域有条件地执行 条件域决定在什么时候执行该条指令 如果对应的C,N,Z和V满足条件域的条件,就执行该指令否则就忽略它 条件共有16种,
47、以2个字母的后缀出现在助记符 见 P.97, 表3-3条件码,第3章ARM指令系统,第3章ARM指令系统,第3章ARM指令系统,第3章ARM指令系统,Problem63ARM指令的寄存器寻址? 寄存器寻址 ADD R0,R1,R2 ; R0R1+R2,第3章ARM指令系统,Problem64立即数寻址? 立即数寻址 ADD R3,R3,#1 ; R3R3+1,第3章ARM指令系统,Problem65寄存器间接寻址? 寄存器间接寻址 LDR R0, R3 ; (R3)R0,第3章ARM指令系统,Problem66寄存器变址? 寄存器变址 LDR R0R1,#14 ; (R1)+4)R0 LDR
48、R0,R1,#4!; LDR R0,R1,#4; LDR R0,R1,R2;,第3章ARM指令系统,Problem67多寄存器寻址? 多寄存器寻址 LDMIA R1, R0,R2,R5 ; R0R1,R2R1+4, R5R1+8,第3章ARM指令系统,Problem68堆栈寻址? 堆栈寻址 向上生长:向高地址方向生长,递增堆栈 向下生长:向低地址方向生长,递减堆栈,第3章ARM指令系统,Problem69块拷贝寻址?,第3章ARM指令系统,Problem70相对寻址? 相对寻址 B rel ;(PC)+rel PC,第3章ARM指令系统,Problem70ARM转移类指令? BX转移及改变指令
49、集. BXcondRm,其中:Rm含转移地址的寄存器 例:BX R7 BXVS R0 B和BL-转移及带链接转移 Bcondlabel BLcondlabel,第3章ARM指令系统,BLX-带链接分支并可选地交换指令集 BLXcondRm BLX label,第3章ARM指令系统,Problem71ARM数据处理类指令? 灵活的第操作数operand2. 其中,operand2有2种形式: #immed_8r: Rm,shift:Rm存储第操作数的寄存器; shift表示位移,有ASR,LSR, LSL, ROR, RRX,第3章ARM指令系统,Problem71ARM数据处理类指令? ADD
50、,SUB,RSB,ADC,SBC,RSC,AND,ORR,EOR, 和BIC指令 句法:OpcodecondSRd,Rn,operand2 Opcode ADD,SUB,RSB,ADC,SBC,RSC,AND,ORR,EOR, BIC之一 可选后缀,更新条件码标志 Rd 结果寄存器 operand2 灵活的第2操作数,第3章ARM指令系统,数据处理类指令的字节码结构见P.101, 图3-4 用法: ADD SUB RSB ADC SBC RSC AND ORR EOR BIC,第3章ARM指令系统,条件码标志: 若指定S,则将改变N,Z,C,和V R15的使用: 若R15作为Rn使用,则使用的
51、值是指令的地址加 8,移位不允许使用R15,第3章ARM指令系统,MOV,MVN-传送和传送非指令 MOVcondSRd,operand2 MVNcondSRd,operand2 MOV R5,R2 MVNNE R11,#0 xF000000B MOVS R0,R0,ASR R3 MOV PC,R14 MOVS PC,R14,第3章ARM指令系统,CMP,CMN,TST,TEQ opcodecondRn,operand2 改变N,Z,C,V CMP R2,R8 CMN R1,#6400 CMPGT R13,R7,LSL #2 TST R1,0 x3F8 TEQEQ R10,R8,第3章ARM指
52、令系统,CLZ-前导0计数 CLZcondRd,Rm;Rd是寄存器,不允许是R15 CLZ R4,R9 CLZNE R2,R3 MUL,MLA-乘法和乘加(32位32位,结果为低32位). MULcondSRd,Rm,Rs;RdRmRs MLAcondSRd,Rm,Rs;Rn,RdRmRs+Rn,第3章ARM指令系统,UMULL,UMLAL,SMULL,SMLAL opcondSRdLo,RdHi,Rm,Rs UMULL R1,R4,R2,R3 SMULLLE R1,R5,R2,R3 SMULxy(带符号乘法)-16位16位, 结果32位 SUMLcondRd,Rm,Rs SMULTBEQ R
53、5,R7,R9 ;,第3章ARM指令系统,SMLAxy-(带符号乘加)-16位16位,结果为32位 SMLAcondRd,Rm,Rs,Rn SMLATT R8,R1,R0,R8 SMULWy-带符号乘(32位16位,结果为高32位) SMULWcondRd,Rm,Rs SMULWB R2,R4,R7,第3章ARM指令系统,SMLAWy-带符号乘加(32位16位,用高32位进行加法) SMLAWcondRd,Rm,Rs,Rn SMLAWB R2,R4,R7,R1 SMLAWTVS R0,R0,R9,R2 SMLALxy-带符号乘法(16位16位,加法为64位) SMLALcondRdLo,RdH
54、i,Rm,Rs SMLALTB R2,R3,R7,R1,第3章ARM指令系统,Problem72单数据传送类指令? LDR-data:MEMREG. STR-data:REGMEM. condBTRd, LDR R1,R10 LDRNE R2,R5,#5! STR R1,R2,R4 LDR R1,R2,R3,LSL #2 LDR R0,localdata,第3章ARM指令系统,Problem73半字和带符号数据传送类指令? ,第3章ARM指令系统,Problem7双字传送类指令? ,第3章ARM指令系统,Problem7块数据传送类指令? ,第3章ARM指令系统,Problem7Cache预加
55、载指令? ,第3章ARM指令系统,Problem7单数据交换指令? ,第3章ARM指令系统,Problem7软件中断指令? SWIcondimmed_24 SWI 0 x123456,第3章ARM指令系统,Problem79MRS,MSR指令? MRScondRd,psr MSRcond_,#immed_8r MSRcond_,Rm,第3章ARM指令系统,Problem断点指令? BKPT immed_16 ,第3章ARM指令系统,Problem81ARM伪指令? ADR把与程序相关的或与寄存器相关的地址调进寄存器中 ADRcondregister,expression start MOV R
56、0,#10 ; ADR R4,start; 等同SUB R4,PC,#0 xC,第3章ARM指令系统,Problem81ARM伪指令? ADRLlike ADR ADRLcondregister,expression start MOV R0,#10 ; ADRL R4,start+6000 ;,第3章ARM指令系统,Problem81ARM伪指令? LDFD- LDFDcondfp-register,=expression LDFD f1,=3.12E106 LDFS- LDFScondfp-register,=expression LDFS f1,=3.12E-6,第3章ARM指令系统,P
57、roblem81ARM伪指令? LDR- LDRcondregister,=expression|label-expression LDR R1,=0 xff LDR R2,=place,第3章ARM指令系统,Problem81ARM伪指令? NOP-,第3章ARM指令系统,Problem82XScale新增指令? MIA乘法指令 MIAPH乘法指令 MIAxy乘法指令 MAR,MRA内部累加器访问指令,第3章ARM指令系统,Problem83Thumb指令集特点? 分支指令 数据处理指令 单寄存器Load/Store指令 多寄存器Load/Store指令 见P.122,表3-5,Thumb指
58、令概述.,第3章ARM指令系统,ARM的汇编语言/C/C+程序设计方法 (1)ARM开发工具ADS1.2使用方法特点: 在ADS1.2中,工程项目是一个很重要的概念,连接和 调试都是以工程项目为基本单位.源程序必须被工程 项目所包含后,才可以使用.正确合理地设置工程项 目,才可使程序的调试工作进行得更加顺利.,第3章ARM指令系统,(2)建立一个设计程序的工程项目(Project)? 打开CodeWarrior IDE. File New弹出对话框. 有Project,File,Object,选中Project使用 ARM Executable Image,生成ELF格式文件 输入项目文件名称
59、(Project Name)和项目所在的位置(Location),第3章ARM指令系统,(3)建立一个程序的源文件(Text File)? 打开CodeWarrior IDE. File New弹出对话框. 有Project,File,Object三项,选中File使用 ARM Executable Image,生成ELF格式文件 输入源文件名(File Name)一定要同时输入文件的扩展名如是汇编语言,扩展名是.s如果是语言,其扩展名是.c如果是,其扩展名是.cpp 输入源文件所放置的位置(Location). OK确定.,第3章ARM指令系统,(4)如何把源程序的文件添加到工程项目中? 对一个单独的、没有包含在工程项目中的源文件,是不能进行编译和连接的 ARM Executable Image可以包含多种源文件 可以用Add Files添加文件到工程项目中 有个选项决定了源文件被处理后的生成目标类型:DebugRel, Release,Debug. 选择Debug.,第3章ARM指令系统,(5) 如何正确打开工程项目进行程序设计和管理? 在工具栏中使用File Open. 打开文件夹中的工程项目,其扩展名是*.mcp 只有打开了工程文件*.mcp,才能工作正常
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2020-2025年中级银行从业资格之中级风险管理考前冲刺试卷A卷含答案
- 北镇高二教学课件
- 卡通画教学课件
- 电子天平的使用方法和称量操作化学基础与分析技术84课件
- 2025年安徽滁州市定远县事业单位公开招聘工作人员笔试(含加分)笔试历年典型考题及考点剖析附带答案详解
- 第六章护肤用化妆品64课件
- 作文的改写教学课件
- 2025年人力资源管理师二级薪酬设计在新兴行业中的应用试题含答案
- 2025年新高一英语人教新版学困生专题复习《书面表达》
- 2025年游戏化营销在珠宝首饰行业的品牌传播创新与实践报告
- 2025四川成都市新都区事业单位招聘历年管理单位笔试遴选500模拟题附带答案详解
- 开封市第一届职业技能大赛保健按摩师项目样题(康养照护品牌)
- 2024在用井口装置检验技术指南
- 2024年第一季度医疗安全(不良)事件分析报告
- 足下垂的原因及治疗方法
- 隔板理论获奖课件
- 一级焊缝施工方案
- 2024年印度饲料原料行业状况及未来发展趋势报告
- 2024-2030年墨西哥GPON家庭网关市场前景分析
- 中药热奄包疗法操作评分标准
- 广东深圳市南山区机关事业单位面向高校毕业生招聘编外人员104人历年重点基础提升难、易点模拟试题(共500题)附带答案详解
评论
0/150
提交评论