论坛风格切换切换到宽版
  • 755阅读
  • 1回复

PowerPc E500内核 外部中断问题 求助 [复制链接]

上一主题 下一主题
离线jguzhou.
 
发帖
2015
C币
-235266
威望
407
贡献值
1
银元
-4
铜钱
4616
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-04-27
我使用FreeScale的型号是MPC8548E的CPU,E5.00内核PowerPc,有个按键驱动程序想利用外部中断来实.现(查询方式用过,CPU占用率99%,很恐怖),目的.是在按键产生中断后在内核态通知用户态,仅仅是一通知功能,就是在中断产生后在内核态通知用户态有按键事件..发生.了,然后由用户层程序读取键值并进行处理.不必考虑防抖问题,按键芯片内部已经具备该功能.初步打算采用异步通知的方法,就是在中断服务.程序.中,由按键事件产生的外部中断在内核态使用kill_fasync()通知用户态.中断使用外部中断2:MPC85xx_IRQ_EXT.2,包含该中断定义的头文件在asm/irq.h中,我在程序前面已经include了该文件,可是编译老是提示找不到"MPC85xx_IRQ_EXT2"的声明.后.来我直接在程序中定义了一下,就是把asm/irq.h中定义MPC85xx_IRQ_EXT2的那一段复制出来,现在request_irq已经可以申请到软中断号了.由于该CPU采用了PIC(可编程中断控制器),需要软中断号和.硬中断号的挂接,我在程序里直接用irq_create_mapping()解决了一下,现在可以.申请到IRQ了,运行"cat /proc/interrupt",看到中断号以及对应的中断设备已经存在列表中了,中断号50,电平触发.可是按键没有反应,"cat /proc/interrupt",发现中断次数的值没有发生改变.不知道在enable_irq的时候是否需要清除该中断的标志位.?看了半天datashe.et,N多的寄存器让我找不着头绪(英文不是很好),想问2个问题:1)用异步通知可不可行?网上有人说.不可靠,但是也有很多人用.
2.)使能中断前,到底需要不需要清除该中断的中断标志位?.--------------彩票
    盼了解.该处理器的人指点迷津,谢谢!             电子

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线fu20.
发帖
2018
C币
-199009
威望
372
贡献值
1
银元
-2
铜钱
4553
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-10
Re:PowerPc
问题已经解决.步骤:读PIC相应的中断寄存器,根据结果IRQ_CREAT_MAPPING,然后REQUEST_IRQ,进行其他操作.
快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个