版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
典型嵌入式系统基本组成-硬件MPU微处理器电源模块时钟复位FlashRAMROMUSBLCDKeyboard外围电路Other外设1.6嵌入式系统硬件基础冯·诺依曼体系结构模型指令寄存器控制器数据通道输入输出中央处理器存储器程序指令0指令1指令2指令3指令4数据数据0数据1数据2哈佛体系结构指令寄存器控制器数据通道输入输出中央处理器程序存储器指令0指令1指令2数据存储器数据0数据1数据2地址指令地址数据CISC和RISCCISC:复杂指令集(ComplexInstructionSetComputer)具有大量的指令和寻址方式8/2原则:80%的程序只使用20%的指令大多数程序只使用少量的指令就能够运行。RISC:精简指令集(ReducedInstructionSetComputer)在通道中只包含最有用的指令确保数据通道快速执行每一条指令使CPU硬件结构设计变得更为简单
在CISC架构的CPU上:一条指令:MULADDRA,ADDRB将ADDRA,ADDRB中的数据读入寄存器,相乘和将结果写回内存的操作全部依赖于CPU中设计的逻辑来实现。如果要在RISC架构上实现,MOVA,ADDRA;MOVB,ADDRB;MULA,B;STRADDRA,A。这种架构可以降低CPU的复杂性以及允许在同样的工艺水平下生产出功能更强大的CPU,但对于编译器的设计有更高的要求。影响CPU性能的因素:流水线、超标量和缓存流水线技术:几个指令可以并行执行提高了CPU的运行效率内部信息流要求通畅流动译码取指执行add译码取指执行sub译码取指执行cmp时间AddSubCmp超标量执行超标量执行:超标量CPU采用多条流水线结构
执行1预取指令CACHE译码2译码1执行2执行1预取译码2译码1执行2流水线1流水线2数据高速缓存(CACHE)1、为什么采用高速缓存微处理器的时钟频率比内存速度提高快得多,高速缓存可以提高内存的平均性能。2、高速缓存的工作原理高速缓存是一种小型、快速的存储器,它保存部分主存内容的拷贝。CPU高速缓存控制器CACHE主存数据数据地址总线和总线桥CPU低速设备桥数据高速总线存储器高速设备高速设备低速总线嵌入式系统的存储结构1.5存储器系统RAM:随机存取存储器,SRAM:静态随机存储器,DRAM:动态随机存储器
1)SRAM比DRAM快
2)SRAM比DRAM耗电多
3)DRAM存储密度比SRAM高得多
4)DRAM需要周期性刷新ROM:只读存储器FLASH:闪存(NOR,NAND)SRAM和DRAM1)SRAM2)DRAMCSR/WAddrDataCSR/WCASDataRASAddr输入输出接口I/OA/D、D/A键盘LCD存储器接口设备接口例如USBUSB:UniversalSerialBus,通用串行总线大家生活中常见的与USB有关的东西有:U盘、移动硬盘、无驱型的MP3(U盘)USB接口的键盘、Mouse、打印机、数码相机……即插即用,热插拨,系统不需重启便可工作,且易于扩展(127个)USB2.0以低成本实现高达480Mb/s的传输率(USB1.1的全速设备可达12Mb/s)接口标准统一、端口供电操作系统的分类(1)顺序执行系统:系统内只含有一个程序,独占CPU的运行时间,按语句顺序执行该程序,直至执行完毕,另一程序才能启动运行。如DOS操作系统。(2)分时操作系统:系统内同时可以有多个程序运行,把CPU的时间分按顺序分成若干片,每个时间片内执行不同的程序。如UNIX(3)实时操作系统:系统内有多个程序运行,每个程序有不同的优先级,只有最高优先级的任务才能占有CPU的控制权。1.7嵌入式系统软件基础按实时性分类强实时系统,其系统响应时间在毫秒或微秒级(数控机床);一般实时系统,其系统响应时间在毫秒-几秒的数量级上,其实时性的要求比强实时系统要差一些(电子菜谱的查询)。弱实时系统,其系统响应时间约为数十秒或更长(工程机械)。1)循环轮询系统:(PollingLoop)最简单的软件结构是循环轮询,程序依次检查系统的每一个输入条件,一旦条件成立就进行相应的处理。Initialize()While(true){if(condition_1)action_1();if(condition_2)action_2();……if(condition_n)acition_n();}按软件结构分类2)事件驱动系统:(Event-Drivensystem)事件驱动系统是能对外部事件直接响应的系统。它包括前后台、实时多任务、多处理器等,是嵌入式实时系统的主要形式。应用程序是一个无限的循环,循环中调用相应的函数完成相应的操作,这部分可以看成后台行为(background)。中断服务程序处理异步事件,这部分可以看成前台行为(foreground)。后台也可以叫做任务级,前台也叫中断级。例如,很多基于微处理器的产品采用前后台系统设计,如微波炉、电话机、玩具等。从省电的角度出发,平时微处理器处在停机状态,所有的事都靠中断服务来完成。前后台系统(后台循环、前台中断)ISRISR后台前台ISR时间代码的临界区也称为临界区,指处理时不可分割的代码。一旦这部分代码开始执行,则不允许任何中断打入。在进入临界区之前要关中断,而临界区代码执行完以后要立即开中断(在任务切换时,地址、指令、数据等寄存器堆栈保护)。代码的临界区任务是一个具有独立功能的无限循环的程序段的一次运行活动,是实时内核的调度单位,具有动态性,并行性,异步独立性。并行性:系统中存在多个任务,宏观上是同时运行的。动态性:状态不断变化,就绪态,运行态,等待等。异步独立性:每个任务各自按各自独立的不可预知的速度运行,走走停停。任务多任务(任务、进程和线程)CPU寄存器任务控制块1任务控制块2任务控制块n休眠、就绪、运行、挂起、被中断任务1任务2任务n……CPU寄存器一个任务,也称作一个进程,是一个简单的运行程序。每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。多任务运行的实现实际上是靠CPU(中央处理单元)在许多任务之间转换、调度。
CPU只有一个,轮番服务于一系列任务中的某一个。多任务运行使CPU的利用率得到最大的发挥,并使应用程序模块化。在实际应用中,多任务的最大特点是,开发人员可以将很复杂的应用程序层次化-综合实验(时钟、位图、USB、KEY)。系统内核(Kernel)与调度(Scheduler)多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通信。内核提供的基本服务是任务切换。内核本身也增加了应用程序的额外负荷,代码空间增加ROM用量,内核本身的数据结构增加了RAM的用量。内核本身对CPU的占用时间一般在2到5个百分点之间。调度(Scheduler)是内核的主要职责之一,就是要决定该轮到哪个任务运行了。多数实时内核是基于优先级调度法的。每个任务根据其重要程度的不同被赋予一定的优先级。基于优先级的调度法指,CPU总是让处在就绪态的优先级最高的任务先运行。非占先式与占先式非占先式(non-preemptive)非占先式调度法也称作合作型多任务(cooperativemultitasking),各个任务彼此合作共享一个CPU。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断了的那个任务,直到改任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。非占先式内核的一个特点是几乎不需要使用信号量保护共享数据。运行着的任务占有CPU,而不必担心被别的任务抢占。非占先式内核的最大缺陷在于其响应高优先级的任务慢,任务已经进入就绪态,但还不能运行,也许要等很时间,直到当前运行着的任务释放CPU。内核的任务级响应时间是不确定的,不知道什么时候最高优先级的任务才能拿到CPU的控制权,完全取决于应用程序什么时候释放CPU。非占先式(Non-Preemptive)低优先级任务ISR高优先级任务(1)(2)(3)(4)(5)(6)(7)中断服务程序使高优先级任务就绪低优先级任务释放CPU使用权TIME当系统响应时间很重要时,要使用占先式(preemptive)内核。最高优先级的任务一旦就绪,总能得到CPU的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的CPU使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了CPU的控制权。使用占先式内核时,应用程序不应直接使用不可重入型函数。如果调入可重入型函数时,低优先级的任务CPU的使用权被高优先级任务剥夺,不可重入型函数中的数据有可能被破坏。占先式(preemptive)占先式(Preemptive)低优先级任务ISR高优先级任务(1)(2)(3)(4)(5)(6)中断服务程序使高优先级任务就绪高优先级任务得到CPU使用权TIME可以被一个以上的任务调用,而不必担心数据的破坏。可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。可重入型函数或者只使用局部变量,即变量保存在CPU寄存器中或堆栈中。一个不可重入型函数的例子intTemp;Voidswap(int*x,int*y){Temp=*x;*X=*Y;*y=Temp;}可重入型函数一个可重入型函数的例子Voidswap(int*x,int*y){intTemp;Temp=*x;*X=*Y;*y=Temp;}任务优先级静态优先级应用程序执行过程中诸任务优先级不变,则称之为静态优先级。在静态优先级系统中,诸任务以及它们的时间约束在程序编译时是已知的动态优先级应用程序执行过程中,任务的优先级是可变的,则称之为动态优先级。实时内核应当避免出现优先级反转问题。优先级反转优先级继承,优先级封顶。信号量(Semaphore)信号量是60年代中期EdgserDijkstra发明的。信号量实际上是一种约定机制,在多任务内核中普遍使用.信号量用于:控制共享资源的使用权(满足互斥条件)标志某事件的发生使两个任务的行为同步信号与信号量并不加以区分,而说它有两种类型,二进制型(binary)和计数器型(counting)死锁(或抱死)Deadlock
死锁也称作抱死,指两个任务无限期地互相等待对方控制着的资源。设任务T1正独享资源R1,任务T2在独享资源R2,而此时T1又要独享R2,T2也要独享R1,于是哪个任务都没法继续执行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年公交车驾驶员雇佣合同3篇
- 2024年度合作伙伴联营框架合同版B版
- 2024年幼教专业人才租赁合同3篇
- 2024年呼伦贝尔办理客运从业资格证2024年试题
- 2024年建筑领域项目承包人员协议范本版B版
- 2024年合肥客运上岗证模拟考试题答案
- 2024年度采购协议额外协议书一
- 2024年劳动合同终止与解除条款3篇
- 2024年南宁客运从业资格证考什么题目好
- 2024年中山驾驶员客运从业资格证模拟考试
- 食堂应急疏散预案
- 2025届广东省广州市番禺区禺山高级中学高考压轴卷数学试卷含解析
- 2024年资助政策主题班会课件
- 救护车交通法规培训
- GB/T 44659.3-2024新能源场站及接入系统短路电流计算第3部分:储能电站
- 厂区医务室服务合同
- 水利信息化视频监视前端单元工程质量验收评定表、过程性用表
- DB11∕T 2077-2023 城市副中心 新型电力系统10kV及以下配电网设施配置技术规范
- 中小学教师教学述评制度
- 投诉法官枉法裁判范本
- 24春国家开放大学《离散数学》大作业参考答案
评论
0/150
提交评论