我有几个函数可以使用 ioctl 调用通过 SPI 进行异步通信。
这些函数执行起来非常快,因为数据有效负载只有几个字节 - 但是 - 时序不能中断是必要的。
我注意到这些函数有时会在 CPU 服务其他线程时被中断——这最终会破坏异步通信;它改变了时间。
这两个函数如何指定不被中断?
最佳答案
我认为您无法在大多数普通操作系统(如 Windows、OsX、Linux)上使用常规程序来做到这一点。如果可以,那么恶意软件可以通过简单地将无限循环声明为不可中断来锁定您的机器。可以在设备驱动程序中执行类似的操作。如果您真的需要这种级别的控制,可以使用实时操作系统。
我认为您可以在 Linux 的内核模块中执行此操作。
关于c++ - C++中的不可中断函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11888620/