CMSIS RTOS2学习笔记day1

这篇博客探讨了CMSIS RTOS2的内核调度策略,重点关注svcKernelStart()函数及其在任务调度中的作用。作者试图理解任务的调度机制,包括何时以及如何根据优先级进行任务切换,并分析了可能的调度器函数。文章提出了关于任务控制结构、链表更新和时间管理的问题,为后续研究奠定了基础。
摘要由CSDN通过智能技术生成

今天把源码下载下来,打算看一下源码。博客开始记录,但能预测到这是一件对其他人没有帮助的事,希望大家都别看,太丢人。
直奔主题,对于一个操作系统来说,最重要或者说是最关键的是内核调度策略了。
API接口
进而调用svcKernelStart()
在这里插入图片描述
讲道理,每次rt_tsk_prio()感觉应该是找到下一个任务所在,偶尔没有任务的时候,就会去执行空线程,那么这个函数应该在分时调度策略的时候在定时器里去调度,优先级调度也是如此?猜测应该是在每个任务里面都有一个类似于线程控制标识符,或是一个队列或是一个函数,去找下一个应该执行的任务。
没找到。 其实就我的理解来说,内核调度的基本应该就像linux内核中的secheduler()函数一样,它把各个线程之间的一个标志符给串起来,由此来进行调度。当然任务的注册与删除是以红黑树为基本数据结构的。但在这里,我能看到一些依照优先级调用任务的函数,但我好奇的是什么时候调用,在什么地方调用。这才是真正要考虑的问题吧。
看到了一个这样的函数:
切换函数
我觉得这个就类似于上文所述的scheduler()函数,而且它会在:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值