首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌入式系统:如何识别所需的任务/线程?

嵌入式系统:如何识别所需的任务/线程?
EN

Stack Overflow用户
提问于 2021-07-04 05:09:18
回答 1查看 64关注 1票数 0

我正在学习嵌入式编程,所以我是这个领域的新手。有人能解释一下如何从给定的系统描述中识别任务/线程吗?另外,我如何估计时间约束、执行时间……我真的卡住了。

以下是我正在开发的系统描述:

实现了一个2自由度伺服电机系统。两轴操纵杆用于控制伺服电机。此外,启用记录和再现操纵杆的用户路径,以便可以多次复制相同的运动。需要支持录制3个动作轮廓,时长至少为5分钟。需要将简档记录到非易失性存储器,并通过操纵杆按钮进行记录/回放控制。为每个配置文件使用一个LED为当前选择的配置文件和操作模式(录制/回放)提供适当的信号。在RT-Thread系统中,在Raspberry Pi Pico平台上实现必要的驱动程序,作为对所使用的设备和实现所述系统的应用程序本身的支持,并为每个观察到的功能提供清晰的分离线程。

EN

回答 1

Stack Overflow用户

发布于 2021-07-04 06:35:05

在功能上进行分区是很诱人的,但在实践中,您应该根据截止日期、确定性和更新率进行分区。对于简单的系统,这可能会被证明与功能分区相同。该部分:

为每个观察到的功能清除独立的线程

可能会导致不适当的分区。然而,这可能是您的导师所期望的分区,即使它不是最优的。

可能没有单一的解决方案,但明显的候选任务是:

  • Replayer.

  • 游戏杆读卡器、
  • 伺服控制器、
  • 记录器

现在考虑这些候选对象,可以看到操纵杆控件和重放控件是相互排斥的,而且重放本身也是通过操纵杆按钮选择的。因此,将其作为一个单独的任务是有意义的。尤其是因为播放机将以与操纵杆相同的方式与伺服控制器通信。所以你可能会有:

  • Recorder.

  • 游戏杆读取器/播放器、
  • 伺服控制器

记录器必须是单独的线程,因为对NV存储器的访问可能较慢且不确定。您需要在足够长的消息队列中输入时间和x/y位置数据,以确保记录不会影响定时运动控制。

目前尚不清楚您使用的是哪种伺服系统,也不清楚您的应用程序是否负责PID运动控制,或者只是将位置信号发送到伺服控制器。如果是后者,则可能没有理由将伺服控制与读取器/播放器分开。在这种情况下,您将拥有:

  • Recorder.

  • 操纵杆读取器/播放器/伺服控制器

其他解决方案也是可能的。例如,记录器可以随时间记录伺服位置而不是操纵杆位置,并使伺服控制器处理重放。

  • Recorder.

  • 游戏杆读卡器、
  • 伺服控制器/播放器

如果操纵杆轮询和伺服更新速率不同,这是有意义的,因为你需要重播伺服所做的事情,而不是操纵杆所做的事情。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68239976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档