TI论坛
直播中

华一颖

7年用户 181经验值
私信 关注

请问am335x nmi中断如何使用?

本帖最后由 一只耳朵怪 于 2018-6-5 15:11 编辑

我想申请gpio中断一样去申请NMI中断,,但是申请不到,错误是-22,也就是无效参数,看了好多人都说有这样的问题,这个怎么解决?我看了9c0寄存器,值为0x00000030,表明处于使能状态,但就是用不了

回帖(4)

华一颖

2018-6-4 14:30:31
我再驱动中尝试去申请conf_nnmi寄存器申请不到,if(!request_mem_region(0x44e109c0,0x04,"nmi"));这是不是说明被哪个地方占用了?我怀疑申请不到中断也是这个原因,能帮忙解决一下吗?
举报

华一颖

2018-6-4 14:46:01
引用: biang51 发表于 2018-6-4 14:30
我再驱动中尝试去申请conf_nnmi寄存器申请不到,if(!request_mem_region(0x44e109c0,0x04,"nmi"));这是不是说明被哪个地方占用了?我怀疑申请不到中断也是这个原因,能帮忙解决一下吗?

我追踪了一下代码,发现程序总是卡在这里
为什么会这样呢?因为总是卡在这里,所以返回值总是-22,所以总是申请不成功,
我自己尝试在申请之前检测能否申请,采用下面的方式

但是,程序中总是提示下面的情况:

请TI的员工解答一下,目前貌似看网上有很多朋友都遇到申请中断申请不到的情况
举报

华一颖

2018-6-4 15:00:45
引用: biang51 发表于 2018-6-4 14:46
我追踪了一下代码,发现程序总是卡在这里
为什么会这样呢?因为总是卡在这里,所以返回值总是-22,所以总是申请不成功,
我自己尝试在申请之前检测能否申请,采用下面的方式

我又继续追踪了代码,发现是因为不能申请从而导致中断总是申请不到
static inline bool irq_settings_can_request(struct irq_desc *desc)
[
return !(desc->status_use_accessors & _IRQ_NOREQUEST); //lijie dev
]
程序总是卡在这里了,是不是NMI中断不能直接申请?
然后我又查看了_IRQ_NOREQUEST,发现这样一种情况

请问一下这里的GOT_YOU_MORON是什么意思?
举报

华一颖

2018-6-4 15:06:18
引用: biang51 发表于 2018-6-4 15:00
我又继续追踪了代码,发现是因为不能申请从而导致中断总是申请不到
static inline bool irq_settings_can_request(struct irq_desc *desc)
[

终于解决了!经历困难啊!对于此类申请中断的问题在这里总结一下,希望对大家有用,
关于NMI中断,中断号为7,此时不能直接用    request_irq(7,xxx,xxx,xxx,xxx)去申请,因为内核不认识中断号7,此时需要先去申请中断号:
irq = platform_get_irq(pdev, 0);利用这个函数获得中断号,这个函数要配合设备数去完成,获得中断号之后就可以用request_irq()去申请了,具体的看我的博客
http://blog.csdn.net/lixiaojie123123/article/details/73473449
举报

更多回帖

发帖
×
20
完善资料,
赚取积分