嵌入式系统的基本知识.ppt
《嵌入式系统的基本知识.ppt》由会员分享,可在线阅读,更多相关《嵌入式系统的基本知识.ppt(217页珍藏版)》请在三一办公上搜索。
1、嵌入式系统设计与实例开发基于ARM微处理器与实时操作系统第二讲 嵌入式系统的基本知识,本节提要,1,3,2,4,嵌入式系统硬件基础,嵌入式系统软件基础,嵌入式操作系统,嵌入式系统设计方法,冯诺依曼体系结构和哈佛体系结构CISC与RISCIP 核流水线存储器系统,嵌入式系统硬件基础,冯诺依曼体系结构模型,指令寄存器,控制器,数据通道,输入,输出,中央处理器,存储器,程序,指令0,指令1,指令2,指令3,指令4,数据,数据0,数据1,数据2,哈佛体系结构,指令寄存器,控制器,数据通道,输入,输出,中央处理器,程序存储器,指令0,指令1,指令2,数据存储器,数据0,数据1,数据2,地址,指令,地址,
2、数据,CISC和RISC,CISC:复杂指令集(Complex Instruction Set Computer)具有大量的指令和寻址方式8/2原则:80%的程序只使用20%的指令大多数程序只使用少量的指令就能够运行。,RISC:精简指令集(Reduced Instruction Set Computer)在通道中只包含最有用的指令确保数据通道快速执行每一条指令使CPU硬件结构设计变得更为简单,CISC与RISC的数据通道,IF,ID,REG,ALU,MEM,开始,退出,IF,ID,ALU,MEM,REG,微操作通道,开始,退出,单通数据通道,CISC的背景和特点,背景:存储资源紧缺,强调编译
3、优化增强指令功能,设置一些功能复杂的指令,把一些原来由软件实现的、常用的功能改用硬件的(微程序)指令系统来实现为节省存储空间,强调高代码密度,指令格式不固定,指令可长可短,操作数可多可少寻址方式复杂多样,操作数可来自寄存器,也可来自存储器采用微程序控制,执行每条指令均需完成一个微指令序列(微程序)CPI,指令越复杂,CPI越大。,CISC的主要缺点,指令使用频度不均衡。高频度使用的指令占据了绝大部分的执行时间,扩充的复杂指令往往是低频度指令。大量复杂指令的控制逻辑不规整,不适于VLSI工艺VLSI的出现,使单芯片处理机希望采用规整的硬联逻辑实现,而不希望用微程序,因为微程序的使用反而制约了速度
4、提高。(微码的存控速度比CPU慢5-10倍)。软硬功能分配复杂指令增加硬件的复杂度,使指令执行周期大大加长,直接访存次数增多,降低了CPU性能。不利于先进指令级并行技术的采用流水线技术,RISC基本设计思想,减小CPI:CPUtime=Instr_Count*CPI*Clock_cycle精简指令集:保留最基本的,去掉复杂、使用频度不高的指令采用Load/Store结构,有助于减少指令格式,统一存储器访问方式采用硬接线控制代替微程序控制,典型的高性能RISC处理器,SUN公司的SPARC(1987)MIPS公司的SGI:MIPS(1986)HP公司的PA-RISC,IBM,Motorola公司
5、的PowerPCDEC、Compac公司的Alpha AXPIBM的RS6000(1990)第一台Superscalar RISC机,CISC与RISC的对比,for(i=0;i 10000;+i)/*各种算术运算操作*/实验平台:桌面Intel Pentium4,带硬件浮点支持OperatorTimeOperatorTime+(int)1+(double)5*(int)5*(double)5/(int)12/(double)10(int)2sin48,小实验1,实验平台:400MHz Intel PXA250 Xscale(ARM)处理器OperatorTimeOperatorTime+(i
6、nt)1+(double)140*(int)1*(double)110/(int)7/(double)220(int)1sin3300,小实验2,知识产权核(IP核,intellectual property),知识产权(IP)电路或核是设计好并经过验证的集成电路功能单元IP复用意味着设计代价降低(时间,价格)IP核的类别:微处理器微处理器:ARM,PowerPC;存储器存储器:RAM,memory controller;外设:PCI,DMA controller;多媒体处理:MPEG/JPEG;encoder/decoder;数字信号处理器(DSP)通信:Ethernet controlle
7、r,router,IP核的种类,Soft Cores(“code”)(软核)HDL语言描述灵活度高,可修改与工艺独立,可根据具体的加工工艺重新综合;IP很难保护Firm cores(“code+structure”)(固核)逻辑综合后的描述与工艺相关Hard cores(“physical”)(硬核)物理综合后的描述准备流片包含工艺相关的布局和时序信息IP很容易保护多数的处理器和存储器,IP核的商业模型,三种模式一、计者提供设计和工具的许可证DSP Group(Pine and Oak Cores),3Soft,ARM 提供包括HDL在内的模拟模型,工具或仿真器使用者负责设计制造二、核厂商设计
8、并制造集成电路芯片TI,Motorola,LucentVLSI,SSI,Cirrus,Adaptec三、核厂商卖核,负责为客户设计并制造芯片LSI logic,TI,Lucent,ARM的IP核,固化宏单元(硬核)ARM920TARM7TDMIARM720TARM1022E,可综合内核(软核)ARM926EJ-SARM7TDMI-SARM1026EJ-S,测试芯片ARM10200E,流水线技术,流水线技术:几个指令可以并行执行提高了CPU的运行效率内部信息流要求通畅流动,译码,取指,执行add,译码,取指,执行sub,译码,取指,执行cmp,时间,Add,Sub,Cmp,指令流水线以ARM为例
9、,为增加处理器指令流的速度,ARM7 系列使用3级流水线.允许多个操作同时处理,比逐条指令执行要快。PC指向正被取指的指令,而非正在执行的指令,Fetch,Decode,Execute,从存储器中读取指令,解码指令,寄存器读(从寄存器Bank)移位及ALU操作寄存器写(到寄存器Bank),PCPC,PC-4PC-2,PC-8PC-4,ARMThumb,最佳流水线,该例中用6个时钟周期执行了6条指令所有的操作都在寄存器中(单周期执行)指令周期数(CPI)=1,操作,周期,1 2 3 45 6,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Deco
10、de,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Decode,Execute,Fetch,Decode,Fetch,Fetch,LDR 流水线举例,该例中,用6周期执行了4条指令指令周期数(CPI)=1.5,周期,操作,123456,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Execute,Data,Writeback,Fetch,Decode,Execute,Fetch,Decode,Fetch,分支流水线举例,流水线被阻断注意:内核运行在ARM状态,周期,1 2 3
11、 4 5,地址 操作,Fetch,Decode,Execute,Fetch,Decode,Execute,Fetch,Decode,Fetch,Fetch,Decode,Execute,Linkret,Adjust,Fetch,Decode,Fetch,超标量执行,超标量执行:超标量CPU采用多条流水线结构,执行1,预取,指令CACHE,译码2,译码1,执行2,执行1,预取,译码2,译码1,执行2,流水线1,流水线2,数据,高速缓存(CACHE),1、为什么采用高速缓存 微处理器的时钟频率比内存速度提高快得多,高速缓存可以提高内存的平均性能。2、高速缓存的工作原理 高速缓存是一种小型、快速的存
12、储器,它保存部分主存内容的拷贝。,CPU,高速缓存控制器,CACHE,主存,数据,数据,地址,常见的嵌入式处理器结构,总线和总线桥,存储器系统的层次结构,寄存器,高速缓存SRAM,主存储器DRAM,本地存储器 Flash、ROM、磁盘,网络存储器 Flash、ROM、磁盘,时钟周期,0,110,50100,20000000,存储器系统,RAM:随机存取存储器,SRAM:静态随机存储器,DRAM:动态随机存储器 1)SRAM比DRAM快 2)SRAM比DRAM耗电多 3)DRAM存储密度比SRAM高得多 4)DRM需要周期性刷新ROM:只读存储器FLASH:闪存,NOR技术,NOR技术闪速存储器
13、是最早出现的Flash Memory,目前仍是多数供应商支持的技术架构,它源于传统的EPROM器件。与其它Flash Memory技术相比,具有可靠性高、随机读取速度快的优势,但擦除和写的速度较NAND慢。在擦除和编程操作较少而直接执行代码的场合,尤其是代码(指令)存储的应用中广泛使用。由于NOR技术Flash Memory的擦除和编程速度较慢,而块尺寸又较大,因此擦除和编程操作所花费的时间很长,在纯数据存储和文件存储的应用中,NOR技术显得力不从心。,NAND技术,NAND技术 Flash Memory具有以下特点:以页为单位进行读和编程操作,1页为256或512字节;以块为单位进行擦除操作
14、,1块为4K、8K或16K字节。具有快编程和快擦除的功能,其块擦除时间是2ms;而NOR技术的块擦除时间达到几百ms。数据、地址采用同一总线,实现串行读取。随机读取速度慢且不能按字节随机编程。芯片尺寸小,引脚少,是位成本(bit cost)最低的固态存储器,突破了每兆字节0.1元的价格限制。芯片包含有失效块,其数目最大可达到335块(取决于存储器密度)。失效块不会影响有效块的性能,但设计者需要将失效块在地址映射表中屏蔽起来。基于NAND的存储器可以取代硬盘或其它块设备。,输入输出接口,I/OA/D、D/A键盘LCD存储器接口设备接口,本节提要,1,3,2,4,嵌入式系统硬件基础,嵌入式系统软件
15、基础,嵌入式操作系统,嵌入式系统设计方法,嵌入式软件体系结构,无操作系统的情形在嵌入式系统的发展初期,由于硬件的配置比较低,对于是否有系统软件的支持,要求还不是很强烈。在那个阶段,嵌入式软件的设计主要是以应用为核心,应用软件直接建立在硬件上,没有专门的操作系统。有操作系统的情形,无操作系统的情形,循环轮询系统:(Polling Loop)最简单的软件结构,程序依次检查系统的每个输入条件,一旦条件成立就进行相应的处理。Initialize();while(1)if(condition_1)action_1();if(condition_2)action_2();if(condition_n)ac
16、ition_n();,事件驱动系统:(Event-Driven system)事件驱动系统是能对外部事件直接响应的系统。它包括前后台、实时多任务、多处理器等,是嵌入式实时系统的主要形式。应用程序是一个无限循环,循环中调用相应的函数完成相应操作,这部分可以看成后台行为(background)。中断服务程序处理异步事件,这部分可看成前台行为(foreground)。后台也可以叫做任务级,前台也叫中断级。,例如,很多基于微处理器的产品采用前后台系统设计,如微波炉、电话机、玩具等。从省电的角度出发,平时微处理器处在停机状态,所有的事都靠中断服务来完成。,前后台系统(后台循环、前台中断),ISR,ISR
17、,后台 前台,ISR,时间,有操作系统的情形,硬件,板级初始化,设备驱动层,以太网驱动,串口驱动,LCD驱动,键盘驱动,操作系统层,中间件层,应用软件层,TCP/IP网络系统,文件系统,内核,嵌入式GUI,嵌入式CORBA,嵌入式JAVA,嵌入式DCOM,面向领域的中间件,WWW浏览器,MP3播放器,电子邮件,为什么要有设备驱动程序?嵌入式硬件设备本身无法工作,需要软件来驱动,如初始化、控制、数据读写等。什么是设备驱动程序?直接与硬件打交道、对硬件进行控制和管理的软件。在一个嵌入式系统中,设备驱动程序是必不可少的。,设备驱动程序,设备驱动程序的主要功能,硬件启动(Startup):在开机上电或
18、重启的时候,对硬件进行初始化;硬件关闭(Shutdown):把硬件配置成关机状态;硬件停用(Disable):暂停使用硬件;硬件启用(Enable):重新启用硬件;硬件读操作(Read):从硬件中读取数据;硬件写操作(Write):往硬件中写数据;,嵌入式操作系统,嵌入式操作系统包括嵌入式内核、嵌入式TCP/IP网络系统、嵌入式文件系统、嵌入式GUI系统和电源管理等部分;嵌入式内核是基础和核心,其他部分要根据嵌入式系统的需要来确定。,嵌入式中间件,中间件(Middleware):在OS内核、设备驱动程序和应用软件之外的所有系统软件;中间件的基本思路:把原本属于应用软件层的一些通用的功能模块抽取
19、出来,形成独立的一层软件,从而为运行在其上的各个应用软件提供一个灵活、安全、移植性好、相互通信、协同工作的平台;优点:实现软件的可重用,降低应用软件的复杂性,降低开发成本。,嵌入式C程序设计,“which of the following programming languageshave you used for embedded systems in the last12 months”C81%Assembly70%C+39%Visual Basic16%Java7%Source:“ESP:A 10-year retrospective”,EmbeddedSystems Programmi
20、ng,November,1998,嵌入式软件的目标,函数必须正确;源代码简洁、可读性好、可维护;实时性要求较高的代码能够运行得足够快;目标代码小且高效。总之,要优化对以下三种资源的使用:执行时间;存储空间;开发/维护时间。,数据类型与运算符,宏定义:用一个指定的标识符来代表一个字符串。#define 标识符 字符串如:#define PI 3.1415926,其作用是指定用标识符PI来代替“3.1415926”这个字符串,在编译预处理时,将程序中出现的所有PI都用“3.1415926”代替。,(1)宏定义,宏定义的基本思想是:一次定义,多次使用。其优点是:可以用简短的标识符来代替长的数据,减少
21、需要输入的字符数;用易于理解的标识符来代替那些不太好记的具体的数据,便于程序的理解和维护;有利于程序的修改和升级,当这个数据需要修改时,只需改动宏定义之处即可。,不用此法,一次定义,多次使用,(2)const常量,常量数据:整数(12)、字符(a)、字符串(“hello”)和实数(3.14)等;以变量的形式来定义的一个量,并且通 过使用关键字const,来表明这个变量的 值不能被改变。如:const int x=1。,(3)算术运算,整数的算术运算最快带有硬件支持的浮点运算较慢用软件来实现的浮点运算非常慢,快 sin,log,sqrt,etc慢,结论:尽量使用整数(char、short、int
22、和long)的加法和减法;如果没有硬件支持,尽量避免使用乘法;尽量避免使用除法;如果没有硬件支持,尽量避免使用浮点数;数学库函数使用得越少越好。,(4)位运算,C语言有很多位操作运算符:&与操作;|或操作;异或操作;取反操作;右移操作;左移操作。,a|=0 x4b&=0 x4c&=(1=2,/把第2位设置为1,/把第2位设置为0,/把第3位设置为0,/把第5位反转,/把 e 除以4,int x,num=99,count=0;x=num;while(x)count+;x=x,result:4,分支语句,if(a=1)ant();else if(a=2)bar();else if(a=3)cee(
23、);else if(a=4)due();else if(a=5)eat();else if(a=6)foo();,switch(a)case 1:ant();break;case 2:bar();break;case 3:cee();break;case 4:due();break;case 5:eat();break;case 6:foo();break;,Any Differences?,if-then-else语句的汇编代码,$L1:cmp dword ptrebp-4,1#把a与常量1进行比较 jne$L2#如果不相同,跳到$L2继续比较下一个值 call _ant#如果相同,调用an
24、t()函数 jmp$END#跳转到这段代码的末尾$L2:cmp dword ptrebp-4,2#把a与常量2进行比较 jne$L3#如果不相同,跳到$L3继续比较下一个值 call _bar#如果相同,调用bar()函数 jmp$END#跳转到这段代码的末尾$L3:.$END:,switch语句的汇编代码-1,JmpTable dword$L1,$L2,$L3,$L4,$L5,$L6 mov eax,dword ptr ebp-4#取出变量a的值 mov dword ptr ebp-8,eax#保存在临时变量中 mov ecx,dword ptr ebp-8#取出,放在ecx中 sub ec
25、x,1#减1 mov dword ptr ebp-8,ecx#保存回去 cmp dword ptr ebp-8,5#与5进行比较 ja$END#若大于5,结束 mov edx,dword ptr ebp-8#取出该值,放edx jmp dword ptr edx*4+JmpTable#跳转到相应的#case标记,switch语句的汇编代码-2,$L1:#case 1 call _ant jmp$END$L2:#case 2 call _bar jmp$END.$L5:#case 5 call _eat jmp$END$L6:#case 6 call _foo$END:,结论:假设a的取值个数为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 系统 基本知识
链接地址:https://www.31ppt.com/p-6569792.html