ImageVerifierCode 换一换
格式:DOCX , 页数:8 ,大小:37.35KB ,
资源ID:4423240      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4423240.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(嵌入式自整版.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

嵌入式自整版.docx

1、嵌入式自整版肖磊1 任务的状态及其转换关系2 C/OS_II 把任务的优先权分为64个优先级别,每一个级别都用一个数字来表示。数字0表示任务的优先级别最高,数字越大则表示任务的优先级别越低 3 任务控制块结构的主要成员Typedef struct os_tcb OS_STK *OSTCBStkPtr; /指向任务堆栈栈顶的指针 struct os_tcb *OSTCBNext;/指向后一个任务控制块的指针 struct os_tcb *OSTCBPrev; /指向前一个任务控制块的指针 INT16U OSTCBDly; /任务等待的时限(节拍数)INT8U OSTCBStat; /任务的当前状

2、态标志INT8U OSTCBPrio; /任务的优先级别 OS_TCB; /变量4 下列程序实现把优先级别为prio的任务置为就绪状态OSRdyGrp | =OSMapTblprio3; OSRdyTblprio3 | = OSMapTblprio&0x07;重点:prio中的Y(prio右移3位)得下标数组号,查数组OSMapTbl得对应二进制码,与OSRdyGrp相或,将就绪表中相应Y-bit位置1; prio中的X(prio与0x07相与)得下标数组号,查数组OSMapTbl得对应二进制码,与Y对应的行相或,将就绪表中相应X-bit位置1。5 下列程序实现将一个优先级别为prio的任务脱

3、离就绪状态if(OSRdyTblprio3&=OSMapTblprio&0x07)=0)OSRdyGrp&=OSMapTblprio3; 重点:取prio中的X(任务优先级prio与0x07相与),查数组OSMapTbl的值取反,和prio中的Y(prio右移3位),查表OSRdyTbl的值相与得出结果赋值给OSRdyTblpro3,若OSRdyTblpro3为零,则取反OSRdyTblpro3,与OSRdyGrp相与后赋值到OSRdyGrp,即将任务就绪中的相应位置0,使优先级别号为prio的任务脱离就绪状态。6 下列代码实现从任务就绪表中获取优先级别最高的就绪任务y = OSUnMapTa

4、lOSRdyGrp; /D5、D4、D3位x = OSUnMapTalOSRdyTbly; /D2、D1、D0位prio = (y3)+x; /优先级别重点:首先扫描组变量OSRdyGrp,找到OSRdyGrp中的最低位1,确定位号=Y,然后扫面OSRdyTbly,找到OSRdyTbly中的最低位1,确定位号=X,最高优先级别prio=Y*3+X.7 任务的三要素是程序代码、私有堆栈、任务控制块。8 嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用程序4个部分组成。9 “嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素。10 冯诺依曼结构与哈佛结构的特点与

5、区别。(1)冯诺依曼结构的特点1)程序和数据储存在同一个储存空间,指向同一个储存器的不同物理地址;2)采用统一的地址和数据总线;3)处理器执行指令时,先取指后执行;(2)哈佛结构的特点1)程序和数据储存在不同的储存空间,独立编址,独立访问;2)采用四套总线:程序和数据的数据总线、地址总线;3)处理器执行指令时,取指和执行同时进行;区别:两者的程序和数据存储空间,编址方式,总线各不相同, 较冯诺依曼结构,哈佛结构采用独立存储空间,分离的数据和地址总线,提高了执行速度,使数据吞吐率提高了一倍。11 复杂指令集计算机体系和精简指令集计算机体系的特点与区别。类别CISCRISC指令系统指令数量很多较少

6、,通常少于100执行时间有些指令执行时间很长,如整块的存储器内容复制;或将多个寄存器的内容赋值带存储器没有较长的执行时间的指令编码长度编码长度可变,115字节编码长度固定,通常为4个字节寻址方式寻址方式多样简单寻址操作可以对存储器和寄存器进行算数和逻辑运算智能对寄存器进行算数和逻辑操作,Load和Store体系结构编译难以用优化编译器生成高效的目标编码程序采用优化编译技术,生成高效的目标代码程序12 对于一个多字节类型的数据,在存储器中有两种存放方法。一种是低字节数据存放在内存低地址处,高字节数据存放在内存高地址处,称为小端字节顺序存储法(低对低,高对高);另一种是高字节数据存放在低地址处,低

7、字节数据存放在高地址处,称为大端字节顺序存储法(低对高,高对低)。13 RTOS对响应时间有非常严格的要求,当某一个外部事件或请求发生时,相应的任务必须在规定的时间内完成相应的处理。RTOS可以分为硬实时和软实时两种情形。14 按照系统对响应时间的敏感程度,EOS(嵌入式操作系统)可以分为RTOS(Real Time Operating Systems ,实时操作系统)和非实时操作系统两大类。15 设备驱动层(BSP)把嵌入式操作系统与具体的硬件平台隔离开来。16 所有的EOS都有一个内核(kernel),内核是系统当中的一个组件,它包含了任务管理、存储管理、输入输出(I/O)设备管理和文件系

8、统管理四个功能模块。17 按照软件的体系结构,EOS可以分为单体结构、分层结构和微内核结构三大类。18 嵌入式Linux操作系统和C/OS-II都属于单体内核系统。19 MS-DOS属于分层结构。20 VxWorks属于微内核结构。21 常见的嵌入式操作系统有VxWorks、嵌入式Linux、Windows CE、C/OS-II和PalmOS等。 22 进程和程序的联系和区别。一个程序主要由代码和数据两部分内容组成。而进程是正在执行的程序,它是由程序和该程序的运行上下文两部分内容组成。程序是静态的,而进程是一个动态的,变化的。进程和程序之间并不是一一对应的。一个进程在运行的时候可以启动一个或多

9、个程序,同一个程序也可能由多个进程同时执行。程序可以以文件的形式存放在硬盘或光盘上,作为一种软件资源长期保存。而进程则是一次执行过程,它是暂时的,是动态地产生和终止的。总而言之进程是一个正在运行的程序,有相应程序的代码和数据。23 在嵌入式操作系统当中,任务的创建主要采用fork/exec和spawn两种模型。在fork/exec模型,首先调用fork函数为新任务创建一份与父任务完全相同的内存空间,然后再调用exec函数装入新任务的代码,并用它来覆盖原有的属于父任务的内容。对于新创建的子任务来说,它可以从父任务那里继承代码、数据等各种属性。而spawn模型在创建新任务的时,直接为它分配一个全新

10、的地址空间,然后将新任务的代码装入并运行。 24 任务切换,任务切换的步骤?任务切换(context switching)是指一个任务正在CPU上运行,由于某种原因,系统需要调度另一个任务去运行,那么这时就需要进行把当前任务的运行上下文保存起来,并设置新任务的上下文,这一过程称为任务切换。任务切换通常包含有以下几个基本步骤:(1)将处理器的运行上下文保存在当前任务的TCB中;(2)更新当前任务的状态,从运行状态变为就绪状态或阻塞状态。(3)按照一定的策略,从所有处于就绪状态的任务中选择一个去运行。(4)修改新任务的状态,从就绪状态变成运行状态。(5)根据新任务的TCB的内容,恢复它的运行上下文

11、环境。25 一般来说,在一个新的任务被创建时、在一个任务运行结束时、在一个任务由于I/O操作、信号量或其他原因被阻塞时、在一个I/O中断发生时、在一个时钟中断发生时这五种调度时机都可能会发生任务的调度。26 任务调度存在可抢占调度(preemptive)和不可抢占调度(nonpreemptive)两种调度方式。27 先来先服务调度算法、短作业优先调度算法和时间片轮转调度算法的特点。先来先服务算法:是一种最简单的调度算法。基本思想就是按照任务到达的先后次序来进行调度,它是一种不可抢占的调度方式最大优点就是简单,易于理解也易于实现。缺点是一批任务的平均周转时间取决于各个任务到达的顺序,如果短任务位

12、于长任务之后,那么将增大平均周转时间。短作业优先算法; 在各个任务在开始执行前,事先预计好各任务的执行时间,调度算法根据这些预计时间,安排执行时间较短的任务优先执行。可以证明,对于一批同时到达的任务,采用SJF算法将得到一个最小的平均周转时间。SJF算法有不可抢占方式和可抢占方式两种实现方案。在不可抢占方式,只有任务运行完毕或者是被阻塞时,才会让出CPU进行新的调度。而在可抢占方式,当前任务正在运行的时候,来了一个比它执行时间更短的任务,而且它的运行时间要小于当前正在运行的任务的剩余时间,那么这个新任务就会抢占CPU去运行。这种方法也称为SRTF(Shortest Remaining Time

13、 First,最短剩余时间优先算法)时间片轮转算法: 采用RR算法,各个就绪任务平均地分配CPU的使用时间.如果一个任务在分配给它的时间片结束前就已经运行结束了或者是被阻塞了,那么它就会立即让出CPU给其他的任务28 ARM微处理器采用RISC架构。29 ARM7TMDI是目前使用最广泛的32位嵌入式RISC处理器,采用三级流水线结构。TMDI含义:在ARM核的命名规则中,TDMI的基本含义为: T: 支持高密度16位的Thumb指令集; D: 支持片上Debug; M:内嵌硬件乘法器(Multiplier); I: 嵌入式ICE,支持片上断点和调试点。30 ARM9采用五级流水线结构。31

14、ARM处理器共有37个寄存器,这些寄器包括: 31个通用寄存器、6个状态寄存器。32 ARM微处理器支持7种运行模式,分别为usr(用户模式)、fiq(快速中断模式)、irq(外部中断模式)、svc(管理模式)、abt (数据访问终止模式)、sys(系统模式)、und(未定义指令中止模式)。 33 ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。34 除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式(Privileged Modes);其中除去用户模式和系统模式以外的5种又称为异常模式(Exception Modes),常用于处理中断或异常,以及需要访

15、问受保护的系统资源等情况。 35 ARM处理器有32位ARM和16位Thumb两种工作状态。在32位ARM状态下执行字对齐的ARM指令,在16位Thumb状态下执行半字对齐的Thumb指令。36 R14寄存器使用时容易出现的问题及解决方法。当发生异常嵌套时,这些异常之间可能会发生冲突。例如:如果用户在用户模式下执行程序时发生了IRQ中断,用户模式寄存器不会被破坏。但是如果允许在IRQ模式下的中断处理程序重新使能IRQ中断,并且发生了嵌套的IRQ中断时,外部中断处理程序保存在R14_irq中的任何值都将被嵌套中断的返回地址所覆盖。解决办法是确保R14的对应版本在发生中断嵌套时不再保存任何有意义的

16、值(将R14入栈),或者切换到其它处理器模式下。37 异常处理过程当异常产生时, ARM core:a) 拷贝 CPSR 到 SPSR_b) 设置适当的 CPSR 位: i. 改变处理器状态进入 ARM 态ii. 改变处理器模式进入相应的异常模式iii. 设置中断禁止位禁止相应中断 (如需要)c) 保存返回地址到 LR_d) 设置 PC 为相应的异常向量返回时, 异常处理需要:e) 从 SPSR_恢复CPSRf) 从LR_恢复PC g) Note:这些操作只能在 ARM 态执行.38 对下面程序进行注释。R14_=Return Link ;将下一条指令的地址存入链接寄存器LR(即R14)a)

17、SPSR_=CPSR ;拷贝 CPSR 到 SPSR_CPSR4:0=Exception Mode Number ;根据异常类型,设置CPSR的运行模式位为4和相应的中断位0;CPSR5=0 ;运行于ARM状态IF=Reset or FIQ then ;当响应FIQ异常时,禁止新的FIQ异常 CPSR6=1; ;将CPSR中的F位置1,清除IRQ异常 CPSR7=1; ;将CPSR中的I位置1,清除IRQ异常PC=Exception Vector Address;把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序。39 ARM寻址方式40 ARM指令41 ARM微处理器支持四种类

18、型的堆栈工作方式,即:满递增堆栈、满递减堆栈、空递增堆栈、空递减堆栈。 42 ARM状态和Thumb状态切换。进入Thumb状态:当操作寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,是微处理器从ARM状态切换到Thumb状态。此外,当处理器处于Thumb状态时发生异常,则异常处理返回时,自动切换到Thumb状态。进入ARM状态:当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态。此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。43 ARM体系结构除了支持执行效率很

19、高的32位ARM指令集以外,同时支持16位的Thumb指令集。Thumb指令集是ARM指令集的一个子集,允许指令编码为16位的长度。与等价的32位代码相比较,Thumb指令集在保留32位代码优势的同时,大大的节省了系统的存储空间。在应用程序的编写过程中,只要遵循一定调用的规则,Thumb子程序和ARM子程序就可以互相调用。当处理器在执行ARM程序段时,称ARM处理器处于ARM工作状态,当处理器在执行Thumb程序段时,称ARM处理器处于Thumb工作状态。44 C/OS-有两种调度器,一种是任务级的调度器, 另一种是中断级的调度器;45 操作系统的最重要的工作之一是任务调度,uC/OS-II是

20、抢占式多任务内核,采用基于优先级的任务调度。46 DRAM是嵌入式系统的存储器动态随机存储器,SRAM是嵌入式系统的静态随机存储器;47 嵌入式系统定义是以应用为中心、软硬件可剪裁、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。48 嵌入式系统的硬件层包含嵌入式微处理器、存储器、通用设备接口、I/O接口。49 嵌入式系统的软件层由实时多任务操作系统、文件系统 、 图形用户接口 、网络系统及通用组建模块组成。50 ARM采用32位地址总线,所支持的最大寻址空间为(232,4GB) ,从 03字节放置第一个存储字数据, 47字节放置第二个存储字数据,在不出现分支的情况下,程

21、序计数器每次增长4个字节。51 ARM微处理器的指令集仅能处理寄存器中的数据,处理结果都要放回寄存器中,而对系统存储器的访问需要通过专门的加载/存储指令来完成。52 了解R12、R13、R14、R15和CPSR寄存器(各标志位含义)的作用;R12:R13:寄存器R13通常用作堆栈指针,称作SPR14:寄存器R14用作子程序链接寄存器,也称为链接寄存器LK.当执行带链接分支(BL)指令时,得到R15的备份。在其他情况下,将R14当做通用寄存器。R15:寄存器R15用作程序计数器(PC)在ARM状态,位1:0为0,位31:2保存PC。在Thumb状态,位0为0,位31:1保存PC。CPSR:当前程

22、序状态寄存器。作用:保存ALU中的当前操作信息;控制允许和禁止中断;设置处理器的运行模式。具体标志位含义参照P79。53 掌握IRQ与FIQ,发生IRQ或FIQ异常时,处理器需要执行哪些操作?A:异常发生时,ARM微处理器执行的步骤1 将下一条指令的地址存入LR2 复制CPSR到SPSR3根据异常类型,设置CPSR的运行模式位和相应的中断位3 强制PC从相应的异常向量地址取下一条指令执行,跳转到相应的异常处理程序处B:异常处理完毕返回1 将连接寄存器LR的值减去相应的偏移量后送到PC中。2 将SPSR复制回CPSR中。3若在进入异常处理时设置了中断禁止位,要在此清除。4可以认为应用程序总是从复位异常处理程序开始执行的,因此复位异常处理程序不需要返回。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1