c++ - C++中的不可中断函数

标签 c++ android-ndk

我有几个函数可以使用 ioctl 调用通过 SPI 进行异步通信。

这些函数执行起来非常快,因为数据有效负载只有几个字节 - 但是 - 时序不能中断是必要的。

我注意到这些函数有时会在 CPU 服务其他线程时被中断——这最终会破坏异步通信;它改变了时间。

这两个函数如何指定不被中断?

最佳答案

我认为您无法在大多数普通操作系统(如 Windows、OsX、Linux)上使用常规程序来做到这一点。如果可以,那么恶意软件可以通过简单地将无限循环声明为不可中断来锁定您的机器。可以在设备驱动程序中执行类似的操作。如果您真的需要这种级别的控制,可以使用实时操作系统。

我认为您可以在 Linux 的内核模块中执行此操作。

关于c++ - C++中的不可中断函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11888620/

相关文章:

android - 链接.a编译库和自己的共享库Android NDK r8b

android - NDK : are x86 binaries needed for the Razr i?

c++ - "no matching function call to ' 使用 Android NDK 编译时绑定(bind) '"

android - 使用 Android 将特定于供应商的信息插入并嗅探到信标帧中

c++ - 在 windows 和 mac 上运行的 Opengl cpp 代码?

android - 从ndk中的不同线程调用java方法

c++ - 提供指向成员本身的成员指针

C++ 多线程 : is initialization of a local static lambda thread safe?

c++ - 使用 unordered_map 表示对称稀疏矩阵的有效方法

c++ - 如何从一个到另一个减去 std::unordered_map vector 元素并在 C++ 中更新它?