chapt嵌入式系统概述实用.pptx
课程安排 Chapt 1 嵌入式系统概述 Chapt 2 ARM 体系结构及编程模型 Chapt 3 ARM指令系统 Chapt 4 ARM嵌入式程序设计基础 Chapt 5 总结交流第1页/共49页Chapt 1 嵌入式系统概述 嵌入式系统组成 嵌入式微处理器 嵌入式操作系统 常用Linux命令第2页/共49页典型嵌入式系统组成硬件第3页/共49页典型嵌入式系统组成软件第4页/共49页嵌入式系统定义IEEEIEEE(国际电气和电子工程师协会)的定义(国际电气和电子工程师协会)的定义 嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”(原文为devices used to control,monitor,or assist the operation of equipment,machinery or plants)一般定义 “以以应用应用为中心、以计算机技术为基础、为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求性、成本、体积、功耗严格要求的的专用专用计算机系统。计算机系统。”第5页/共49页嵌入式系统发展第一阶段:以单芯片为核心的可编程控制器形式的系统;第二阶段:以嵌入式CPU为基础、以简单操作系统为核心的嵌入式系统;第三阶段:以嵌入式操作系统为标志的嵌入式系统;第四阶段:以internet为标志的嵌入式系统。第6页/共49页嵌入式系统分类按表现形式分:(硬件范畴)芯片级嵌入(含程序或算法的处理器)模块级嵌入(系统中的某个核心模块)系统级嵌入按实时性要求分:(软件范畴)非实时系统(PDA)软实时系统(消费类产品)硬实时系统(导引头等工业和军工系统)第7页/共49页嵌入式微处理器 硬件基础冯诺依曼体系结构和哈佛体系结构CISC与RICS影响CPU性能的因素存储器系统第8页/共49页冯诺依曼结构和哈佛结构冯诺依曼结构哈佛结构第9页/共49页冯诺依曼结构1)数据与指令都存储在存储器中2)被大多数计算机所采用3)ARM7 冯诺依曼体系哈佛结构1)程序存储器与数据存储器分开2)提供了较大的数存储器带宽3)适合于数字信号处理4)大多数DSP都是哈佛结构5)ARM9是哈佛结构第10页/共49页CISC和RISCCISC:复杂指令集(Complex Instruction Set Computer)具有大量的指令和寻址方式大多数程序只使用少量的指令就能够运行。RISC:精简指令集(Reduced Instruction Set Computer)8/2原则:80%的程序只使用20%的指令在通道中只包含最有用的指令确保数据通道快速执行每一条指令使CPU硬件结构设计变得更为简单第11页/共49页 影响CPU性能的因素:流水线、超标量和缓存RISC流水线技术:几个指令可以并行执行提高了CPU的运行效率内部信息流要求通畅流动第12页/共49页超标量执行:超标量CPU采用多条流水线结构第13页/共49页高速缓存(Cache)1、为什么采用高速缓存 微处理器的时钟频率比内存速度提高快得多,高速缓存可以提高内存的平均性能。2、高速缓存的工作原理 高速缓存是一种小型、快速的存储器,它保存部分主存内容的拷贝。Question?什么是虚拟内存?什么是物理内存?第14页/共49页BUS and Bus Bridge第15页/共49页存储器系统RAM:随机存取存储器SRAM:静态随机存储器DRAM:动态随机存储器 1)SRAM比DRAM快 2)SRAM比DRAM耗电多 3)DRAM存储密度比SRAM高得多(体积)4)DRAM需要周期性刷新ROM:只读存储器FLASH:闪存第16页/共49页嵌入式微处理器分类第17页/共49页嵌入式微控制器(EMCU)嵌入式微控制器的典型代表是单片机,这种位的电子器件目前在嵌入式设备中仍然有着极其广泛的应用。单片机芯片内部集成ROM/EPROM、RAM、总线、总线逻辑、定时/计数器、看门狗、I/O、串行口、脉宽调制输出、A/D、D/A、Flash RAM、EEPROM等各种必要功能和外设。典型的EMCU有51 系列,MC68系列,PIC系列,MSP 430系列.微控制器的最大特点是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高。微控制器是目前嵌入式系统工业的主流。微控制器的片上外设资源一般比较丰富,适合于控制,因此称为微控制器.近来Atmel推出的AVR单片机由于其集成了FPGA等器件,所以具有很高的性价比,势必将推动单片机获得更高的发展。第18页/共49页嵌入式数字信号处理器(EDSP)DSP处理器是专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,在数字滤波 FFT、谱分析等各种仪器上DSP获得了大规模的应用。DSP的理论算法在70年代就已经出现,但是由于专门的DSP处理器还未出现,所以这种理论算法只能通过MPU等由分立元件实现。1982年世界上诞生了首枚DSP片,在语音合成和编码解码器中得到了广泛应用。DSP的运算速度进一步提高,应用领域也从上述范围扩大到了通信和计算机方面。目前最为广泛应用的嵌入式DSP处理器是TI的TMS320C2000/C5000/C6000系列,ADI公司的DSP的如Blackfin系列,另外如Intel的MCS-296和Siemens的TriCore也有各自的应用范围.第19页/共49页嵌入式微处理器(EMPU)EMPU嵌入式微处理器是由通用计算机中的CPU演变而来的,8038680387与计算机处理器不同的是,在实际嵌入式应用中,只保留和嵌入式应用紧密相关的功能硬件,去除其他的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。和工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。目前主要的嵌入式处理器类型有Am186/88、386EX、SC-400、Power PC、68000、MIPS、ARM/StrongARM系列等第20页/共49页嵌入式片上系统(System On Chip)SoC 就是System on Chip,SoC嵌入式系统微处理器就是一种电路系统。它结合了许多功能区块,将功能做在一个芯片上,像是ARM RISC、MIPS RISC、DSP或是其他的微处理器核心,加上通信的接口单元,像是万用串行端口(USB)、TCP/IP通信单元、GPRS通信接口、GSM通信接口、IEEE1394、蓝牙模块接口等等,这些单元以往都是依照各单元的功能做成一个个独立的处理芯片。第21页/共49页 SoC嵌入式系统微处理器所具有的其他的好处可以分为下列几种:利用改变内部工作电压,降低芯片功耗。减少芯片对外管脚数,简化制造过程。减少外围驱动接口单元及电路板之间的信号传递,可以加快微处理器数据处理的速度。内嵌的线路可以避免外部电路板在信号传递时所造成系统杂讯。第22页/共49页嵌入式操作系统操作系统分类(1)顺序执行系统:系统内只含有一个程序,独占CPU的运行时间,按语句顺序执行该程序,直至执行完毕,另一程序才能启动运行。如DOS操作系统。(2)分时操作系统:系统内同时可以有多个程序运行,把CPU的时间分按顺序分成若干片,每个时间片内执行不同的程序。如UNIX(3)实时操作系统:系统内有多个程序运行,每个程序有不同的优先级,只有最高优先级的任务才能占有CPU的控制权第23页/共49页按实时性分类按实时性分类具有强实时特点的嵌入式操作系统具有弱实特点的嵌入式操作系统没有实时特点的嵌入式操作系统 强实时系统,其系统响应时间在毫秒或微秒级(数控机床)一航实时系统,其系统响应时间在毫秒几秒的 数量级上,其实时性的要求比强实时系统要差一 些(电子菜谱的查询)弱实时系统,其系统响应时间约为数十秒或更长(工程机械控制器)第24页/共49页按软件结构分类按软件结构分类(1)循环轮询系统:(Polling Loop)最简单的软件结构是循环轮询,程序依次检查系统的每一个输入条件,一旦条件成立就进行相应的处理。Initialize()While(true)if(condition_1)action_1();if(condition_2)action_2();if(condition_n)acition_n();第25页/共49页(2)事件驱动系统:(Event-Driven system)事件驱动系统是能对外部事件直接响应的系统。它包括前后台、实时多任务、多处理器等,是嵌入式实时系统的主要形式。应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看成后台行(background)。中断服务程序处理异步事件,这部分可以看成前台行为(foreground)。后台也可以叫做任务级,前台也叫中断级。例如,很多基于微处理器的产品采用前后台系统设计,如微波炉、电话机、玩具等。从省电的角度出发,平时微处理器处在停机状态,所有的事都靠中断服务来完成。第26页/共49页嵌入式操作系统及其特点嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系统的重要组成部分。嵌入时操作系统具有通用操作系统的基本特点,能够有效管理复杂的系统资源,并且把硬件虚拟化。常见的嵌入式系统 Linux、uClinux、WinCE、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX、Rtems、QNX、INTEGRITY、OSE、C Executive 从应用角度可分为通用型嵌入式操作系统和专用型嵌入式操作系统。常见的通用型嵌入式操作系统有Linux、VxWorks、Windows CE.net等。常用的专用型嵌入式操作系统有Smart Phone、Pocket PC、Symbian等。第27页/共49页几种典型的嵌入式系统VxWorksVxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),具有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域牢牢占据着一席之地。VxWorks所具有的显著特点是:可靠性、实时性和可裁减性。它支持多种处理器,如x86、i960、Sun Sparc、Motorola MC68xxx、MIPS RX000、POWER PC、XScale等等。应用领域:广泛应用于军事通信,导弹制导,卫星通信,飞机导航等例如美-16战斗机,B-2隐形轰炸机第28页/共49页Windows EmbeddedWindows CE 3.0:一种针对小容量、移动式、智能化、32位、连接设备的模块化实时嵌入式操作系统针对掌上设备、无线设备的动态应用程序和服务提供了一种功能丰富的操作系统平台,WindowsCE嵌入但不够实时,属于软实时操作系统,目前也开始中文手机的研究开发。操作系统的基本内核需要至少200K的ROM。第29页/共49页嵌入式Linux嵌入式系统越来越追求数字化、网络化和智能化。因此原来在某些设备或领域中占主导地位的软件系统越来越难以为继,整个系统必须是开放的、提供标准的API,并且能够方便地与众多第三方的软硬件沟通。Linux的内核小、功能强大、运行稳定、系统健壮、效率高,易于定制剪裁,在价格上极具竞争力uClinux是针对没有的处理器设计的,它不能使用处理器的虚拟内存管理技术,它对内存的访问是直接的,所有程序中访问地址都是实际的物理地址ulinux专为嵌入式系统做了许多小型化的工作第30页/共49页uC/OS-COS不但提供了一个完整的嵌入式实时内核的源代码,而且对这 些代码的细节作了详尽的解释,它不仅告诉读者这个实时内核是 怎么写的,还解释了为什么要这样写。而商业上的实时操作系统 软件不但价格昂贵(一般都在5千到2万美元的价位上),而且其 中很多都是所谓黑盒子,即不提供源代码。源代码的绝大部分是用C语言写的,经过简单的编译,读者就能在 PC机上运行,边读书、边实践。由于用汇编语言写的部分只有200 行左右,该实时内核可以方便地移植到几乎所有的嵌入式应用类 CPU上。移植范例的源代码可以从因特网上下载。该操作系统支持多达64 个任务,大部分嵌入式微处理器都支持uC/OS-第31页/共49页Nokia N系列Symbian OSMoto A1200 Linux OS MPX220 Windows Mobile Dopod Windows Mobile第32页/共49页嵌入式操作系统的基本概念操作系统的分类嵌入式实时操作系统前台与后台多任务,任务优先级,调度非占先式与占先式、可重入型函数第33页/共49页前后台系统(后台循环、前台中断)第34页/共49页多任务第35页/共49页一个任务,也称作一个线程,是一个简单的运行程序。每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。多任务运行的实现实际上是靠CPU(中央处理单元)在许多任务之间转换、调度。CPU只有一个,轮番服务于一系列任务中的某一个。多任务运行使CPU的利用率得到最大的发挥,并使应用程序模块化。在实际应用中,多任务的最大特点是,开发人员可以将很复杂的应用程序层次化综合实验(时钟、位图、USB、KEY)。第36页/共49页非占先式与占先式非占先式(non-preemptive)非占先式调度法也称作合作型多任(cooperativemultitasking),各个任务彼此合作共享一个CPU。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断了的那个任务,直到改任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。非占先式内核的一个特点是几乎不需要使用信号量保护共享数据。运行着的任务占有CPU,而不必担心被别的任务抢占。非占先式内核的最大缺陷在于其响应高优先级的任务慢,任务已经进入就绪态,但还不能运行,也许要等很时间,直到当前运行着的任务释放CPU。内核的任务级响应时间是不确定的,不知道什么时候最高优先级的任务才能拿到CPU的控制权,完全取决于应用程序什么时候释放CPU。第37页/共49页非占先式(non-preemptive)第38页/共49页占先式(preemptive)当系统响应时间很重要时,要使用占先(preemptive)内核。最高优先级的任务一旦就绪,总能得到CPU的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的CPU使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了CPU的控制权。使用占先式内核时,应用程序不应直接使用不可重入型函数。如果调入可重入型函数时,低优先级的任务CPU的使用权被高优先级任务剥夺,不可重入型函数中的数据有可能被破坏。第39页/共49页占先式(preemptive)第40页/共49页中断与中断优先级第41页/共49页同步与异步一系列时间相关事件称为同步事件,驱动的任务为同步任务随机发生的事件称为异步事件,驱动的任务为异步任务,如中断第42页/共49页系统内核(Kernel)多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通信。内核提供的基本服务是任务切换。内核本身也增加了应用程序的额外负荷,代码空间增加ROM用量,内核本身的数据结构增加了RAM的用量。内核本身对CPU的占用时间一般在2到5个百分点之间。第43页/共49页调度(Dispatcher)这是操作系统的主要职责之一,它决定该轮到哪个任务运行了。往往调度是基于优先级的,根据其重要不同被赋予任务不同的优先级。CPU总是让处在就绪态的优先级最高的任务先运行。何时让高优先级任务掌握CPU的使用权,有两种不同的情况,这要看用的是什么类型的内核,是非占先式的还是占先式的内核。第44页/共49页任务优先级(priority)每个任务都有其优先级(priority),静态优先级和动态优先级。应用程序执行过程中诸任务优先级不变,则称之为静态优先级。在静态优先级系统中,诸任务以及它们的时间约束在程序编译时是已知的。应用程序执行过程中,如果任务的优先级是可变的,则称之为动态优先级.第45页/共49页Question?1、什么是CISC和RISC?2、什么是冯诺依曼体系结构和哈佛体系结 构?3、什么是非占先式和占先式?4、什么是嵌入式系统?什么是嵌入式操作系统?第46页/共49页常用Linux 命令cd directory 进入指定的目录 cd.进入上一级目录 cd/directory 进入目录 cd 进入用户自己的目录 cp file_from file_to 拷贝文件 ls directory 查看指定目录下的文件 ls-l directory 查看指定目录下文件的详细 ls-a directory 查看指定目录下的所有文件 mkdir new_directory 建一个新目录 rm file 删除一个文件 rm-r directory 删除一个目录 rmdir directory 删除一个目录 chmod 改变文件属性 第47页/共49页mv mv命令用于移动文件和更名文件。例如:$mv ye.txt/home 将当前目录下的ye.txt文件移动到/home目录下,$mv ye.txt ye1.txt 将ye.txt文件改名为ye1.txt。reboot 重启命令 halt 关机命令 man第48页/共49页感谢您的欣赏!第49页/共49页