完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 一只耳朵怪 于 2018-6-22 10:46 编辑
大家好, 我使用dm3730运行dvsdk, 在c6accel的dsp端增加了通过GPMC读写FPGA的功能,这个已经完成,我想使用sdma,但没调通,改成fpga通过gpio 65向dsp发gpio中断,dsp收到后在ISR里通过信号量控制从GPMC读数。 我的ISR程序应该是正确的,我使用irq14的timer触发,ISR可以工作,使用gpio65由fpga触发中断,isr不运行。 代码如下: static inline void __raw_writel(unsigned int b, int addr) [ *(volatile unsigned int *) addr = b; ] __raw_writel((1<<18) | (1<<24),0x480020d0); //scm Pin muxing mode 4 (gpio 65), inputenable __raw_writel((1<<1),0x49052034); //OE __raw_writel((1<<1),0x4905204C); //falling detect __raw_writel((1<<1),0x4905202C); //gpio module 3 irqenable2 C64_disableIER(1<<6); HWI_eventMap(6, 75); //gpio 65 in GPIO module 3, so event id is 75 HWI_dispatchPlug(6, (Fxn)dspTimerThread, -1, NULL); HWI_enable(); C64_enableIER(1<<6); 读gpio3 data in(0x49052038)这个寄存器的值,会随着我的fpga信号从0和2来回变,证明gpio已经读到数据了,读gpio3 irq status2(0x49052028)这个寄存器,值一直是2,这是对的,证明gpio65已经收到中断信号。 但我的ISR程序没有触发,读intx status(0x01800180) 或者 ic event flag 3(0x01800000 +0x4 * 2),这两个寄存器一直是0,似乎是gpio中断没有送到iva里去?请问我少做了什么工作?为什么不能触发ISR,这个问题已经困扰我好几天了。 |
|
相关推荐
1个回答
|
|
大家好,
我终于找到问题出在哪了,我没设WUGEN的interrupt mask寄存器,导致中断信号被屏蔽了,没有送入IVA系统中去。设置WUGEN_MEVTCLR寄存器,问题解决。 具体语句:__raw_writel((1<<30),0x01c21070); 谢谢大家的关注。 |
|
|
|
只有小组成员才能发言,加入小组>>
852 浏览 0 评论
TMS320F28377D:新做了以377d为芯片的板子,上电后芯片复位引脚出现方波请问如何解决?
2047 浏览 0 评论
TPS55340通电后输入端保险丝烧断,芯片输入和GND之间短路
3782 浏览 4 评论
5143 浏览 0 评论
请问如何用DM368对RGB格式的图片数据进行编码生成JPEG格式图片?
1836 浏览 1 评论
CC3100BOOST使用CC3200lunchXL进行烧录
831浏览 2评论
58浏览 2评论
68浏览 2评论
59浏览 2评论
89浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-13 05:58 , Processed in 0.627099 second(s), Total 76, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191