gpt4 book ai didi

c - C语言的调度例程和时序要求

转载 作者:行者123 更新时间:2023-11-30 18:55:58 25 4
gpt4 key购买 nike

我正在开发一个 C 程序,该程序通过 USB3 在设定的时间段(1-10 us)内传输样本,然后接收 100-1000 us 的样本。我有一个基本的 pthread 实现,其中 TX 和 RX 例程均作为线程进行处理。原因是为了测试实际的 TX 例程,RX 需要在发送器激活之前运行并采样。

请注意,我在嵌入式应用程序之外几乎没有 C 经验,这是我第一次涉足 pthread。

我的问题是,既然我确切地知道我需要发送和接收多少样本,我怎样才能一旦 TX 线程执行完毕就启动 RX 线程,反之亦然?如何确保时间保持一致? 10 MHz 采样会产生一些苛刻的时序要求。

谢谢!

编辑:

为了提供更多细节,我的设备是 BladeRF x40 SDR,与设备的通信由 FX3 微 Controller 处理,该微 Controller 通过 USB3 连接进行。我正在运行 Xubuntu 14.04。然而,处理、调度和配置是由在 PC 上运行的 C 程序处理的。

最佳答案

除了支持 pthread 之外,您没有提及任何有关您的平台的信息。

因此,假设使用 Linux,您必须意识到,一般来说 Linux 不是一个实时操作系统,而且您所做的事情听起来确实有实时定时要求。

Linux 有多种实时变体,我不确定它们如何满足您的需求。您可能还可以通过在内核驱动程序中完成工作来获得更好的性能,但是这样您将无法访问pthreads,因此您将不得不更加底层.

关于c - C语言的调度例程和时序要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25884468/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com