首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自Linux的嵌入式系统中断/硬件处理

来自Linux的嵌入式系统中断/硬件处理
EN

Stack Overflow用户
提问于 2011-02-07 17:02:03
回答 2查看 2.8K关注 1票数 3

在我的AT91SAM9RL-EK ARM板上,运行Linux2.6.30buildroot,我有以下内容。

代码语言:javascript
复制
cat /proc/interrupts
           CPU0
  1:       6475         AIC  at91_tick, rtc0, ttyS0
 10:         11         AIC  mmc0
 13:          4         AIC  atmel_spi.0
 18:      23533         AIC  tc_clkevt
 20:          0         AIC  atmel_tsadcc
 22:          0         AIC  atmel_usba_udc
 23:          0         AIC  atmel_lcdfb
 24:          0         AIC  AC97C
 40:          1        GPIO  atmel_usba_udc
 47:          0        GPIO  mmc0
 64:          6        GPIO  Right Click
 65:         10        GPIO  Left Click

鼠标右键和左键是我的控制板上的按钮。现在,我想修改按钮的中断处理程序(例如,当单击按钮时,它们会给我一个输出)。

我在哪里可以找到按钮的中断处理程序或驱动程序(或它们的源文件)?

或者,我可以为按钮编写自己的驱动程序并注册它们(当我在用户空间时),以及如何实现?

以下是有关PIO的主板指南中的一些数据

代码语言:javascript
复制
IO... Per.... Application Usage............................................ Pow. by
PB0  TXD3 USER’S PUSH BUTTON 1 PB0 as LEFT CLICK VDDIOP
PB1  RXD3 USER’S PUSH BUTTON 2 PB1 as RIGHT CLICK VDDIOP
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-07 18:14:51

我对你的董事会没有具体的答案,但我可以给你一些你需要的信息的指点。

解决问题的最简单方法是放弃“中断处理程序”要求,简单地轮询GPIO线。只要您是root用户,就可以在用户空间中执行此操作。许多开发环境都提供了一个内核模块来为您完成这项工作,并将结果公开为/dev/proc中的一个条目。

如果要处理中断,则需要编写Linux设备驱动程序。这里最好的起点是棒极了的Linux设备驱动程序一书,可以从http://lwn.net/Kernel/LDD3/下载。

GPIO驱动程序非常简单,主要由对register_irq()的调用和用户空间接口代码组成。用户空间界面代码将比其余代码大得多,这也会给您带来最大的麻烦。

票数 3
EN

Stack Overflow用户

发布于 2011-02-07 19:35:18

我对特定的板和buildroot没有任何经验,但是在内核树内的文档目录中查看gpio.txt可能会很有趣。这里有一些关于如何通过sysfs从用户空间使用GPIO的解释。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4919477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档