gpt4 book ai didi

c - Linux,使用 I/O 上的硬件中断通过直接内存访问将数据放入用户可访问区域

转载 作者:行者123 更新时间:2023-11-30 19:38:06 25 4
gpt4 key购买 nike

我目前正在使用 Ubuntu 来使用 BeagleBone Black,并且正在尝试寻找一些方向。我创建了一个 C 程序来监听 SIGIO 并运行 read() 来获取该行上的数据。从我在互联网上的研究和翻阅一些书籍来看,这种方法似乎不是很有效,因为使用循环监听信号中断是不好的,因为大量的上下文切换(应该注意的是,这个我/O 线路将繁忙,因此 SIGIO 将每秒触发至少 4 次,这是异步的)。建议使用硬件中断并触发响应以从线路获取数据并将其放入寄存器中,并且最好可以使用直接内存访问从用户进行访问。所以问题仍然是我在哪里可以找到有关如何执行此操作的更多信息,我找到了很多有关此主题的信息,但其中大多数只是讨论操作系统如何进行中断或使用信号,而信号很忙非常费力。

最佳答案

如果您非常关心计时和延迟,您可能应该使用一些实时系统。

幸运的是,Beaglebone black 在其 SOC 上拥有实时处理核心,称为 PRU(可编程实时单元)。如果您对 PRU 的概念不熟悉,您可能想从 here 开始然后,一旦您了解了 PRU 的需求和目的,该网站就会提供一些入门教程。

具有最新的软件支持,如remoteproc、rpmsg 和Beaglescope project ,一旦您了解了 PRU 的工作原理,它就可以很容易地使用。

关于c - Linux,使用 I/O 上的硬件中断通过直接内存访问将数据放入用户可访问区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38664464/

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