news 2026/11/3 2:46:35

FreeRTos 笔记(4c)任务挂起与恢复:任务切换函数 vPortYield 原理。全局变量uxTaskNumber(任务ID)与 uxCurrentNumberOfTasks(任务数量)的区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FreeRTos 笔记(4c)任务挂起与恢复:任务切换函数 vPortYield 原理。全局变量uxTaskNumber(任务ID)与 uxCurrentNumberOfTasks(任务数量)的区别

(37)任务切换函数 vPortYield 原理,看来就是置位寄存器 SCB_ICSR -> PENDSET 标志位,以触发 pendSV()中断函数,就发起了任务切换:

portYIELD_WITHIN_API();// 这是应用#defineportYIELD_WITHIN_APIportYIELD#defineportYIELD()\// portmacro.h{\/* Set a PendSV to request a context switch. */\ portNVIC_INT_CTRL_REG=portNVIC_PENDSVSET_BIT;\ \__dsb(portSY_FULL_READ_WRITE);\__isb(portSY_FULL_READ_WRITE);\}// 通常不需要屏障,但应确保代码完全符合架构的指定行为。在架构规定的范围内。voidvPortYield(void)// 这是 vs2022 搜索出来的函数版本。 port.c{/* Set a PendSV to request a context switch. */portNVIC_INT_CTRL_REG=portNVIC_PENDSVSET_BIT;/* Barriers are normally not required but do ensure the code is completely * within the specified behaviour for the architecture. */__dsb(portSY_FULL_READ_WRITE);__isb(portSY_FULL_READ_WRITE);}

(38)全局变量 uxTaskNumber(任务ID)与 uxCurrentNumberOfTasks(任务数量)的区别:



++空闲任务在 uxCurrentNumberOfTasks 的统计里面:

(39)
谢谢

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

前端基础之《React(16)—Modal组件封装》

一、组件化1、使用组合思想来实现组件化 在react中组件的复用,是组合还是继承?是组合2、一个正常的组件有哪些东西3、字段校验 (1)一般校验两种:必填非必填,是什么类型 (2)PropTypes…

作者头像 李华
网站建设 2026/11/3 2:44:57

8GB 显存能跑,但跑到第几页会崩:长文档显存曲线的实测

8GB 显存能跑,但跑到第几页会崩:长文档显存曲线的实测 最近技术圈最火的开源项目之一,是百度放出来的 Unlimited-OCR 2。 火到什么程度?上线几天 GitHub 星标破万,Hugging Face 和 GitHub 四个榜单同时登顶&#xff0c…

作者头像 李华
网站建设 2026/11/3 2:44:22

【维克】商品CTA策略:期货市场的量化主战场

"善战者,求之于势,不责于人。"——《孙子兵法兵势篇》将军不苛责士兵,而是善于借助"势"。量化交易也一样——高手不跟市场较劲,而是顺着市场的水势,顺势而为。而商品期货,就是那个&quo…

作者头像 李华