嵌入式实时操作系统uc/OS-II第4章课后习题1-3

目的

学习和理解实时操作系统

声明

习题答案是笔者基于相关书籍和网上内容自己理解的,有不对或疑问的地方大家一起沟通

硬件平台

Arm-CortexM3内核

一.简述uC/OS-II的中断响应过程

系统中断是打开的。系统会终止当前正在运行的任务,保存任务堆栈。然后系统会根据中断类型,找到该中断对应的中断服务函数执行,处理完事情后,系统会根据情况选择对应的任务运行(不一定去执行被中断的任务)。

(1) 任务堆栈保存

在中断服务函数中首先将当前任务堆栈的相关信息保存到该任务对应的栈中,内核不同保存的方法不同。下面以Arm Cortex-M3内核为例,在跳转到中断服务函数前,硬件会自动将XPSR,PC,LR,R12,R0~R3等寄存器压到任务栈中,具体详见下图。

(2)任务处理

一方面是该中断具体事务的处理;一方面是系统逻辑流程控制(主要目的是记录中断嵌套,在中断返回前作为触发任务切换的条件之一)

(3)任务恢复

    中断已经执行完(不存在嵌套),如果当前系统中就绪的最高优先级任务和被中断的任务优先级一样,就直接恢复被中断的任务继续执行。反之,就会触发一次任务切换,选择最高优先级任务运行。

二.全局变量OSIntNesting的作用是什么?

    uC/OS-II允许在中断服务函数执行的过程中发生中断,故用此记录中断的嵌套数。

三.uC/OS-II的中断服务程序何时返回被中断的任务?何时不返回被中断的任务?

   如果当前系统中就绪的最高优先级任务和被中断的任务优先级一样,就返回被中断的任务;反之就不返回被中断的任务。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值