我在学习的过程中,创建了gpio中断,但是我想做下实验,我cat /proc/interrupts 发现我的的中断类型为gpio,网卡等中断类型是GICV3,我想将我自己的按键中断绑定在CPU2上,使用echo "2" > /proc/irq/70/smp_affinity
sh: echo: write error: Input/output error,但是我绑定网卡等中断就可以,我搞不明白,是否有这个方向的学习资料。
中自己申请GPIO按键中断如何断绑定指定CPU
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- z a x 2023-09-01 14:31关注
在Linux系统中,要将一个中断绑定到特定的CPU核心上,通常需要root权限,但也需要确保该中断支持绑定到CPU核心上。在你的情况下,你希望将GPIO中断绑定到CPU2上。
首先,确保你有root权限,可以使用
sudo
或者直接以root用户登录。然后,你需要检查中断是否支持绑定到CPU核心。并不是所有的中断都支持绑定到特定的CPU核心上,这取决于硬件和驱动程序的支持。你可以使用以下命令来查看中断是否支持绑定:
cat /proc/irq/70/smp_affinity_list
如果输出为空或包含多个CPU核心,那么这个中断可能不支持绑定到单个CPU核心上。
如果你确定该中断支持绑定到单个CPU核心,但是仍然出现 "Input/output error",可能有以下几种原因:
权限问题: 确保你有足够的权限来更改中断的绑定。使用
sudo
来执行你的echo命令。IRQ线程处理: 有些中断可能已经在IRQ线程上运行,这些中断通常不能绑定到特定的CPU核心上。你可以查看
/proc/irq/70/smp_affinity
文件中的内容,如果显示为IRQ线程(如[IRQ]
),那么这个中断可能不支持绑定。IRQ共享: 如果多个中断共享同一个IRQ线,你可能无法直接将它们绑定到不同的CPU核心上。在这种情况下,你需要考虑重新分配中断,或者通过软件来处理中断。
如果你仍然遇到问题,可能需要查阅特定硬件和驱动程序的文档,以了解如何正确配置中断绑定。同时,也可以尝试查找相关的内核文档和论坛,寻求帮助和建议。
总之,中断绑定到特定的CPU核心是一个复杂的主题,受到硬件、驱动程序和操作系统的多方面影响,因此需要详细的调查和研究。如果你有特定的硬件和驱动程序,最好参考相关的文档和社区支持。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
- ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
- ¥30 c#打开word开启修订并实时显示批注
- ¥15 如何解决ldsc的这条报错/index error
- ¥15 VS2022+WDK驱动开发环境
- ¥30 关于#java#的问题,请各位专家解答!
- ¥30 vue+element根据数据循环生成多个table,如何实现最后一列 平均分合并
- ¥20 pcf8563时钟芯片不启振
- ¥20 pip2.40更新pip2.43时报错
- ¥15 换yum源但仍然用不了httpd