第十课 嵌入式操作系统概述

第十课 嵌入式操作系统概述

ID:43521531

大小:1.05 MB

页数:74页

时间:2019-10-09

第十课 嵌入式操作系统概述_第1页
第十课 嵌入式操作系统概述_第2页
第十课 嵌入式操作系统概述_第3页
第十课 嵌入式操作系统概述_第4页
第十课 嵌入式操作系统概述_第5页
资源描述:

《第十课 嵌入式操作系统概述》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、CPU与外设的数据传输方式通常有以下几种:查询方式:CPU不断的查询外设状态,如果外设准备就绪就开始传输数据,如果外设还没有准备好,就进入循环等待中断方式:当外设准备好与CPU进行数据交换时,首先向CPU提出中断请求,CPU在接到中断请求并在一定条件下,暂停原来的程序,并执行中断服务程序,执行完后再次返回源程序的过程DMA方式:不经过CPU而直接进行数据交换的过程中断概述中断法的引入,极大的提高了CPU的利用效率ARM920T内核有两个中断IRQ中断和FIQ中断IRQ是普通中断用于处理一般事件,FIQ是快速中断,一般用于大批量数据传送等情况S3

2、C2440中断控制器有60个中断源对外提供24个外中断输入引脚,内部所有设备都有中断请求信号,例如DMA控制器、UART、IIC等等中断概述中断异常基本概念中断异常基本概念ARM的异常中断复位(reset):当处理器的复位引脚有效时,系统产生复位中断,程序跳到中断处理程序处执行。复位中断发生的情况:系统加电时系统复位时跳转到复位中断向量处(0x00000000)未定义指令(undefinedinstruction):当ARM处理器或者是系统中的协处理器认为当前指令未定义时,产生未定义的指令异常处理。软件中断(softwareinterrupt)

3、:有用户定义的中断指令,在实时操作系统中可以通过该机制实现系统功能的调用。ARM的异常中断指令预取中止(prefechabort):如果处理器预取的指令的地址不存在,或者该地址不允许当前指令访问,处理器产生指令预取中止异常处理。数据访问中止(dataAbort):如果数据访问指令的目标地址不存在,或者该地址不允许当前指令访问,处理器产生数据访问中止异常处理。外部中断请求(IRQ):当处理器的外部中断请求引脚有效,而且CPSR寄存器的I控制位被清除时,处理器产生外部中断请求(IRQ)异常处理。快速中断请求(FIQ):当处理器的外部快速中断请求引脚

4、有效,而且CPSR寄存器的F控制位被清除时,处理器产生快速中断请求(FIQ)异常处理。ARM处理器对异常中断的响应过程进入异常中断的过程(由内核自动完成)保存PC+4值到新的异常模式的Lr中,以便处理完异常后,能正确返回原程序。保存CPSR到新的异常模式的SPSR中。强制改变Modebits,使ARM进入相应的运行模式。强制PC值,设置成该异常模式的向量地址,从而跳转到相应的异常处理程序处执行程序。设置CPSR中的中断禁止位,以禁止中断发生。从异常中断返回的过程(由内核自动完成)由链接寄存器LR的值恢复PC,返回到发生异常中断的指令的下一条指令

5、处执行程序。从SPSR恢复CPSR。清除中断屏蔽位。注:当一个异常发生时,ARM处理器总是切换到ARM状态(即非Thumb状态).一、进入异常当发生异常时,除了复位异常立即中止当前指令外,处理器尽量完成当前指令,然后脱离当前的程序去处理异常。ARM处理器对异常中断的响应过程如下:1、保存返回地址将引起异常指令的下一条指令的地址保存到新的异常模式x下的R14,即R14_中,使异常处理程序执行完后能正确返回原程序。2、保存当前状态寄存器CPSR的内容将CPSR的内容保存到将要执行的异常中断对应的SPSR中,便于中断返回时恢复处理器当前的

6、状态位、中断屏蔽位以及各条件标志位。3、设置当前状态寄存器CPSR中的相应位设置CPSR模式控制位CPSR[4:0],使处理器进入相应的执行模式;设置中断标志位(CPSR[6]=1),禁止IRQ中断;设置中断标志位(CPSR[7]=1)禁止FIQ中断,当进入Reset或FIQ模式时。4、转去执行中断处理程序取相应的中断向量给程序计数器PC,使程序开始执行中断处理程序。一般地说,矢量地址处将包含一条指向相应程序的转移指令,从而可跳转到相应的异常中断处理程序处执行异常中断处理程序。ARM处理器对异常的响应过程可以用伪代码描述如下:R14_

7、ption_mode>=returnlinkSPSR_=CPSRCPSR[4:0]=exceptionmodenumberCPSR[5]=0/*当运行于ARM状态时*/CPSR[6]=1/*禁止新的IRQ中断*/if=ResetorFIQthenCPSR[7]=1/*当Reset或FIQ异常中断时*//*禁止新的FIQ中断*/PC=exceptionvectoraddress注意使用异常模式下的特有寄存器每个异常模式对应有两个寄存器R13_、R14_分别保存

8、相应模式下的堆栈指针、返回地址;堆栈指针可用来定义一个存储区域保存其它用户寄存器,在程序初始化时应该对各种模式堆栈设置,便于随时使用。FIQ模式还有额

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。