嵌入式学习小组
登录
直播中
毛萃
7年用户
875经验值
私信
关注
请问UCOSIII中自己写的最低优先级任务能自行任务切换吗?
开启该帖子的消息推送
串口
我把按键点亮LED灯的任务的优先级定为最低(优先级8,其他自定义任务都比他高),在这个while(1)里面没有任何能进行任务调度的函数,优先级高的任务也能正常运行,如用串口打MPU6050的波形发回到上位机,也没有观察到有卡顿的现象,就是按键点亮LED灯反应有点慢,能看出明显的延迟。 如果我把这个任务的优先级改为4,串口就完全没有数据了,CH340发送指示灯不亮,卡死在了按键处理任务中,同时,按键处理函数完全没有了延时,运行得非常快,跟跑裸机没区别。
所以是不是证明了我的想法:UCOSIII中,除去系统任务之外,自己写的最低优先级任务在不调用任务切换函数的情况下,也能进行任务切换?
另外再问一个问题:如果调用软件定时器,在系统中有阻塞任务的时候,如等待信号量,是否能准时的执行回调函数?我想用它来喂看门狗。
回帖
(5)
王萍
2020-3-17 06:57:00
任务切换很多地方都可以发生。
当你的任务没有任何延时,发送 邮箱,等待信号量什么的等可以引起任务调度的代码时,那就是通过systick中断来调度了。
当你的任务有其他方式引起调度的时候,那就是随着你的流程来调度的。
任务切换很多地方都可以发生。
当你的任务没有任何延时,发送 邮箱,等待信号量什么的等可以引起任务调度的代码时,那就是通过systick中断来调度了。
当你的任务有其他方式引起调度的时候,那就是随着你的流程来调度的。
举报
谢辅仁
2020-3-17 07:12:43
滴答定时器中断服务函数会调用任务切换函数的。
滴答定时器中断服务函数会调用任务切换函数的。
举报
刘琪琛
2020-3-17 07:17:50
滴答定时器中断服务函数每5ms运行一次,那为什么只有在自定义优先级最低的时候才会进行任务切换呢?因为在系统里,他的优先不是最低的,还是空闲任务和统计任务。
滴答定时器中断服务函数每5ms运行一次,那为什么只有在自定义优先级最低的时候才会进行任务切换呢?因为在系统里,他的优先不是最低的,还是空闲任务和统计任务。
举报
刘斌
2020-3-17 07:32:00
那原子哥,是因为高优先级的任务可以占有CPU,所以如果在低优先级的任务中不自己调用任务切换函数,每5ms进行一次任务调度,所以高优先级也能运行,但是如果在高优先级里面写死while(1)的话,他就会一直占有CPU,下面的低优先级就无法运行了吗?
那原子哥,是因为高优先级的任务可以占有CPU,所以如果在低优先级的任务中不自己调用任务切换函数,每5ms进行一次任务调度,所以高优先级也能运行,但是如果在高优先级里面写死while(1)的话,他就会一直占有CPU,下面的低优先级就无法运行了吗?
举报
更多回帖
rotate(-90deg);
回复
相关问答
串口
请问
为什么不采用
优先级
继承机制时高
优先级任务
竞争不过
中
优先级任务
?
2019-07-11
1177
请问
ucosii
任务
响应时会出现低
优先级任务
没法响应的情况吗?
2019-11-11
2017
任务
优先级
问题
2020-04-02
1567
FreeRTOS
任务
调度
优先级
,会直接在就绪列表
中
调用低
优先级任务
么?
2020-06-14
1846
UCOSIII
任务
调度有哪些常见问题?
2020-04-23
2218
为什么互斥型信号量学习不能提高低
任务
的
优先级
?
2019-10-15
650
FREERTOS 高
优先级任务
不能调度低
优先级任务
照常运行怎么办
2020-06-17
4677
UCOSIII
之
任务
优先级
对
任务
抢占的影响
2020-05-05
2164
创建0
优先级
的
任务
,程序会一直运行该
任务
这是为什么呢?
2020-07-26
1534
FreeRtos如何进行
任务
切换
2020-07-21
749
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
英国威廉希尔公司网站
william hill官网 版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分