RTOS内功修炼记(三)—— 内核到底是如何管理中断的?

内容导读:

第一篇文章讲述了任务的三大元素:任务控制块、任务栈、任务入口函数,并讲述了编写RTOS任务入口函数时三个重要的注意点。

第二篇文章从任务如何切换开始讲起,引出RTOS内核中的就绪列表、优先级表,一层一层为你揭开RTOS内核优先级抢占式调度方法的神秘面纱。

建议先阅读上文,对RTOS内核的抢占式调度机制理解之后,再阅读本文也不迟。

这篇文章将讲述RTOS内核到底是如何管理中断的?用户该如何编写中断处理函数?以及用户如何设置临界段?


1.知识点回顾 — 中断

1.1. 中断机制

中断机制是嵌入式系统实现异步事件处理的一个重要机制,概括的说可以分为三步:

  • ① 外设产生中断请求(比如GPIO外部中断、串口中断、定时器中断等)
  • ② CPU判断是否响应中断请求,如果响应,CPU停止执行当前程序,转而去执行中断处理程序(ISR);
  • ③ 中断处理程序执行完毕࿰
  • 5
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
RTOS(Real-Time Operating System)任务调度是实时操作系统中非常重要的一部分,它负责协调多个任务的执行,使得它们能够按照一定的优先级、时间片或其他算法在 CPU 上运行。RTOS 任务调度的实现方式可以分为两种:抢占式和非抢占式。 1. 抢占式任务调度 抢占式任务调度是指当一个优先级更高的任务就绪时,它可以抢占当前正在运行的任务并立即执行。在抢占式任务调度中,每个任务都有一个优先级,调度器会根据任务的优先级来决定其执行顺序。当一个高优先级任务就绪时,调度器会立即抢占当前正在执行的任务并执行高优先级任务。抢占式任务调度实现的关键在于中断处理,当一个中断发生时,调度器会暂停当前正在执行的任务并执行中断服务程序,然后在中断服务程序执行完毕后恢复原来的任务继续执行。 2. 非抢占式任务调度 非抢占式任务调度是指任务只有在自己执行完毕或主动放弃 CPU 时才会被其他任务抢占。在非抢占式任务调度中,每个任务也有一个优先级,但是任务的执行顺序只能由任务本身控制。当一个任务执行完毕或主动放弃 CPU 时,调度器会根据任务的优先级来选择下一个任务执行。非抢占式任务调度实现的关键在于任务的协作,每个任务需要在执行过程中主动让出 CPU,以便其他任务得到执行的机会。 无论是抢占式还是非抢占式任务调度,都涉及到任务的上下文切换,即保存当前任务的上下文,以便在任务再次执行时恢复其状态。上下文切换需要保存任务的 CPU 寄存器、堆栈指针等信息,并修改当前任务的状态(如就绪、阻塞等),然后切换到下一个任务的上下文。任务的上下文切换是一个比较耗时的操作,因此在任务调度的实现中需要尽量减少上下文切换的次数,提高任务的执行效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mculover666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值