硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2648|回复: 3
收起左侧

[μCOS-III] ucosIIi属于就绪态的低优先级任务不被调用

[复制链接]

77

主题

691

回帖

922

积分

金牌会员

积分
922
发表于 2020-8-16 15:22:38 | 显示全部楼层 |阅读模式
论坛里的各位大佬,有遇到过UCOSIII的低优先级任务运行一会儿处于就绪态之后就不再被调用了的情况吗。
几个就绪不被调用的任务情况如下:
1、有三个等待任务信号量,堵塞模式加超时机制,有一个不等待任何消息
2、四个任务都需要通过SPI操作LCD,由于绘制时比较耗时,最高可能会达到15ms,使用锁定任务调度器的方式保护共享资源
另外,高优先级也会通过SPI操作LCD,也是使用锁定任务调度器的方式保护共享资源,低优先级任务不被调度时,高优先级的任务正常,操作LCD也正常。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2020-8-16 17:01:25 | 显示全部楼层
这类似多任务共享操作设备的情况,最好降低各个任务之间的耦合,否则排查问题很麻烦。

我的建议是独立开一个任务处理你的SPI LCD。其它任务要处理,给其发消息即可。
回复

使用道具 举报

77

主题

691

回帖

922

积分

金牌会员

积分
922
 楼主| 发表于 2020-8-17 13:44:55 | 显示全部楼层
eric2013 发表于 2020-8-16 17:01
这类似多任务共享操作设备的情况,最好降低各个任务之间的耦合,否则排查问题很麻烦。

我的建议是独立开 ...

做不到只用一个任务来处理SPI LCD,需要绘制的东西比较多,元素较多。按照硬汉哥你的建议已经尽量减少为SPI LCD开启的任务,现在好了很多,再老化试试。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2020-8-18 02:15:01 | 显示全部楼层
庄永 发表于 2020-8-17 13:44
做不到只用一个任务来处理SPI LCD,需要绘制的东西比较多,元素较多。按照硬汉哥你的建议已经尽量减少为S ...

朝这个方向优化比较合理。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-16 06:42 , Processed in 0.151320 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表