《实时嵌入式系统设计》课程复习课件

PPT
  • 阅读 143 次
  • 下载 0 次
  • 页数 42 页
  • 大小 562.559 KB
  • 2022-12-05 上传
  • 收藏
  • 违规举报
  • © 版权认领
下载文档20.00 元 加入VIP免费下载
此文档由【小橙橙】提供上传,收益归文档提供者,本网站只提供存储服务。若此文档侵犯了您的版权,欢迎进行违规举报版权认领
《实时嵌入式系统设计》课程复习课件
可在后台配置第一页与第二页中间广告代码
《实时嵌入式系统设计》课程复习课件
可在后台配置第二页与第三页中间广告代码
《实时嵌入式系统设计》课程复习课件
可在后台配置第三页与第四页中间广告代码
《实时嵌入式系统设计》课程复习课件
《实时嵌入式系统设计》课程复习课件
还剩10页未读,继续阅读
【这是免费文档,您可以免费阅读】
/ 42
  • 收藏
  • 违规举报
  • © 版权认领
下载文档20.00 元 加入VIP免费下载
文本内容

【文档说明】《实时嵌入式系统设计》课程复习课件.ppt,共(42)页,562.559 KB,由小橙橙上传

转载请保留链接:https://www.ichengzhen.cn/view-92566.html

以下为本文档部分文字说明:

1嵌入式系统概论复习课北京航空航天大学机器人研究所魏洪兴2考试时间时间:2011年1月5日晚18:00-20:00地点:主南405考试形式:半开卷3考试要求1.掌握嵌入式系统的软硬件基本概念,包括CISC、RISC、进程、线程、操作系统通信与同步等,及一些术语的表示方法;2.掌握AR

M体系结构:包括寄存器组织、工作模式、异常处理等;3.掌握ARM汇编指令,能够进行简单的汇编程序设计;4.了解uC/OS的基本结构4嵌入式系统的软硬件基本概念5嵌入式系统的软/硬件框架嵌入式微处理器SDRAMROMI/OA/DD/A人机交互接口通用接口实时操作系统(RTOS)图

形用户接口BSP/HAL硬件抽象层/板极支持包任务管理文件系统应用程序嵌入式计算机系统硬件层软件层中间层功能层6CISC和RISCCISC:复杂指令集(ComplexInstructionSetComputer)具有大量的指令和寻址方式8/2原则:80%的程序只

使用20%的指令大多数程序只使用少量的指令就能够运行。RISC:精简指令集(ReducedInstructionSetComputer)在通道中只包含最有用的指令确保数据通道快速执行每一条指令使CPU硬件结构设计变得更为简单7CISC与RISC的数据通道IFID

REGALUMEM开始退出IFIDALUMEMREG微操作通道开始退出单通数据通道8CISC与RISC的对比类别CISCRISC指令系统指令数量很多较少,通常少于100执行时间有些指令执行时间很长,如

整块的存储器内容拷贝;或将多个寄存器的内容拷贝到存贮器没有较长执行时间的指令编码长度编码长度可变,1-15字节编码长度固定,通常为4个字节寻址方式寻址方式多样简单寻址操作可以对存储器和寄存器进行算术和逻辑操作只能对寄存器对行算术和逻辑操作,Load/Store体系结构编译难以用优化编译器生

成高效的目标代码程序采用优化编译技术,生成高效的目标代码程序9非占先式与占先式非占先式(non-preemptive)非占先式调度法也称作合作型多任务(cooperativemultitasking),各个任务彼此合作共享一个CPU。中断服务可以使一个高优先级的任务由

挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断了的那个任务,直到改任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。非占先式内核的一个特点是几乎不需要使用信号量保护共享数据。运行着的任务占有CPU

,而不必担心被别的任务抢占。非占先式内核的最大缺陷在于其响应高优先级的任务慢,任务已经进入就绪态,但还不能运行,也许要等很时间,直到当前运行着的任务释放CPU。内核的任务级响应时间是不确定的,不知道什么时

候最高优先级的任务才能拿到CPU的控制权,完全取决于应用程序什么时候释放CPU。10非占先式(Non-Preemptive)低优先级任务ISR高优先级任务(1)(2)(3)(4)(5)(6)(7)中断服务程序使高优先级任务就绪低优先级任务释放CPU使用权TIME11占先

式(preemptive)当系统响应时间很重要时,要使用占先式(preemptive)内核。最高优先级的任务一旦就绪,总能得到CPU的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的CPU使用权就被剥

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

务(1)(2)(3)(4)(5)(6)中断服务程序使高优先级任务就绪高优先级任务得到CPU使用权TIME13进程、线程和任务在多道程序系统中,各个程序之间是并发执行的,共享系统资源。CPU需要在各个运行的程序之间来回地切换,

这样的话,要想描述这些多道的并发活动过程就变得很困难。为此,操作系统设计者提出了进程的概念。14什么是进程?Aprocess=aprograminexecution一个进程应该包括:程序的代码;程序的数据;PC中的值,用来指示下一条将

运行的指令;一组通用的寄存器的当前值,堆、栈;一组系统资源(如打开的文件)总之,进程包含了正在运行的一个程序的所有状态信息。15main(){…..}A(){…..}PROCESS•AprogramisCstatementsorcomm

ands静态的;•Aprocessisprogram+runningcontext动态的.main(){…..}A(){…..}PROGRAMheapStackAMainRegisters,PCProcess≠Program16进程的特性动态性:程序的运行状态在变,PC、寄存器、堆和栈等;独立

性:是一个独立的实体,是计算机系统资源的使用单位。每个进程都有“自己”的PC和内部状态,运行时独立于其他的进程(逻辑PC和物理PC);并发性:从宏观上看各进程是同时独立运行的17怎么办?需要提出一种新的实体,满足以下特性:(1)实体之间可以并发地执

行;(2)实体之间共享相同的地址空间;这种实体就是:线程(Thread)18什么是线程?Thread:•Asequentialexecutionstreamwithinaprocess;•Athreadofexecutio

n;•进程当中的一条执行流程。19从两个方面来理解进程:从资源组合的角度:进程把一组相关的资源组合起来,构成了一个资源平台(环境),包括地址空间(代码段、数据段)、打开的文件等各种资源;从运行的角度:代码在这个资源

平台上的一条执行流程(线程)。资源平台线程20进程=线程+资源平台优点:一个进程中可以同时存在多个线程;各个线程之间可以并发地执行;各个线程之间可以共享地址空间。21线程所需的资源(本图摘自Silberschatz,GalvinandGagne:“Operati

ngSystemConcepts”)22任务task典型的任务一个无限循环。voidmytask(void*pdata){for(;;){dosomething;waiting;dosomething;}}C/OS–II2.5版本支持64个任务,每

个任务一个特定的优先级。优先级越高,数字越小。系统占用了8个任务,保留优先级为0、1、2、3、OS_LOWEST_PRIO-3、OS_LOWEST_PRIO-2、OS_LOWEST_PRIO-1、OS_LOWEST_PRIO-0。23任务状态就

绪休眠等待或挂起运行中断服务删除任务删除任务删除任务中断中断结束创建任务任务调度任务被占先等待消息挂起收到消息挂起时间到2425OSIntEnter()/*在调用本函数之前必须先将中断关闭*/voidOSIntEnter(void){if(

OSRunning==TRUE){if(OSIntNesting<255){OSIntNesting++;}}}26OSIntExit的意义低优先级任务高优先级任务时间中断处理高优先级任务就绪是否OSIntExit(

)27OSIntExit()voidOSIntExit(void){OS_ENTER_CRITICAL();//关中断if((--OSIntNesting|OSLockNesting)==0)//判断嵌套是否为零{//把高优先级任务装入OSIntExitY=OSUnMapTbl[OSRdyGrp]

;OSPrioHighRdy=(INT8U)((OSIntExitY<<3)+OSUnMapTbl[OSRdyTbl[OSIntExitY]]);if(OSPrioHighRdy!=OSPrioCur){O

STCBHighRdy=OSTCBPrioTbl[OSPrioHighRdy];OSCtxSwCtr++;OSIntCtxSw();}}OS_EXIT_CRITICAL();//开中断返回}28ARM处理器体系结构与指令集29ARM寄存器组织–1*User32Fiq32Super

visor32Abort32IRQ32Undefined32R0R0R0R0R0R0R1R1R1R1R1R1R2R2R2R2R2R2R3R3R3R3R3R3R4R4R4R4R4R4R5R5R5R5R5R5R6R6R6R6R6R6R7R7R7R7R7R7R8R8_fiqR8R8R8R8R9R

9_fiqR9R9R9R9R10R10_fiqR10R10R10R10R11R11_fiqR11R11R11R11R12R12_fiqR12R12R12R12R13(SP)R13_fiqR13_svcR13_abtR13_irqR13_undR14(LR)R14_

fiqR14_svcR14_abtR14_irqR14_undR15(PC)R15(PC)R15(PC)R15(PC)R15(PC)R15(PC)CPSRCPSRCPSRCPSRCPSRCPSRSPSR_fiqSPSR_svcSPSR_abtSPSR_irqSPSR_und30寄

存器-237寄存器31个通用32位寄存器,包括程序计数器PC未分组寄器R0-R7分组寄存器R8-R14程序计数器PC(R15)6个状态寄存器15通用寄存器(R0toR14),以及1或者2个状态寄存器和程序计数器在任何时候都是可以访问的可访问的

寄存器取决于处理器的模式其它寄存器(thebankedregisters)的状态在支持IRQ,FIQ,管理员,中止和未定义模式处理时被切换31寄存器-3R0到R15可以直接访问R0到R14是通用寄存器

R13:堆栈指针(sp)(通常)每种处理器模式都有单独的堆栈R14:链接寄存器(lr)R15包含程序计数器(PC)CPSR–当前程序状态寄存器,包括代码标志状态和当前模式位5个SPSRs--(程序状态保存寄存器)当异

常发生时保存CPSR状态32处理器工作模式(1)ARM有7个基本工作模式:1、User:非特权模式,大部分任务执行在这种模式正常程序执行的模式2、FIQ:当一个高优先级(fast)中断产生时将会进入这种模式高速数据传输和通道处理3、IRQ:当一个低优先级(norm

al)中断产生时将会进入这种模式通常的中断处理4、Supervisor:当复位或软中断指令执行时将会进入这种模式供操作系统使用的一种保护模式5、Abort:当存取异常时将会进入这种模式虚拟存储及存储保护6、U

ndef:当执行未定义指令时会进入这种模式软件仿真硬件协处理器7、System:使用和User模式相同寄存器集的特权模式特权级的操作系统任务33程序状态寄存器-1ARM7TDMI包含当前程序状态寄存器(CPSR),加上5个程序状态保存寄存器SPSR,当异常发生时,用于保存CPSR的状态

这些寄存器的功能是:保存ALU当前操作信息控制允许和禁止中断设置处理器操作模式34程序状态寄存器-2N,Z,CandV条件码标志可以在处理器中作为数学和逻辑操作改变可以被所有的指令测试,以决定指令是否被执行N:Negative.Z:Zero.C:Carr

y.V:oVerflowIandF位是中断禁止位M0,M1,M2,M3andM4位是模式位35程序状态寄存器条件位:N=1-结果为负,0-结果为正或0Z=1-结果为0,0-结果不为0C=1-进位,0-借位V=1-结果溢出,0结果没溢出Q位:仅ARM5TE/J架构支

持指示增强型DSP指令是否溢出J位仅ARM5TE/J架构支持J=1:处理器处于Jazelle状态中断禁止位:I=1:禁止IRQ.F=1:禁止FIQ.TBit仅ARMxT架构支持T=0:处理器处于ARM状

态T=1:处理器处于Thumb状态Mode位(处理器模式位):0b10000User0b10001FIQ0b10010IRQ0b10011Supervisor0b10111Abort0b11011Undefine

d0b11111System2731NZCVQ2867IFTmode162381554024fsxcUndefinedJ36ARM异常-1异常——内部或外部中断源产生并引起处理器处理一个事件,如外部中断或试图执行

未定义指令都会引起异常。处理异常之前必须保留处理器的状态异常类型FIQIRQ(InterruptReQuest)未定义指令预取中止数据中止复位软件中断Softwareinterrupt通过软件中断产生进行管理

员模式中获得通常要求特殊的管理功能,如操作系统支持37异常-2异常类型未定义的指令陷井当ARM接受到一条不能处理的指令,ARM把这条指令提供给任何一个协处理器执行如果协处理器可以执行这条指令但此时协处理器忙,ARM将等

待直到协处理器准备好或中断发生如果没有协处理器处理这条指令,那么ARM将处理未定义的指令陷井异常优先级(1)Reset(highestpriority)(2)Dataabort(3)FIQ(4)IRQ(5)Prefetchabort(6)未定义指令,Softwareinterrupt(最低

优先级)38异常向量39VectorTable异常处理当异常产生时,ARMcore:拷贝CPSR到SPSR_<mode>设置适当的CPSR位:改变处理器状态进入ARM态改变处理器模式进入相应的异常模式设置中断禁止位禁止相应中断(如需要

)保存返回地址到LR_<mode>设置PC为相应的异常向量返回时,异常处理需要:从SPSR_<mode>恢复CPSR从LR_<mode>恢复PCNote:这些操作只能在ARM态执行.Vectortablecanbeat

0xFFFF0000onARM720TandonARM9/10familydevicesFIQIRQ(Reserved)DataAbortPrefetchAbortSoftwareInterruptUndefinedInstructionReset0x

1C0x180x140x100x0C0x080x040x0040ARM指令集的特点向后兼容:新版本增加指令,并保持指令向后兼容;Load-store结构*load/store–从存储器中读某个值,操作完后再将其放回存储器中只对存

放在寄存器的数据进行处理;对于存储器中的数据,只能使用load/store指令进行存取41ARM指令分类数据处理指令–使用和改变寄存器的值数据传送指令–把存储器的值拷贝到寄存器中(load)or把寄存器中的值拷贝到存储器中(store)控制

流指令分支分支和链接,保存返回的地址,以恢复最先的次序软件中断指令程序状态寄存器指令协处理器指令42谢谢各位

小橙橙
小橙橙
文档分享,欢迎浏览!
  • 文档 25747
  • 被下载 7
  • 被收藏 0
相关资源
广告代码123
若发现您的权益受到侵害,请立即联系客服,我们会尽快为您处理。侵权客服QQ:395972555 (支持时间:9:00-21:00) 公众号
Powered by 太赞文库
×
确认删除?