lonesomely 发表于 2019-7-2 16:34:18

有个ucos问题困扰很久了

要做个系统,有很多级菜单,关于显示,想问下大家:
1)在各个任务中直接调用显示函数;
   这样做的麻烦在于显示不能重入,要在很多地方互斥的访问,编程比较凌乱。
2)把显示做成一个任务,然后各个任务发消息给显示任务,让显示任务自己的显示。
   这样做的麻烦在于显示任务很庞大,可能要几十个画面的显示函数,而且有些画面给显示任务传递的数据很多。

请问大家是怎么做的?谢谢

硬邦邦 发表于 2019-7-2 16:51:17

把显示做成互拆。

lonesomely 发表于 2019-7-2 16:55:40

硬邦邦 发表于 2019-7-2 16:51
把显示做成互拆。

你说的第一种吗

saccapanna 发表于 2019-7-2 17:18:27

1在不可重入的函数内部实现互斥,代码就不乱了。

uindex 发表于 2019-7-2 19:58:10

一锤子买卖选择方案一。
后期还需要维护的选方案二,显示单独成任务,以后添加功能啥的都很清楚。

yuguoliang 发表于 2019-7-2 20:17:16

肯定方案2,模块化才好维

lonesomely 发表于 2019-7-2 20:19:51

yuguoliang 发表于 2019-7-2 20:17
肯定方案2,模块化才好维

赞同说法

lonesomely 发表于 2019-7-2 20:20:20

uindex 发表于 2019-7-2 19:58
一锤子买卖选择方案一。
后期还需要维护的选方案二,显示单独成任务,以后添加功能啥的都很清楚。 ...

嗯,,,说的就是这个道理

guyong2012 发表于 2019-7-3 09:00:03

方案2 合理

磊磊映画 发表于 2019-7-3 09:09:25

方案2做的, 单独一个任务, 每一个画面抽象出数据,将画面做一个分支显示。

youthvision 发表于 2019-7-3 09:10:39

方案2,出问题 好查,关于数据多的,不是可以用查询法访问显示吗

yangsen 发表于 2019-7-3 09:18:51

我一般用方案二,麻烦一次后续好维护。

xyz543 发表于 2019-7-13 18:50:41

建议楼主将 GUI 类的放置在最低的优先权内就对了。

lonesomely 发表于 2019-9-11 23:02:14

磊磊映画 发表于 2019-7-3 09:09
方案2做的, 单独一个任务, 每一个画面抽象出数据,将画面做一个分支显示。 ...

你好,你的这句话很有道理每一个画面抽象出数据,将画面做一个分支显示。 具体这句话什么意思呢,,谢谢

lonesomely 发表于 2019-9-11 23:02:46

youthvision 发表于 2019-7-3 09:10
方案2,出问题 好查,关于数据多的,不是可以用查询法访问显示吗

查询法访问显示什么意思

Jacky.Qiu 发表于 2019-9-11 23:08:23

把显示做成一个任务,然后各个任务发消息给显示任务。其实还好的,系统内部的消息可以wait event方式,可设置1s超时间隔刷新屏幕。好用。

zhaoyuanxian 发表于 2019-11-2 17:20:45

方案二,都是把显示函数放在一个task里面的

zhaoyuanxian 发表于 2019-11-2 17:21:10

这样好管理的,出问题也方便查
页: [1]
查看完整版本: 有个ucos问题困扰很久了