C语言 在特定 ISR 之后上下文切换到特定流程



是否有任何(肮脏的(方法可以在特定 ISR 之后引发上下文切换到特定进程?

在正常情况下,在 ISR 之后,中断的进程将继续运行,我必须等待调度程序选择该特定进程。我想在 ISR 之后立即切换到特定流程。

任何建议都会很棒。谢谢!

构造驱动程序,以便进程在合适的系统调用(read()ioctl()(上具有线程阻塞,ISR唤醒该线程(因为至少有一个字节可用于read()(。

然后,确保线程具有尽可能高的优先级,并且最好使用实时调度程序(SCHED_FIFOSCHED_RR(。实际上,如果您的进程未以 root 权限运行,则需要以 root 权限启动服务,设置线程,然后删除权限;或通过以下方式提供二进制可执行文件CAP_SYS_NICE功能,例如setcap pe=CAP_SYS_NICE binary.

从技术上讲,司机也有可能弄乱日程安排,但我不会这样做。 任何时间紧迫的事情都应该在内核 ISR 中完成。

如果你想在用户空间中做到这一点,因为你不希望你的代码是内核的衍生品,因此是GPL许可的,那么你只能靠自己了。

相关内容

  • 没有找到相关文章

最新更新