嵌入式系统导论-2分析.ppt
文本预览下载声明
嵌入式系统导论 第二讲 嵌入式系统的硬件平台ARM 一、ARM技术概述 1、ARM技术的历史 ARM是“Advanced RISC Machine”的缩写。 20世纪80年代由Acorn公司生产出第一片ARM处理器,应用于台式机。 20世纪90年代成立公司“Advanced RISC Machine Limited”,进入嵌入式领域。 2、 ARM体系结构的不同版本 自版本3开始的ARM6开始采用32位CPU ARM体系结构有许多变种: Thumb指令集(T变种) Thumb指令集是把32位的ARM指令集的一个子集重新编码后而形成的一个特殊的16位的指令集。 长乘指令(M变种) 增强型DSP指令(E变种) Java加速器Jazelle(J变种) ARM媒体功能扩展(SIMD变种) 3、Thumb技术介绍 Thumb是ARM体系结构的扩展。它有从标准32位ARM指令集抽出来的36条指令格式,可以重新编成16位的操作码。这能带来很高的代码密度 ARM7TDMI是第一个支持Thumb的核,支持Thumb的核仅仅是ARM体系结构的一种发展的扩展,所以编译器既可以编译Thumb代码,又可以编译ARM代码 支持Thumb的ARM体系结构的处理器状态可以方便的切换、运行到Thumb状态,在该状态下指令集是16位的Thumb指令集 ARM7TDMI的含义: ARM7:32位ARM体系结构4T版本 T :Thumb 16位压缩指令集 D :支持片上Debug,使处理器能够停止,以响应调试请求 M :增强型Multiplier,产生64位结果 I :EmbeddedICE硬件,支持片上断点 4、 ARM处理器工作状态 ARM处理器工作状态有2种: ARM状态。 32位,ARM状态下执行字对准的32位ARM指令; Thumb状态。16位,Thumb状态下执行半字对准的16位Thumb指令。 5、ARM处理器工作模式 ARM处理器有7种工作模式: 用户模式:程序正常执行模式 FIQ模式:处理快速中断模式,支持高速数据传送或通道处理 IRQ模式:处理普通中断模式 SVC模式:OS保护模式,处理软中断 中止模式(Abort):处理存储器故障,实现虚拟存储器和存储器保护 未定义模式( Undefined ):处理未定义的指令陷阱,支持硬件协处理器的软件仿真 系统模式:运行特权操作系统任务 除用户模式外的其他6种模式称为特权模式,特权模式中除系统模式以外的5种模式又称为异常模式 6、ARM寄存器组 ARM处理器总共有37个寄存器,可以分为以下两类寄存器 31个通用寄存器: R0~R15; R13_svc、R14_svc; R13_abt、R14_abt; R13_und、R14_und; R13_irq、R14_irq; R8_frq ~ R14_frq。 R0~R7是不分组寄存器。这意味着在所有处理器模式下,它们每一个都访问的是同一个物理寄存器。它们是真正并且在每种状态下都统一的通用寄存器。 分组寄存器R8~R12 。在FIQ模式下一组,非FIQ模式下一组。 分组寄存器R13、R14。 R13通常用做堆栈指针SP, R14用作子程序链接寄存器(Link Register-LR),也称为LR 寄存器R15被用作程序计数器,也称为PC 6个状态寄存器: CPSR;SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq和SPSR_fiq CPSR:程序状态寄存器,可定义ARM的模式,类似PSW SPSR:程序状态保存寄存器,当异常出现时,SPSR保存原始的CPSR Thumb状态下的寄存器集是ARM状态下寄存器集的子集。程序员可以直接访问8个通用的寄存器(R0~R7),程序计数器PC、堆栈指针SP、连接寄存器LR和当前状态寄存器CPSP。每一种特权模式都各有一组SP,LR和SPSR。 7、ARM的异常中断 异常中断用来处理软件中断、未定义指令陷阱(及系统复位功能(它在逻辑上发生在程序执行前而不是在程序执行中,尽管处理器在运行中可能再次复位)和外部事件,这些“不正常”事件都被划归“异常”,因为在处理器的控制机制中,它们都使用同样的流程进行异常处理。 ⑴ARM的异常中断响应过程 ①将CPSR的内容保存到将要执行的异常中断对应的SPSR中 ②设置当前状态寄存器CPSR中的相应位 ③将引起异常指令的下一条指令的地址保存到新的异常工作模式的R14 ④给程序计数器(PC)强制赋值 每个异常模式对应有两个寄存器R13_mode、R14_mode分别保存相应模式下的堆栈指针、返回地址;堆栈指针可用来定义一个存储区域保存其它用户寄存器,这样异常处理程序就可以使用这些寄存器。 FIQ模式还有额外的专用寄存器R8_fiq~R12_fiq,
显示全部