中断处理和用户空间通知

2023-12-01

我有几个分配给 gpios 的已注册中断以及用户空间中的应用程序。 如何通知应用程序发生了中断以及发生了哪个中断?

fasync 可能适用于这个目标,但我可以找到如何将信息从中断处理程序发送到用户空间应用程序的示例。

如果您能提供一些有用的示例,那就太好了。

提前致谢。


您不需要花哨的内核到用户空间的通信。用户空间应用程序可以使用 Sysfs 访问 GPIO。阅读有关它的内容Documentation/gpio.txt.

首先,像这样导出 GPIO 引脚(实际数量取决于您的设置):

# echo 23 > /sys/class/gpio/export

这将导出 GPIO 引脚 #23,从而创建/sys/class/gpio/gpio23.

设定其方向:

# echo in > /sys/class/gpio/gpio23/direction

如果硬件 GPIO 控制器支持中断生成,则驱动程序也应该支持它,您将看到/sys/class/gpio/gpio23/edge。写要么rising, falling or both到此文件以指示将创建“用户空间中断”的信号沿。现在,要中断,请使用poll(2)系统调用/sys/class/gpio/gpio23/value。然后,当poll调用unblocks,读取新值(/sys/class/gpio/gpio23/value),这将是'0' or '1'(ASCII)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

中断处理和用户空间通知 的相关文章

  • Linux 中什么处理 ping?

    我想覆盖 更改 linux 处理 ping icmp echo 请求数据包的方式 这意味着我想运行自己的服务器来回复传入的 icmp 回显请求或其他 数据包 但为了使其正常工作 我想我需要禁用 Linux 的默认 ping icmp 数据包
  • 如何通过保持目录结构完整来同步路径中匹配模式的文件?

    我想将所有文件从服务器 A 复制到服务器 B 这些文件在不同级别的文件系统层次结构中具有相同的父目录名称 例如 var lib data sub1 sub2 commonname filetobecopied foo var lib dat
  • 如何授予 apache 使用 NTFS 分区上的目录的权限?

    我在一台带有 20GB 硬盘的旧机器上运行 Linux Lubutu 12 10 我有一个 1 TB 外部硬盘 上面有一个 NTFS 分区 在该分区上 有一个 www 目录 用于保存我的网页内容 它在启动时自动安装为 media t515
  • SSE:跨页边界的未对齐加载和存储

    我在页面边界旁边执行未对齐加载或存储之前读过某处 例如使用 mm loadu si128 mm storeu si128内在函数 代码应首先检查整个向量 在本例中为 16 个字节 是否属于同一页 如果不属于同一页 则切换到非向量指令 我知道
  • Linux 上的用户空间能否实现本机代码的抢占式多任务处理?

    我想知道是否可以在 Linux 用户空间的单个进程中实现本机代码的抢占式多任务处理 也就是说 从外部暂停一些正在运行的本机代码 保存上下文 交换到不同的上下文 然后恢复执行 所有这些都由用户空间精心安排 但使用可能进入内核的调用 我认为这可
  • 删除 Git 存储库,但保留所有文件

    在我使用 Linux 的过程中的某个时刻 我决定将我的主目录中的所有内容都放入源代码管理中是个好主意 我不是在问这是否是一个好主意 我是在问如何撤销它 删除存储库的原因是我最近安装了 Oh My Zsh 而且我非常喜欢它 问题是我的主目录有
  • 如何在基于 Linux 的系统上的 C 程序中使用 mqueue?

    如何在基于 Linux 的系统上的 C 程序中使用 mqueue 消息队列 我正在寻找一些好的代码示例 可以展示如何以正确且正确的方式完成此操作 也许是一个操作指南 下面是一个服务器的简单示例 该服务器接收来自客户端的消息 直到收到告诉其停
  • 为什么这段代码会死锁?

    我在可加载模块中创建了 2 个 Linux 内核线程 并将它们绑定到在双核 Android 设备上运行的单独 CPU 内核 运行几次后 我注意到设备重新启动并重置了硬件看门狗定时器 我一直在解决这个问题 什么可能导致僵局 基本上 我需要做的
  • Urwid:使光标不可见

    我正在使用 urwid 它是一个用于在 ncurses 中设计终端用户界面的 Python 框架 但有一件事我在 urwid 中无法做到 而这在 Curses 中很容易做到 使光标不可见 现在 选择按钮时光标是可见的 而且看起来很丑 有办法
  • Windows CE 与嵌入式 Linux [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 现在我确信我们都清楚 Linux 与 Windows 桌面的相对优点 然而 我对嵌入式开发世界的了解却少得多 我主要对行业解决方案感兴
  • 高效的内存屏障

    我有一个多线程应用程序 其中每个线程都有一个整数类型的变量 这些变量在程序执行期间递增 在代码中的某些点 线程将其计数变量与其他线程的计数变量进行比较 现在 我们知道在多核上运行的线程可能会无序执行 一个线程可能无法读取其他线程的预期计数器
  • 在 Mac OSX 上交叉编译 x86_64-unknown-linux-gnu 失败

    我尝试将我的 Rust 项目之一编译到 x86 64 unknown linux gnu 目标 cargo build target x86 64 unknown linux gnu Compiling deployer v0 1 0 fi
  • 在 C++ linux 中将 STRINGS 写入串口

    我知道这个问题遍布互联网 但仍然没有任何东西能让我完全解决这个问题 我想用 C linux 将数据写入 Propeller 板的串行端口 从控制台获取输入时程序运行良好 但是当我向它写入字符串时总是返回 ERROR Invalid comm
  • 捕获实时流量时如何开启纳秒精度?

    如何告诉 libpcap v1 6 2 将纳秒值存储在struct pcap pkthdr ts tv usec 而不是微秒值 捕获实时数据包时 Note This question is similar to How to enable
  • Capistrano 3 部署无法连接到 GitHub - 权限被拒绝(公钥)

    我使用 Capistrano v3 和 capistrano symfony gem 设置了以下部署脚本 我正在使用 Ubuntu 14 4 部署到 AWS EC2 实例 我正在连接从 AWS 下载的 pem 文件 我的deploy rb中
  • Mcrt1.o和Scrt1.o有什么用?

    我坚持使用以下两个文件 即 Mcrt1 o 和 Scrt1 o 谁能帮我知道这两个文件的用途 如何使用它 我们以 gcrt1 o 为例 在使用 pg 选项编译进行性能测试时非常有用 谢谢 表格的文件 crt o总是 C 运行时启动代码 大部
  • Python 脚本作为 Linux 服务/守护进程

    Hallo 我试图让 python 脚本作为服务 守护进程 在 ubuntu linux 上运行 网络上存在多种解决方案 例如 http pypi python org pypi python daemon http pypi python
  • 从 systemd bash 内联脚本创建 filename_$(date %Y-%m-%d)

    我正在尝试执行systemd计时器并希望将执行脚本的输出保存在每个日期的文件中 这是我的ExecStart脚本中的 service file ExecStart bin bash c echo date Y m d gt gt home u
  • 如何在 GNU/Linux 上设置 Subversion (SVN) 服务器 - Ubuntu [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一台运行 Ubuntu 的笔记本电脑 我想将其用作 Subversion 服务器 既让我自己在本地承诺 也让其他人远程承诺 要使其
  • Fedora dnf 更新不起作用?

    当我尝试使用 update 命令更新 Fedora 22 时 sudo dnf update 我收到以下错误 错误 无法同步存储库 更新 的缓存 无法准备内部镜像列表 Curl 错误 6 无法解析主机名 无法解析主机 mirrors fed

随机推荐

  • C++ 模块到底是什么?

    我一直在跟踪 C 标准化并遇到了 C 模块的想法 我找不到关于它的好文章 到底是关于什么的 动机 简单的答案是 C 模块就像header那也是一个翻译单位 它就像一个标头 您可以使用它 与import 这是一个新的上下文关键字 来访问库中的
  • 如何从 ResourceDictionary 引用 BindingProxy 实例

    任何 wpf 程序员迟早都会开始使用绑定代理 我试图通过将一些资源移动到单独的资源字典中来拆分 xaml 我的问题是资源包含对BindingProxy 我该如何处理这种情况 举个例子 假设有一个资源BindingProxy这是在某处使用的
  • Blazor Editform 更改事件

    我希望在 blazor editform 中有一个 InputSelect 它绑定到模型值 并且还有一个 onchange 事件 该事件根据新值更改模型中的其他属性 绑定到 bind Value 和 onchange 不起作用 我猜测是因为
  • 使用 Alamofire 将嵌套数组从 JSON 数据显示到表视图

    我已经在表视图中显示了第一个 json 数据 但是当尝试显示内部数组数据的数组数据时 它在表视图上显示空白数据 我已经厌倦了很多方法 有时它显示索引超出范围 不知道我哪里出错了或者忘记编写代码 我可以在表视图中显示费用类数据 但无法显示描述
  • 在 Ansible 中添加带有循环的列表

    我正在尝试将新的隧道接口附加到空列表中 但出现以下错误 name empty list set fact list tunnel name create new list for tunnel set fact list tunnel ne
  • 加载具有相同静态链接函数的两个共享库时使用哪个函数

    我一直在阅读并试图理解符号是如何在 Linux 的共享库中解析的 所以这是我所面临的情况的描述 我正在使用一个应用程序 APP 可以加载用户创建的共享库以添加功能 我有两个这样的图书馆 LIB A so and LIB B so执行单独的事
  • 我的下拉菜单上的淘汰验证不起作用

    我使用 durandal 模板 微风开发一个 ASP NET MVC 项目 我想在我的视图上定义验证逻辑以进行添加 编辑操作 到目前为止 它适用于文本 从数据库填充的下拉列表 当元素不包含任何数据时 由于剔除验证 该元素被标记为红色 但它不
  • xslt 和 xpath:直接匹配前面的注释

    我正在尝试对一批 XML 文档应用 XSLT 转换 变换的要点是对几个元素重新排序 我希望保留任何评论directly位于元素之前
  • 为什么我的 Disruptor 程序没有充分利用环形缓冲区

    Disruptor github地址是 https github com LMAX Exchange disruptor 我对其进行了一个简单的测试 如下所示 public class DisruptorMain SuppressWarni
  • 如何用any检查系列中的值?

    我正在和熊猫一起工作 我需要根据其他列中的条件在数据框中创建一个新列 我尝试查找系列中的每个值 如果它包含一个值 返回文本的条件 当值完全相同时 这有效 但当该值只是系列值的一部分时 则无效 if any something in df2
  • 在 JBoss AS 中部署的 2 个 Java EE 应用程序之间共享会话

    我有 2 个 Java EE 应用程序 需要共享登录用户的一些常见用户相关数据 无论如何 我可以通过一个应用程序将这些数据存储在会话中 并在第二个应用程序中检索该数据吗 IE 类似于 NET 中的粘性会话 两个单独的 Java EE 应用程
  • 使用批处理文件获取目录的大小(以“MB”为单位)

    我想获取目录的大小C Temp in MB使用批处理文件 我不需要子目录或文件的大小 而是目录本身的大小 我在以下位置找到了答案如何通过批处理文件列出所有文件夹的大小 但它给了我尺寸bytes以及子文件夹的内容 所以我的问题是 如何获取目录
  • Swift 来回滑动图像数组

    我有一组图像 我希望能够向前 向左 滑动到下一个图像 或向后 向右 滑动到上一个图像 当 imageList 达到 1 超出范围时 应用程序崩溃 我无法弄清楚如何将其保持在范围内的逻辑 这是我的代码 var imageList String
  • 从函数返回本地字符数组[重复]

    这个问题在这里已经有答案了 如何从一个函数返回本地字符数组 char testfunction char array Hello World return array char main char array testfunction pr
  • 绘制连续信号

    我正在尝试准确打印连续信号 如下图所示 下面是我的代码 x 0 0 0 1 1 1 1 1 1 1 1 0 0 n 6 5 4 3 2 1 0 1 2 3 4 5 6 subplot 2 2 2 axis min n 10 max n 10
  • 在方向模式下更改 ActionBar 高度

    我已经使用actionbar android native 几天了 jellybean 4 2 我尝试通过在 style xml 中添加以下行来更改操作栏的高度 100dip 它在横向模式下工作正常 但在方向模式下不起作用 在定向模式下 其
  • 在 Python 中访问嵌套键

    我有一个嵌套字典 如下所示 entry 0 Q 0 1 W 2 E 3 N 5 S 4 Q 0 2 N Q E 当我尝试仅访问密钥的密钥时1 我得到以下信息 gt gt gt print entry 1 keys dict keys W E
  • C++ 未声明的标识符(但它已声明?)

    我很确定我已经包含了 qanda 类 但是当我尝试声明包含它的向量或该类型的类时 我收到一条错误消息 指出 qanda 未定义 知道可能是什么问题吗 bot manager item h pragma once include bot pa
  • WPF 多显示器问题 - WindowState

    一段时间以来 我一直在尝试让我的 WPF 应用程序跨多个显示器 并且几乎可以正常工作 当我设置以下行时似乎出现了问题 win1 WindowState WindowState Maximized 这会导致应用程序仅跨越主屏幕 我的代码如下
  • 中断处理和用户空间通知

    我有几个分配给 gpios 的已注册中断以及用户空间中的应用程序 如何通知应用程序发生了中断以及发生了哪个中断 fasync 可能适用于这个目标 但我可以找到如何将信息从中断处理程序发送到用户空间应用程序的示例 如果您能提供一些有用的示例