gpt4 book ai didi

c - 缓冲区中帧的所有权 - C 编程

转载 作者:太空宇宙 更新时间:2023-11-04 03:40:44 24 4
gpt4 key购买 nike

我负责硬件和软件之间的编程接口(interface)。我知道我应该得到什么结果,现在我正在考虑如何最有效地实现它。我有一种循环 FIFO 缓冲区,操作系统将在其中写入数据,而硬件将从中读取数据。所以基本上我有 readwrite 指针,read 在 DMAC(DMA Controller 正在从内存中读取数据)和 write 在我的程序写入内存时移动。这个循环 FIFO 缓冲区中的基本 block 称为帧(我这样调用它们)。所以我总是在缓冲区中读取和写入帧。现在我想知道是否可以指出谁拥有框架(HW 或 SW)?我有想法在每一帧的开头放置一些标志,以指示是 HW 还是 SW 拥有的帧。但我不知道我应该那样做,还是有更好的方法用 C 来做???例如,一开始缓冲区中的所有帧都归 OS (SW) 所有,然后当我的程序完成写入第一帧时,我将所有权传递给 HW(或我的 DMA Controller )。同样,当 DMA Controller 完成从内存读取时,我将帧的所有权传递给操作系统。所以我有一种方法可以在每一帧的开头使用标志来做到这一点,但我想知道是否有更好的方法来做到这一点?

预先感谢您的回答:)

最佳答案

我过去所做的是在完成时将指针传递给 DMA 驱动程序。驱动程序在下一个时钟周期切换到新指针。

DMA 驱动程序与 60Hz 的显示同步信号相关联,而应用程序仅以大约 10Hz 的频率更新指针,但在等待新图像时显示旧图像并没有什么坏处。

我不确定这是否符合您的问题。

关于c - 缓冲区中帧的所有权 - C 编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28903922/

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