第15讲嵌入式系统基本知识_第1页
第15讲嵌入式系统基本知识_第2页
第15讲嵌入式系统基本知识_第3页
第15讲嵌入式系统基本知识_第4页
第15讲嵌入式系统基本知识_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第十五讲第十五讲 基本概念及设计方法基本概念及设计方法2主要内容主要内容嵌入式系统的硬件基础嵌入式系统的硬件基础嵌入式系统的软件基础嵌入式系统的软件基础嵌入式系统的设计方法嵌入式系统的设计方法3lCISC与与RISCl影响影响CPU性能的因素性能的因素l存储器系统存储器系统lI/O接口接口一、嵌入式系统硬件基础一、嵌入式系统硬件基础4典型嵌入式系统基本组成硬件典型嵌入式系统基本组成硬件MPUMPU微处理器微处理器电源电源模块模块时钟时钟复位复位FlashFlashRAMRAMROMROMUSBUSBLCDLCDKeyboardKeyboard外围电路外围电路OtherOther外设外设5CI

2、SC和和RISCCISC:复杂指令集(:复杂指令集(Complex Instruction Set Computer)具有大量的指令和寻址方式具有大量的指令和寻址方式8/2原则:原则:80%的程序只使用的程序只使用20%的指令的指令大多数程序只使用少量的指令就能够运行。大多数程序只使用少量的指令就能够运行。RISC:精简指令集(:精简指令集(Reduced Instruction Set Computer)在通道中只包含最有用的指令在通道中只包含最有用的指令确保数据通道快速执行每一条指令确保数据通道快速执行每一条指令使使CPU硬件结构设计变得更为简单硬件结构设计变得更为简单 6CISC与与RI

3、SC的数据通道的数据通道IFIDREGALUMEM开始退出IFIDALUMEMREG微操作通道开始退出单通数据通道7影响影响CPU性能的因素:流水线、超标量和缓存性能的因素:流水线、超标量和缓存流水线技术:几个指令可以并行执行流水线技术:几个指令可以并行执行 提高了提高了CPU的运行效率的运行效率 内部信息流要求通畅流动内部信息流要求通畅流动译码取指执行add译码取指执行sub译码取指执行cmp时间AddSubCmp8超标量执行超标量执行超标量执行:超标量超标量执行:超标量CPU采用多条流水线结构采用多条流水线结构 执行1预取指令CACHE译码2译码1执行2执行1预取译码2译码1执行2流水线1

4、流水线2数据9高速缓存(高速缓存(CACHE)1、为什么采用高速缓存、为什么采用高速缓存 微处理器的时钟频率比内存速度提高快得多,高速缓存可以提高微处理器的时钟频率比内存速度提高快得多,高速缓存可以提高内存的平均性能。内存的平均性能。2、高速缓存的工作原理、高速缓存的工作原理 高速缓存是一种小型、快速的存储器,它保存部分主存内容的高速缓存是一种小型、快速的存储器,它保存部分主存内容的拷贝。拷贝。 CPU高速缓存控制器CACHE主存数据数据地址10总线和总线桥总线和总线桥CPU低速设备桥数据高速总线存储器高速设备高速设备低速总线11存储器系统存储器系统RAM:随机存取存储器,:随机存取存储器,

5、SRAM:静态随机存储器,:静态随机存储器, DRAM:动态随机存储器:动态随机存储器 1)SRAM比比DRAM快快 2)SRAM比比DRAM耗电多耗电多 3)DRAM存储密度比存储密度比SRAM高得多高得多 4)DRM需要周期性刷新需要周期性刷新ROM:只读存储器:只读存储器FLASH:闪存:闪存12输入输出接口输入输出接口lI/OlA/D、D/Al键盘键盘lLCDl存储器接口存储器接口l设备接口设备接口13二、嵌入式系统软件基础二、嵌入式系统软件基础l操作系统的分类操作系统的分类l嵌入式实时操作系统嵌入式实时操作系统l基本概念基本概念141. 操作系统的分类操作系统的分类(1)顺序执行系统

6、:系统内只含有一个程序,独占)顺序执行系统:系统内只含有一个程序,独占CPU的的运行时间,按语句顺序执行该程序,直至执行完毕,另一运行时间,按语句顺序执行该程序,直至执行完毕,另一程序才能启动运行。如程序才能启动运行。如DOS操作系统。操作系统。(2)分时操作系统:系统内同时可以有多个程序运行,把)分时操作系统:系统内同时可以有多个程序运行,把CPU的时间按顺序分成若干片,每个时间片内执行不同的的时间按顺序分成若干片,每个时间片内执行不同的程序。如程序。如UNIX(3)实时操作系统:系统内有多个程序运行,每个程序有)实时操作系统:系统内有多个程序运行,每个程序有不同的优先级,只有最高优先级的任

7、务才能占有不同的优先级,只有最高优先级的任务才能占有CPU的控的控制权。制权。15按实时性分类按实时性分类:l强实时系统,其系统响应时间在毫秒或微秒级(数控强实时系统,其系统响应时间在毫秒或微秒级(数控机床);机床);l一般实时系统,其系统响应时间在毫秒几秒的数量一般实时系统,其系统响应时间在毫秒几秒的数量级上,其实时性的要求比强实时系统要差一些(电子菜谱级上,其实时性的要求比强实时系统要差一些(电子菜谱的查询)。的查询)。l弱实时系统,其系统响应时间约为数十秒或更长(工弱实时系统,其系统响应时间约为数十秒或更长(工程机械)。程机械)。按软件结构分类按软件结构分类l循环轮询系统:(循环轮询系统

8、:(Polling Loop)l事件驱动系统:(事件驱动系统:(Event-Driven system)162. 嵌入式实时操作系统嵌入式实时操作系统RTOS是是32位嵌入式位嵌入式CPU的软件基础的软件基础lRTOS(实时多任务操作系统)内核提供(实时多任务操作系统)内核提供CPU的管理的管理l硬件初时化,硬件初时化,MMU,定时器,中断,定时器,中断lRTOS内核提供任务,内存管理内核提供任务,内存管理lRTOS提供设备管理,文件和网络的支持提供设备管理,文件和网络的支持lRTOS提供提供C/C+,JAVA,图形模块等编程接口,图形模块等编程接口17常见的嵌入式操作系统常见的嵌入式操作系统

9、 实时嵌入式操作系统的种类繁多,大体上可分为两实时嵌入式操作系统的种类繁多,大体上可分为两种,商用型和免费型。种,商用型和免费型。l商用型的实操作系统功能稳定、可靠,有完善的技商用型的实操作系统功能稳定、可靠,有完善的技术支持和售后服务,但往往价格昂贵。术支持和售后服务,但往往价格昂贵。l免费型的实时操作系统在价格方面具有优势,目前免费型的实时操作系统在价格方面具有优势,目前主要有主要有LinuxLinux和和C/OSC/OS,稳定性与服务性存在挑战。,稳定性与服务性存在挑战。18VxWorksVxWorkslVxWorks操作系统是美国操作系统是美国WindRiver公司于公司于1983年设

10、计开年设计开发的一种嵌入式实时操作系统(发的一种嵌入式实时操作系统(RTOS),具有良好的持),具有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域牢牢占据着一席之地。嵌入式实时操作系统领域牢牢占据着一席之地。lVxWorks所具有的显著特点是:所具有的显著特点是: 可靠性、实时性和可裁减性。可靠性、实时性和可裁减性。 它支持多种处理器,如它支持多种处理器,如x86、i960、Sun Sparc、Motorola MC68xxx、MIPS 、POWER PC等等。等等。l 大多数的大多数的VxWorks API是

11、专有的,火星机器人。是专有的,火星机器人。19Windows EmbeddedWindows EmbeddedlWindows CE 3.0:一种针对小容量、移动式、智能化、:一种针对小容量、移动式、智能化、32位、连接设备的模块化实时嵌入式操作系统。位、连接设备的模块化实时嵌入式操作系统。l针对掌上设备、无线设备的动态应用程序和服务提供了针对掌上设备、无线设备的动态应用程序和服务提供了一种功能丰富的操作系统平台,一种功能丰富的操作系统平台, WindowsCE嵌入但不够嵌入但不够实时,属于软实时操作系统,实时,属于软实时操作系统,l由于其由于其Windows背景,界面比较统一认可。背景,界面

12、比较统一认可。l操作系统的基本内核需要至少操作系统的基本内核需要至少200K的的ROM。 20Palm OSPalm OSlPalm OS是著名的网络设备制造商是著名的网络设备制造商3COM旗下的旗下的Palm Computing掌上电脑公司的产品。掌上电脑公司的产品。l3COM、CISCO竞争竞争lPalm OS在在PDA市场上占有很大的市场份额,市场上占有很大的市场份额, Palm OS的市场份额占到将近的市场份额占到将近90%,最近下降,最近下降70,目前主要与,目前主要与WIN CE进行激烈竞争。进行激烈竞争。 21QNXQNXl加拿大加拿大QNX公司的产品。公司的产品。lQNX是在是

13、在X86体系上面开发出来的,这和别的体系上面开发出来的,这和别的RTOS不一样不一样,别的好多,别的好多RTOS都是从都是从68K的的CPU上面开发成熟,然后再上面开发成熟,然后再移植到移植到X86体系上面来的。体系上面来的。lQNX是一个实时的、可扩充的操作系统,它部分遵循是一个实时的、可扩充的操作系统,它部分遵循POSIX相关标准,由于相关标准,由于QNX具有强大的图形界面功能,因具有强大的图形界面功能,因此很适合作为机顶盒、手持设备(手掌电脑、手机)、此很适合作为机顶盒、手持设备(手掌电脑、手机)、GPS设备的实时操作系统使用。设备的实时操作系统使用。22嵌入式嵌入式LinuxLinux

14、l嵌入式系统越来越追求数字化、网络化和智能化。因此原来嵌入式系统越来越追求数字化、网络化和智能化。因此原来在某些设备或领域中占主导地位的软件系统越来越难以为继在某些设备或领域中占主导地位的软件系统越来越难以为继,整个系统必须是开放的、提供标准的,整个系统必须是开放的、提供标准的API,并且能够方便,并且能够方便地与众多第三方的软硬件沟通。地与众多第三方的软硬件沟通。lLinux是开放源码的,不存在黑箱技术,遍布全球的众多是开放源码的,不存在黑箱技术,遍布全球的众多Linux爱好者又是爱好者又是Linux开发的强大技术后盾。开发的强大技术后盾。lLinux的内核小、功能强大、运行稳定、系统健壮、

15、效率高的内核小、功能强大、运行稳定、系统健壮、效率高,易于定制剪裁,在价格上极具竞争力。,易于定制剪裁,在价格上极具竞争力。lLinux不仅支持不仅支持x86 CPU,还可以支持其他数十种,还可以支持其他数十种CPU芯片。芯片。23 l嵌入式嵌入式Linux(Embedded Linux)是指对是指对Linux经过小型经过小型化裁剪后,能够固化在容量只有几百化裁剪后,能够固化在容量只有几百K字节或几兆字字节或几兆字节的存储器芯片或单片机中,应用于特定嵌入式场合节的存储器芯片或单片机中,应用于特定嵌入式场合的专用的专用Linux操作系统。嵌入式操作系统。嵌入式Linux的开发和研究是的开发和研究

16、是目前操作系统领域的一个热点。主要有目前操作系统领域的一个热点。主要有RTLinux和和 CLinuxlLinux在嵌入式领域异军突起不过是近两年的事情,在嵌入式领域异军突起不过是近两年的事情,过去的一年中有过去的一年中有13%的用户已经开始使用嵌入式的用户已经开始使用嵌入式Linux系统进行开发工作;有系统进行开发工作;有52%的用户决定在未来的用户决定在未来24个月内开始使用个月内开始使用Linux作为嵌入式操作系统的开发作为嵌入式操作系统的开发原型。原型。 嵌入式嵌入式Linux及应用及应用24RTEMSlRTEMS是前美国军方研制的嵌入式系统是前美国军方研制的嵌入式系统, 最早用于美国

17、最早用于美国国防系统,国防系统,l早期的名称为实时导弹系统(早期的名称为实时导弹系统(Real Time Executive for Missile Systems)l后来改名为实时军用系统(后来改名为实时军用系统(Real Time Executive for Military Systems)l目前的全称是目前的全称是 (Real Time Executive for Multiprocessor Systems) ,他,他的特点是非常的稳定,而且速度快。现在是一个开源项的特点是非常的稳定,而且速度快。现在是一个开源项目的目的RTOS。 25代码的临界段代码的临界段l代码的临界段也称为临界

18、区,指处理时不可分割的代码。代码的临界段也称为临界区,指处理时不可分割的代码。一旦这部分代码开始执行,则不允许任何中断打入。一旦这部分代码开始执行,则不允许任何中断打入。l在进入临界区之前要关中断,而临界区代码执行完以后要在进入临界区之前要关中断,而临界区代码执行完以后要立即开中断(在任务切换时,地址、指令、数据等寄存器立即开中断(在任务切换时,地址、指令、数据等寄存器堆栈保护)。堆栈保护)。3. 基本概念基本概念26前后台系统(后台循环、前台中断)前后台系统(后台循环、前台中断)ISRISR后台后台 前台前台ISR时间时间27l资源:任何为任务所占用的实体都可称为资源。资源可资源:任何为任务

19、所占用的实体都可称为资源。资源可以使输入以使输入/ /输出设备,例如打印机、键盘及显示器;也输出设备,例如打印机、键盘及显示器;也可以是一个变量、一个结构或一个数组等。可以是一个变量、一个结构或一个数组等。l共享资源:可以被一个以上任务使用的资源叫做共享资共享资源:可以被一个以上任务使用的资源叫做共享资源。为了防止数据被破坏,每个任务在与共享资源打交源。为了防止数据被破坏,每个任务在与共享资源打交道时,必须独占该资源,这叫做互斥(道时,必须独占该资源,这叫做互斥(mutual mutual exclusionexclusion)。)。资源,共享资源资源,共享资源28多任务多任务CPUCPU寄存

20、器寄存器任务任务控制控制块块1 1任务任务控制控制块块2 2任务任务控制控制块块n n休眠、就绪、运行、挂起、被中断休眠、就绪、运行、挂起、被中断任务任务1 1任务任务2 2任务任务n nCPUCPU寄存器寄存器29一个任务,也称作一个线程,是一个简单的运行一个任务,也称作一个线程,是一个简单的运行程序。每个任务都是整个应用的某一部分,每个任务被程序。每个任务都是整个应用的某一部分,每个任务被赋予一定的优先级,赋予一定的优先级, 有它自己的一套有它自己的一套CPU寄存器和自己寄存器和自己的栈空间。的栈空间。每个任务都是一个无限的循环,都可能处在下面每个任务都是一个无限的循环,都可能处在下面五个

21、状态之一:五个状态之一:l休眠态休眠态l就绪态就绪态l运行态运行态l挂起态挂起态l被中断态被中断态任务任务30l当多任务内核决定运行另外的任务时,它保存正在运行当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态(即任务的当前状态(即CPUCPU寄存器中的全部内容)到该任寄存器中的全部内容)到该任务自己的栈区中,入栈工作完成后,把下一个将运行的务自己的栈区中,入栈工作完成后,把下一个将运行的任务的当前状况从该任务的栈中重新装入任务的当前状况从该任务的栈中重新装入CPUCPU的寄存器的寄存器,并开始下一个任务的运行,这一过程叫做任务切换。,并开始下一个任务的运行,这一过程叫做任务切换。

22、任务切换任务切换31内核(内核(Kernel)与调度(与调度(Scheduler)l多任务系统中,内核负责管理各个任务,或者说为每个任多任务系统中,内核负责管理各个任务,或者说为每个任务分配务分配CPU时间,并且负责任务之间的通信。时间,并且负责任务之间的通信。l内核提供的基本服务是任务切换。内核本身也增加了应用内核提供的基本服务是任务切换。内核本身也增加了应用程序的额外负荷,代码空间增加程序的额外负荷,代码空间增加ROM用量,内核本身的用量,内核本身的数据结构增加了数据结构增加了RAM的用量。内核本身对的用量。内核本身对CPU的占用时的占用时间一般在间一般在2到到5个百分点之间。个百分点之间

23、。l调度(调度(Scheduler)是内核的主要职责之一,就是要决定)是内核的主要职责之一,就是要决定该轮到哪个任务运行了。多数实时内核是基于优先级调度该轮到哪个任务运行了。多数实时内核是基于优先级调度法的。每个任务根据其重要程度的不同被赋予一定的优先法的。每个任务根据其重要程度的不同被赋予一定的优先级。基于优先级的调度法指,级。基于优先级的调度法指,CPU总是让处在就绪态的优总是让处在就绪态的优先级最高的任务先运行。先级最高的任务先运行。32不可剥夺型内核不可剥夺型内核(Non-Preemptive kernel)l不可剥夺型(不可剥夺型(non-preemptive)内核要求每个任务主动)

24、内核要求每个任务主动放弃放弃CPU的使用权。不可剥夺型调度法也称作合作型多任务(的使用权。不可剥夺型调度法也称作合作型多任务(cooperative multitasking),各个任务彼此合作共享一个),各个任务彼此合作共享一个CPU。中断服务可以使一个高优先级的任务由挂起状态变为就中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断了的那个绪状态。但中断服务以后控制权还是回到原来被中断了的那个任务,直到改任务主动放弃任务,直到改任务主动放弃CPU的使用权时,那个高优先级的的使用权时,那个高优先级的任务才能获得任务才能获得CPU的使用权。的使用权。不

25、可剥夺型内核的一个特点是几乎不需要使用信号量保不可剥夺型内核的一个特点是几乎不需要使用信号量保护共享数据。运行着的任务占有护共享数据。运行着的任务占有CPU,而不必担心被别的任务,而不必担心被别的任务抢占。抢占。不可剥夺型内核的不可剥夺型内核的最大缺陷最大缺陷在于其响应高优先级的任务在于其响应高优先级的任务慢,任务已经进入就绪态,但还不能运行,也许要等很长时间慢,任务已经进入就绪态,但还不能运行,也许要等很长时间,直到当前运行着的任务释放,直到当前运行着的任务释放CPU。内核的任务级响应时间是。内核的任务级响应时间是不确定的不确定的33不可剥夺型内核不可剥夺型内核(Non-Preemptive

26、 kernel)低优先级任务低优先级任务ISR高优先级任务高优先级任务(1)(2)(3)(4)(5)(6)(7)中断服务程序使中断服务程序使高优先级任务就绪高优先级任务就绪低优先级任务释放低优先级任务释放CPU使用权使用权TIME34当系统响应时间很重要时,要使用可剥夺型(当系统响应时间很重要时,要使用可剥夺型(preemptive)内核。最高优先级的任务一旦就绪,总)内核。最高优先级的任务一旦就绪,总能得到能得到CPU的控制权。的控制权。当一个运行着的任务使一个比它优先级高的任务当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的进入了就绪态,当前任务的CPU使用权就被剥夺了,

27、使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了或者说被挂起了,那个高优先级的任务立刻得到了CPU的控制权。的控制权。使用占先式内核时,应用程序不应直接使用不可使用占先式内核时,应用程序不应直接使用不可重入型函数。如果调入不可重入型函数时,低优先级重入型函数。如果调入不可重入型函数时,低优先级的任务的任务CPU的使用权被高优先级任务剥夺,的使用权被高优先级任务剥夺,不可重入不可重入型函数中的数据有可能被破坏。型函数中的数据有可能被破坏。可剥夺型内核(可剥夺型内核(preemptive kernel)35不可剥夺型内核(不可剥夺型内核(preemptive kernel)低优先级任

28、务低优先级任务ISR高优先级任务高优先级任务(1)(2)(3)(4)(5)(6)中断服务程序使中断服务程序使高优先级任务就绪高优先级任务就绪高优先级任务得到高优先级任务得到CPU使用权使用权TIME36可以被一个以上的任务调用,而不必担心数据的破坏。可以被一个以上的任务调用,而不必担心数据的破坏。可重入型函数任何时候都可以被中断,一段时间以后又可以可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。可重入型函数或者只使用局部运行,而相应数据不会丢失。可重入型函数或者只使用局部变量,即变量保存在变量,即变量保存在CPU寄存器中或堆栈中。寄存器中或堆栈中。可重入型函数可重

29、入型函数一个不可重入型函数的例子一个不可重入型函数的例子int Temp;Void swap (int *x,int*y)Temp=*x;*X=*Y;*y=Temp;一个可重入型函数的例子一个可重入型函数的例子Void swap (int *x,int*y)int Temp;Temp=*x;*X=*Y;*y=Temp;37任务优先级任务优先级l静态优先级静态优先级 应用程序执行过程中诸任务优先级不变,则称之为静应用程序执行过程中诸任务优先级不变,则称之为静态优先级。在静态优先级系统中,诸任务以及它们的时态优先级。在静态优先级系统中,诸任务以及它们的时间约束在程序编译时是已知的间约束在程序编译时

30、是已知的 l动态优先级动态优先级 应用程序执行过程中,任务的优先级是可变的,则称应用程序执行过程中,任务的优先级是可变的,则称之为动态优先级。实时内核应当避免出现优先级反转问之为动态优先级。实时内核应当避免出现优先级反转问题。题。 38优先级反转优先级反转Task 1 (H)Task 2 (M)Task 3 (L)Priority InversionTask 3 Get SemaphoreTask 1 Preempts Task 3Task 1 Tries to get SemaphoreTask 2 Preempts Task 3Task 3 ResumesTask 3 Releases t

31、he Semaphore( (1 1) )( (2 2) )( (3 3) )( (4 4) )( (5 5) )( (6 6) )( (7 7) )( (8 8) )( (9 9) )( (1 10 0) )( (1 11 1) )( (1 12 2) )39互斥条件互斥条件l实现任务间通信最简便的方法是使用共享数据结构,但实现任务间通信最简便的方法是使用共享数据结构,但必须保证每个任务在处理共享数据时的排他性,以避免必须保证每个任务在处理共享数据时的排他性,以避免竞争和数据的破坏。竞争和数据的破坏。l与共享资源打交道时,使之满足互斥条件最一般的方法与共享资源打交道时,使之满足互斥条件最一般

32、的方法有:有:l关中断关中断l使用测试并置位指令使用测试并置位指令l禁止做任务切换禁止做任务切换l利用信号量利用信号量40信号量信号量(Semaphore)l信号量是信号量是60年代中期年代中期Edgser Dijkstra 发明的。信号量实发明的。信号量实际上是一种约定机制,在多任务内核中普遍使用际上是一种约定机制,在多任务内核中普遍使用.信号信号量用于量用于:u控制共享资源的使用权控制共享资源的使用权(满足互斥条件满足互斥条件)u标志某事件的发生标志某事件的发生u使两个任务的行为同步使两个任务的行为同步l信号与信号量在英文中都叫做信号与信号量在英文中都叫做Semaphore,并不加以区,并

33、不加以区分,而说它有两种类型,二进制型分,而说它有两种类型,二进制型(binary)和计数器型和计数器型(counting) 41二进制信号量二进制信号量42计数式信号量计数式信号量43死锁死锁(或抱死或抱死) Deadlock 死锁也称作抱死,指两个任务无限期地互相等待对方控制死锁也称作抱死,指两个任务无限期地互相等待对方控制着的资源。设任务着的资源。设任务T1正独享资源正独享资源R1,任务,任务T2在独享资源在独享资源R2,而此时,而此时T1又要独享又要独享R2,T2也要独享也要独享R1,于是哪个任,于是哪个任务都没法继续执行了,发生了死锁。最简单的防止发生死务都没法继续执行了,发生了死锁

34、。最简单的防止发生死锁的方法是让每个任务都:锁的方法是让每个任务都:l先得到全部需要的资源再做下一步的工作先得到全部需要的资源再做下一步的工作l用同样的顺序去申请多个资源用同样的顺序去申请多个资源l释放资源时使用相反的顺序释放资源时使用相反的顺序 44任务同步任务同步45l全程变量或共享内存全程变量或共享内存l邮箱或消息队列邮箱或消息队列 任务间的通信任务间的通信(Intertask Communication)46全程变量全程变量l用全程变量时,必须保证每个任务或中断服务程序独享用全程变量时,必须保证每个任务或中断服务程序独享该变量。该变量。l中断服务中保证独享的唯一办法是关中断。中断服务中

35、保证独享的唯一办法是关中断。l如果两个任务共享某变量,各任务实现独享该变量的办如果两个任务共享某变量,各任务实现独享该变量的办法可以是关中断再开中断,或使用信号量法可以是关中断再开中断,或使用信号量 47消息邮箱消息邮箱通过内核服务可以给任务发送消息。典型的消息邮箱也称作交换消息,即用一个指针型变量,一个任务或一个中断子程序通过内核服务,可以把一则消息(一个指针)放到邮箱里去。同样,一个或多个任务通过内核服务,可以接收这则消息。发送消息的任务和接收消息的任务约定,该指针指向的内容就是那则消息。48消息队列消息队列T TA AS SK KI IS SR RP PO OS ST TP PE EN

36、ND DQ Qu ue eu ue eI In nt te er rr ru up pt t010消息队列用于给任务发消息。消息队列实际上是邮箱阵列。通过内核提供的服务,任务或中断服务子程序可以将一则消息放入消息队列,一个或多个任务可以通过内核服务从消息队列中得到消息。49嵌入式系统的软/硬件框架机械装置机械装置嵌入式嵌入式微处理器微处理器SDRAMSDRAMROMROMI/OI/OA/DA/DD/AD/A人机交互接口人机交互接口通用接口通用接口实时操作系统(实时操作系统(RTOS)RTOS)图形用户图形用户接口接口BSP/HAL 硬件抽象层/板极支持包BSP/HAL 硬件抽象层/板极支持包任务管理任务管理文件系统文件系统应用程序应用程序嵌入式计算机系统嵌入式计算机系统传感器1传感器1传感器2传感器2传感器N传感器N.驱动器1驱动器1驱动器2驱动器2驱动器N驱动器N.硬件层硬件层软件层软件层中间层中间层功能层功能层被控对象被控对象50嵌入式系统设计步骤l系统需求分析:确定设计任务和设计目标,并提炼出设计规系统需求分析:确定设计任务和设计目标,并提炼出设计规格说明书,作为正式设计指导和验收的标准。系统的需求一格说明书,作为正式设计指导和验收的标准。系统的需求一般分功能性需求和非功能性需求两方面。功能性需求是系统般分功能性需求和非功能性需求两方面。功能性

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论