完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
你好,我用OMPL138在DSP/BOIS下使用GPIO硬件中断,使用的是GPIOB6中的GPIOB6_6和GPIOB6_14,两个引进都可以按配置的方式进中断函数,但是进中断后INTSTAT67寄存器的值为0,照理对应的标志位应该是1啊,我分不出是6引脚产生的中断还是14引脚产生的中断。
|
|
相关推荐
8个回答
|
|
ARM那边有跑Linux,但是没用到这两个引脚的中断
|
|
|
|
检查一下寄存器地址搞对了没有,不可能没值,不然中断怎么产生的。 http://processors.wiki.ti.com/index.php/Main_Page Think Over Before Asking. http://www.catb.org/~esr/faqs/smart-questions.html#goal |
|
|
|
lifei639156 发表于 2018-6-21 12:43 寄存器地址对了,测试了,ARM端LINUX系统不启动INTSTATn中就有对应引脚的值,启动Linux系统后,DSP端进中断INTSTATn中的值就全是0了 |
|
|
|
testd035 发表于 2018-6-21 13:02 我们这边有两块开发板,一块合众达的,一块瑞泰的,都是这样的。 |
|
|
|
那就是linux把它改了呗,这跟板子没有什么关系。 再说也不可能DSP一直不能改啊, Linux改完后,DSP再写也是可以的啊。 你在CCS下手动改写寄存器,把寄存器的值截屏上来看看,说实话,我不相信不可改写。 http://processors.wiki.ti.com/index.php/Main_Page Think Over Before Asking. http://www.catb.org/~esr/faqs/smart-questions.html#goal |
|
|
|
lifei639156 发表于 2018-6-21 13:39 不是寄存器不能改,是在ARM端跑LIUNX系统时,DSP端进GPIO中断后,INTSTATn对应引脚的的标志没有,无法再DSP端区分中断是哪个引脚产生的。在ARM端不跑Linux系统时,DSP端GPIO中断的INTSTATn标志是正常的,通过CCS往INTSTATn中对应位写1会把对应标志清掉。ARM跑LINUX系统时DSP端的GPIO中断就不正常了,ARM端就跑一个系统,没有启动应用程序,也没用到GPIO中断。 |
|
|
|
lifei639156 发表于 2018-6-21 13:39 寄存器是可以写的,我DSP端已经进中断了,对应GPIO的中断使能寄存器,上升沿/下降沿触发等寄存器的配置都是对的。通过CCS仿真看过的。 就是进中断后,INTSTATn中的值全为零,照理应该有对应引脚的GPIO中断标志,INTSTATn全为零,我就无法区分中断是哪个引脚产生的。 ARM端不跑LINUX系统时,DSP端没这个问题,DSP端INTSTATn寄存器中对应位有值,ARM端就跑了个系统,无应用程序,无GPIO中断。 |
|
|
|
testd035 发表于 2018-6-21 14:00 这里无疑是Linux响应了GPIO的中断,把状态清掉了。 建议: 研究一下Linux端GPIO代码,一定是注册了这个GPIO了。 我暂时看到GPIO IRQ handler这里,你可以看到只要是使能了的GPIO,在handler里都把对应状态清掉了。你再去找一下,是在哪地方配置使能了吧。 static void gpio_irq_handler(unsigned int irq, struct irq_desc *desc) [ void __iomem *isr_reg = NULL; u32 isr; unsigned int gpio_irq, gpio_index; struct gpio_bank *bank; u32 retrigger = 0; int unmasked = 0; struct irq_chip *chip = irq_desc_get_chip(desc); chained_irq_enter(chip, desc); bank = irq_get_handler_data(irq); isr_reg = bank->base + bank->regs->irqstatus; if (WARN_ON(!isr_reg)) goto exit; while(1) [ u32 isr_saved, level_mask = 0; u32 enabled; enabled = _get_gpio_irqbank_mask(bank); isr_saved = isr = __raw_readl(isr_reg) & enabled; if (cpu_is_omap15xx() && (bank->method == METHOD_MPUIO)) isr &= 0x0000ffff; if (cpu_class_is_omap2()) [ level_mask = bank->level_mask & enabled; ] /* clear edge sensitive interrupts before handler(s) are called so that we don't miss any interrupt occurred while executing them */ _disable_gpio_irqbank(bank, isr_saved & ~level_mask); _clear_gpio_irqbank(bank, isr_saved & ~level_mask); _enable_gpio_irqbank(bank, isr_saved & ~level_mask); /* if there is only edge sensitive GPIO pin interrupts configured, we could unmask GPIO bank interrupt immediately */ if (!level_mask && !unmasked) [ unmasked = 1; chained_irq_exit(chip, desc); ] isr |= retrigger; retrigger = 0; if (!isr) break; gpio_irq = bank->virtual_irq_start; for (; isr != 0; isr >>= 1, gpio_irq++) [ gpio_index = GPIO_INDEX(bank, irq_to_gpio(gpio_irq)); if (!(isr & 1)) continue; #ifdef CONFIG_ARCH_OMAP1 /* * Some chips can't respond to both rising and falling * at the same time. If this irq was requested with * both flags, we need to flip the ICR data for the IRQ * to respond to the IRQ for the opposite direction. * This will be indicated in the bank toggle_mask. */ if (bank->toggle_mask & (1 << gpio_index)) _toggle_gpio_edge_triggering(bank, gpio_index); #endif generic_handle_irq(gpio_irq); ] ] http://processors.wiki.ti.com/index.php/Main_Page Think Over Before Asking. http://www.catb.org/~esr/faqs/smart-questions.html#goal |
|
|
|
只有小组成员才能发言,加入小组>>
348 浏览 1 评论
543 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
789 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
660 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1140 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
79浏览 29评论
269浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
261浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
210浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
68浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 03:47 , Processed in 1.179964 second(s), Total 93, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号