当前位置:网站首页>1288_FreeRTOS中vTaskResume()接口以及中断安全版本接口实现分析
1288_FreeRTOS中vTaskResume()接口以及中断安全版本接口实现分析
2022-07-02 16:01:00 【grey_csdn】
全部学习汇总: GreyZhang/g_FreeRTOS: learning notes about FreeRTOS. (github.com)
近几次的接口分析分析的可能都是比较简单的项目,分析的时候都比较顺利。当然,也有可能是之前看的信息已经达到一定量了对现在理解这些接口有了一定的帮助。
这一次,再分析一个简单的接口vTaskResume()。
值得注意的是上面的预处理,其实是跟之前的挂起任务的接口的预处理是同一个条件。两个处理有一点逆向的意思,也很好理解为什么是同时存在。
其实,是否同时存在并不是很关键。对我来说比较有价值的信息是,这些功能在我之前接触的一些项目中其实是用不到的,因此做这方面的修改应该可以保证OS裁剪到更小的规格。
回到软件代码的设计分析本身,首先这里判断了即将恢复的任务是存在的。一般情况下,如果对于任务的处理句柄是NULL的时候通常是默认要处理当前的任务,但是这个操作在合理性分析上不成立。因此,这里增加了一个这样的检查断言。
后面的这部分代码实现其实是比较简单的,一个很重要的点是这个操作处理不该处理当前的任务。因为当前的任务肯定是在运行中的,如果要做这样的处理肯定是无意义的。因为,当前运行中的任务没有挂起的可能。另一个需要注意的点是被恢复的任务的优先级,因为优先级高的任务就绪可能会涉及到任务调度的处理。
关于真正需要恢复的任务处理,首先得讲任务从挂起链表中移除,之后将其加入到就绪任务链表。增加了之后,判断一下恢复任务的优先级,跟当前的任务优先级做一个比较之后可以知道接下来是否需要任务调度的请求处理。最后处理这个任务调度请求即可。
中断安全版本的与普通API的处理差异主要在于2点。第一,中断安全版本的屏蔽了OS托管的中断ISR,防止干扰发生。另外一点,中断中处理任务的挂起其实就不需要考虑调度器是否挂起,其实都是可以挂起的,甚至是当前的task。因此,传入的任务句柄只是看了一下是否是有效的,并没有判断是否是正在处理中的任务。而针对调度器的挂起,有一个额外的链表做临时缓冲,当调度器恢复后把任务转移到就绪任务链表。
边栏推荐
- PMS132B单片机TWS数码管蓝牙充电仓方案开发
- List summation [dummy+ tail interpolation + function processing list reference common pit]
- Development and application case of pms134 scheme of Yingguang single chip microcomputer with original packaging
- Navigateur Chrome pour un accès rapide au stackoverflow
- 阿里云子账户 - 权限策略 - 授权给某个账户某个 OSS Bucket 的完全控制权限
- [非线性控制理论]7_High gain and High Frequency
- Does pytorch support 32 bits?
- 详解Kubernetes网络模型
- Songhan sn8p2511 sop8 single chip microcomputer can be used for burning, providing single chip microcomputer scheme development and single chip microcomputer decryption
- [comment le réseau se connecte] chapitre 6: demande d'accès au serveur et réponse au client (terminé)
猜你喜欢
Viewing technological changes through Huawei Corps (VI): smart highway
wait_ for_ Gap -- restore archive from primary archive to secondary Archive
阿里云子账户 - 权限策略 - 授权给某个账户某个 OSS Bucket 的完全控制权限
wps插入图片后使图片完整显示
RK1126平台项目总结
Modbus协议通信异常
使用Zadig从0到1搭建持续交付平台
Yingguang single chip microcomputer development specification pmc131 with AD chip to detect battery voltage single chip microcomputer sop8/14
【网络是怎样连接的】第六章 请求到达服务器以及响应给客户端(完结)
开发一个禁止删除namespace的控制器
随机推荐
Edgenext hit a mixed punch: a lightweight architecture integrating CNN and transformer
Huimang micro IO MCU ft60f010a-urt
What should we pay attention to in the development process of Yingguang single chip microcomputer?
[how is the network connected] Chapter 4 explores access networks and network operators
[nonlinear control theory]7_ High gain and High Frequency
freemarker+poi实现动态生成excel文件及解析excel文件
JDBC
Problems needing attention in the development and debugging of Yingguang single chip microcomputer
每日一题——倒置字符串
win10 kms activator
体验一下阿里云文字识别OCR
wait_for_gap -- 从主库归档备库恢复归档
Yingguang single chip microcomputer pms150/pmc150/pms150c consumer single chip microcomputer
Modbus protocol communication exception
From a professional background, I can't get into a small company for interview
基数排序的简单理解
每日一题——“水仙花数”
【網絡是怎樣連接的】第六章 請求到達服務器以及響應給客戶端(完結)
Ssm+ wechat applet to realize property management system
Many scenic spots are temporarily closed due to the typhoon. The provincial culture and tourism department reminds you to pay attention to safety!