【培训课件】AR嵌入式系统基础教程—嵌入式系统概述ARM7体系结构与指令系统

上传人:M****1 文档编号:585327130 上传时间:2024-09-02 格式:PPT 页数:140 大小:7.39MB
返回 下载 相关 举报
【培训课件】AR嵌入式系统基础教程—嵌入式系统概述ARM7体系结构与指令系统_第1页
第1页 / 共140页
【培训课件】AR嵌入式系统基础教程—嵌入式系统概述ARM7体系结构与指令系统_第2页
第2页 / 共140页
【培训课件】AR嵌入式系统基础教程—嵌入式系统概述ARM7体系结构与指令系统_第3页
第3页 / 共140页
【培训课件】AR嵌入式系统基础教程—嵌入式系统概述ARM7体系结构与指令系统_第4页
第4页 / 共140页
【培训课件】AR嵌入式系统基础教程—嵌入式系统概述ARM7体系结构与指令系统_第5页
第5页 / 共140页
点击查看更多>>
资源描述

《【培训课件】AR嵌入式系统基础教程—嵌入式系统概述ARM7体系结构与指令系统》由会员分享,可在线阅读,更多相关《【培训课件】AR嵌入式系统基础教程—嵌入式系统概述ARM7体系结构与指令系统(140页珍藏版)》请在金锄头文库上搜索。

1、1ARMARM嵌入式系统嵌入式系统主讲主讲 李宥谋李宥谋Email:Email:TEL:13891903656西安邮电学院计算机系西安邮电学院计算机系嵌入式教研室嵌入式教研室2009.82009.82教材参考书参考书 ARM嵌入式系统开发嵌入式系统开发:软件设计与优化软件设计与优化 ,作者:作者:Andrew N.Sloss北京航空航天大学出版社北京航空航天大学出版社 ARM嵌入式系统基础教程嵌入式系统基础教程周立功周立功 等编著等编著北京航空航天大学出版社北京航空航天大学出版社3 ARM嵌入式系统实验指导嵌入式系统实验指导周立功周立功 等编等编写(北京航空航天大学出版社,)写(北京航空航天大

2、学出版社,) 实验地点:计算机系嵌入式实验室实验地点:计算机系嵌入式实验室 (2#实验楼实验楼3层)层)实实验验指指导导计划学时:计划学时:48学时学时其中:授课其中:授课40学时:实验学时:实验8学时,学时,实验内容,实验内容,ADS环境环境2学时,学时,ARM汇编汇编2学时,学时,GPIO、定时器等、定时器等4 学时学时课内外比例:课内课内外比例:课内1:课外:课外1课课程程安安排排4考核要求l考试成绩(课堂教学内容)70l上机成绩(上机出勤及编程情况)15l平时成绩(上课出勤及作业等学习情况)1551.1.预备铃响后必须进教室;预备铃响后必须进教室;2.2.迟到的学生坐在第一排;迟到的学

3、生坐在第一排; 3.3.旷课旷课4次平时分扣为零分;次平时分扣为零分; 4.4.着装得体,不得穿拖鞋、背心进教室;着装得体,不得穿拖鞋、背心进教室; 5.5.不准在教室吃东西,值日生要擦黑板。不准在教室吃东西,值日生要擦黑板。 6.6.按时完成作业。按时完成作业。 课堂要求课堂要求6ARM嵌入式系统嵌入式系统-课程介绍课程介绍嵌入式嵌入式:ARM系列的体系结构系列的体系结构ARM7ARM7指令集及汇编程序设计指令集及汇编程序设计硬件接口电路原理硬件接口电路原理软件接口编程方法软件接口编程方法接口技术接口技术:7微机原理及嵌入式系统微机原理及嵌入式系统-网站资源网站资源lARM公司网站公司网站h

4、ttp:/ (全面了解全面了解) )数字逻辑数字逻辑l提供硬件基础提供硬件基础计算机组成原理计算机组成原理l确立计算机部件功能确立计算机部件功能l掌握计算机工作原理掌握计算机工作原理高级语言程序设计高级语言程序设计l熟悉熟悉C C语言程序设计的方法语言程序设计的方法l掌握基本程序设计思想掌握基本程序设计思想10ARM嵌入式系统基础教程理论教材:ARM嵌入式系统基础教程(第2版)实验教材:ARM嵌入式系统实验教程软件:ADS1.2、C/OS-II等本课程主要内容:第1章:嵌入式系统概述,概念、组成、处理器以及OS第2章:ARM7体系结构与指令系统,RISC、ARM系列、寄存器、中断以及存储系统,

5、第3章:寻址方式,ARM指令集,嵌入式程序设计第4章:ARM硬件结构与接口技术,引脚、存储器、控制模块、GPIO、中断、定时器及各种接口,总线接口111.嵌入式系统2.嵌入式系统组成3.嵌入式处理器4.嵌入式操作系统嵌入式系统概述121.1嵌入式系统1.1.1现实中的嵌入式系统嵌入式系统的应用:工业自动化、国防、运输和航天领域嵌入式系统的应用:工业自动化、国防、运输和航天领域。例如例如神州飞船和长征火箭中嵌入式系统,导弹的制导系统中的嵌入式系统,高档汽车中也有多达几十个嵌入式系统。在日常生活在日常生活中,几乎所有带有一点“智能”的家电(全自动洗衣机、电脑电饭煲)都是嵌入式系统。嵌入式系统广泛的

6、适应能力和多样性适应能力和多样性,使得视听、工作场所甚至健身设备中到处都有嵌入式系统。嵌入式系统的诞生于微型计算机时代,随其诞生现代计算机嵌入式系统的诞生于微型计算机时代,随其诞生现代计算机领域中出现了领域中出现了通用计算机通用计算机与与嵌入式计算机嵌入式计算机的两大分支。的两大分支。 通用计算机:通用计算机:按照高速、海量的技术发展;按照高速、海量的技术发展; 嵌入式计算机系统:嵌入式计算机系统:则为满足对象系统嵌入式智能化控制则为满足对象系统嵌入式智能化控制要求发展。要求发展。13l现实中的嵌入式系统14 嵌入式技术无处不在q处理文档、进行工作管理和生产控制的计算机处理文档、进行工作管理和

7、生产控制的计算机q嵌入式技术的电子产品嵌入式技术的电子产品,如:,如:MP3、PDA、手机、手机、智能玩具,网络家电、智能家电、车载电子设备智能玩具,网络家电、智能家电、车载电子设备等等q在工业和服务领域中在工业和服务领域中,大量嵌入式技术也已经应,大量嵌入式技术也已经应用于工业控制、数控机床、智能工具、工业机器用于工业控制、数控机床、智能工具、工业机器人、服务机器人等各个行业,正在逐渐改变着传人、服务机器人等各个行业,正在逐渐改变着传统的工业生产和服务方式统的工业生产和服务方式15l嵌入式系统示例汽车控制系统16马达控制器车灯l嵌入式系统示例汽车控制系统尾灯控制系统后车门控制系统前车门控制系

8、统座椅控制系统发动器控制系统所有的控制系统都是一个完整的嵌入式系统17消费电子消费电子嵌入式应用嵌入式应用信息家电信息家电智能玩具智能玩具军事电子军事电子通信设备通信设备移动存贮移动存贮工控设备工控设备智能仪表智能仪表汽车电子汽车电子网络设备网络设备工业工业军事国防军事国防电子商务电子商务网络网络嵌入式系统的应用领域18工业控制工业控制 、工业设备、工业设备q过去在工业过程控制、数字机床、电力系统、电网安全、电网设备监测、石油化工系统等方面,大部分低端型设备主要采用是位单片机。 q随着技术发展,目前许多设备除了进行实时控制,还须将设备状态,传感器的信息等在显示屏上实时显示。 需要性能更高的控制

9、系统。19嵌入式系统应用领域信息家电q信息家电将成为嵌入式系统最大的应用领信息家电将成为嵌入式系统最大的应用领域。域。q只有按钮、开关的电器显然已经不能满足只有按钮、开关的电器显然已经不能满足人们的日常需求。人们的日常需求。q具有用户界面,能远程控制,智能管理的具有用户界面,能远程控制,智能管理的电器是未来的发展趋势,如冰箱、空调等电器是未来的发展趋势,如冰箱、空调等的网络化、智能化等。的网络化、智能化等。20嵌入式系统应用领域消费类电子21消费类电子智能玩具、手持通讯的核心22智能玩具与机器人23交通管理、环境监测q交通管理在车辆导航、流量控制、信息监测与汽车服务方面,目前GPS设备已经从尖

10、端产品进入了普通百姓的家庭q水文资料实时监测,防洪体系及水土质量监测、堤坝安全,地震监测网,实时气象信息网,水源和空气污染监测。q加油站、停车场管理24嵌入式在嵌入式在InternetInternet中的应用中的应用25军事国防领域26航天领域27嵌入性嵌入性:嵌入到对象体系中,有对象环境要求:嵌入到对象体系中,有对象环境要求专用性专用性:软、硬件按对象要求裁减:软、硬件按对象要求裁减计算机计算机:实现对象的智能化功能:实现对象的智能化功能q三要素:三要素:嵌入、专用、计算机嵌入、专用、计算机q嵌入式系统的特点嵌入式系统的特点:由三要素引出由三要素引出1.1.2 嵌入式系统的定义及特点根据根据

11、IEEE(国际电气和电子工程师协会)的定义:国际电气和电子工程师协会)的定义:嵌入式系统是嵌入式系统是“用于控制、监视或者辅助操作机器用于控制、监视或者辅助操作机器和设备的装置和设备的装置”(原文为(原文为devices used to control, monitor, or assist the operation of equipment, machinery or plants)。)。简单讲,就是嵌入到对象体中的专用计算机系统。简单讲,就是嵌入到对象体中的专用计算机系统。28l嵌入式系统的概念目前,对嵌入式系统的定义多种多样,但没有一种定义是全面的。下面给出两种比较合理定义:从技术的角

12、度定义从技术的角度定义:以应用为中心、以计算机以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。用计算机系统。从系统的角度定义从系统的角度定义:嵌入式系统是设计完成复嵌入式系统是设计完成复杂功能的硬件和软件,并使其紧密耦合在一起的杂功能的硬件和软件,并使其紧密耦合在一起的计算机系统。计算机系统。29嵌入式系统的历史单片机模式和计算机模式30l嵌入式系统的相关技术与发展趋势l互联网的普及l半导体技术的改善l3C(Compute,Communic

13、ation,ConsumerElectronic)技术的快速融合l使用者的需求l信息服务应用生活化相关技术:多学科交叉,计算机、电子技术、微电子技术、集成电路设计等31未来嵌入式系统的发展趋势321.嵌入式系统2.嵌入式系统组成3.嵌入式处理器4.嵌入式操作系统嵌入式系统概述331.2嵌入式系统的组成微处理器、外围硬件、嵌入式操作系统、应用程序以及开发环境(软件分3层:HW/FM/AP,HW硬件驱动或接口操作;FM中间层;AP应用层)34外围硬件外围硬件: 嵌入式系统处理器以外的硬件,为系统提供运行嵌入式系统处理器以外的硬件,为系统提供运行条件条件(时钟和电源部件时钟和电源部件)和部分功能和部

14、分功能(内存、各种通讯端口等内存、各种通讯端口等)。1.2嵌入式系统的组成微处理器:微处理器:是嵌入式系统的核心。嵌入式微是嵌入式系统的核心。嵌入式微处理器一般都具有较高的集成度。处理器一般都具有较高的集成度。嵌入式操作系统嵌入式操作系统::为应用程序提供必要运行环境(任务调度为应用程序提供必要运行环境(任务调度),附加任务通讯、内存管理等功能。),附加任务通讯、内存管理等功能。需移植和配置方可使需移植和配置方可使用。用。嵌入式应用程序:嵌入式应用程序:在没有操作系统的情况下,嵌入式的应用在没有操作系统的情况下,嵌入式的应用程序需要直接访问寄存器或者设备的地址来操作硬件。程序需要直接访问寄存器

15、或者设备的地址来操作硬件。开发环境:开发环境:开发过程中起着至关重要的作用,并不是嵌入式开发过程中起着至关重要的作用,并不是嵌入式系统产品系统产品的一部分,不同嵌入式系统开发环境不同。的一部分,不同嵌入式系统开发环境不同。351.3嵌入式处理器嵌入式处理器分为以下几大类:嵌入式微处理器;嵌入式微控制器;嵌入式DSP处理器;嵌入式片上系统(SOC)。嵌入式处理器按应用分:注重嵌入式处理器的尺寸、能耗和价格。应用于PDA等不注重计算的设备;注重嵌入式处理器的性能。应用于路由器等计算密集型的设备;注重嵌入式处理器的性能、尺寸、能耗和价格。应用于蜂窝电话等设备;36l嵌入式微处理器(EMPU)Embe

16、dedMicroprocessorUnit(EMPU),在应用中,为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。嵌入式微处理器优点嵌入式微处理器优点:体积小、重量轻、成本低、可靠性高,但是在电路板上必须包括ROM、RAM、总线接口、各种外设等器件,从而降低了系统的可靠性,技术保密性也较差。嵌入式微处理器及其存储器、总线、外设等安装在一块电路板上,称为单板计算机。CPUROMRAM外设1外设2单板计算机单板计算机37l嵌入式微控制器(MicrocontrollerUnit,MCU)嵌入式微控制器又称单

17、片机单片机,一般以某一种微处理器内核为核心,芯片内部集成ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A、Flash RAM、EEPROM等各种必要功能和外设。 微控制器是目前嵌入式系统工业的主流。微控制器的片上外设资源一般比较丰富,适合于控制,因此称微控制器微控制器。 嵌入式微控制器种类多,括8051、P51XA、MCS-251、MCS-96/196/296、C166/167、MC68HC05/11/12/16、68300、数目众多ARM芯片等。目前MCU占嵌入式系统约70的市场份额。复位部件看门狗部件晶振部件I/O部件

18、中断部件ROM部件SRAM部件定时器部件CPU核38l嵌入式DSP处理器(数字信号处理)DSP处理器对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也较高。在数字滤波、FFT、谱分析等方面DSP算法正在大量进入嵌入式领域,DSP应用正从在通用单片机中以普通指令实现DSP功能,过渡到采用嵌入式DSP处理器。嵌入式DSP处理器比较有代表性的产品是Texas,如DSP56000,DSP56100,DSP56200和DSP56300等。PHILIPS公司近年也推出了基于可重置嵌入式DSP结构低成本、低功耗技术上制造的R.E.A.LDSP处理器,39l嵌入式片上系统(

19、SystemOnChip,SOC)随着EDA的推广和VLSI设计的普及化及半导体工艺的迅速发展,在一个硅片上实现一个更为复杂的系统的时代已来临,即SOC,除个别无法集成的器件以外,整个嵌入式系统大部分均可集成到一块或几块芯片中去。应用系统变得简洁,对于减小体积和功耗、提高可靠性非常有利。SoC可以分为通用和专用两类。通用系列包括Infineon的TriCore、Motorola的M-Core、某些ARM系列器件等。专用SoC一般专用于某个或某类系统中,不为一般用户所知。一个有代表性的产品是Philips的SmartXA,它将XA单片机内核和支持超过2048位复杂RSA算法的CCU单元制作在一块

20、硅片上,形成一个可加载JAVA或C语言的专用的SOC,可用于公众互联网如Internet安全方面。SOC下一步向片上网络(片上网络(Network on Chip,NoC)发展401.嵌入式系统2.嵌入式系统组成3.嵌入式处理器4.嵌入式操作系统嵌入式系统概述411.4嵌入式操作系统l概述计算机系统由硬件和软件组成,初期初期没有操作系统这个概念,用户使用监控程序来使用计算机。随着计算机技术的发展,计算机系统的硬件、软件资源也愈来愈丰富,监控程序监控程序已不能适应计算机应用的要求。于是在六十年代中期监控程序又进一步发展形成了操作系统(OperatingSystem)。发展到现在,广泛使用的有三种

21、操作系统三种操作系统:多道批处理操作系统分时操作系统实时操作系统421.4嵌入式操作系统监监控控程程序序操操作作系系统统实时操作系统实时操作系统分时操作系统分时操作系统多道批处理操作系统多道批处理操作系统 时时 间间 先先 后后 适用于多个用户共享系统资适用于多个用户共享系统资源源适用于计算中心等较大的计适用于计算中心等较大的计算机系统算机系统适用于嵌入式设备和有实时适用于嵌入式设备和有实时性要求的系统中性要求的系统中实时操作系统是我们实时操作系统是我们介绍的重点介绍的重点431.4嵌入式操作系统l实时操作系统的特点IEEE的实时UNIX分委会认为实时操作系统应具备以下的几点:异步的事件响应(

22、随机性)切换时间和中断延迟时间确定优先级中断和调度抢占式调度(高优先级任务可抢占CPU)内存锁定(将程序或部分程序锁定在内存)连续文件(把数据存储在连续的文件上)同步(协调执行)44实时操作系统的特点实时操作系统的特点实时操作系统是事件驱动的,能对来自外界的作用和信号在限定的时间范围内作出响应。它强调的是实时性、可靠性和灵活性,与实时应用软件相结合成为有机的整体起着核心作用,由它来管理和协调各项工作,为应用软件提供良好的运行软件环境及开发环境。从实时系统的应用特点来看实时操作系统可以分为两种:l l一般实时操作系统l l嵌入式实时操作系统。45实时操作系统的特点实时操作系统的特点一般实时操作系

23、统应用于实时处理系统的上位机和实时查询系统等实时性较弱的实时系统,并且提供了开发、调试、运用一致的环境。嵌入式实时操作系统应用于实时性要求高的实时控制系统,而且应用程序的开发过程是通过交叉开发来完成的,即开发环境与运行环境不一致。嵌入式实时操作系统具有规模小(一般在几K几十K内)、可固化使用实时性强(在毫秒或微秒数量级上)的特点。461.4嵌入式操作系统l基本概念对基于芯片的开发来说,应用程序一般是一个无限的循环,可称为前后台系统或超循环系统。后台系统:后台系统:循环中调用相应的函数完成相应的操作,属于任务级;前台系统:前台系统:中断或异步事件,属于中断级;很多基于微处理器的产品采用前后台系统

24、设计,例如微波炉、电话机、玩具等。在另外一些基于微处理器应用中,从省电的角度出发,平时微处理器处在停机状态,所有事都靠中断服务来完成。前后台系统前后台系统47l基本概念 中断服务程中断服务程序处理异步事件,序处理异步事件,这部分可以看成这部分可以看成前台行为前台行为,前台,前台也叫中断级。时也叫中断级。时间相关性很强的间相关性很强的关键操作一定是关键操作一定是靠中断服务程序靠中断服务程序来保证的。来保证的。 循环中调用循环中调用相应的函数完成相应的函数完成相应的操作,这相应的操作,这部分可以看成部分可以看成后后台行为台行为,后台也,后台也可以叫做任务级。可以叫做任务级。这种系统在处理这种系统在

25、处理的及时性上比实的及时性上比实际可以做到的要际可以做到的要差。差。 ISRISRISRISR后台后台前台前台中断服务程序中断服务程序时时间间前后台系统481.4嵌入式操作系统l基本概念操作系统是计算机中最基本的程序。操作系统负责计算机系统中全部软硬资源的分配与回收、控制与协调等并发的活动,提高资源利用率;提高资源利用率;操作系统提供用户接口,方便用户使用;方便用户使用;操作系统为用户扩展新的系统功能提供软件平台。操作系统硬件硬件驱动操作系统用户程序491.4嵌入式操作系统l基本概念实时操作系统是一段在嵌入式系统启动后首先执行的背景程序,用户的应用程序是运行于RTOS之上的各个任务,RTOS根

26、据各个任务的要求,进进行资源管理行资源管理(包括包括CPU、存储器、外设等、存储器、外设等) 、消息管、消息管理、任务调度、异常处理等工作。理、任务调度、异常处理等工作。在RTOS支持的系统中,每个任务均有一个优先级,RTOS根据各个任务的优先级,动态地切换各个任务,保证对实时性的要求。实时操作系统(实时操作系统(Real Time Operating System, RTOS)501.4嵌入式操作系统l基本概念多任务系统中,内核负责管理各个任务,内核负责管理各个任务,为每个任务分配CPU时间,并且负责任务之间的通信。内核提供的基本服务是任务切换。使用实时内核可以大大简化应用系统的设计,是因为

27、实时内核允许将应用分成若干个任务,由实时内核来管理它们。内核需要消耗一定的系统资源,比如25的CPU运行时间、RAM和ROM等。内核提供必不可少的系统服务,如信号量、消息队列、延时等。内核511.4嵌入式操作系统l基本概念调度是内核的主要职责之一。调度就是决定该轮到哪个任务运行了。多数实时内核是基于优先级调度法的。多数实时内核是基于优先级调度法的。每个任务根据其重要程序的不同被赋予一定的优先级。基于优先级的调度法基于优先级的调度法指CPU总是让处在就绪态的优先级最高的任务先运行。然而究竟何时让高优先级任务掌握CPU的使用权,有两种不同的情况,这要看用的是什么类型的内核,是非占先式的还是占先式的

28、内核。调度521.4嵌入式操作系统非占先式内核要求每个任务自我放弃非占先式内核要求每个任务自我放弃CPU 的的所有权。所有权。非占先式调度法也称作合作型多任务,各个任务彼此合作共享一个CPU。不按优先级安排。非占先式内核当系统响应时间很重要时,要使用占先式内核。因此绝大多数商业上销售的实时内核都是占先式内核。最高优先级的任务一旦就绪,总能得到CPU的控制权。按优先级安排。占先式内核531.4嵌入式操作系统任务的优先级是表示任务被调度的优先程度。每个任务都具有优先级。任务越重要,赋予的优先级应越高,越容易被调度而进入运行态。任务优先级中断是一种硬件机制,用于通知CPU有个异步事件发生了。中断一旦

29、被识别,CPU保存部分(或全部)上下文即部分或全部寄存器的值,跳转到专门的子程序,称为中断服务子程序(ISR)。中断服务子程序做事件处理,处理完成后,程序回到:1.在前后台系统中,程序回到后台程序;2.对非占先式内核而言,程序回到被中断了的任务;3.对占先式内核而言,让进入就绪态的优先级最高的任务开始运行。中断54前后台系统1.4嵌入式操作系统中断ISR任务ISR非占先操作系统任务A任务B任务CISR占先操作系统任务A任务B任务C551.4嵌入式操作系统时钟节拍是特定的周期性中断。可看作是系统心脏的脉动。中断之间的时间间隔取决于不同应用,一般在10ms到200ms之间。时钟节拍率越快,系统的额

30、外开销就越大。时钟节拍l使用实时操作系统的必要性嵌入式实时操作系统在功能复杂、系统庞大的应用中显得愈来愈重要。在嵌入式应用中,只有把CPU嵌入到系统中,同时又把操作系统嵌入进去,才是真正的计算机嵌入式应用。使用实时操作系统主要有以下几个因素:嵌入式实时操作系统提高了系统的可靠性。提高了开发效率,缩短了开发周期。嵌入式实时操作系统发挥了32位CPU的多任务潜力。561.4嵌入式操作系统l实时操作系统的优缺点 优点优点:在嵌入式实时操作系统环境下开发实时应用程序使程序的设计和扩展变得容易,不需要大的改动就可以增加新的功能。通过将应用程序分割成若干独立的任务模块,简化了设计;对实时性要求苛刻的事件都

31、得到了快速、可靠的处理。通过有效的系统服务,嵌入式实时操作系统使得系统资源得到更好的利用。缺点缺点:但是,使用嵌入式实时操作系统还需要额外的ROM/RAM开销,25%的CPU额外负荷,以及内核的费用。57uClinux是一个完全符合GNU/GPL公约的操作系统,完全开放代码。uClinux从Linux2.0/2.4内核派生而来,沿袭了主流Linux的绝大部分特性。它是专门针对没有MMU的CPU,并且为嵌入式系统做了许多小型化的工作。适用于没有虚拟内存或内存管理单元(MemoryManageUnit,MMU)的处理器,例如ARM7TDMI。它通常用于具有很少内存或Flash的嵌入式系统。它保留了

32、Linux的大部分优点:稳定、良好的稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持、移植性、优秀的网络功能、完备的对各种文件系统的支持、以及标准丰富的以及标准丰富的APIAPI等等。1.4嵌入式操作系统l常见的嵌入式操作系统嵌入式Linux581.4嵌入式操作系统l常见的嵌入式操作系统WindowsCEWindowsCE是微软开发的一个开放的、可升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作,它是精简的Windows95。WindowsCE的图形用户界面相当出色。WinCE具有模块化、结构化和基于Win32应用程序接口以及与处理器无关等特点。WinCE不仅继承了传

33、统的Windows图形界面,并且在WinCE平台上可以使用Windows95/98上的编程工具(如VisualBasic、VisualC+等)、使绝大多数的使绝大多数的应用软件只需简单的修改和移植就可以在应用软件只需简单的修改和移植就可以在WindowsCEWindowsCE平台上平台上继续使用。继续使用。WinCE591.4嵌入式操作系统l常见的嵌入式操作系统VxWorksVxWorks操作系统是美国公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其

34、良好的可靠性和卓越的实时性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等,甚至在1997年4月登陆火星表面的火星探测器上也使用到了VxWorks。该系统价格较贵。601.4嵌入式操作系统l常见的嵌入式操作系统C/OS-II是一个源码公开、可移植、可固化、源码公开、可移植、可固化、可裁剪、占先式的实时多任务操作系统。可裁剪、占先式的实时多任务操作系统。其绝大部分源码是用ANSIC写的,使其可以方便的移植并支持大多数类型的处理器。C/OS-II通过了联邦航空局(FAA)商用航行器认证。自1992年问世以来,C/OS-II已经被应

35、用到数以百计的产品中。C/OS-II占用很少的系统资源,并且在高校教学使用是不需要申请许可证。C/OS-II作业:第一章思考与练习2,3,461嵌入式系统软硬件基本结构应用程序实时操作系统(RTOS)输入输出接口处理器/ARM核MMU/CacheSOC/SOPCUSBGPIOIISLCDUART和IrDAADC/DACFPGA/CPLDDSP/浮点运算协处理器DMA电源管理 典型的嵌入式系统组成典型的嵌入式系统组成人机交互接口LCD/触摸屏、键盘、鼠标设备驱动程序、HAL、BSP文件系统/图形用户应用程序接口驱动层OS层应用层软件硬件以太网看门狗及复位电路Timer/RTCCANFlashEE

36、PROMSDRAMSRAM内存返回返回62嵌入式系统组成对比计算机组成lEmbeddedsystem嵌入式系统lHardware硬件l处理器:MCUMPUDSPSOCl保存固件的ROMFLASHl运行程序时保存数据的RAMl外设(显示LCD简易键盘传感器ADDA扩展卡)lSoftwarel固件(硬件和上层操作系统及程序的接口)lBSP(BoardSupportPacket亦为bootloader)lOperatesystem(linuxwinceucossymbianVxworks)l应用软件(tcp/ip协议栈)lComputersysteml硬件lIntelAMDl硬盘l内存l显示器键盘声

37、卡显卡lSoftwarelBIOSlWindowsLunixl应用软件(如office)63嵌入式系统主要特点l在硬件上,嵌入式系统至少拥有一个高性能处理器作为硬件平台(目前以32位处理器为主流),如ARM、MIPS等处理器。l在软件上,嵌入式系统拥有一个多任务操作系统为软件系统平台,如Linux、WinCE、c/osII、VxWork、palmOS、WindowsMobile、Symbian等。SymbianOS(中文译音“塞班系统”)由诺基亚、索尼爱立信、摩托罗拉、西门子等几家大型移动通讯设备商共同出资组建的一个合资公司,专门研发手机操作系统。现已被NOKIA全额收购。641.ARM简介2

38、.ARM7TDMI3.ARM的模块、内核和功能框图4.ARM处理器状态5.ARM处理器模式ARM7体系结构6.ARM内部寄存器7.当前程序状态寄存器8.ARM体系的异常、中断及其向量表9.ARM体系的存储系统65冯冯诺依曼体系结构模型诺依曼体系结构模型指令寄存器指令寄存器控制器控制器数据通道数据通道输入输入输出输出中央处理器中央处理器存储器存储器程序程序指令指令0 0指令指令1 1指令指令2 2指令指令3 3指令指令4 4数据数据数据数据0 0数据数据1 1数据数据2 266哈佛体系结构哈佛体系结构指令寄存器指令寄存器控制器控制器数据通道数据通道输入输入输出输出中央处理器中央处理器程序存储器程

39、序存储器指令指令0指令指令1指令指令2数据存储器数据存储器数据数据0数据数据1数据数据2地址地址指令指令地址地址数据数据67CISC和和RISCCISCCISC:复杂指令集(:复杂指令集(Complex Instruction Set ComputerComplex Instruction Set Computer)具有大量的指令和寻址方式具有大量的指令和寻址方式8/28/2原则:原则:80%80%的程序只使用的程序只使用20%20%的指令的指令大多数程序只使用少量的指令就能够运行。大多数程序只使用少量的指令就能够运行。RISCRISC:精简指令集(:精简指令集(Reduced Instruc

40、tion Set Computer)Reduced Instruction Set Computer)在通道中只包含最有用的指令在通道中只包含最有用的指令确保数据通道快速执行每一条指令确保数据通道快速执行每一条指令使使CPUCPU硬件结构设计变得更为简单硬件结构设计变得更为简单 682.1ARM简介lARM公司简介ARM是AdvancedRISCMachines的缩写,它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC处理器。ARM公司的特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM(OriginalEquipmentManufact

41、urer,原始设备生产商)厂商,并提供服务。OEM:定牌生产合作,俗称“贴牌”。这种委托他人生产的合作方式即为OEM,承接这加工任务的制造商就被称为OEM厂商,其生产的产品就是OEM产品。69授权费IPARM创造和设计IP产品,例如:芯片Partner把ARMIP和其他IP集成进产品版权费单价OEM用来自ARMPartner的芯片设计制造最终用户产品业务拓展/市场格局ARMARM的业务模型的业务模型702.1ARM简介lARM公司简介将技术授权给其它芯片厂商形成各具特色的形成各具特色的ARMARM芯片芯片.712.1ARM简介lRISC结构特性两种体系结构:CISC(ComplexInstru

42、ctionSetComputer),即“复杂指令系统计算机PC机系列; RISCRISC (reducedinstructionsetcomputer)是精简指令集计算机的缩写,其目标是设计出在高时钟频率下设计出在高时钟频率下单周期执行,简单而有效的指令集单周期执行,简单而有效的指令集。ARM内核采用RISC体系结构,因此具有RISC的结构特点:具有大量的通用存储器;具有大量的通用存储器;独特的装载独特的装载/ /保存(保存(load-storeload-store)结构;)结构;简单的寻址模式简单的寻址模式; ;统一和固定长度的指令格式。统一和固定长度的指令格式。722.1ARM简介 为了使

43、ARM能够更好地满足嵌入式应用的需要,ARM体系结构还有以下特点:每条数据处理指令可同时包含算术逻辑单元(ALU)的运算和移位处理,实现ALU和移位器的最大利用;使用地址自增和自减地址自增和自减的寻址方式优化程序循环;装载装载/ /保存保存指令对数据的批量传输,实现最大数据吞吐量;多数指令的依条件执行,实现最快速的代码执行。lARM体系结构732.1ARM简介l常用ARM处理器系列 ARM公司开发了很多系列的ARM处理器核,目前最新的系列是Cortex,而ARM6核以及更早的系列已经很罕见了。当前应用比较多的ARM处理器核系列有:ARM7ARM9ARM10EXscaleARM11CortexA

44、RM9E本课程主要介绍ARM7系列。74ARM内核分类与系列1994-2004年发布的年发布的ARM内核内核752.1ARM简介分类处理器内核处理器内核 内核分类内核分类ARM7 ARM7DMI(-S) ARM720T ARM7EJ-SARM9 ARM920T ARM922TARM9E ARM926EJ-S ARM946E-S ARM966E-S ARM968E-SARM10E ARM1020E ARM1022E ARM1026EJ-S处理器内核处理器内核内核分类内核分类ARM11 ARM1136J(F)-S ARM1156T2(F)-S ARM1176JZ(F)-SSecurCore SC1

45、00 SC110 SC200 SC210Strong ARMXscale762.1ARM简介lARMCortex系列简介 基于ARMv7版本的ARM Cortex系列产品由A、R、M三个系列组成,具体分类延续了一直以来ARM面向具体应用设计CPU的思路。 ARMCortexA应用处理器(Application Processor)系列 R实时控制处理(Real Time Control )系列M微控制器(Micro Controller )系列772.1ARM简介lCortexTM-M3处理器简介(针对低端市场) 该处理器是首款基于ARMv7-M架构的处理器,采用了纯Thumb2指令的执行方式

46、,具有极高的运算能力和中断相应能力。 Cortex-M3主要应用于汽车车身系统,工业控制系统和无线网络等对功耗和成本敏感的嵌入式应用领域。lCortexTM-R4处理器简介 该处理器是首款基于ARMv7架构的高级嵌入式处理器,其主要目标为产量巨大的高级嵌入式应用系统,如硬盘,喷墨式打印机,以及汽车安全系统等等。lCortexTM-R4F处理器简介 该处理器在CortexTM-R4处理器的基础上加入了代码错误校正(ECC)技术,浮点运算单元(FPU)以及DMA综合配置的能力,增强了处理器在存储器保护单元、缓存、紧密耦合存储器、DMA访问以及调试方面的能力。782.1ARM简介lCortexTM-

47、A8处理器简介 该处理器是ARM公司所开发的基于基于ARMv7ARMv7架构架构的首款应用级处理器,其特色是运用了可增加代码密度和加强性能的技术、可支持多媒体以及信号处理能力的NEONTM技术、以及能够支持Java和其他文字代码语言的提前和即时编译的JazelleRTC技术。众多先进的技术使其适用于家电以及电子行业等各种高端的应用领域。lARM7系列简介 该系列包括ARM7TDMI、ARM7TDMI-S、带有高速缓存处理器宏单元的ARM720T和扩充了Jazelle(Java加速器)的ARM7EJ-S。该系列处理器提供Thumb 16位压缩指令集和EmbededICE软件调试方式,适用于更大规

48、模的SoC设计中。ARM7系列广泛应用于多媒体和嵌入式设备,包括Internet设备、网络和调制解调器设备,以及移动电话、PDA等无线设备。792.1ARM简介 该系列包括ARM9TDMI、ARM920T和带有高速缓存处理器宏单元的ARM940T。除了兼容ARM7系列,而且能够更加灵活的设计。ARM9系列主要应用于引擎管理、仪器仪表、安全系统和机顶盒等领域。lARM9系列简介 该系列为含有DSP指令集的综合处理器,包括ARM926EJ-S、带有高速缓存处理器宏单元的ARM966E-S/ARM946E-S。其内核在ARM7处理器内核的基础上使用了Jazelle增强技术,该技术支持一种新的Java

49、操作状态,允许在硬件中执行Java字节码。ARM9E系列主要应用于下一代无线设备、数字消费品、成像设备、工业控制、存储设备和网络设备等领域。lARM9E系列简介802.1ARM简介lARM10E系列简介 该系列包括ARM1020E和ARM1020E处理器核,其核心在于使用向量浮点(VFP)单元VFP10提供高性能的浮点解决方案,从而极大提高了处理器的整型和浮点运算性能。 可以用于视频游戏机和高性能打印机等场合。lXscale简介 Intel Xscale微控制器则提供全性能、高性价比、低功耗的解决方案,支持16位Thumb指令并集成数字信号处理(DSP)指令。 主要应用于手提式通讯和消费电子类

50、设备。811.ARM简介2.ARM7TDMI3.ARM的模块、内核和功能框图4.ARM处理器状态5.ARM处理器模式ARM7体系结构6.ARM内部寄存器7.当前程序状态寄存器8.ARM体系的异常、中断及其向量表9.ARM体系的存储系统822.2ARM7TDMIl简介 ARM7TDMI是基于ARM体系结构V4版本的低端ARM核。 其弥补了ARM6很难在低于5V电压下稳定工作的不足,还增加了后缀所对应的功能:注意:“ARM核”并非芯片,ARM核与其它部件如RAM、ROM、片内外设组合在一起才能构成现实的芯片。ARM7TDMI-S支持高密度16位的Thumb指令集;支持片上调试;支持64位乘法;支持

51、EmbededICE观察硬件;ARM7TDMI 的可综合(synthesizable)版本(软核),对应用工程师来说其编程模型与ARM7TDMI 一致;83命名的含义标志含义说明T支持Thumb指令集Thumb指令集版本1:ARMv4TThumb指令集版本2:ARMv5TThumb-2:ARMv6TD片上调试M支持长乘法32位乘32位得到64位,32位的乘加得到64位IEmbeddedICEEDSP指令增加了DSP算法处理器指令:16位乘加指令,饱和的带符号数的加减法,双字数据操作,cache预取指令JJava加速器Jazelle提高java代码的运行速度S可综合提供VHDL或Verilog语

52、言设计文件842.2ARM7TDMIl存储器的字与半字从偶数地址开始的连续2个字节构成一个半字;以能被4整除的地址开始的连续4个字节构成一个字;ARM指令的长度刚好是一个字,Thumb指令的长度刚好是一个半字。852.2ARM7TDMI 如果一个数据是从偶地址开始的连续存储,那么它就是半字对齐,否则就是非半字对齐; 如果一个数据是以能被4整除的地址开始的连续存储,那么它就是字对齐,否则就是非字对齐。方式方式半字对齐半字对齐字对齐字对齐地址地址0x40020x40020x40040x40040x40040x40040x40080x4008特征特征Bit0=0Bit0=0其他位为任意值其他位为任意

53、值Bit1=0,Bit0=0Bit1=0,Bit0=0其他位为任意值其他位为任意值l存储器的存储方式862.2ARM7TDMIl三级流水线 ARM处理器使用流水线来增加处理器指令流的速度,这样可使几个操作同时进行,并使处理和存储器系统连续操作,能提供0.9MIPS/MHz的指令执行速度。 ARM7TDMI的流水线分3级,分别为:取指译码执行取指译码执行处理指令并将结果写回寄存器识别将要被执行的指令从寄存器装载一条指令正常操作过程中,在执行一条指令的同时对下一条(第二条)指令进行译码,并将第三条指令从存储器中取出。 在ARM状态下,流水线上各指令的地址为: 在Thumb状态下,流水线上各指令的地

54、址为:PCPC-4PC-8PCPC-2PC-4872.2ARM7TDMIl三级流水线结构的指令执行顺序PC指令1指令2指令3指令4程序存储器PC-4PC-8PC+4周期1周期2周期3周期4周期5周期6取指译码执行取指译码执行取指译码执行取指译码执行周期周期2周期周期1周期周期3周期周期4 在第1个周期,PC指向指令1,此时指令1进入三级流水线的取指阶段。1 在第2个周期,PC指向指令2,此时指令1进入三级流水线的译码阶段,同时取出指令2。2 在第3个周期,PC指向指令3,此时指令1进入三级流水线的执行阶段,指令2进入译码阶段,取出指令3。3 在第4个周期,指令1执行完成,指令2和指令3流水线推

55、进一级,同时开始指令4的取指处理。4处理器执行一条指令的三个阶段88 执行ADD PC,PC,#4指令后,PC的值为多少?2.2ARM7TDMIl思考题ADDPC,PC,#40x40000x40040x40080x400C地址指令PC取指译码执行PCPC-4PC-8ARM7的3级流水线ADD 程序计数器R15(PC)总是指向“正在取指”的指令,而不是指向“正在执行”的指令或“正在译码”的指令。 一般来说,人们习惯性约定将“正在执行”的指令作为参考点,则:PC值当前程序执行位置8 注:ARM状态时,每条指令为4字节长。 PC指向0x4000地址,取指ADD指令。 PC指向0x4004地址,译码A

56、DD指令。 PC指向0x4008地址,执行ADD指令,所以指令执行的结果为: PC=PC+40x400840x400C。891.ARM简介2.ARM7TDMI3.ARM的模块、内核和功能框图4.ARM处理器状态5.ARM处理器模式ARM7体系结构6.ARM内部寄存器7.当前程序状态寄存器8.ARM体系的异常、中断及其向量表9.ARM体系的存储系统90CPU扫描链1扫描链1数据总线数据总线扫描链1扫描链2协处理器信号接口EmbeddedICE-RTTAP控制器EmbeddedICE-RT宏单元DBGTCKENDBGTMSDBGnTRSTDBGTDIDBGTDORDATA31:0WDATA31:0

57、ADDR31:0TRANS1:0PROT1:0SIZE1:0WRITELOCKDBGRNG(0)DBGRNG(1)DBGEXT(1)DBGEXT(0)2.3ARM模块框图CPU协处理接口信号EmbedICE硬件仿真功能模块片上调试系统读写总线912.3ARM内核框图地址寄存器寄存器组31*32位寄存器(6个状态寄存器)地址增加器乘法器桶形移位器32位ALU写数据寄存器指令管线读数据寄存器Thumb指令译码器指令译码和控制逻辑ADDR31:0CLKCLENCFGBIGENDnIRQnFIQnRESETABORTLOCKWRITESIZE1:0PROT1:0TRANS1:0DBG输出DBG输入CP

58、控制CP握手WDATA31:0RDATA31:0扫描调试控制922.3ARM功能框图ARM7TDMI-S处理器LOCKCLKCLKENnIRQnFIQnRESETCFGBIGENDDBGRQDMOREDBGINSTRVAILDDBGBREAKDBGACKDBGnEXECDBGEXT1DBGEXT0DBGENDBGCOMMTXDBGCOMMRXDBGRNG0DBGRNG1DBGTCKENDBGTMSDBGTDIDBGnTRSTDBGTDODBGnTDOENADDR31:0WDATA31:0RDATA31:0ABORTWRITESIZE1:0PROT1:0TRANS1:0CPnTRANSCPnOP

59、CCPnMREQCPSEQCPTBITCPnICPACPB同步的扫描调试访问接口存储器接口存储器管理接口协处理器接口时钟中断总线控制仲裁调试931.ARM简介2.ARM7TDMI3.ARM的模块、内核和功能框图4.ARM处理器状态5.ARM处理器模式ARM7体系结构6.ARM内部寄存器7.当前程序状态寄存器8.ARM体系的异常、中断及其向量表9.ARM体系的存储系统942.4ARM处理器状态l处理器状态 ARM7TDMI处理器内核包含2套指令系统,分别为ARM指令集和Thumb指令,并且各自对应1种处理器的状态:ARM状态:32位,处理器执行字方式的ARM指令,处理器默认为此状态;Thumb状

60、态:16位,处理器执行半字方式的Thumb指令。注意:注意:两个状态之间的切换并不影响处理器模式或寄存器内容。952.4ARM处理器状态l状态切换的一个例子地址最低位为0,表示切换到ARM状态 使用BX指令将ARM内核的操作状态在ARM状态和Thumb状态之间进行切换。ARM指令集Thumb指令集CODE32LDRR0,=Lable+1BXR0CODE16LableMOVR1,#12CODE16LDRR0,=LableBXR0CODE32LableMOVR1,#10地址最低位为1,表示切换到Thumb状态跳转地址标号执行完BX指令,处理器切换到Thumb状态,开始执行Thumb指令程序代码指令

61、集关系 从ARM状态切换到Thumb状态的程序代码如下: 从Thumb状态切换到ARM状态的程序代码如下:执行完BX指令,处理器切换到ARM状态,开始执行ARM指令961.ARM简介2.ARM7TDMI3.ARM的模块、内核和功能框图4.ARM处理器状态5.ARM处理器模式ARM7体系结构6.ARM内部寄存器7.当前程序状态寄存器8.ARM体系的异常、中断及其向量表9.ARM体系的存储系统972.5ARM处理器模式l简介ARM体系结构支持7种处理器模式,分别为:用户模式、快中断模式、中断模式、管理模式、用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。中止模式、未定义模

62、式和系统模式。这样的好处是可以更好的支持操作系统并提高工作效率。ARM7TDMI完全支持这七种模式。98 除用户模式外,其它模式均为特权模式。ARM内部寄存器和一些片内外设在硬件设计上只允许(或者可选为只允许)特权模式下访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。处理器模式处理器模式说明说明备注备注用户(usr)正常程序运行的工作模式不能直接从用户模式切换到其它模式特权模式系统(sys)用于支持操作系统的特权任务等与用户模式类似,但具有可以直接切换到其它模式等特权异常模式快中断(fiq)快速中断请求处理只有在FIQ异常响应时,才进入此模式中断(irq)中断请

63、求处理只有在IRQ异常响应时,才进入此模式管理(svc)供操作系统使用的一种保护模式只有在系统复位和软件中断响应时,才进入此模式中止(abt)用于虚拟内存和/或存储器保护在ARM7内核中没有多大用处未定义(und)支持软件仿真的硬件协处理器只有在未定义指令异常响应时,才进入此模式l处理器模式 这两种模式都不能由异常进入,想要进入必须修改CPSR,而且它们使用完全相同的寄存器组。系统模式是特权模式,不受用户模式的限制。操作系统在该模式下访问用户模式的寄存器就比较方便,而且操作系统的一些特权任务可以使用这个模式访问一些受控的资源。 这五种模式称为异常模式。它们除了可以通过程序切换进入外,也可以由特

64、定的异常进入。当特定的异常出现时,处理器进入相应的模式。每种异常模式都有一些独立的寄存器,以避免异常退出时用户模式的状态不可靠。何时进入异常模式,具体规定如下:处理器复位之后进入管理模式,操作系统内核通常处于管理模式;当处理器访问存储器失败时,进入数据访问中止模式;当处理器遇到没有定义或不支持的指令时,进入未定义模式;中断模式与快速中断模式分别对ARM处理器2种不同级别的中断作出响应。991.ARM简介2.ARM7TDMI3.ARM的模块、内核和功能框图4.ARM处理器状态5.ARM处理器模式ARM7体系结构6.ARM内部寄存器7.当前程序状态寄存器8.ARM体系的异常、中断及其向量表9.AR

65、M体系的存储系统1002.6ARM内部寄存器l简介 在ARM处理器内部共有37个用户可访问的寄存器,分别为31个通用32位寄存器和6个状态寄存器。 ARM处理器共有7种不同的处理器模式,每种模式都有一组相应的寄存器组,最多可以18个活动的寄存器。SPSR:普通模式和系统模式下是看不见SPSR这个寄存器的!只有当进入异常模式的时候,SPSR就会保存当前CPSR的状态,便于退出异常时恢复使用。101ARM状态各模式下的寄存器寄存器寄存器类别类别寄存器在汇寄存器在汇编中的名称编中的名称各模式下实际访问的寄存器各模式下实际访问的寄存器用户用户系统系统管理管理中止中止未定义未定义中断中断快中断快中断通通

66、用用寄寄存存器器和和程程序序计计数数器器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR13_irqR14_fiqR15(PC)R15状态状态寄存器寄存器CPSRCPSRSPSRSPSR_s

67、vcSPSR_abtSPSR_undSPSR_irqSPSR_fiq 所有的37个寄存器,分成两大类:31个通用32位寄存器;6个状态寄存器。102ARM状态各模式下可以访问的寄存器寄存器寄存器类别类别寄存器在汇寄存器在汇编中的名称编中的名称各模式下实际访问的寄存器各模式下实际访问的寄存器用户用户系统系统管理管理中止中止未定义未定义中断中断快中断快中断通通用用寄寄存存器器和和程程序序计计数数器器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL

68、,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态状态寄存器寄存器CPSRCPSRSPSRSPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq103未分组的通用寄存器寄存器寄存器类别类别寄存器在汇寄存器在汇编中的名称编中的名称各模式下实际访问的寄存器各模式下实际访问的寄存器用户用户系统系统管理管理中止中止未定义未定

69、义中断中断快中断快中断通通用用寄寄存存器器和和程程序序计计数数器器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4)R7R8(v5)R8R8_fiqR9(SB,v6)R9R9_fiqR10(SL,v7)R10R10_fiqR11(FP,v8)R11R11_fiqR12(IP)R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR13_irqR14_fiqR15(PC)R15状态状态寄存器寄存器CPSRC

70、PSRSPSRSPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq寄存器R0R7为未分组的通用寄存器,它们在任何处理器模式都对应于相同的32位物理寄存器。第一类分组的通用寄存器寄存器R8R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。在发生FIQ中断后,处理器不必为保护寄存器而浪费时间,从而加速了FIQ的处理速度。第二类分组的通用寄存器寄存器R13、R14分别有6个分组的物理寄存器。1个用于用户和系统模式,其余5个分别用于5种异常模式。寄存器R13通常作为堆栈指针(SP),用于保存待使用的寄存器的内容。寄存器R14称为链

71、接寄存器(LR),在结构上有两个特殊功能:当使用BL指令调用子程序时,返回地址将自动存入R14中;当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个小的固定偏移量)。程序计数器寄存器R15称为程序计数器(PC),它指向正在“取指”的指令。状态寄存器寄存器CPSR为当前程序状态寄存器,在异常模式中,另外一个寄存器“程序状态保存寄存器(SPSR)”可以被访问。每种异常都有自己的SPSR,在进入异常时它保存CPSR的当前值,异常退出时可通过它恢复CPSR。1042.6ARM内部寄存器l在Thumb状态各模式下实际访问的寄存器 Thumb状态寄存器集是ARM状态集的子集,程序员

72、可以直接访问的寄存器为:8个通用寄存器R0R7;程序计数器(PC);堆栈指针(SP);链接寄存器(LR);当前程序状态寄存器( Current Program State Register, CPSR)。105在Thumb状态各模式下的寄存器寄存器寄存器类别类别寄存器在汇寄存器在汇编中的名称编中的名称各模式下实际访问的寄存器各模式下实际访问的寄存器用户用户系统系统管理管理中止中止未定义未定义中断中断快中断快中断通通用用寄寄存存器器和和程程序序计计数数器器R0(a1)R0R1(a2)R1R2(a3)R2R3(a4)R3R4(v1)R4R5(v2)R5R6(v3)R6R7(v4,WR)R7SPR1

73、3R13_scvR13_abtR13_undR13_irqR13_fiqLRR14R14_svcR14_abtR14_undR13_irqR14_fiqPCR15状态状态寄存器寄存器CPSRCPSRl未分组的通用寄存器l第二类分组的通用寄存器在汇编语言中寄存器R0R7为通用寄存器,对于任何处理器模式,它们中的每一个都对应于相同的32位物理寄存器。堆栈指针SP对应ARM状态的寄存器R13。每个异常模式都有其自身的SP分组版本,SP通常指向各异常模式所专用的堆栈。注意:在发生异常时,处理器自动进入ARM状态。链接寄存器LR对应ARM状态寄存器R14。注意:在发生异常时,处理器自动进入ARM状态。1

74、06ARM状态Thumb寄存器在ARM状态寄存器上的映射R0R1R2R3R4R5R6R7R8R9R10R11R12堆栈指针(R13)连接寄存器(R14)程序计数器(R15)CPSRSPSRR0R1R2R3R4R5R6R7堆栈指针(SP)连接寄存器(LR)程序计数器(PC)CPSRThumb状态 Thumb状态R0R7与ARM状态R0R7相同;1 Thumb状态CPSR(无SPSR)与ARM状态CPSR相同。5 Thumb状态SP映射到ARM状态R13;2 Thumb状态LR映射到ARM状态R14; 3 Thumb状态PC映射到ARM状态R15(PC);4低端寄存器高端寄存器 在Thumb状态中

75、,高端寄存器的访问是受到限制的,只有MOV、CMP和ADD指令可以对其访问,可以用于数据的快速暂存。107ARMThumbARMResetBXBXARM中断服务程序正常程序事件ARMARMISR1ISR2ISRnl状态切换过程异常发生进入退出 系统复位,自动切换到ARM状态。1 通过BX和BLX指令改变当前处理器模式,使之从ARM状态切换到Thumb状态。2 在Thumb状态下,正常程序执行时产生中断异常。3 处理器进入中断异常,自动的将模式切换到ARM状态。4 异常处理完毕,返回正常程序,此时处理器自动的将模式切换到Thumb状态。5 再次通过BX和BLX指令改变当前处理器模式,使之从Thu

76、mb状态切换到ARM状态。6 程序在正常运行的过程中,复位事件产生,导致系统复位。1081.ARM简介2.ARM7TDMI3.ARM的模块、内核和功能框图4.ARM处理器状态5.ARM处理器模式ARM7体系结构6.ARM内部寄存器7.当前程序状态寄存器8.ARM体系的异常、中断及其向量表9.ARM体系的存储系统1092.7当前程序状态寄存器(CPSR)l简介 ARM内核包含1个CPSR和5个仅供异常处理程序使用的SPSR。CPSR反映当前处理器的状态,其包含:4个条件代码标志(负标志N、零标志Z、进位标志C和溢出标志V );2个中断禁止位(IRQ禁止与FIQ禁止);5个对当前处理器模式进行编码

77、的位(M4:0);1个用于指示当前执行指令的位(ARM指令还是Thumb指令)。1102.7当前程序状态寄存器(CPSR)l程序状态寄存器的格式NZCV IM0M1M2M3M4TF. . .31 30 29 28 27 26 8 7 6 5 4 3 2 1 0条件代码标志保留控制位溢出标志进位或借位扩展零负或小于IRQ禁止FIQ禁止状态位模式位NZCVIM0M1M2M3M4TF1112.7当前程序状态寄存器(CPSR)l条件代码标志各标志位的含义如下:负标志N:运算结果的第31位值,记录标志设置操作的结果;零标志Z:如果标志设置的操作为0,则置位;进位标志C:记录无符号加法溢出,减法无借位,循

78、环移位;溢出标志V:记录标志设置操作的有符号溢出。112 警告:绝对不要强制改变CPSR寄存器中的控制位T。如果这样做,处理器将进入一个无法预测的状态。2.7当前程序状态寄存器l控制位1、中断禁止控制位I和F;2、处理器状态位T;3、处理器模式位M0M4。当控制位I置位时,IRQ中断被禁止;当控制位F置位时,FIQ中断被禁止。当控制位T置位时,处理器正在Thumb状态下运行;当控制位T清零时,处理器正在ARM状态下运行。M4:0模式模式可见的可见的Thumb状态寄存器状态寄存器可见的可见的ARM状态寄存器状态寄存器10000用户R0R7,SP,LR,PC,CPSRR0R14,PC,CPSR10

79、001快速中断R0R7,SP_fiq,LR_fiq,PC,CPSR,SPSR_fiqR0R7,R8_fiqR14_fiq,PC,CPSR,SPSR_fiq10010中断R0R7,SP_irq,LR_irq,PC,CPSR,SPSR_fiqR0R12,R13_irq,R14_irq,PC,CPSR,SPSR_irq10011管理R0R7,SP_svc,LR_svc,PC,CPSR,SPSR_svcR0R12,R13_svc,R14_svc,PC,CPSR,SPSR_svc10111中止R0R7,SP_abt,LR_abt,PC,CPSR,SPSR_abtR0R12,R13_abt,R14_abt

80、,PC,CPSR,SPSR_abt11011未定义R0R7,SP_und,LR_und,PC,CPSR,SPSR_undR0 R12, R13_und, R14_und,PC,CPSR,SPSR_und11111系统R0R7,SP,LR,PC,CPSRR0R14,PC,CPSR 注意:不是所有模式位的组合都定义了有效的处理器模式,如果将非法值写入M4:0中,处理器将进入一个无法恢复的模式。1132.7当前程序状态寄存器l保留位 CPSR中的保留位被保留将来使用。当改变CPSR标志和控制位时,请确认没有改变这些保留位。 另外,请确保您的程序不依赖于包含特定值的保留位,因为将来的处理器可能会将这些

81、位设置为1或者0。SPSR(SavedProgramStatusRegister):普通模式和系统模式下是看不见SPSR这个寄存器的!只有当进入异常模式的时候,SPSR就会保存当前CPSR的状态,便于退出异常时恢复使用。1141.ARM简介2.ARM7TDMI3.ARM的模块、内核和功能框图4.ARM处理器状态5.ARM处理器模式ARM7体系结构6.ARM内部寄存器7.当前程序状态寄存器8.ARM体系的异常、中断及其向量表9.ARM体系的存储系统1152.8ARM体系的异常l异常简介 只要正常的程序流被暂时中止,处理器就进入异常模式。例如在用户模式下执行程序时,当外设向处理器内核发出中断请求导

82、致内核从用户模式切换到异常中断模式。 如果同时发生两个或更多异常,那么将按照固定的顺序来处理异常。 116l异常入口/出口汇总 下表所示为异常返回地址值以及退出异常处理程序所推荐使用的指令。 异常或入口异常或入口返回指令返回指令返回地址返回地址SWIMOVSPC,R14_svcR14未定义的指令MOVSPC,R14_undR14预取中止SUBSPC,R14_abt,#4R144快速中断SUBSPC,R14_fiq,#4R144中断SUBSPC,R14_irq,#4R144数据中止SUBSPC,R14_abt,#8R148复位无 注意:“MOVS PC,R14_svc”是指在管理模式执行MOVS

83、 PC,R14 指令,同样类似的指令还有“MOVS PC,R14_und”、“SUBS PC,R14_abt,#4”等。1172.8ARM体系的异常l异常向量表地址地址异常异常进入时的模式进入时的模式进入时进入时I的状态的状态进入时进入时F的状态的状态0x00000000复位管理禁止禁止0x00000004未定义指令未定义IF0x00000008软件中断异常管理禁止F0x0000000C中止(预取)中止IF0x00000010中止(数据)中止IF0x00000014保留保留0x00000018IRQ中断禁止F0x0000001CFIQ快速中断禁止禁止注:表中的I和F表示不对该位有影响,保留原来

84、的值。 1182.8ARM体系的异常l异常优先级 当多个异常同时发生时,一个固定的优先级决定系统处理它们的顺序。 优先级优先级异常异常1复位2数据中止3FIQ4IRQ5预取指中止6未定义指令中止6软件中断异常优先级由高到低1192.8ARM体系的异常l异常的进入当一个异常导致模式切换时,内核自动的做如下处理: l将异常处理程序的返回地址(加固定的偏移量)保存到相应异常模式下的LR;l将CPSR的当前值保存到相应异常模式下的SPSR;l设置CPSR为相应的异常模式;l设置PC为相应异常处理程序的中断入口向量地址,跳转到相应的异常中断处理程序执行;用户模式SPSR异常模式CPSRR15(PC)R1

85、4(LR)R0R13BackAddrJumpAddrUserModeExceptionMode程序代码正常运行在用户模式下。 1202.8ARM体系的异常l异常的进入当一个异常导致模式切换时,内核自动的做如下处理: l将异常处理程序的返回地址(加固定的偏移量)保存到相应异常模式下的LR;l将CPSR的当前值保存到相应异常模式下的SPSR;l设置CPSR为相应的异常模式;l设置PC为相应异常处理程序的中断入口向量地址,跳转到相应的异常中断处理程序执行;1212.8ARM体系的异常l异常的退出 当异常处理程序结束时,异常处理程序必须: l返回到发生异常中断的指令的下一条指令处执行,即就是说将LR中

86、的值减去偏移量后移入PC;l将SPSR的值复制回CPSR;SPSR异常模式用户模式CPSRR15(PC)R14(LR)R0R13BackAddrCurrentAddrUserModeExceptionModeBackAddrOff1222.8ARM体系的异常l异常的退出 当异常处理程序结束时,异常处理程序必须: l返回到发生异常中断的指令的下一条指令处执行,即就是说将LR中的值减去偏移量后移入PC;l将SPSR的值复制回CPSR;l清零在入口处置位的中断禁止标志。1232.8ARM体系的异常l复位异常 当nRESET信号被拉低时,ARM处理器放弃正在执行的指令,等到nRESET信号再次变高时,

87、处理器执行一下操作: l强制M4:0变为b10011,系统进入管理模式;l将CPSR中的标志位I和F置位,IRQ与FIQ中断被禁止;l将CPSR中的标志位T清零,处理器处于ARM状态;l强制PC从地址0x00开始对下一条指令进行取指;l返回到ARM状态并恢复执行。1242.8ARM体系的异常l中断请求异常 只有当CPSR中相应的中断屏蔽位被清除时,才可能发生IRQ异常,中断请求(IRQ)异常由一个nIRQ输入端的低电平所产生的正常中断。 注:中断异常产生时,中断异常模式下的R14保存的是PC的值。取指 译码 执行取指 译码 执行取指 译码 执行周期4 周期5周期1 周期2 周期3PC-8指令1

88、指令2指令3PC-4PC中断发生周期指令1的执行不会中断;异常程序结束时返回到指令2;进入中断服务程序时,指令3地址被保存在R14中。125 程序运行在用户模式下,当一个IRQ异常中断发生时,内核切换到“中断模式”,并自动的做如下处理: 2.8ARM体系的异常l进入IRQ异常模式R0R12R13_usrR14_usrR15CPSR-R13_irqR14_irqSPSR_irqUSR模式IRQ模式2I=1,T=0,mod=irq3异常向量地址0x00184ISR代码将寄存器压栈51 将异常处理程序的返回地址保存到异常模式下的R14(R14_irq)中。1 用户模式的CPSR被保存到新的IRQ中断

89、异常模式SPSR_irq中。2 修改CPSR,禁止新的IRQ中断产生,进入ARM状态,设置为IRQ模式。3 设置IRQ模式下的PC为IRQ异常处理程序的中断入口向量地址0x00000018。4 将IRQ中断异常模式的栈顶指针保存到R13_irq中,之后软件处理程序调用中断服务程序为中断源服务。5126 从R13_irq中获取IRQ中断异常模式的栈顶指针。12.8ARM体系的异常l退出IRQ异常模式R0R12R13_usrR14_usrR15CPSR-R13_irqR14_irqSPSR_irqIRQ模式USR模式恢复CPSR2R14减4后为返回地址3ISR代码将寄存器出栈1 将SPSR_irq

90、中的内容复制到CPSR。2 由于流水线的特性,将R14_irq指向的地址减去一个偏移量后存入R15(PC),实现指令为:SUBS PC,R14_irq,#4 3 中断服务程序执行完毕后,系统将通过以下几步软件操作返回用户模式:1272.8ARM体系的异常l快速中断请求异常 快速中断请求(FIQ)适用于对一个突发事件的快速响应,这得益于在ARM状态中,快中断模式有8个专用的寄存器可用来满足寄存器保护的需要(这可以加速上下文切换的速度)。 不管异常入口是来自ARM状态还是Thumb状态,FIQ处理程序都会通过执行下面的指令从中断返回:SUBS PC,R14_fiq,#4 在一个特权模式中,可以通过

91、置位CPSR中的F位来禁止FIQ异常。128系统模式FIQ模式程序寄存器组lFIQ中断的例子“?”表示该位无关SPSR_fiqPCCPSRSPSRMODTFI.N Z C VSYS100.? ? ? ?R8R12R8_fiqR12_fiqLRLR_sysLR_fiqR0R7SP_sysSP_fiqThumbThumb指令1指令2指令3BX指令BX指令ARMARMSYS100.?FIQ011.? ? ? ?BackAddrJumpAddrJump1 0SYS100.? ? ? ?JumpBackAddr-4 Thumb不是一个完整的体系结构,不能指望处理器只执行Thumb指令而不支持ARM指令集

92、。 因此,Thumb指令只需要支持通用功能,必要时可以借助于完善的ARM指令集,比如,所有异常自动进入ARM状态。 在系统模式下运行用户程序,当前处理器处于Thumb状态,执行Thumb指令代码,同时处理器还允许IRQ和FIQ中断。 指令1的在执行过程产生了FIQ中断。 注:完成指令1的执行后才响应中断。 FIQ中断相应过程中,硬件自动执行如下动作:将CPSR寄存器内容存入IRQ模式的SPSR寄存器置为F和I(禁止FIQ和IRQ中断);清零T位(进入ARM状态);设置MOD位,切换处理器模式至FIQ模式。将下一条的地址存入FIQ模式的LR寄存器,即指令3的地址。将跳转地址存入PC,即FIQ中断

93、服务函数的入口地址,实现跳转。 FIQ中断服务程序在ARM状态下执行现场保护等操作。 FIQ中断服务程序使用BX指令,将处理器从ARM状态切换到Thumb状态,通过置位CPSR的T位实现。 FIQ中断服务程序开始执行Thumb指令。 FIQ中断服务程序使用BX指令,将处理器从Thumb状态切换到ARM状态,通过清除CPSR的T位实现。 FIQ中断服务程序在ARM状态下执行恢复中断现场等操作。 FIQ中断异常处理结束后,异常处理程序完成以下动作:将SPSR寄存器的值复制回CPSR寄存器;将LR寄存的值减去一个常量(FIQ异常为4)后复制到PC寄存器,跳转到被中断的用户程序(指令2的地址)。129

94、2.8ARM体系的异常l未定义的指令异常 未定义指令异常是内部异常中断,当ARM处理器遇到一条自己和系统内部任何协处理器都无法执行的指令时,就会发生未定义指令异常,从而进入中断处理程序,同时软件可使用这一机制通过仿真未定义的协处理器指令来扩展ARM指令集。 在仿真失败的指令后,捕获处理器执行下面的指令: MOVS PC,R14_und1302.8ARM体系的异常l中止异常 中止表示当前对存储器的访问不能被完成,这是由外部ABORT输入信号引起的异常中断。中止类型有2种类型: l预取指中止:由程序存储器引起的中止异常;l数据中止:由数据存储器引起的中止异常。1312.8ARM体系的异常l预取指中

95、止 当发生预取指中止时,ARM内核将预取的指令标记为无效,但在指令到达流水线的执行阶段时才进入异常。如果指令在流水线中因为发生分支而没有被执行,中止将不会发生。 在处理中止的原因之后,不管处于哪种处理器操作状态,处理程序都会执行下面的指令恢复PC和CPSR并重试被中止的指令: SUBS PC,R14_abt,#41322.8ARM体系的异常l数据中止 当发生数据中止异常时,异常会在“导致异常的指令”执行后的下一条指令发生。在这种情况下,理想的状况是进入数据中止异常的ISR,然后在内存中挑选出问题,再重新执行导致异常的指令。 在修复产生中止的原因后,不管处于哪种处理器操作状态,处理程序都必须执行

96、下面的返回指令 : SUBS PC,R14_abt,#81332.8ARM体系的异常l软件中断异常 软件中断异常(SWI)用于进入管理模式,通常用于请求一个特定的管理函数。SWI处理程序通过执行下面的指令返回:MOVS PC,R14_svc 这个动作恢复了PC和CPSR并返回到SWI之后的指令。SWI处理程序读取操作码以提取SWI函数编号。 1342.8ARM体系的异常l中断延迟 中断延迟即从外部中断请求信号发出到执行对应的中断服务程序ISR的第1条指令所需要的时间。 通过软件程序设计来缩短中断延迟的方法有:中断优先级和中断嵌套。 1351.ARM简介2.ARM7TDMI3.ARM的模块、内核

97、和功能框图4.ARM处理器状态5.ARM处理器模式ARM7体系结构6.ARM内部寄存器7.当前程序状态寄存器8.ARM体系的异常、中断及其向量表9.ARM体系的存储系统1362.9ARM体系的存储系统l简介 ARM处理器采用冯诺依曼(Von Neumann)结构,指令、数据和I/O统一编址(即存在同一个空间)。只有装载、保存和交换指令可访问存储器中的数据。 ARM芯片一般在处理器核和外部存储器之间有一个存储器管理部件将局部总线的信号和时序转换为现实的外部总线信号和时序。ARM7处理器核存储器存储器管理器ARM7的规范定义了局部总线的信号和时序。各芯片生产厂商制定了自己的外部总线的信号和时序。1

98、372.9ARM体系的存储系统l地址空间 ARM结构使用单个平面的232个8位字节地址空间。地址空间可以看作是包含230个32位字,或231个16位半字。如果地址向上或向下溢出地址空间,通常会发生翻转。 注意:如果在取指操作时地址发生溢出,只要没有执行预取的无效指令,就不会导致异常。1382.9ARM体系的存储系统l存储器格式地址空间的规则要求字地址A:位于地址A的字包含的字节位于地址A,A+1,A+2和A+3;位于地址A的半字包含的字节位于地址A和A+1;位于地址A+2的半字包含的字节位于地址A+2和A+3;位于地址A的字包含的半字位于地址A和A+2; 字节字节字节字节A+3A+2A+1A存

99、储器半字半字字1392.9ARM体系的存储系统l存储器格式存储器系统有两种映射机制:小端存储器系统: 在小端格式中,数据的高字节存放在高地址中。大端存储器系统: 在大端格式中,数据的高字节存放在低地址中。A+3A+2A+1A存储器 小端存储模式下,0x12345678在A地址开始的一个字空间的存储; 1 大端存储模式下,0x12345678在A地址开始的一个字空间的存储; 20x120x340x560x78A+3A+2A+1A存储器0x780x560x340x121402.9ARM体系的存储系统l非对齐的存储器访问 ARM结构通常希望所有的存储器访问都合理的对齐,具体来说就是字访问的地址通常是字对齐的,而半字访问使用的地址是半字对齐的。不按这种方式对齐的存储器访问称为非对齐的存储器访问。将 一 个 非 字 ( 半 字 ) 对 齐 的 地 址 写 入ARM(Thumb)状态的R15寄存器,将引起非对齐的指令取指。在一个非字(半字)对齐的地址读写一个字(半字),将引起非对齐的数据访问:

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号