发新帖我要提问
12
返回列表
打印

【分享整理】基于时间的任务调度

[复制链接]
楼主: caijie001
手机看帖
扫描二维码
随时随地手机跟帖
21
caijie001|  楼主 | 2018-5-15 21:31 | 只看该作者 回帖奖励 |倒序浏览
pmw_56 发表于 2018-5-15 21:28
任务的执行一定要尽量的快,一定不能因为某个任务需要等等特殊的东西,而影响的其他任务, ...

是的,欢迎查看我的**《【连载】从单片机到操作系统》
【连载】从单片机到操作系统①
https://bbs.21ic.com/icview-2506192-1-1.html?fromuser=caijie001
(出处: 21ic电子技术论坛)
【连载】从单片机到操作系统②
https://bbs.21ic.com/icview-2509078-1-1.html?fromuser=caijie001
(出处: 21ic电子技术论坛)
【连载】从单片机到操作系统③——走进FreeRTOS
https://bbs.21ic.com/icview-2509974-1-1.html?fromuser=caijie001
(出处: 21ic电子技术论坛)
还会一直连载有空就写

使用特权

评论回复
22
pmw_56| | 2018-5-15 21:50 | 只看该作者
  任务的执行一定要尽量的快,一定不能因为某个任务需要等等特殊的东西,而影响的其他任务,这句话我觉得有问题!你任务的执行是在while(1) 中,每个任务执行时间比起它循环周期而言是很短的,只有高优先级的任务循环时间很短,执行的时间也很短,短到刚刚让出CPU控制权,执行次优先级的任务,执行完这个次优先级任务后,因为高优先级任务循环时间短,又开始执行了,这样的结果是后面的低优先级 任务永远也执行不到,注意一个是因为你高优先级任务的循环时间短造成的,而不是你任务执行时间长造成的,任务长可以用return退出这个任务函数,暂时交出CPU控制权,下次进来这个函数从你退出的这个地方继续执行就行,这样就成了一个抢占式的任务了, 只不过这个任务的现场保护是编译器帮你完成的。如果觉得不过瘾,你可以把这些任务分配堆栈来保护现场了,就是一个实实在在的任务强占式调度器了。

使用特权

评论回复
23
blust5| | 2018-5-15 22:07 | 只看该作者
正准备学习这方面的知识,学习下。

使用特权

评论回复
24
caijie001|  楼主 | 2018-5-15 22:11 | 只看该作者
pmw_56 发表于 2018-5-15 21:50
任务的执行一定要尽量的快,一定不能因为某个任务需要等等特殊的东西,而影响的其他任务,这句话我觉得有 ...

这篇**是我整理的。。。。原作者并不是我,其实一般来说吧很大的任务拆分出一个个小任务执行,都不会出什么问题

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则