1 / 108

嵌入式系统设计

嵌入式系统设计. 王行甫 wangxfu@ustc.edu.cn 0551_63607858 中国科学技术大学计算机学院. 主讲内容. 第 1 章 嵌入式系统概述 第 2 章 ARM 微处理器概述与编程模型 第 3 章 ARM9 指令系统 第 4 章 嵌入式程序设计基础 第 5 章 嵌入式内部可编程模块 第 6 章 嵌入式接口技术应用 第 7 章 软件开发环境. 第 2 章 ARM 微处理器概述与编程模型. ARM 微处理器概述 ARM 微处理器结构 ARM 微处理器的工作状态 ARM 体系结构的存储器格式 处理器模式

glora
Télécharger la présentation

嵌入式系统设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 嵌入式系统设计 王行甫 wangxfu@ustc.edu.cn 0551_63607858 中国科学技术大学计算机学院

  2. 主讲内容 第1章 嵌入式系统概述 第2章 ARM微处理器概述与编程模型 第3章 ARM9指令系统 第4章 嵌入式程序设计基础 第5章 嵌入式内部可编程模块 第6章 嵌入式接口技术应用 第7章 软件开发环境

  3. 第2章 ARM微处理器概述与编程模型 ARM微处理器概述 ARM微处理器结构 ARM微处理器的工作状态 ARM体系结构的存储器格式 处理器模式 寄存器组织 异常(Exceptions)

  4. 2.1 ARM微处理器概述 ARM公司简介 ARM是Advanced RISC Machines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC (精简指令集)处理器。 公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM厂商,并提供服务。

  5. 2.1 ARM微处理器概述 ARM公司简介 . . . 将技术授权给其它芯片厂商 形成各具特色的ARM芯片

  6. 2.1 ARM微处理器概述 ARM(Advanced RISC Machines)有3种含义 一个公司的名称 一类微处理器的通称 一种技术的名称

  7. 2.1.1 ARM微处理器的特点 采用RISC架构的ARM微处理器一般具有如下特点: 体积小、低功耗、低成本、高性能; 支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件; 大量使用寄存器,指令执行速度更快; 大多数数据操作都在寄存器中完成; 寻址方式灵活简单,执行效率高; 指令长度固定。

  8. 2.1.2 ARM微处理器系列 ARM处理器的产品系列非常广,包括ARM7、ARM9、ARM9E、ARM10E、ARM11和SecurCore、Cortex等。以及其它厂商基于ARM体系结构的处理器,除了具有ARM体系结构的共同特点以外,每一系列提供一套特定的性能来满足设计者对功耗、性能、体积的需求。 表2-1总结了ARM各系列处理器所包含的不同类型。

  9. 2.1.2 ARM微处理器系列

  10. 2.1.2 ARM微处理器系列

  11. 2.1.2 ARM微处理器系列 ARM Cortex系列简介 A应用处理器(Application Processor )系列 R实时控制处理(Real Time Control )系列 M微控制器(Micro Controller )系列 基于ARMv7版本的ARM Cortex系列产品由A、R、M三个系列组成,具体分类延续了一直以来ARM面向具体应用设计CPU的思路。 ARM Cortex

  12. 2.1.2 ARM微处理器系列 CortexTM-M3处理器简介 该处理器是首款基于ARMv7-M架构的处理器,采用了纯Thumb2指令的执行方式,具有极高的运算能力和中断相应能力。 Cortex-M3主要应用于汽车车身系统,工业控制系统和无线网络等对功耗和成本敏感的嵌入式应用领域。目前最便宜的基于该内核的ARM单片机售价为1美元。

  13. 2.1.2 ARM微处理器系列 CortexTM-R4处理器简介 该处理器是首款基于ARMv7架构的高级嵌入式处理器,其主要目标为产量巨大的高级嵌入式应用系统,如硬盘,喷墨式打印机,以及汽车安全系统等等。 • CortexTM-R4F处理器简介 该处理器在CortexTM-R4处理器的基础上加入了代码错误校正(ECC)技术,浮点运算单元(FPU)以及DMA综合配置的能力,增强了处理器在存储器保护单元、缓存、紧密耦合存储器、DMA访问以及调试方面的能力。

  14. 2.1.2 ARM微处理器系列 CortexTM-A8处理器简介 该处理器是ARM公司所开发的基于ARMv7架构的首款应用级处理器,其特色是运用了可增加代码密度和加强性能的技术、可支持多媒体以及信号处理能力的NEONTM技术、以及能够支持Java和其他文字代码语言的提前和即时编译的Jazelle@RTC技术。 众多先进的技术使其适用于家电以及电子行业等各种高端的应用领域。

  15. 2.1.2 ARM微处理器系列 ARM7系列简介 该系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T和扩充了Jazelle的ARM7EJ-S。该系列处理器提供Thumb 16位压缩指令集和EmbededICE软件调试方式,适用于更大规模的SoC设计中。 ARM7系列广泛应用于多媒体和嵌入式设备,包括Internet设备、网络和调制解调器设备,以及移动电话、PDA等无线设备。

  16. 2.1.2 ARM微处理器系列 ARM9系列简介 该系列包括ARM9TDMI、ARM920T和带有高速缓存处理器宏单元的ARM940T。除了兼容ARM7系列,而且能够更加灵活的设计。 ARM9系列主要应用于引擎管理、仪器仪表、安全系统和机顶盒等领域。

  17. 2.1.2 ARM微处理器系列 ARM9E系列简介 该系列为含有DSP指令集的综合处理器,包括ARM926EJ-S、带有高速缓存处理器宏单元的ARM966E-S/ARM946E-S。其内核在ARM7处理器内核的基础上使用了Jazelle增强技术,该技术支持一种新的Java操作状态,允许在硬件中执行Java字节码。 ARM9E系列主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。

  18. 2.1.2 ARM微处理器系列 ARM10E系列简介 该系列包括ARM1020E和ARM1020E处理器核,其核心在于使用向量浮点(VFP)单元VFP10提供高性能的浮点解决方案,从而极大提高了处理器的整型和浮点运算性能。 可以用于视频游戏机和高性能打印机等场合。

  19. 2.1.2 ARM微处理器系列 Xscale简介 Intel Xscale微控制器则提供全性能、高性价比、低功耗的解决方案,支持16位Thumb指令并集成数字信号处理(DSP)指令。 主要应用于手提式通讯和消费电子类设备。

  20. 2.2. ARM微处理器结构 2.2.1 RISC体系结构 1.嵌入式CISC微处理器 传统的CISC(Complex Instruction Set Computer,复杂指令集计算机)结构有其固有的缺点,即随着计算机技术的发展而不断引入新的复杂的指令集,为支持这些新增的指令,计算机的体系结构会越来越复杂,然而,在CISC指令集的各种指令中,其使用频率却相差悬殊,大约有20%的指令会被反复使用,占整个程序代码的80%。而余下的80%的指令却不经常使用,在程序设计中只占20%,显然,这种结构是不太合理的。

  21. 2.2.1 RISC体系结构 2. 嵌入式RISC微处理器 基于以上的不合理性,1979年美国加州大学伯克利分校提出了RISC(Reduced Instruction Set Computer,精简指令集计算机)的概念, RISC是精简指令集计算机,但RISC并非只是简单地去减少指令,而是把着眼点放在了如何使计算机的结构更加简单合理地提高运算速度上。RISC结构优先选取使用频最高的简单指令,抛弃复杂指令,固定指令长度,减少指令格式和寻址方式,以控制逻辑为主,不用或少用微码控制等措施来达到上述目的。

  22. 2.2.1 RISC体系结构 RISC体系结构应具有如下特点: 采用固定长度的指令格式,指令归整、简单、基本寻址方式有2~3种。 使用单周期指令,便于流水线操作执行。 大量使用寄存器,数据处理指令只对寄存器进行操作,只有加载/ 存储指令可以访问存储器,以提高指令的执行效率。 除此以外,ARM体系结构还采用了一些特别的技术,在保证高性能的前提下尽量缩小芯片的面积,并降低功耗.

  23. 2.2.1 RISC体系结构 RISC体系结构应具有如下特点: 所有的指令都可根据前面的执行结果决定是否被执行,从而提高指令的执行效率。 可用加载/存储指令批量传输数据,以提高数据的传输效率。 可在一条数据处理指令中同时完成逻辑处理和移位处理。 在循环处理中使用地址的自动增减来提高运行效率。

  24. 2.2.1 RISC体系结构 RISC和CISC之间的主要区别:

  25. 2.2.2 ARM微处理器的寄存器结构 ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄存器包括: 31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器。 6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位,目前只使用了其中的一部分。

  26. 2.2.2 ARM微处理器的寄存器结构 ARM处理器又有7种不同的处理器模式,在每一种处理器模式下均有一组相应的寄存器与之对应。 即在任意一种处理器模式下,可访问的寄存器包括15个通用寄存器(R0~R14)、1~2个状态寄存器和程序计数器。 在所有的寄存器中,有些是在7种处理器模式下共用的同一个物理寄存器,而有些寄存器则是在不同的处理器模式下有不同的物理寄存器。

  27. 2.2.3 ARM微处理器的指令结构 ARM微处理器在较新的体系结构中支持两种指令集:ARM指令集和Thumb指令集。 ARM指令为32位的长度 Thumb指令为16位长度 Thumb指令集为ARM指令集的功能子集,但与等价的ARM代码相比较,可节省30%~40%以上的存储空间,同时具备32位代码的所有优点。

  28. 2.2.4 ARM微处理器的应用选型 从应用的角度出发,对在选择ARM微处理器时所应考虑的主要问题 : ARM微处理器内核的选择 从前面所介绍的内容可知,ARM微处理器包含一系列的内核结构,以适应不同的应用领域,用户如果希望使用WinCE或标准Linux等操作系统以减少软件开发时间,就需要选择ARM720T以上带有MMU(Memory Management Unit)功能的ARM芯片,ARM720T、ARM920T、ARM922T、ARM946T、Strong-ARM都带有MMU功能。 而ARM7TDMI则没有MMU,不支持Windows CE和标准Linux,但目前有uCLinux等不需要MMU支持的操作系统可运行于ARM7TDMI硬件平台之上。事实上,uCLinux已经成功移植到多种不带MMU的微处理器平台上,并在稳定性和其他方面都有上佳表现。

  29. 2.2.4 ARM微处理器的应用选型 系统的工作频率 系统的工作频率在很大程度上决定了ARM微处理器的处理能力。 ARM7系列微处理器的典型处理速度为0.9MIPS/MHz,常见的ARM7芯片系统主时钟为20MHz-133MHz。 ARM9系列微处理器的典型处理速度为1.1MIPS/MHz,常见的ARM9的系统主时钟频率为100MHz-233MHz。 ARM10最高可以达到700MHz。 不同芯片对时钟的处理不同,有的芯片只需要一个主时钟频率,有的芯片内部时钟控制器可以分别为ARM核和USB、UART、DSP、音频等功能部件提供不同频率的时钟。

  30. 2.2.4 ARM微处理器的应用选型 芯片内存储器的容量 大多数的ARM微处理器片内存储器的容量都不太大,需要用户在设计系统时外扩存储器. 但也有部分芯片具有相对较大的片内存储空间,如ATMEL的AT91F40162就具有高达2MB的片内程序存储空间,用户在设计时可考虑选用这种类型,以简化系统的设计。

  31. 2.2.4 ARM微处理器的应用选型 片内外围电路的选择 几乎所有的ARM芯片均根据各自不同的应用领域,扩展了相关功能模块,并集成在芯片之中,称之为片内外围电路. 如USB接口、IIS接口、LCD控制器、键盘接口、RTC、ADC和DAC、DSP协处理器等,设计者应分析系统的需求,尽可能采用片内外围电路完成所需的功能,这样既可简化系统的设计,同时提高系统的可靠性。

  32. 2.3 ARM微处理器的工作状态 ARM微处理器的工作状态一般有两种,并可在两种状态之间切换: ARM状态,此时处理器执行32位的字对齐的ARM指令; Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。 ARM指令集和Thumb指令集均有切换处理器状态的指令,并可在两种工作状态之间切换,但ARM微处理器在开始执行代码时,应该处于ARM状态。

  33. 2.3 ARM微处理器的工作状态 进入Thumb状态:当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态。此外,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到Thumb状态。 进入ARM状态:当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态。此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。

  34. 2.4 ARM处理器状态 状态切换的一个例子 地址最低位为0,表示切换到ARM状态 跳转地址标号 地址最低位为1,表示切换到Thumb状态 使用BX指令将ARM内核的操作状态在ARM状态和Thumb状态之间进行切换。 从Thumb状态切换到ARM状态的程序代码如下: 从ARM状态切换到Thumb状态的程序代码如下: CODE16 LDR R0, =Lable BX R0 CODE32 Lable MOV R1, #10 CODE32 LDR R0, =Lable+1 BX R0 CODE16 Lable MOV R1, #12 ARM指令集 Thumb 指令集 执行完BX指令,处理器切换到Thumb状态,开始执行Thumb指令 执行完BX指令,处理器切换到ARM状态,开始执行ARM指令 指令集关系 程序代码

  35. 2.4 ARM体系结构的存储器格式 ARM体系结构将存储器看作是从零地址开始的字节的线性组合。 从零字节到三字节放置第一个存储的字数据. 从第四个字节到第七个字节放置第二个存储的字数据,依次排列。 作为32位的微处理器,ARM体系结构所支持的最大寻址空间为4GB(232字节)。 ARM体系结构可以用两种方法存储字数据,称之为 大端格式 小端格式

  36. 2.4 ARM体系结构的存储器格式 大端格式 在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中,如图所示。 高地址 低地址

  37. 2.4 ARM体系结构的存储器格式 小端格式 在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中,如图所示。 高地址 低地址

  38. 2.4.1 指令长度及数据类型 ARM微处理器的指令长度可以是 32位(在ARM状态下) 16位(在Thumb状态下) ARM微处理器中支持字节(8位)、半字(16位)、字(32位)三种数据类型. 其中,字需要4字节对齐(地址的低两位为0)、半字需要2字节对齐(地址的最低位为0)。

  39. 2.4.2 存储管理单元-MMU 在复杂的嵌入式系统设计时,越来越多的会选用带有存储管理单元(MMU)的微处理器芯片。 MMU完成的主要功能有: 将主存地址从虚拟存储空间映射到物理存储空间。 存储器访问权限控制。 设置虚拟存储空间的缓冲特性等。

  40. 2.4.2 存储管理单元-MMU 虚拟地址存储系统示意图 主存 MMU 逻辑地址 物理地址 微 处 理 器 辅助存储器 对换

  41. 2.4.2 存储管理单元-MMU ARM920T微处理器核的MMU采用了分页虚拟存储管理方式。它把虚拟存储空间分成一个个固定大小的页,把物理主存储的空间也分成同样大小的一个个页。 通过查询存放在主存中的页表,来实现虚拟地址到物理地址的转换。但由于页表存储在主存储中,查询页表所花的代价很大,因此,通常又采用快表技术(TLB translation lookaside buffer)来提高地址变换效率。

  42. 2.4.2 存储管理单元-MMU TLB技术中,将当前需要访问的地址变换条目存储在一个容量较小(通常8~16个字)、访问速度更快(与微处理器中通用寄存器速度相当)的存储器件中。当微处理器访问主存时,先在TLB中查找需要的地址变换条目,如果该条目不存在,再从存储在主存中的页表中查询,并添加到TLB中。 这样,当微处理器下一次又需要该地址变换条目时,可以从TLB中直接得到,从而提高了地址变换速度。

  43. 2.4.2 存储管理单元-MMU 表2-5是ARM920T的写出其CP15中与MMU操作相关的寄存器。设计者编程控制这些寄存器,则可以相应地控制MMU操作。

  44. 2.4.2 存储管理单元-MMU 1.禁止与使能MMU CP15的寄存器C1的位[0]用于设置禁止/使能MMU。C1的位[0]为0时,禁止MMU;当C1的位[0]为1时,使能MMU。下面指令实现了使能MMU。 MRC P15,0,R0,C1,0,0; C1的内容赋给R0 ORR R0,#0x1 MCR P15,0,R0,C1,0,0;R0的内容赋给C1

  45. 2.4.2 存储管理单元-MMU 使能MMU时,其控制存储访问的过程是: 首先在TLB中查找虚拟地址,如果该虚拟地址对应的地址变换条目不在TLB中,则到页表中查询对应的地址变换条目,并把查询到的结果添加到TLB中。如果TLB已满,还需根据一定的淘汰算法进行替换。得到地址变换条目后,进行一下步骤的操作。

  46. 2.4.2 存储管理单元-MMU 禁止MMU时,所有的虚拟地址和物理地址是相等的,也不进行存储访问权限的控制。是否支持cache和写缓存由具体芯片设计确定。 在禁止/使能MMU时,应该注意以下几点。 使能MMU之前,要在内存中建立0号页表,同时CP15中的各相关寄存器必须完成初始化. 如果设计的物理地址与虚拟地址空间不相等,在禁止/使能MMU时,虚拟地址和物理地址的对应关系会改变,应清除cache中当前地址变换条目。 完成禁止/使能MMU代码的物理地址最好和虚拟地址相同。

  47. 2.4.2 存储管理单元-MMU 2.MMU中的地址变换过程 虚拟存储空间到物理存储空间的映射是以内存块为单位进行的。在页表或TLB中,每个地址变换条目记录了一个虚拟存储空间的存储块的基地址与物理存储空间的一个存储块基地址的对应关系。 ARM920T支持的存储块大小有一下几种: 段(section)是大小为1MB的存储块。 大页(large pages)是大小为64KB的存储块。 小页(small pages)是大小为4KB的存储块。 极小页(tiny pages)是大小为1KB的存储块。

  48. 2.4.2 存储管理单元-MMU 3.MMU中的存储访问权限控制 在MMU中,CP15的寄存器C1的R、S控制位和页表中地址转换条目中的访问权限控制位联合作用控制存储访问权限。 具体规则如表2-6所示。

  49. 2.4.2 存储管理单元-MMU 表2-6 MMU中存储访问控制权限控制规则

  50. 2.4.2 存储管理单元-MMU 4.MMU中的域 MMU中的域指的是一些段、大页或者小页的集合。ARM920T支持最大16个域,每个域的访问控制特性由CP15的寄存器C3中的两位来控制。 C3寄存器是32位的,每两位控制一个域,其控制编码如表2-7所示。

More Related