标题: 问下大伙RTOS程序逻辑能这么写吗? [打印本页]

作者: azjdly    时间: 2022-3-17 20:16
标题: 问下大伙RTOS程序逻辑能这么写吗?
比如一个pid操作,
在rtos里,任务a负责采集,采集够了发给采集消息队列,让后继续采集,
任务b负责滤波,一直等待采集消息队列穿数据过来,有数据就处理,没数据就阻塞,当有数据来处理完了,用只有一个容量的滤波消息队列,告诉pid任务滤波数据完成了,

任务c就是pid任务,只有一个容量的滤波消息队列告诉他滤波完成数据来了,就开始执行pid计算,控制pid输出,

这里我的疑惑就是首先第一点是这个任务abc流程有问题吗,第二点是如果滤波完成的数据,还要涉及给其他数据上传任务,需要把滤波后的数据上传,我再加一个只有一个容量的消息队列,允许覆盖的那种,让那个上传任务读这个队列也是没问题的吧。
作者: 人工置顶员    时间: 2022-3-17 23:22
顶一下
作者: Hephaestus    时间: 2022-3-18 00:36
没人回答是因为你自己都规划好了那就试试看呗。怎么写更好跟你的资源有关系,比如任务a要把所有数据都采集完才送给任务b,这个消息队列是挺浪费空间的,但是如果你ram足够这么做也无可非议。你什么都不说,就讲这个框架,别人无法判别。
作者: azjdly    时间: 2022-3-18 02:14
Hephaestus 发表于 2022-3-18 00:36
没人回答是因为你自己都规划好了那就试试看呗。怎么写更好跟你的资源有关系,比如任务a要把所有数据都采集 ...

看情况吧,其实采集可以弄个大内存,分成小块,每次采集一些到一个小块,把这个小块的地址通过消息队列传出,让后采集任务采集往下一个小块采集,这样消息队列只传输指针,让后采集任务复用内存。我是这么想的,但是没试过,应该可以的。
作者: azjdly    时间: 2022-3-18 15:04
来个大佬
作者: 人工置顶员    时间: 2022-3-24 01:53
顶一下




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1