版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式系统复习提纲第一章1,什么是嵌入式系统?IEEE(国际电气和电子工程师协会)的定义是什么?一般定义是什么?根据IEEE(国际电气和电子工程师协会)的定义:嵌入式系统是闻于控制、监视或者辅助操作机器和设备的装置一般定义:以应用为中心、以计算机技术为基础、软件硬件可裁剪、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。”广义上讲,凡是带有微处理器的专用软硬件系统都可称为嵌入式系统。从狭义上讲,我们更加强调那些使用嵌入式微处理器构成独立系统,具有自己操作系统,具有特定功能,用于特定场合的嵌入式系统。这里所谓的嵌入式系统是指狭义上的嵌入式系统。2, 嵌入式系统有哪些重要的特征?系统内核小
2、由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多。比如ENEA公司的OSE分布式系统,内核只有5K,而Windows的内核则要大得多。专用性强嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常紧密,一般要针对硬件进行系统的移植。即使在同一品牌、同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改。同时针对不同的任务,往往需要对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的升级”是完全不同的概念。(3)系统精简嵌入式系统一般没有系统软件和应用软件的明显区分,不要求其功能设计及实现上过于复杂,这样一方面利于控制系统成本,
3、同时也利于实现系统安全。(4)高实时性OS这是嵌入式软件的基本要求,而且软件要求固态存储,以提高速度。软件代码要求高质量和高可靠性、实时性。3, 实时系统的定义是什么?答:实时系统的正确性依赖于运行结果的逻辑正确性和运行结果产生的时间正确性,即实时系统必须在规定的时间范围内正确地响应外部物理过程的变化。4,在典型的嵌入式系统组成中,可以分为哪四(层_?-<心通常包含哪些单无一中间层BSP有哪些基本功能?答:硬件层,中间层,软件层,功能层|功能层II软件层I1中间层III硬件层应用程序文件系统图形用户接口任务管理实时操作系统(RTOS)BSP/HAL硬件抽象层/板极支持包D/A嵌入式微处理
4、器通用接口A/DROMI/OSDRAM人机交互接口嵌入式计算机系统中间层BSP功能之一:硬件初始化片级初始化:主要完成CPU的初始化,把CPU从上电时的缺省状态逐步设置成为系统所要求的工作状态。板级初始化:完成CPU以外的其他硬件设备的初始化。除此之外,还要设置某些软件的数据结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境。系统级初始化:这是一个以软件初始化为主的过程,主要进行操作系统初始化。BSP将控制转交给操作系统,由操作系统进行余下的初始化操作。包括加载和初始化与硬件无关的设备驱动程序,建立系统内存区,加载并初始化其他系统软件模块,比如网络系统、文件系统等;最后,操作系
5、统创建应用程序环境并将控制转交给应用程序的入口中间层BSP功能之二:尽管BSP中包含硬件相关的设备驱动程序,但是这些设备驱动程序通常不直接由BSP使用,而是在系统初始化过程中由BSP把它们与操作系统中通用的设备驱动程序关联起来,并在随后的应用中由通用的设备驱动程序调用,实现对硬件设备的操作。5.嵌入式处理器可以分为几大类?每一类代表的器件有哪些?第二章嵌入式硬件系统的基本结构包含那些部分?(嵌入式微处理器、存储器、和输入输出)嵌入式处理器的三大部分是什么?(控制单元、算术逻辑单元和寄存器)2,什么是冯.诺依曼体系结构?什么是哈佛体系结构?各有哪些代表性的处理器?3复杂指令集计算机(cisc)和
6、精简指令集计算机(rise)各有什么特点?类别CISCRISC指令系统指令数量很多较少,通常少于100执行时间有些指令执行时间很长,如整块的存储器内容拷贝;或将多个寄存器的内容拷贝到存贮器没有较长执行时间的指令编码长度编码长度可变,1-15字节编码长度固定,通常为4个字节寻址方式寻址方式多样简单寻址操作可以对存储器和寄存器进行算术和逻辑操作只能对寄存器对行算术和逻辑操作,Load/Store体系结构编译谁以用优化编译器生成高效的目标代码程序采用优化编译技术,生成高效的目标代码程序4. 在计算机体系结构中,什么是冯氏结构体系、哈氏结构体系?冯诺伊曼体系结构也叫普林斯顿结构,它的最大特征是什么?哈
7、佛结构,它的最大特征是什么?什么是CISC、RISC体系?其各自优、缺点以及特点是什么?在指令数目上,CISC与RISC比较,哪种结构的指令数目多些?属于CISC的代表性微处理器有哪些?属于RISC的代表性处理器有哪些?ARM7TDMI属于哪种体系?对于多字节类型的数据,在存储器上有两种存储方式,分别是小端字节顺序方式和大端字节顺序方式,比如字符串数据UNIX”的ASCII码数据0x55,0x4E,0x49,0x58在16位字长的微处理器上,以小端字节顺序方式存储下来,取出时该微处理器变成大端字节顺序方式,那么取出的字符串是什么,数据怎么表示?5. 4,在无操作系统的嵌入式软件有哪几种实现方式
8、?循环轮询系统,事件驱动系统(前后台)5.按软件结构分类,操作系统体系结构可以分为哪几种不同的结构?(单体结构如嵌入式Linux,分层结构如MS-DOS和微内核结构如OS-9)每一种结构的代表性实例是什么?微内核结构下的软件体系结构如何?说明它的特点。(操作系统内核只包含最少的功能,如存储管理和进程管理;其他的操作系统组件以中间件的形式存在于内核之外;设备驱动程序完全从内核中剥离,独立成为一层;易于扩展、调试方便).什么是轮询系统?什么是前后台系统(事件驱动系统)?循环轮询系统:(PollingLoop)最简单的软件结构,程序依次检查系统的每个输入条件,一旦条件成立就进行相应的处理事件驱动系统
9、:(Event-Drivensystem)事件驱动系统是能对外部事件直接响应的系统。它包括前后台、实时多任务、多处理器等,是嵌入式实时系统的主要形式多任务系统中,什么是占先式内核?什么是非占先内核?6 .什么是设备驱动程序?设备驱动程序的主要功能有那些?6. 直接与硬件打交道、对硬件进行控制和管理的软件。嵌入式硬件设备本身无法工作,需要软件来驱动,如初始化、控制、数据读写等嵌入式软件的目标有哪些?要优化哪些资源的使用?答:函数必须正确;源代码简洁、可读性好、可维护;实时性要求较高的代码能够运行得足够快;目标代码小且高效。总之,要优化对以下三种资源的使用:执行时间;存储空间;开发/维护时间。函数
10、的调用过程是怎样的?系统运行时,内存分布状况如何?不同的变量的存储和作用域怎样区别?当一个函数被调用时1. 在内存的栈空间当中为其分配一个栈帧,用来存放该函数的形参和局部变量2. 把实参变量的值复制到相应的形参变量3. 控制转移到该函数的起始位置该函数开始执行;5.控制流和返回值返回到函数调用点F统栈帧2栈岫内行分布於一雎忐分酉己栈西己静忐10。什么是可重入函数?12 可以被一个以上的任务调用,而不必担心数据的破坏。可重入型函数任何时候都可以被中断,一段时间以后又可以运行,而相应数据不会丢失。可重入型函数只使用局部变量,即变量保存在CPU寄存器或栈中.什么是资源?(程序运行时可使用的软、硬件环
11、境统称为资源)什么是共享资源?(可以被一个以上任务使用的资源叫做共享资源)什么是互斥?(为了防止数据被破坏,13 每个任务在与共享资源打交道时,必须独占该资源,这叫做互斥).什么是进程?进程应该包括哪些东西?一个进程应该包括程序的代码;程序的数据;PC中的值,用来指示下一条将运行的指令;一组通用的寄存器的当前值,堆、栈;一组系统资源(如打开的文件)总之,进程包含了正在运行的一个程序的所有状态信息。17. .什么是任务?(在许多嵌入式操作系统当中,一般把能够独立运行的实体称为任务)任务切换是怎样的?(当多任务内核决定运行另外的任务时,它保存正在运行任务的当前状态,即CPU寄存器中的全部内容。这些
12、内容保存在任务自已的栈区之中。入栈工作完成以后,就把下一个将要运行的任务的当前状态从任务的栈中重新装入CPU的寄予存器,并开始下一个任务的运行。这个过程就称为任务切换)任务有哪三种基本状态?就绪,执行,阻塞.描述任务的数据结构是什么?(描述任务的数据结构:任务控制块)包含哪些内容?(任务ID、任务的状态、任务的优先级;CPU上下文信息:通用寄存器的值、PC寄存器的值、程序状态字、栈指针的值;如果在该OS中,任务描述的是进程,则还应包括其他的一些内容,如段表地址、页表地址等存储管理方面的信息;根目录、文件描述字等文件管理方面的信息。)任务在那些时间可以调度?1. 当一个新的任务被创建时,是执行新
13、任务还是继续执行父任务?2. 当一个任务运行完毕时;3. 当一个任务由于I/O、信号量或其他的某个原因被阻塞时;当一个I/O中断发生时,表明某个I/O操作已经完成,而等待该I/O操作的任务转入就绪状态;4. 在分时系统中,当一个时钟中断发生时。18. 嵌入式系统任务调度算法的评价指标有哪些?响应时间(responsetime):调度器为一个就绪任务进行上下文切换的时间,以及任务在就绪队列中等待的时间;周转时间(turnaroundtime):一个任务从提交到完成所经历的时间;调度开销(overhead):调度算法在执行时所需要的时间和空间开销;公平(fairness):大致相当的两个进程所得到
14、的CPU时间也应是大致相同的,防止饥饿(starvation);均衡:尽可能使整个系统的各部分(CPU、I/O)都忙起来,提高系统资源的使用效率;吞吐量(Throughput):单位时间内完成的任务数。19.什么是优先级调度算法?(优先级算法(PriorityScheduling):给每个任务设置一个优先级,然后在所有就绪任务中选择优先级最高的那个任务去运行)任务优先级有哪两种确定方式?(静态和动态两种)20.大多数RTOS调度器都采用基于优先级的可抢占调度算法,但在具体实现上要考虑哪些问题:(如何设定各个任务的优先级?优先级是静态设置的还是动态可变的?算法的性能如何,能否满足实时要求?)21
15、.任务间通信可以有哪几种方式?共享内存(sharedmemory);消息传递(messagepassing);管道(pipe);信号(signal)。22.什么是代码的临界区?什么叫临界资源?对共享内存或共享文件的访问,可能会导致竞争条件的出现。我们把完成这类事情的那段代码称为临界区”CriticalRegion),把需要互斥访问的共享资源称为临界资源”。23有哪几种种方法,使得任何两个任务都不会同时出现在临界区中,就可以避免竞争条件的出现?1当一个任务进入临界区后,关闭所有的中断;当它退出临界区时,再打开中断。2可以采用各种基于繁忙等待(busywaiting)的策略,基本思路是:当一个任务
16、想要进入它的临界区时,首先检查一下是否允许它进入,若允许,就直接进入了;若不允许,就在那里循环地等待,一直等到允许它进入。24 .什么是信号量?什么是原子操作?什么是P原语?什么是V原语?91965年由著名的荷兰计算机科学家Dijkstra提出,其基本思路是用一种新的变量类型(semaphore)来记录当前可用资源的数量。有两种实现方式:1)semaphore的取值必须大于或等于0。0表示当前已没有空闲资源,而正数表示当前空闲资源的数量;2)semaphore的取值可正可负,负数的绝对值表示正在等待进入临界区的任务个数。信号量是由操作系统来维护的,任务只能通过初始化和两个标准原语(P、V原语)
17、来访问。初始化可指定一个非负整数,即空闲资源总数。P、V原语作为操作系统内核代码的一部分,是一种不可分割的原子操作(atomicaction),在其运行时,不会被时钟中断所打断P原语:P是荷兰语Proberen(测试)的首字母。申请一个空闲资源(把信号量减1),若成功,则退出;若失败,则该任务被阻塞;V原语:V是荷兰语Verhogen(增加)的首字母。释放一个被占用的资源(把信号量加1),如果发现有被阻塞的任务,则选择一个唤醒之。25 .如何用信号量实现互斥?如何用信号量实现同步?26 .IO设备按数据组织分类包括哪两种类型?块设备:以数据块来作为信息的存储和传输单位,每个数据块都有一个地址,
18、如磁盘;字符设备:以字符来作为信息的存储和传输单位,如打印机。.CPU如何与设备控制器当中的寄存器以及数据缓冲区有哪三种编址方式?采用哪三种方法实现IO的输入输出?I/O独立编址;内存映像编址;混合编址。程序循环检测方式(ProgrammedI/O);中断驱动方式(Interrupt-drivenI/O);直接内存访问方式(DMA,DirectMemoryAccess);第三章ARM处理器体系结构与指令集1.32位嵌入式微处理器的主要评价指标有哪些?功耗。一般的嵌入式微处理器都有三种运行模式:运行模式(operational);待机模式(standbyorpowerdown);停机模式(and
19、clock-off)。功耗的评测指标是MIPS/W;代码存储密度。传统的CISC指令集计算机具有较好的代码存储密度集计算机由于要求指令编码长度固定实现与CISC指令集计算机相同的作业代码长度集成度。嵌入式微处理器一般都为专用市场设计的都集成到一个芯片上也不是一种好的解决方案引脚变密,增加了系统设计和测试的复杂性设计,并缩短整个系统的开发周期。而RISC指令,虽然可以简化和加速指令译码过程,但为了,往往需要更多的指令来完成,从而增加了,需要较高的集成度。但把所有的外围设备。这是因为高集成度使芯片变得复杂,芯片因此,集成外围设备时必须要考虑简化系统多媒体加速。为实现多媒体加速功能,嵌入式微处理器的
20、设计者在传统的微处理器指令集的基础上增加JPEG和MPEG解压缩的离散余弦变换指令。还有一些半导体厂商针对智能手机和移动通讯市场的需求,将RISC微处理器和DSP集成在一个芯片上,如TI的OMAP。2. ARM7TDMI的关键部件有几个?分别是什么?7. ARM处理器可以执行两套指令系统,分别为ARM态和Thumb态,ARM指令和Thumb指令,指令长度上有什么区别?(32bits长(ARM状态)16bits长(Thumb状态)系统启动时,处理器处于哪种状态?(ARM态)程序计数器PC总是指向当前指令的下两条指令的地址,ARM处理器中,PC一般用那个寄存器?(R15)当ARM处理器处于ARM态
21、时,PC为当前指令的地址加8字节,Thumb状态时,PC为当前指令的地址加几个字节?ARM处理器中,R13、R14、R15的功能各是什么,使用它们,细节上各自有什么特别要注意的地方?8. ARM处理器有哪几种运行模式?各是什么?特权模式和用户模式各包括哪些运行模式?处理器模式说明备注用户(usr)正常程序执行模式不能直接切换到其它模式系统(sys)运行操作系统的特权任务与用户模式类似,但具有可以直接切换到其它模式等特权快中断(fiq)支持高速数据传输及通道处理FIQ异常响应时进入此模式中断(irq)用于通用中断处理IRQ异常响应时进入此模式管理(svc)操作系统保护模式系统复位和软件中断响应时
22、进入此模式中止(abt)用于支持虚拟内存和/或存储器保护在ARM7TDMI没有大用处未正义(und)支持硬件协处理器的软件仿真未7E义指令异甬响应时进入此模式ARM允许多种寻址方式,例如MOVR0,R1,这里源操作数和目的操作数使用的都是寄存器寻址,那么指令LDRR0,R1,#4,这里源操作数使用的寻址方式是叫什么?那么指令LDRR0,R1,这里源操作数使用的寻址方式是什么?,该指令助记符的含义是什么?与LDR相对应的指令助记符是什么?9. ARM7使用了几级流水线,分别是什么?ARM9使用了几级流水线?分别是什么?ARM7:3级-取指,译码,执行。ARM9:5级-取指,指令译码,执行,缓冲/
23、数据,回写。10. ARM微处理器的寄存器在逻辑上有多少个?分别是什么?.专业.专注ARM处理器支持哪几种异常?按响应异常的优先级分类,优先级最高的是什么?最低的是什么?进入、退出异常时,ARM处理器分别要执行什么操作?FIQ,IRQ(InterruptReQuest),未定义指令,预取中止,数据中止,复位,软件中断Softwareinterrupt。优先级最高:复位,最低:未定义指令。进入:拷贝CPSR到SPSR_<mode>,设置适当的CPSR位,保存返回地址到LR_<mode>,设置PC为相应的异常向量退出:1.(R14)中的值减去偏移量后存入PC,偏移将LR量根
24、据异常的类型而有所不同;2.将SPSR的值复制回CPSR;3.清零在入口置位的中断禁止标志。11. 在ARM处理器中,把CPSR或SPSR的内容读出到通用寄存器中,有什么特别的要求?想修改CPSR寄存器的值为0XFF,应该用什么指令?怎么做?12. 阅读分析代码,实现两个寄存器值的内容相加。;文件名:TEST1.S;功能:实现两个寄存器相加;说明:使用ARMulate软件仿真调试;声明代码段Example1AREAExample1,CODE,READONLYENTRYCODE32STARTMOVR0,#0;标识程序入口;声明32位ARM指令;设置参数MOVR1,#10;调用子程序ADD_SUB
25、LOOPBLADD_SUBBLOOP;跳转到LOOPADD_SUBADDSR0,R0,R1;R0=R0+R1MOVPC,LR;子程序返回END;文件结束16.分析一段指令执行前后的变化寄存器存储器r00x01010101地址0x000090000x00009004.r10x02020202PREr0=0x00000000,r1=0x00009000,Mem320x00009000=0x01010101Mem320x00009004=0x02020202回写型前变址寻址:LDRr0,r1,#0x4!POSTr0=0x02020202,r1=0x00009004前变址寻址:LDRr0,r1,#0x
26、4POSTr0=0x02020202,r1=0x00009000后变址寻址:LDRr0,r1,#0x4POSTr0=0x01010101,r1=0x0000900417.完成一个存储器数据块拷贝高地址r11r9r10目的拷贝存储低地址注:r9存放源数据的起始地址r10存放目标起始地址r11存放源结束地址loopLDMIAr9!,(r0-r7;装载32字节并更新r9指针STMIAr10!,(r0-r7;存储32字节并更新r10指针CMPr9,r11;是否到达结束地址BNEloop;不相等跳转第四部分1.pC/OS主要特点有哪些?公开源代码可移植性(Portable)绝大部分卜C/OS-II的源码
27、是用移植性很强的ANSIC写的。和微处理器硬件相关的那部分是用汇编语言写的。汇编语言写的部分已经压到最低限度,使得卜C/OS-II便于移植到其他微处理器上。pC/OS-II可以在绝大多数8位、16位、32位以至64位微处理器、微控制器、数字信号处理器(DSP)上运行。可固化(ROMable)v-C/OS-II是为嵌入式应用而设计的,这就意味着,只要读者有固化手段(C编译、连接、下载和固化),PC/OS-II可以嵌入到读者的产品中成为产品的一部分。可裁剪(Scalable)可以只使用卜C/OS-II中应用程序需要的那些系统服务。也就是说某产品可以只使用很少几个iC/OS-II调用,而另一个产品则
28、使用了几乎所有kC/OS-II的功能,这样可以减少产品中的卜C/OS-II所需的存储器空间(RAM和ROM)。这种可剪裁性是靠条件编译实现的。占先式(Preemptive)多任务MC/OS-II可以管理64个任务,然而,目前这一版本保留8个给系统。应用程序最多可以有256个任务可确定性全部卜C/OS-II的函数调用与服务的执行时间具有可确定性。任务栈每个任务有自己单独的栈,卜C/OS-II允许每个任务有不同的栈空间,以便压低应用程序对RAM的需求。系统服务C/OS-II提供很多系统服务,例如邮箱、消息队列、信号量、块大小固定的内存的申请与释放、时间相关函数等。中断管理中断可以使正在执行的任务暂
29、时挂起,如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达255层。2. 稳定性与可靠性/OS允许管理有多少个任务,用户可以有多少个任务?系统保留的几个任务是什么?4. C/OS-可以管理多达64个任务;系统保留了优先级为0、1、2、3、OS_LOWEST_PRIO-3、OS_LOWEST_PRI0-2,OS_LOWEST_PRI0-1以及OS_LOWEST_PRI0这8个任务以被将来使用,用户可以有56个应用任务3.任务的组成包括那些部分?任务控制块uC/OS-II进行任务管理用的一个数据结构。任务代码描述任务算法的程序编码。任务堆栈任务的工作现
30、场环境。,试用状态转换图描述。4.Q/OS中任务有五种状态,相互间转换需要特定的条件拄起壮拓时间到收到消息任务堆栈在系统中有哪些应用?任务堆栈是任务的三大组成部分之一。保存CPU寄存器现场(R0R12、LR、SPSR等)。本Task的私有数据。5. TCB中各成员的作用是什么?6. 什么是任务就绪表?任务优先级和任务就绪表的映射关系是怎样的?任务就绪表:每个任务的就绪态标志放入在就绪表中,就绪表中有两个变量OSRdyGrp和OSRdyTbl。在OSRdyGrp中,任务按优先级分组,8个任务为一组。OSRdyGrp中的每一位表示8组任务中每一组中是否有进入就绪态的任务。任务进入就绪态时,就绪表O
31、SRdyTbl中的相应元素的相应位也置位。映射关系:uC/OS-II最多管理64个任务,Prio值域:063,对应的二进制数000,000111,111(6bit),OSRdyGrp(任务组就绪变量)8bit,任务就绪数组元素OSRdyTbl也是8bit。prio.D5:3-对应OSRdyTbl的下标(任务组号y),也对应OSRdyGrp的比特位号。7. prio.D2:0-对应OSRdyTbl元素的位号(任务组号x)举例说明优先级在任务就绪表中的表示。答:举例:prio=29的任务在任务就续表中的表示。prio=29,其8进制表示为:35O如何实现任务优先级到就绪表的操作?怎样从任务就绪表中
32、获得当前优先的最高的优先级号?操作:如果prio是任务的优先级,即任务的标识号,则将任务放入就绪表,即使任务进入就绪态的方法是:8. OSRdyGrp|=OSMapTblprio>>3;OSRdyTblprio>>3|=OSMapTblprio&0x07;假设优先级为121100bOSRdyGrp|=OSMapTbl12>>3(0x02);OSRdyTbl1|=0x10;获得优先级号:将优先级数分解为高三位和低三位分别确定;高优先级有着小的优先级号;C/OS中有哪几个任务调度器?任务调度器有哪两项工作?任务调度器的两项主要工作:从任务就绪表中查找优先
33、级最高的就绪任务,实现任务切换。9. uC/OS-II中有两个任务调度器”:任务级的调度器(OS_Sched(),中断级的调度器(OSIntCtxSw()任务切换宏OS_TASK_SW()依次完成的7项工作是什么?1. 被中止Task的断点指针(PC)入栈保护2. 被中止Task通用寄存器入栈保护3. 被中止Task系统管理SP该TCB->OSTCBStkPtr4. 获得待运行任务TCB5. 获得待运行任务TCB->OSTCBStkPtr6. 恢复待运行任务CPU现场(不包含PC)7. 切换CPU.PC,使CPU接续运行待运行Task断点。.某系统中有Task_A、Task_B两个
34、任务都要使用公共资源(例如UART),他们可以分别使用,但不能同时使用。如何用信号量的方法解决此问题?答:OS_EVENT*UART_Flag;/声明事件指针变量INT8Uerr;/声明全局状态变量voidmain(void)OSInit();UART_Flag=OSSemCreate(1);/创建信号量OSTaskCreate(Task_A,);/创建任务AOSTaskCreate(Task_B,);创建任务BOSStart();voidTask_A(void*pdata).;/任务体A(OSSemPend(UART_Flag,0,&err);Function(UART);OSSem
35、Post(UART_Flag);OSTimeDly(nnnn);voidTask_B(void*pdata)(;for(;)/任务体B12 (OSSemPend(UART_Flag,0,&err);Function(UART);OSSemPost(UART_Flag);OSTimeDly(mmm);请求信号量UART_Flag使用信号量UART_Flag/发送信号量UART_Flag/Task_A延时nnnn个时钟节拍请求信号量UART_Flag使用信号量UART_Flag/发送信号量UART_Flag/Task_B延时mmm个时钟节拍.某系统中有Task_A、Task_B两个任务,若
36、想执行Task_B,必须首先经过Task_A。如何用信号量的方法,将Task_B作为Task_A的后续功能,解决此问题?答:OS_EVENT*Task_Flag;/声明信号量/*辟为询闻七山山山闻虱g*巳1!(iuiuiu)A|aeiU!iso日一*巳1-6e|d->|sei喜昏哥奉真JQja'o'Beidsei)puadmesS0)a打步叨/(,oj,)(e;epd¥piOA)g->|seLpiOA辟为饷闻七uuuu闻虱V->|sei/!(uuuu)A|aeni!isoV>isei/-6e|d->|sei喜昏哥系淬iiBeidseiso
37、diiiessO)V打步壬/(,oj,)(e;epd¥piOA)v->|seLpiOA:(丽SSOa11:(0一冷巳DeaiaseisoV步叨会网/:(V>seDeaiaseiso喜昏哥会网ll!(0)9ieajoiiiassO=能日一*印.13 :()1!U|SO(piOA)UIBIUpiOA.什么是任务的优先级反转现象?发生的原因是什么?如何解决?答:是指在剥夺式OS中,当任务以独占方式使用共享资源时,低优先级的任务可能先于高优先级任务得到系统调度而运行的现象。原因:低优先级的任务独占共享资源,迫使高优先级任务因等待资源而让出CPU。解决办法:暂时提升获得共享资源任务
38、的优先级别,尽快释放共享资源,之后再恢复其原有的优先级别。.某系统中有Task_A、Task_B两个任务都要使用公共资源(例如UART),他们可以分别使用,但不能同时使用;Task_A、Task_B两任务的优先级之间还存在许多中间优先级的任务;例如:Prio(Task_A)=3,Prio(Task_B)=20,优先级在3,20之间还存在5个任务Task_1,Task_2,焉就_5引起优先级反转。如何使用互斥信号量的方法解决此问题?答:OS_EVENT*UART_Flag;/声明信号量INT8Uerr;/声明全局状态变量voidmain(void)OSInit();UART_Flag=OSMut
39、exCreate(2,&err);/创建互斥信号量OSTaskCreate(Task_A,3);创建任务A在叫闻七山山山闻虱9">isbi/6e|d-idvn喜吾哥桑淬/6e|d-idvn喜吾哥田阊6e|d-idvnw#WW/!(iuiuiu)A|aeiU!iso!(6e|d-idvn)isodxajn|/iso!(ldVn)uo!pund!(JJe1o16eH-idvn)Puedxajn|Aiso)a打步叨/(,oj辟为饷闻七uuuu闻虱V->|se1/6e|d-idvn喜吾哥桑淬/6e|d-idvn喜白哥田阊6e|d-idvnw#WW/(e;epd¥
40、piOA)g->|seLpiOA!(uuuu)A|aeiuiiso!(6e|d-idvn)isodxajn|/iso!(ldVn)uo!pund!(JJe1o16eH-idvn)Puedxajn|Aiso)V打步壬/(,oj(e;epd¥piOA)v->|seLpiOA:(丽SSO兮一冷巳1)9阳9。*巳1$0!(9'1l->isei)ajeajo>|seiso:(OZ''g-sei)ajeajo>|seiso.某应用系统含有数据采集”任务Task_A和数据处理”任务Task_B;Task_A周期性的定时采集数据,如何用消息邮箱的
41、方式将数据传送到Task_B处理?答:INT16Uzql_data;/存放AD转换后的数据OS_EVENT*Dt_box;/消息邮箱指针voidmain(void)OSInit();Dt_box=OSMboxCreate(void*0);/创建(空)消息邮箱OSTaskCreate(Task_A,-);/创建Task_AOSTaskCreate(Task_B,-);/创建Task_BOSStart();voidTask_A(void*pdata)/采集数据任务for(;);/启动A/D转换zql_data=GetAD();/得到一次转换数据OSMboxPost(Dt_box,&zql_data);/将zql_data数据发送到消息邮箱OSTimeDlyHMSM(0,0,1,0)/定时1秒voidTask_B(void*pdata)/处理数据任务(INT16U*data_B;for(;)(;/其他
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版商业建筑外墙改造与拆除一体化服务合同3篇
- 2025版土地承包经营权转包合同(含农业保险)2篇
- 二零二五版物流运输保证合同印花税缴纳规定2篇
- 2025年度木材产业链上下游合作发展合同4篇
- 2025年宽带网络安全协约
- 2025年压疮预防护理服务合同
- 2025年委托招标合同
- 2025年卵巢囊肿手术协议
- 2025年度木材加工行业安全监管合作协议3篇
- 2025年加盟运营推广合作协议
- 眼的解剖结构与生理功能课件
- 小学网管的工作总结
- 2024年银行考试-兴业银行笔试参考题库含答案
- 泵站运行管理现状改善措施
- 2024届武汉市部分学校中考一模数学试题含解析
- SYT 0447-2014《 埋地钢制管道环氧煤沥青防腐层技术标准》
- 浙教版七年级下册科学全册课件
- 弧度制及弧度制与角度制的换算
- 瓦楞纸箱计算公式测量方法
- DB32-T 4004-2021水质 17种全氟化合物的测定 高效液相色谱串联质谱法-(高清现行)
- DB15T 2724-2022 羊粪污收集处理技术规范
评论
0/150
提交评论