CMSIS RTOS2学习笔记day2

继续之前的问题,首先需要知道的是任务是如何添加到任务队列中去的。讲道理来说,应该是new一个新任务的时候,就会添加到任务链表里去。因此首先,需要看一下的便是应该是这个
在这里插入图片描述
但是找不到svcThreadNew()。
插句题外话,__attribute__关键字主要是用来在函数或数据声明中设置其属性。给函数赋给属性的主要目的在于让编译器进行优化。比如说没有返回值,或者是可以直接返回上一次的结果,不要再进行运算(const)。
继续,在RTOS的库里找到了这个:
在这里插入图片描述
嗯想想两个实现其实应该是差不多的,我的猜测是里面两个肯定是互相连接的。在这个函数里面需要注意的是,栈空间的分配,在new一个任务的时候,可以自行决定这个栈的大小。进而进入 rt_tsk_create()这个函数,来了解一下。
在这里插入图片描述
这里就能看到这次的目的地了。那就是***os_active_TCB[]***这个数组就是活动的任务的表,那么在调度的时候就可以检查这个表(不是,还是链表,这个作用是啥,还暂时不清楚)来进行了。继续看下下面的分发函数:
在这里插入图片描述
这个就是就是你在加入新任务之后,需要和正在运行的任务的优先级进行比较,抢占什么的。否则调用放到以优先级排序的链表里。链表里的结构是:
在这里插入图片描述
os_rdy就是那个整体上看上去的这个链表,也就是链表头。
到这里就和day1所看到那些形成了闭环。
还有时间没时间研究透彻呢。加油!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值