版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
嵌入式系统课件第1页/共121页课程介绍课程:嵌入式系统应用学时:32课程别:专业必修课考核方式:卷面主要参考教材
《ARM7嵌入式系统实训教程》
第2页/共121页第一章嵌入式系统概述定义及描述:嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入到对象体系中的专用计算机系统。专用的智能电子设备。第3页/共121页嵌入式系统的特点嵌入式系统通常是面向特定应用的嵌入式系统是先进的计算机技术嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余嵌入式系统和具体应用有机地结合在一起为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中嵌入式系统本身不具备自举开发能力第一章嵌入式系统概述第4页/共121页第一章嵌入式系统概述嵌入式系统应用无所不在第5页/共121页第一章嵌入式系统概述嵌入式系统应用无所不在第6页/共121页第一章嵌入式系统概述嵌入式系统应用无所不在马达控制器车灯尾灯控制系统后车门控制系统前车门控制系统座椅控制系统发动器控制系统所有的控制系统都是一个完整的嵌入式系统第7页/共121页第一章嵌入式系统概述嵌入式微处理器
(EmbeddedMicroprocessorUnit,EMPU)Am186/86,386EX,SC400,PowerPC,51,6800,MIMP,ARM嵌入式微控制器(单片机)
(MicrocontrollerUnit,MCU)51系列;ARM7,Cortex-M0/M3嵌入式DSP处理器
(EmbeddedDigitalSignalProcessor,EDSP)C5000,C2000(DSC),TI达芬奇处理器,DSP56000
嵌入式片上系统(ESOC);(EmbeddedSystemOnChip,ESOP)
可编程片上系统(SOPC)(SystemOnaProgrammableChip,EPSOP)第8页/共121页第一章嵌入式系统概述嵌入式微处理器
(EmbeddedMicroprocessorUnit,EMPU)
嵌入式微处理器虽然在功能上和标准微处理器基本是一样的其增强点为:功耗工作温度抗电磁干扰可靠性体积小、重量轻、成本低第9页/共121页第一章嵌入式系统概述嵌入式微控制器(单片机)
(MicroControllerUnit,MCU)
嵌入式微控制器芯片内部集成一般以:某一种微处理器内核为核心;ROM、RAM;I/O内部总线逻辑片内I/O资源:定时/计数器、WDT,RTC片外I/O接口:GPIO、脉宽调制输出PWM、D/A、串行口、红外、A/D、LCD外部总线逻辑接口:I2C、CAN,USB,SPI第10页/共121页第一章嵌入式系统概述嵌入式DSP处理器
(EmbeddedDigitalSignalProcessor,EDSP)DSP处理器对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也较高。在数字滤波、FFT、频谱分析等方面DSP算法正在大量进入嵌入式领域,DSP应用正从在通用单片机中以普通指令实现DSP功能,过渡到采用嵌入式DSP处理器。推动嵌入式DSP处理器发展的另一个因素是嵌入式系统的智能化,例如各种带有智能逻辑的消费类产品,生物信息识别终端,带有加解密算法的键盘,ADSL接入、实时语音压解系统,虚拟现实显示等。这类智能化算法一般都是运算量较大,特别是向量运算、指针线性寻址等较多,而这些正是DSP处理器的长处所在。第11页/共121页第一章嵌入式系统概述嵌入式片上系统(SystemOnChip)
随着半导体工艺的迅速发展,在一个硅片上实现一个更为复杂的系统的时代已来临,这就是SystemOnChip(SOC)。各种通用处理器内核将作为SOC设计公司的标准库,和许多其它嵌入式系统外设一样,成为VLSI(超大规模集成电路)设计中一种标准的器件。
多处理器核=>SOC
例:INTELScale系列既有ARM10内核,并集成了DSP核;并集成SRAM、AC97、LCD控制器,UART、红外等I/O接口,是INTEL公司的嵌入式片上系统(SOC)产品。第12页/共121页可编程片上系统(SOPC)(SystemOnaProgrammableChip,EPSOP)第一章嵌入式系统概述SOPC是Altera公司于2000年提出的一种灵活高效的SOC解决方案,SOPC利用可编程逻辑技术把整个电子系统集成在一个单片上,是一种特殊的嵌入式系统芯片。与可编程逻辑器件一样,SOPC的设计也仅需完成前端设计,故其设计投入比较少,设计方法灵活,SOPC的系统功能可裁减、易扩充,结合了SOC和CPLD、FPGA的优点。作为一种系统级芯片,SOPC具有低的设计成本和开发风险,从而获得广泛的应用。
第13页/共121页第一章嵌入式系统概述可编程片上系统(SOPC)SOPC是一种可编程逻辑器件,与普通PLD相比,SOPC具有如下特点:1.至少包含一个嵌入式处理器内核。2.具有一定容量的片内高速RAM。3.具有足够的片上可编程逻辑资源。4.具有处理器调试接口和编程接口。第14页/共121页第一章嵌入式系统概述除了嵌入处理器硬核的SOPC之外,基于FPGA的嵌入CPU软核的片上可编程系统的实现方法也得到广泛的应用,这类基于FPGA的嵌入式CPU软核比较常用的是Xilinx公司的8位嵌入式RISC处理器软核PicoBlaze、32位嵌入式RISC处理器软核MicroBlaze和Altera公司的NIOS软核。
Xilinx公司的Virtex系列FPGA(包括VirtexII、Virtex4和Virtex5)和SpartanIII(包括Spartan3A、Spartan3E和Spartan3)系列FPGA均支持基于嵌入式CPU软核的SOPC设计实现。
第15页/共121页第一章嵌入式系统概述嵌入式系统的发展趋势复杂的嵌入式应用软件的开发需要强大的开发工具和操作系统的支持联网成为必然趋势支持小型电子设备实现小尺寸、微功耗和低成本提供精巧的多媒体人机界面第16页/共121页第一章嵌入式系统概述存储器纸带类介质存储(已基本淘汰)、磁带磁盘(硬盘)存储器(外存)半导体存储器(内存)RAM(RandomAccessMemory)静态随机存储器,StaticRAM(SRAM)速度非常快,功耗低;但芯片结构复杂、成本昂贵动态随机存储器,DynamicRAM(DRAM)速度相对慢,功耗高;但芯片结构简单、成本较低ROM(ReadOnlyMemory)
ROM(Read-OnlyMemory)
PROM(ProgrammableRead-OnlyMemory)/[One-TimeProgrammable(OTP)ROM]EPROM(ErasableProgrammableRead-OnlyMemory)EEPROM(ElectricallyErasableProgrammableRead-OnlyMemory)
FLASHEEPROM(闪存)第17页/共121页第一章嵌入式系统概述EPROM(ErasableProgrammableRead-OnlyMemory)-可擦可编程只读存储器,一种可以重复利用的可编程芯片。其内容始终不丢失,除非您用紫外线擦除它。一般给EPROM编程或擦除内容时,需要用专用的设备。
EEPROM(ElectricallyErasableProgrammableRead-OnlyMemory),电可擦可编程只读存储器--一种掉电后数据不丢失的存储芯片。EEPROM可以在电脑上或专用设备上擦除已有信息,重新编程。既可实现ISP或IAP功能。固件:在ROM中固化的程序叫固件(Firmware)第18页/共121页第一章嵌入式系统概述IAP(In-ApplicationProgramming)指MCU可以在系统运行中获取新代码并对自己的程序重新编程。IAP的实现相对要复杂,在实现IAP功能时,单片机内部一定要有两块存储区,一般一块被称为BOOT区,另外一块被称为存储区。单片机上电运行在BOOT区,如果有外部改写程式的条件满足,则对存储区的程序进行改写操作。如果外部改写程序的条件不满足,程式指标跳到存储区,开始执行放在存储区的程式,这样便实现了IAP功能。总之:IAP技术是从结构上将Flash存储体映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将程序从一个存储体转向另一个。第19页/共121页第一章嵌入式系统概述I/O应用前向通道数字信号开关量物理量(模拟信号→A/D)后向通道数字信号开关量(D/A→模拟信号)物理量声、光输出第20页/共121页第一章嵌入式系统概述前向通道------数据采集应用范例传感器
物理量→电压/电流量信号调理
(信号转换)→滤波→放大光电隔离
抗干扰多路开关和采样保持资源复用、转换标定A/D转换积分型特点:速度快,精度低(4位)逐次比较型特点:速度慢,精度高(8~24位)与MCU互联串行并行
第21页/共121页第一章嵌入式系统概述嵌入式编程语言嵌入式系统高级编程语言概述Ada语言C语言
Java语言常用嵌入式系统高级编程语言基本性能与汇编语言或机器代码的接口
直接寻址(I/O)对硬件的访问和控制位操作中断处理异常事件处理第22页/共121页第一章嵌入式系统概述嵌入式操作系统嵌入式操作系统特点任务调度、同步机制、中断处理、文件功能更好的硬件适应性,也就是良好的移植性;占有更少的硬件资源;高可靠性;提供强大的网络功能,支持TCP/IP协议(TCP/IP协议栈)及其他协议;常要求具有实时性能(RTOS)。第23页/共121页第一章嵌入式系统概述嵌入式操作系统嵌入式实时多任务操作系统(RTOS)系统响应时间(Systemresponsetime)系统发出处理要求到系统给出应答信号的时间。任务换道时间(Context-switchingtime)是任务之间切换而使用的时间。中断延迟(Interruptlatency)是计算机接收到中断信号到操作系统作出响应,并完成换道转入中断服务程序的时间。第24页/共121页第一章嵌入式系统概述嵌入式操作系统--------μC/OSIIμC/OS-II是一个应用于实时嵌入式应用的公开源代码的实时操作系统内核。执行效率高占用空间小实时性能优良公开源代码可扩展性能等最小内核可编译至2KB。μC/OS-II已经移植到了几乎所有知名的CPU上。因为μC/OS-II非常简单,只要有一个普通的C编译器,就能完成编译并运行该操作系统,因此,μC/OS-II首先在教学中得到了广泛应用。因为其简单及实时性好的特点,现在也有一些用户开始使用μC/OS-II操作系统开发正式的嵌入式产品。第25页/共121页第一章嵌入式系统概述嵌入式操作系统-----LinuxLinux是开放源码的,不存在黑箱技术,遍布全球的众多Linux爱好者又是Linux开发者的强大技术后盾;Linux的内核小、功能强大、运行稳定、效率高;Linux易于定制剪裁,在价格上极具竞争力;Linux不仅支持X86芯片,还可以支持二三十种CPU,包括传统家电行业所使用的芯片,都开始做Linux的平台移植工作。也就是说,如果今天采用Linux环境开发产品,那么将来换CPU时就不会遇到困难有大量的且不断增加的开发工具,为嵌入式系统的开发提供了良好的开发环境,它沿习UNIX,遵循国际标准,可以方便地获得众多第三方硬、软件厂商的支持;Linux内核的结构在网络方面是非常完整的。它提供了包括十兆、百兆、千兆的以及网络,以及对无线网络、TokenRing(令版环网)、光纤甚至卫星的支持。在图像处理、文件管理及多任务支持等诸多方面都非常出色。Linux既适于做嵌入式的开发平台,同时本身又是裁剪用的基料。第26页/共121页第一章嵌入式系统概述嵌入式操作系统--------uCLinuxuClinux专门针对没有MMU的CPU为嵌入式系统做了许多小型化的工作uClinux是一个完全符合GNU/GPL公约的项目,完全开放代码。
第27页/共121页第一章嵌入式系统概述内存管理单元介绍(MMU----MemoryManageUnit)在存储系统中,使用MMU实现虚拟地址到实际物理地址的映射目的是加速通常在操作系统进行运用应用范例Cache虚拟内存地址影射第28页/共121页第一章嵌入式系统概述嵌入式操作系统------WindowsCEWinCE是一个紧凑、高效和可扩展的操作系统,适用于各种嵌入系统和产品。它拥有多线程、多任务、确定性的实时、完全抢先式优先级的操作系统环境,专门面向只有有限资源的硬件系统。同时,它的模块化设计方式使得系统开发人员和应用开发人员能够为多种多样的产品来定制它,例如客户电子设备、专用工业控制器以及嵌入式通信设备等。第29页/共121页第一章嵌入式系统概述嵌入式操作系统------WindowsCEWinCE直接支持多类硬件外围设备,象键盘、鼠标设备、触摸面板、串行口、以太网、调制解调器、USB设备、音频设备、并行口和存储设备(ATA或闪存),同时,由于WinCE扩展了新的市场和设备门类,对嵌入式系统开发者来说,在增加新的外围设备类型方面就有了巨大的潜力可挖,实现起来也很容易。这是通过WinCE简洁而良好定义的设备驱动模型来实现的,它提供了良好文档化的设备驱动程序接口(DDI)和展示如何实现它们的例程代码。第30页/共121页第一章嵌入式系统概述嵌入式操作系统------WindowsCEWinCE支持超过1,400条最频繁使用的Win32
API,借此WindowsCE开发者就能利用大量其他的编程资源、工具、软件例子以及文档来进行WinCE开发工作。全世界有多于五百万的Win32开发者,其中有些有经验的程序员可能已谙熟WindowsCE平台的开发工作,从而降低了培训成本,缩短了进入市场的时间。
PlatformBuilder
开发工具,帮助您在WinCE下开发基于新嵌入式系统项目的软件。PlatformBuilder的设计目标是创造更熟悉和易于使用的开发环境,它包括适用于所有WindowsCE支持的处理器的交叉编译器。第31页/共121页第一章嵌入式系统概述什么是WindowsAPI接口:下面是WINDOWS的操作系统核心,而它的上面则是所有的华丽的WINDOWS应用程序类库和控件都是构架在WIN32API函数基础之上的,是封装了的API函数的集合比较复杂和特殊的功能来说,使用类库和控件是非常难以实现的,这时就需要采用API函数来实现API不要去学,在需要的时候去查API帮助就足够了,结合一些有趣的实例,应该可以达到快速掌握的目的。第32页/共121页第一章嵌入式系统概述嵌入式操作系统典型的嵌入式操作系统μC/OS和μC/OSIIuCLinux/LinuxWindowsCEpSOSystem,简称pSOS(手机)VxWorks(美国军用)PalmOS(3COMPDA)Symbian(诺基亚、摩托罗拉和爱立信手机)第33页/共121页第一章嵌入式系统概述使用嵌入式操作系统的必要性嵌入式实时操作系统提高了系统的可靠性;提高了研发效率,缩短了研发周期;嵌入式实时操作系统充分发挥了32位CPU的多任务潜力。从某种意义上说,没有操作系统的计算机(裸机)是没有用的。在嵌入式应用中,只有把CPU嵌入到系统中,同时又把操作系统嵌入进去,才是真正的计算机嵌入式应用。第34页/共121页实时操作系统的优缺点优点
在嵌入式实时操作系统环境下研发实时应用程式使程式的设计和扩展变得容易,不必大的改动就能增加新的功能。通过将应用程式分割成若干独立的任务模块,使应用程式的设计过程大为简化;而且对实时性需求苛刻的事件都得到了快速、可靠的处理。通过有效的系统服务,嵌入式实时操作系统使得系统资源得到更好的利用。缺点
使用嵌入式实时操作系统还需要额外的存储器(ROM/RAM)开销,2~5%的CPU额外负荷,及内核的费用。实时性下降。第一章嵌入式系统概述第35页/共121页第一章嵌入式系统概述交叉开发环境
首先在通用计算机(宿主机)上编写程序然后通过交叉编译生成目标平台上可以运行的二进制代码格式(或准二进制代码格式)最后再下载到目标平台(目标机)上的特定位置上运行。第36页/共121页第一章嵌入式系统概述交叉开发环境
交叉编译和链接(GCC)
在基于ARM体系结构的linux-gcc交叉开发环境中:arm-linux-gcc是交叉编译器arm-linux-ld是交叉链接器交叉调试嵌入式系统的交叉调试有多种方法,可以被细分成不同的层次,但一般都具有如下一些典型特点:调试器和被调试进程运行在不同的机器上,调试器运行在PC或者工作站上(宿主机),而被调试的进程则运行在各种专业调试板上(目标机)。嵌入式系统交叉调试时,宿主机调试器通过JTAG、RS-232串口、以太网口或USB等专用的通信方式与目标机被调试进程建立联系。第37页/共121页第一章嵌入式系统概述宿主机(Host):通用PC机它通过串口或者以太网接口与目标机通信。宿主机的软硬件资源比较丰富,不但包括功能强大的操作系统(如Windows和Linux),而且还有各种各样优秀的集成开发工具(KeiluVision2
/KeiluVision3
、SDT、ADS1.2、Microsoft的EmbeddedVisualC++/PlatformBuilder等),能够大大提高嵌入式应用软件的开发速度和效率。目标机(Target):嵌入式应用软件开发期间使用,用来区别与嵌入式系统通信的宿主机,它可以是嵌入式应用软件的实际运行环境,也可以是能够替代实际运行环境的仿真系统,但软硬件资源通常都比较有限。嵌入式系统通常是最终的目标机第38页/共121页第一章嵌入式系统概述建立交叉开发环境是进行嵌入式软件开发的第一步,目前常用的交叉开发环境主要有开放和商业两种类型。开放的交叉开发环境的典型代表是GNU工具链、目前已经能够支持X86、ARM、MIPS、PowerPC等多种处理器。商业的交叉开发环境则主要有:KeilμVision2[51系列]KeilμVision3/4[51系列/(RealView)ARM]ARMSoftwareDevelopmentToolkit(SDT2.4)[ARM]ADS1.2
[ARM]MicrosoftPlatformBuilder
[Xscale(ARM10)]TKStudio[ARM7/ARM9/Cortex-M]第39页/共121页第一章嵌入式系统概述TKStudioIDE是广州致远电子有限公司开发的一个微处理软件开发平台,是内置编辑器的多内核编译调试环境,支持编译工具链:KeilC51、SDCC51GCCARM、ADSARMIARARMMDKARM(KeilC513/4forARM)RVDSARMAVRGCC、IARAVR第40页/共121页第一章嵌入式系统概述TKStudioIDE是广州致远电子有限公司开发的一个微处理软件开发平台,是内置编辑器的多内核编译调试环境,支持内核主要有:8051AVR(16位主流机)ARM7/ARM9/ARM11XScaleCortexM3/CortexM0内核调试
第41页/共121页第一章嵌入式系统概述
可以完成:工程建立;管理;编译,链接,目标代码的生成;软件仿真;硬件仿真(挂接TKS系列仿真器的硬件)等完整的开发流程。
第42页/共121页第一章嵌入式系统概述bootloader的作用:bootloader的作用是进行最小的硬件初始化,必须用汇编编写;典型的bootloader硬件初始化可能是:系统时钟的设置内存控制器的设置必要的中断控制器的配置快速接口的初始化(MMU的设置)它不需要初始化所有的硬件,只要能够引导后续的工作就可以了!第43页/共121页第一章嵌入式系统概述各端口在开发中的主要作用:JTAG(JointTestAccessGroup)bootloader下载(ISP)JTAG更强大的功能是在线调试。ARM仿真器(ICD)
、DSP仿真器等都是基于JTAG在线调试程序。速度25Kb/S~120Kb/S串口(RS232/UART)ISP/IAP通过宿主机的超级终端的串口工具回显目标机的工作状态
240kb/s网口或USB口操作系统及大容量的应用程序下载网口10Mb/sUSB口12Mb/s第44页/共121页第二章ARM体系机构ARM的简介
ARM(AdvancedRISCMachines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点。适用于多种领域,比如嵌入控制、消费/教育类多媒体、DSP和移动式应用等
ARM将其技术授权给世界上许多著名的半导体、软件和OEM厂商,每个厂商得到的都是一套独一无二的ARM相关技术及服务。利用这种合伙关系,ARM很快成为许多全球性RISC标准的缔造者。
第45页/共121页英国ARM公司(AdvancedRISCMachines)国家:英国(欧洲)行业:电子半导体微处理器智能手机总部:英国剑桥CEO:沃伦.伊斯特竞争对手:英特尔市场份额:手机处理器90%的市场份额上网本处理器30%的市场份额平板电脑处理器80%的市场份额第二章ARM体系机构第46页/共121页1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(
IP)核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,现在,基于ARM技术的微处理器应用约占据了32位RISC
微处理器80%以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。第二章ARM体系机构第47页/共121页第二章ARM体系机构体系结构CISC
(ComplexInstructionSetComputer,复杂指令集计算机)在CISC指令集的各种指令中,大约有20%的指令会被反复使用,占整个程序代码的80%。而余下的80%的指令却不经常使用,在程序设计中只占20%。RISC
(ReducedInstructionSetComputer,精简指令集计算机)RISC结构优先选取使用频最高的简单指令,避免复杂指令;将指令长度固定,指令格式和寻地方式种类减少,以控制逻辑为主,不用或少用微码控制等。第48页/共121页第二章ARM体系机构RISC体系结构应具有如下特点:采用固定长度的指令格式,指令归整、简单、基本寻址方式简洁;使用单周期指令,便于流水线操作;大量使用寄存器,数据处理指令只对寄存器进行操作;只有加载/存储指令可以访问存储器,以提高指令的执行效率。第49页/共121页第二章ARM体系机构ARM体系结构的技术特征大量使用寄存器,指令执行速度更快;体积小、低功耗、低成本、高性能;Thumb(16位)
/ARM(32位)三指令集,能很好的兼容16位/32位器件;大多数数据操作都在寄存器中完成;寻址方式灵活简单,执行效率高;指令长度固定---Thumb(16位)/ARM(32位)第50页/共121页第二章ARM体系机构ARM体系结构的技术特征---
(高级)所有的指令都可根据前面的执行结果(影响标志位)决定是否被执行,从而提高指令的执行效率可用加载/存储(LDR/STR)指令批量传输数据,以提高数据的传输效率可在一条数据处理指令中同时完成逻辑处理和移位处理在循环处理中使用地址的自动增减来提高运行效率第51页/共121页第二章ARM体系机构ARM体系结构的不同版本的发展概述--V1版本
该版本的ARM体系结构,只有26位的寻址空间,没有商业化,其特点为:基本的数据处理指令(不包括乘法);字节、字和半字加载/存储指令;具有分支指令,包括在子程序调用中使用的分支和链接指令;在系统调用中使用的软件中断指令。第52页/共121页第二章ARM体系机构ARM体系结构的不同版本的发展概述--V2版本同样为26位寻址空间,现在已经废弃不再使用,它相对V1版本有以下改进:具有乘法和乘加指令;支持协处理器;快速中断模式中的分组寄存器;SWP和SWPB指令。
第53页/共121页第二章ARM体系机构ARM体系结构的不同版本的发展概述—V3版本32位寻址空间分开CPSR和SPSR,完善异常中断机制增加了MSR指令和MRS指令增加两种异常模式修改异常返回的指令
V3版本基本未投入市场第54页/共121页第二章ARM体系机构ARM体系结构的不同版本的发展概述—V4版本增加了Thumb指令集增加了处理器的特权模式V4版本基本赢得了市场第55页/共121页第二章ARM体系机构ARM体系结构的不同版本的发展概述—V5版本在V4版本的基础上,对现在指令的定义进行了必要的修正,对V4版本的体系结构进行了扩展并并增加了指令,具体如下:改进了ARM/Thumb状态之间的切换效率;允许非T变量和T变量一样,使用相同的代码生成技术;增加计数前导零指令和软件断点指令;(无线通信)对乘法指令如何设置标志作了严格的定义;DSP指令支持(E);Java指令支持(J)。
V6结构-增加了媒体指令
V6内核:ARM11。
第56页/共121页第二章ARM体系机构ARM处理器核简介ARM公司开发了很多系列的ARM处理器核,目前应用比较广泛的系列是:ARM7ARM9ARM9EARM10StrongARMXscaleARM11Cortex-M3Cortex-RXCortex-AX第57页/共121页第二章ARM体系机构ARM处理器核简介——ARM7
该系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T和扩充了Jazelle的ARM7EJ-S。该系列处理器提供Thumb16位压缩指令集和EmbededICE(JTAG)软件调试方式,适用于更大规模的SoC设计中。
ARM7系列广泛应用于多媒体和嵌入式设备,包括Internet设备、网络和调制解调器设备,以及移动电话、PDA等无线设备。第58页/共121页第二章ARM体系机构ARM7TDMI后缀意义支持高密度16位的Thumb指令集;支持片上调试;支持64位结果的乘法;支持EmbededICE观察硬件;ARM7TDMI第59页/共121页第二章ARM体系机构ARM处理器核简介——ARM95级整数流水线,指令执行效率更高。提供1.1DMIPS的哈佛结构支持32位ARM指令集和16位Thumb指令集支持32位的高速AMBA总线接口全性能的MMU,支持WindowsCE、Linux、PalmOS等多种主流嵌入式操作系统支持数据Cache和指令Cache,具有更高的指令和数据处理能力运算速度最高可达300DMIPS
ARM9系列微处理器主要应用于无线设备、仪器仪表、安全系统、机顶盒、高端打印机、数字照相机和数字摄像机等。
ARM9系列微处理器包含ARM920T、ARM922T和ARM940T三种类型,以适用于不同的应用场合。第60页/共121页第二章ARM体系机构ARM处理器核简介——ARM10ARM10E系列微处理器具有高性能、低功耗的特点,由于采用了新的体系结构,与同等的ARM9器件相比较,在同样的时钟频率下,性能提高了近50%,同时,ARM10E系列微处理器采用了两种先进的节能方式,使其功耗极低。支持DSP指令集,适合于需要高速数字信号处理的场合。6级整数流水线,指令执行效率更高。支持VFP10浮点处理协处理器。运算速度最高可达400DMIPS。内嵌并行读/写操作部件。
ARM10E系列微处理器主要应用于线设备、数字消费品、成像设备、工业控制、通信和信息系统等领域。已完成ARM10的SoC为XScale
系列。
第61页/共121页第二章ARM体系机构ARM10处理器核简介——Xscale
IntelXscale微控制器则提供全性能、高性价比、低功耗的解决方案,支持16位Thumb指令并集成数字信号处理(DSP)指令。还兼有
MMX等Intel的优点,该系列有:Xscale
23XXscale25X
Xscale26XXscale27X第62页/共121页第二章ARM体系机构ARM11处理器(ARMv6)多媒体处理扩展(使MPEG4编码/解码加快一倍);增强的Cache结构实地址Cache4减少Cache的刷新和重载减少上下文切换的开销增强的异常和中断处理(使实时任务的处理更加迅速)支持Unaligned和Mixed-endian数据访问(使数据共享、软件移植更简单,也有利于节省存储器空间)对绝大多数应用来说,ARMv6保持了100%的二进制向下兼容,使用户过去开发的程序可以进一步继承下去。ARMv6保持了所有过去架构中的T(Thumb指令)和E(DSP指令)扩展,使代码压缩和DSP处理特点得到延续;为了加速Java代码执行速度的ARMJazalle技术也继续在ARMv6架构中发挥重要作用。第63页/共121页第二章ARM体系机构Crotex体系结构Cortex-A系列ARMCortex™-A系列的应用型处理器可向托管丰富的操作系统平台的设备和用户应用提供全方位的解决方案,包括超低成本的手机、智能手机、移动计算平台、数字电视、机顶盒、企业网络、打印机和服务器解决方案。高性能的Cortex-A15;可伸缩的Cortex-A9;经过市场验证的Cortex-A8处理器;高效的Cortex-A5处理器均共享ARMCortex™-A体系结构,因此具有完整的应用兼容性,支持传统的ARM、Thumb®指令集和新增的高性能紧凑型Thumb-2指令集。第64页/共121页第二章ARM体系机构Crotex体系结构Cortex-R系列ARMCortex™-R实时处理器为具有严格的实时响应限制的深层嵌入式系统提供高性能计算解决方案。目标应用包括:智能手机和基带调制解调器中的移动手机处理;企业系统,如硬盘驱动器、联网和打印;家庭消费性电子产品、机顶盒、数字电视、媒体播放器和相机;用于医疗行业、工业和汽车行业的可靠系统的嵌入式微控制器在这些应用中,采用的是对处理响应设置时标系统,如果要避免数据丢失或机械损伤,则必须符合所设置的这些硬截止时间。因此Cortex-R处理器是专为高性能、可靠性和容错能力而设计的,其行为具有高确定性,同时保持很高的能效和成本效益。第65页/共121页第二章ARM体系机构Crotex体系结构Cortex-M系列ARMCortex™-M处理器系列是一系列可向上兼容的高能效、易于使用的处理器,这些处理器旨在帮助开发人员满足将来的嵌入式应用的需要。这些需要包括以更低的成本提供更多功能、不断增加连接、改善代码重用提高能效。
Cortex-M系列针对成本和功耗敏感的MCU
和终端应用智能测量;人机接口设备;汽车和工业控制系统;大型家用电器;消费性产品;医疗器械
第66页/共121页第三章CrotexM3处理器技术ARMCortex-M技术RISC处理器内核高性能32位CPU具有确定性的运算预3级流水线管道第67页/共121页第三章CrotexM3处理器技术ARMCortex-M技术低能耗模式集成的睡眠状态支持多电源域基于架构的软件控制嵌套矢量中断控制器(NVIC)低延迟、低抖动中断响应不需要汇编编程
以纯C语言编写的中断服务例程工具和
RTOS支持广泛的第三方工具支持Cortex微控制器软件接口标准(CMSIS)最大限度地增加软件成果重用第68页/共121页第三章CrotexM3处理器技术ARMCortex-M技术CoreSight™调试与跟踪支持多处理器,支持实时跟踪JTAG
SWD(2针串行线调试连接)ARMCortex-M0要用SWD第69页/共121页第三章CrotexM3处理器技术ARMCortex-M技术Thumb-2®技术改进了代码密度,具有性能效率和功效Thumb-2技术是以ARMCortex体系结构为基础的指令集,它提升了众多嵌入式应用的性能、能效和代码密度。Thumb-2技术以获得成功的Thumb为基础进行构建,以增强ARM微处理器内核的功能。
该技术与现有ARM和Thumb解决方案向后兼容,同时显著扩展了Thumb指令集的可用功能。这将使得更多应用程序从Thumb的同类最佳代码密度中获益。为获得性能优化的代码,Thumb-2技术使用少于31%的内存以降低系统成本,同时,提供比现有高密度代码高出38%的性能,因此可用于延长电池寿命,或丰富产品功能集。16/32位指令的最佳混合小于8位设备3倍的代码大小对性能没有负面影响第70页/共121页第三章CrotexM3处理器技术CrotexM3主要特性:体系结构:ARMv7-M(哈佛);指令系统:支持Thumb®
/Thumb-2®
;管道:3级流水线
+分支预测;速度:1.25DMIPS/MHz内存保护:带有子区域和后台区域的可选8区域MPU;中断:不可屏蔽的中断(NMI)+1到240个物理中断中断延迟:12个周期;中断间延迟:6个周期;中断优先级:8到256个优先级;唤醒中断控制器:最多240个唤醒中断:睡眠模式:集成的WFI和WFE指令和“退出时睡眠”功能;睡眠和深度睡眠信号;随ARM电源管理工具包提供的可选保留模式。位操作:集成的指令和位段;增强的指令:硬件除法(2-12个周期)和单周期(32×32)乘法;调试:可选JTAG和串行线调试端口。最多8个断点和4个检测点;跟踪:可选指令跟踪(ETM)、数据跟踪(DWT)和测量跟踪(ITM);第71页/共121页第三章CrotexM3处理器技术ARMCortex-M3体系结构概述ARMCortex™-M3处理器是32位处理器,适用于具有高确定性的实时应用(包含微控制器、汽车车体系统、工业控制系统以及无线网络和传感器),具有高性能低成本的特定。该处理器特点:实时;低动态和静态功率;低功耗。第72页/共121页第三章CrotexM3处理器技术ARMCortex-M3体系结构指令结构Cortex-M3处理器采用ARMv7-M架构,它包括:16位Thumb指令集32位Thumb-2指令集架构
Cortex-M3处理器不能执行ARM指令集。Thumb-2在Thumb指令集架构上进行了大量的改进,它与Thumb相比,具有更高的代码密度并提供16/32位指令的更高性能。第73页/共121页第三章CrotexM3处理器技术ARMCortex-M3体系结构工作模式
Cortex-M3处理器支持2种工作模式:线程模式在复位时处理器进入“线程模式”,异常返回时也会进入该模式,
特权和用户(非特权)模式代码能够在“线程模式”下运行。处理模式。
出现异常模式时处理器进入“处理模式”,在处理模式下,所有代码都是特权访问的。第74页/共121页第三章CrotexM3处理器技术ARMCortex-M3体系结构工作状态Coretx-M3处理器有2种工作状态。Thumb状态:
这是16位“半字对齐”的Thumb和32位Thumb-2指令的执行状态。调试状态:处理器停止并进行调试,进入该状态。
第75页/共121页第三章CrotexM3处理器技术ARMCortex-M3体系结构管道:3级流水线
+分支预测;3级流水线概念第76页/共121页第三章CrotexM3处理器技术ARMCortex-M3体系结构管道:3级流水线
+分支预测;第77页/共121页第三章CrotexM3处理器技术ARMCortex-M3体系结构没有分支预测的三级流水线第78页/共121页第三章CrotexM3处理器技术ARMCortex-M3体系结构有分支预测的三级流水线第79页/共121页第三章CrotexM3处理器技术ARMCortex-M3体系结构冯·若依曼结构的三级流水线取指取指取指取指取指取指译指译指译指译指执指执指写数据执指执指写地址等待等待第80页/共121页第三章CrotexM3处理器技术Cortex-M3寄存器结构普通寄存器通用寄存器(R0~R12)低端通用寄存器(R0~R7)
Thumb/Thumb-2指令均可使用高端通用寄存器(R8~R12)
仅Thumb-2指令可使用堆栈指针寄存器(R13,SP)主堆栈指针寄存器(MSP)进程堆栈指针寄存器(PSP)连接寄存器(R14,LR)程序计数器(R15,PC)特殊功能寄存器第81页/共121页第三章CrotexM3处理器技术堆栈指针寄存器(R13,SP)Cortex-M3拥有两个堆栈指针,任一时刻只能使用其中的一个。主堆栈指针(MSP):复位后缺省使用的堆栈指针,用于操作系统内核以及异常处理例程,为复位缺省项;
进程堆栈指针(PSP):由用户的应用程序代码使用。
与用户有关的指令为:
PUSHPOP
第82页/共121页Lable程序A程序BR14第三章CrotexM3处理器技术R14(LR)寄存器与子程序调用BLLable地址A???MOVPC,LRR14(地址A)Lable???1.程序A执行过程中调用程序B;操作流程2.程序跳转至标号Lable,执行程序B。同时硬件将“BLLable”指令的下一条指令所在地址存入R14;3.程序B执行最后,将R14寄存器的内容放入PC,返回程序A;第83页/共121页第三章CrotexM3处理器技术R15(PC)R15寄存器的最低位总是为0。LDRR0,PC??????PCPC-4PC-8正在执行正在译码正在取指流水线状态地址程序代码第84页/共121页第三章CrotexM3处理器技术程序状态寄存器(PSRs)应用状态寄存器(APSR)中断状态寄存器(IPSR)执行状态寄存器(EPSR)第85页/共121页第三章CrotexM3处理器技术APSRN:(补码的符号标志位)结果为负数时,N=1;结果为正数或零时,N=0;Z:
(零标志位)为0时,Z=1(通常表示比较结果“相等”);非0时,Z=0。C:(进位标志位)最高位产生进(借)位时C=1;否则C=0。V:
(溢出标志位)溢出时V=1;否则V=0。Q:(饱和标志位),(32×32)乘法用。第86页/共121页第三章CrotexM3处理器技术中断状态寄存器(IPSR
8:0)当前激活的异常ISR编号。如果没有异常ISR执行,那么IPSR=0。如果有新的异常ISR进来,首先就让IPSR和新异常ISR的序号比较,只有新异常ISR的序号小于IPSR时,才让新异常ISR执行,形成嵌套中断。(NVIC)第87页/共121页第三章CrotexM3处理器技术执行状态寄存器(EPSR)ICI[15:12]
ICI是为单指令多周期指令LDM/STM和条件执行指令IT准备的。如果当前正在执行LDM/STM指令,是进行寄存器组里的多个寄存器与RAM的数据读、写操作。我们用ICI保存下一个要用到的寄存器序号。如果这时发生了中断,再恢复时,如果查询ICI
,就知道下一个要作用的是哪一个寄存器了。那么不用让LDM/STM指令从头再来了。IT[15:10]、[26:25](If–Then语句标志区)IT本身不改变通用寄存器,它决定它后面的四条指令的执行条件。一旦遇到IT指令,则对IT寄存器写入运行状态。T
Thumb标志位,必须==1;否则出现异常。
第88页/共121页第三章CrotexM3处理器技术中断屏蔽寄存器组,是用来屏蔽中断的。它规定了当前哪些类型的中断是可以执行的。第89页/共121页第三章CrotexM3处理器技术Cortex-M3的控制寄存器CONTROL[1:0]CONTROL[1](工作模式堆栈指针别):0->MSP(特权级)1->PSP(用户级)CONTROL[0](工作级别):1->PSP(用户级)1->用户级CONTROL的bit位[1]控制使用哪一个堆栈指针;bit位[0]控制是处于特权级还是用户级。模式是没有对应的控制寄存器的,不过这个也很好区分:只要发生了中断,则进入特权模式,正常运行程序,处于线程模式。第90页/共121页第三章CrotexM3处理器技术CrotexM3存储器结构存储器结构-----哈佛结构I-CodeD-Code具有以下特征存储器映射是预定义的,他规定了存储器访问所使用的总线;位寻址区支持位操作;支持非对齐数据传输,;大、小端数据结构均支持。第91页/共121页第三章CrotexM3处理器技术CrotexM3存储器结构存储器映射统一编址,最大4GB空间:片内、片外;寄存器、片内存储器;片内、片外接口寄存器。位寻址区位确定的位寻址带第92页/共121页第三章CrotexM3处理器技术存储器结构小端(Little-endian)存储器系统大端(Big-endian)存储器系统如果将一个32位的字0x12345678存放到存储器中,采用大端或者小端模式在内存中的存储由下表所示
地址偏移大端模式小端模式0x000x120x780x010x340x560x020x560x340x030x780x12第93页/共121页第四章CrotexM3指令系统概述Cortex-M3处理器采用ARMv7-M架构------16位、32位Thumb-2指令集架构。Cortex-M3处理器不能执行ARM指令集。Thumb-2在Thumb指令集架构上进行了大量的改进,它与Thumb相比,具有更高的代码密度并提供16/32位指令的更高性能。第94页/共121页第四章CrotexM3指令系统寻址方式寄存器寻址立即寻址寄存器移位寻址(CrotexM3特有)寄存器间址基址变址寻址多寄存器寻址堆栈寻址相对寻址第95页/共121页第四章CrotexM3指令系统寄存器寻址寄存器寻址就是利用寄存器中的数值作为操作数,这种寻址方式是各类微处理器经常采用的一种方式,也是一种执行效率最高的寻址方式。MOVR0,R1;R0←R1
ADDR0,R1,R2;R0←R1+R2是将寄存器R1和R2的内容相加,其结果存放在寄存器R0中。
第96页/共121页第四章CrotexM3指令系统立即寻址立即寻址也叫立即数寻址,这是一种特殊的寻址方式,操作数本身包含在指令中,只要取出指令也就取到了操作数。这个操作数被称为立即数,对应的寻址方式也就叫做立即寻址。ADDR0,R0,#1;R0←R0+1ADDR0,R0,#0x3f;R0←R0+0x3f
第97页/共121页第四章CrotexM3指令系统寄存器移位寻址将寄存器的移位结果作为操作数ADD R1,R1,R1,LSL#3
;R1=R1+R1*23=9R1SUB R1,R1,R2,LSRR3
;R1=R1-(R2/2R3)
第98页/共121页第四章CrotexM3指令系统基址变址寻址基址变址寻址就是将寄存器(该寄存器一般称作基址寄存器)的内容与指令中给出的地址偏移量相加,从而得到一个操作数的有效地址。变址寻址方式常用于访问某基地址附近的地址单元。采用变址寻址方式的指令常见有以下几种形式,如下所示:LDRR0,[R1,#4];R0←[R1+4]
将寄存器R1的内容加上4形成操作数的有效地址,从而取得操作数存入寄存器R0中LDRR0,[R1,#4]!;R0←[R1+4]、R1←R1+4
将寄存器R1的内容加上4形成操作数的有效地址,从而取得操作数存入寄存器R0中,然后,R1的内容自增4个字节。LDRR0,[R1],#4;R0←[R1]、R1←R1+4
以寄存器R1的内容作为操作数的有效地址,从而取得操作数存入寄存器R0中,然后,R1的内容自增4个字节LDRR0,[R1,R2];R0←[R1+R2]
将寄存器R1的内容加上寄存器R2的内容形成操作数的有效地址,从而取得操作数存入寄存器R0中。
第99页/共121页第四章CrotexM3指令系统多寄存器寻址方式一条指令可以完成多个寄存器值的传送。这种寻址方式可以用一条指令完成传送最多16个通用寄存器的值。 LDMIAR0,{R1,R2,R3,R4};R1←[R0]
;R2←[R0+4]
;R3←[R0+8]
;R4←[R0+12]
该指令的后缀IA表示在每次执行完加载/存储操作后,R0按字长度增加,因此,指令可将连续存储单元的值传送到R1~R4。
第100页/共121页第四章CrotexM3指令系统堆栈寻址堆栈是一种数据结构,按先进后出(FirstInLastOut,FILO)的方式工作,使用一个称作堆栈指针的专用寄存器指示当前的操作位置,堆栈指针总是指向栈顶。当堆栈指针指向最后压入堆栈的数据时,称为满堆栈(FullStack),而当堆栈指针指向下一个将要放入数据的空位置时,称为空堆栈(EmptyStack)。满递增堆栈:堆栈指针指向最后压入的数据,且由低地址向高地址生成。满递减堆栈:堆栈指针指向最后压入的数据,且由高地址向低地址生成。空递增堆栈:堆栈指针指向下一个将要放入数据的空位置,且由低地址向高地址生成。空递减堆栈:堆栈指针指向下一个将要放入数据的空位置,且由高地址向低地址生成。
第101页/共121页第四章CrotexM3指令系统相对寻址与基址变址寻址方式相类似,相对寻址以程序计数器PC的当前值为基地址,指令中的地址标号作为偏移量,将两者相加之后得到操作数的有效地址。以下程序段完成子程序的调用和返回,跳转指令BL采用了相对寻址方式:BLNEXT;跳转到子程序NEXT处执行
……NEXT……MOVPC,LR;从子程序返回。第102页/共121页第一部分ARM技术堆栈寻址
ARM微处理器支持这四种类型的堆栈工作方式,即:满递增堆栈:堆栈指针指向最后压入的数据,且由低地址向高地址生成(FA);满递减堆栈:堆栈指针指向最后压入的数据,且由高地址向低地址生成(FD)
;空递增堆栈:堆栈指针指向下一个将要放入数据的空位置,且由低地址向高地址生成(FA);空递减堆栈:堆栈指针指向下一个将要放入数据的空位置,且由高地址向低地址生成(FD)。
第103页/共121页第四章CrotexM3指令系统指令的基本格式如下:<opcode>{<cond>}{S}}{P}<Rd>,<Rn>{,<operand2>}
其中<>号内的项是必须的,{
}号内的项是可选的。opcode:指令助记符;cond:执行条件;S:是否影响CPSR寄存器的值;P:.N按16位编码.W按32位编码未指定,系统自动处理Rd:目标寄存器;Rn:第1操作数的寄存器;operand2:第2操作数;第104页/共121页第四章CrotexM3指令系统条件码操作码条件助记符标志含义0000EQZ=1相等0001NEZ=0不相等0010CS/HSC=1无符号数大于或等于0011CC/LOC=0无符号数小于0100MIN=1负数0101PLN=0正数或零0110VSV=1溢出0111VCV=0没有溢出1000HIC=1,Z=0无符号数大于1001LSC=0,Z=1无符号数小于或等于1010GEN=V有符号数大于或等于
1011LTN!=V有符号数小于
1100GTZ=0,N=V有符号数大于
1101LEZ=1,N!=V有符号数小于或等于
1110AL任何无条件执行
(指令默认条件)1111NV任何从不执行(不要使用)第105页/共121页第四章CrotexM3指令系统第2操作数<opcode>{<cond>}{S}{P}<Rd>,<Rn>
{,<operand2>}灵活的使用第2操作数“operand2”能够提高代码效率。它有如下的形式:#const——常数表达式;Rm——寄存器表达式;Rm,shift——寄存器移位表达式;将寄存器的移位结果作为操作数,但Rm值保持不变ADDR1,R1,R1,LSL#3
;R1=R1+R1*23=9R1SUB R1,R1,R2,LSRR3
;R1=R1-(R2/2R3)第106页/共121页第四章CrotexM3指令系统伪指令典型应用
LDRR0,=地址表达式解决常数表达式的局限性第107页/共121页第二章ARM技术概述.global_start.text.equ num,20/*Setnumberofwordstobecopied*/_start:LDRr0,=src/*r0=pointertosourceblock*/LDRr1,=dst/*r1=pointertodestinationblock*/MOVr2,#num/*r2=numberofwordstocopy*/MOVsp,#0x400/*setupstackpointer(r13)*/blockcopy:MOVSr3,r2,LSR#3/*numberofeightwordmultiples*/BEQcopywords /*lessthaneightwordstomove?*/STMFDsp!,{r4-r11}/*savesomeworkingregisters*/octcopy:LDMIAr0!,{r4-r11}/*load8wordsfromthesource*/STMIAr1!,{r4-r11}/*andputthematthedestination*/SUBSr3,r3,#1/*decrementthecounter*/BNEoctcopy/*...copymore*/LDMFDsp!,{r4-r11}/*don'tneedthesenow-restoreoriginals*/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 支行营业部经理竞聘演讲稿(32篇)
- 护士长年度工作计划汇编15篇
- 春季小学学生国旗下讲话稿(30篇)
- 【课件】重力+2024-2025学年人教版物理八年级下册
- 抗衰抗皱课件教学课件
- 武术-自编长拳套路课件
- 徐闻电大09春法学专科毕业论文
- 2024年巴彦淖尔小型客运从业资格证考试题答案
- 2024年宁夏客运资格证实践操作考什么题型
- 2024年河北客运资格证培训考试题答案
- 药物临床试验概述课件(PPT 23页)
- 万头肉牛养殖场建设项目可行性研究报告
- 色彩的基础知识课件.PPT
- 《毛笔书法基础知识讲座——书法常识》PPT课件
- 桥梁伸缩缝施工及质量保证要点
- 留守儿童一生一档联系卡
- 城镇5000吨日供水工程可行性研究报告(含图纸)
- 湿法炼锌的浸出过程
- 新生儿液体疗法PPT课件.ppt
- 个国际音标对应的字母组合new
- 完整版陆河客家请神书
评论
0/150
提交评论