news 2026/4/18 18:08:56

【OS】RTOS的任务切换原理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【OS】RTOS的任务切换原理

在RTOS中有两个函数至关重要,分别是PendSV_HandlerSysTick_Handler。

SysTick_Handler:嘀嗒定时器中断,这个中断作为操作系统的心脏,给操作系统提供心跳,在中断服务中提供上下文切换和任务调度工作,如下图:

但是这样可能会出现以下错误:

这么解决这个问题呢?就使用SysTick_Handler触发PendSV_Handler,在PendSV_Handler里处理上下文切换,如下图:

关于这两个中断的优先级,PendSV_Handler设置成最低,没什么好说的。SysTick_Handler有的不设置或者设成最高,这样OS的实时性会好点,也可以精准延时。在外部中断中,出现依赖SysTick的类似HAL_Delay()这样的延时函数,也不会卡死。但像FreeRTOS或有一版的RT-Thread就把SysTick中断优先级设成最低,这种情况也挺普遍。。。这种项目对实时性要求不高,但更强调对外设中断的响应,同时外设中断服务不会被打断,简化设计,有利于系统稳定。详细见Cortex-M3权威指南(中文).pdf第121页

实时性强调的是在规定的时间内完成操作

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 18:06:46

如何3分钟制作专属生日祝福网页:免费开源工具终极指南

如何3分钟制作专属生日祝福网页:免费开源工具终极指南 【免费下载链接】happy-birthday Wish your friend/loved-ones happy birthday in a nerdy way. 项目地址: https://gitcode.com/gh_mirrors/ha/happy-birthday 还在为生日祝福缺乏创意而烦恼吗&#xf…

作者头像 李华
网站建设 2026/4/18 17:54:07

MySQL从库出现大量锁等待怎么办_分析从库执行计划与锁日志

快速定位从库锁等待需查performance_schema.data_lock_waits,用BLOCKING_ENGINE_LOCK_ID关联data_locks查阻塞方锁类型和范围;从库执行计划差异源于单线程回放READ-COMMITTED隔离级导致优化器选错索引;“Lock wait timeout exceeded”不报错因…

作者头像 李华