免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1274 | 回复: 0
打印 上一主题 下一主题

powerpc e500内核外部中断 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-27 09:40 |只看该作者 |倒序浏览

powerpc e500内核中断系统有两部分组成 一个是e500 的内核,一个是中断异常控制器programmable interrupt controller (PIC) interrupt protocol
e500内核有些特殊之处是:在e500内核进入中断和异常处理程序时不能关闭mmu 也就是说e500内核所看到的是虚拟地址。E500内核的解决办法是利用IVPR  和 IVOR寄存器来共同决定中断程序的入口地址,IVPR保存中断入口程序的0~15位 IVOR保存16~27位 28~31位为0;(每一个IVOR对应一种中断, 如:IVOR4 对应着外部中断)。此外PIC控制器还有Interrupt Source Configuration Registers 用来区分是具体的中断如外部中断一有EIVPR1 和 EIDR1共同决定
0---------------------------------------------------------------------------------à31
MSK           A      RSV1    P      S             PRIORITY    VECTIOR
0               1        2~7    8      9               12~`15       16~`31
其中vector 位为硬件中断号(不同于datasheet种的中断号)。其他个相关位见datasheet
当e500 int信号有效是期铜外部中断处理,外部中断处理根据具体的硬件中断号执行具体本中断的处理程序。俺也不知道处于啥原因linux又弄了个软中断号这样你在申请中断(request_irq是应该使用的是软中断号)。为此系统必须建立软中断号与硬中断号之间的联系。建立联系之后你就可以通过硬件中断号向系统要软件中断号了然后request_irq了。参见irq_of_parse_and_map函数或者干脆就直接调用irq_create_mapping(不知道会不会有问题)!



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/71164/showart_2038214.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP