在C/ c++中设置irq进程的优先级和关联



我想从一个用C/c++编写的程序中提高linux中irq进程(spi, gpiod)的优先级和亲和性。要设置自己进程的优先级,我使用pthread_setschedparam;要设置自己进程的亲和度,我使用pthread_setaffinity_np。我对这个函数使用pthread_self()。然而,特别是gpio irqs是棘手的,因为它们只在之后创建称为gpiod_line_request_rising_edge_events[1]。到目前为止,我只是使用类似于chrt -f -p 90 $(pgrep myGpio)的shell命令在我的系统上给irqs更高的优先级,我可以把它放在system("..")函数中,但应该有一个更好的解决方案,我只是不知道。

提前感谢

[1] https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/tree/include/gpiod.h n499

我用libprocps解决了这个问题。可以通过gpio或spi设备的名称获得irq的pid,然后设置irq的cpu亲和度/优先级。

最新更新