完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
平台:C6678
板子:公司自己的板子 问题: 硬件工程师说,他们将GPIO0的电压拉低后,应该C6678就要收到中断。 软件这边进行这样的设置: 1.设置GPIO的中断使能位为1,代码为*(UInt*)(0x2320008)= 0x1; 2.创建HWI,代码为: /* 初始化硬件中断参数 */ Hwi_Params_init(&hwiParams); hwiParams.eventid = DDSP_SEM_INTC_EVENT_ID; hwiParams.maskSetting = Hwi_MaskingOption_SELF; /* 创建硬件中断 */ hwiParams.eventId = 4; hwiHandle = Hwi_create(4,hostIsrHandler,&hwiParams,NULL); hwiParams.eventId = 5; hwiHandle = Hwi_create(5,hostIsrHandler,&hwiParams,NULL); hwiParams.eventId = 6; hwiHandle = Hwi_create(6,hostIsrHandler,&hwiParams,NULL); hwiParams.eventId = 7; hwiHandle = Hwi_create(7,hostIsrHandler,&hwiParams,NULL); hwiParams.eventId = 8; hwiHandle = Hwi_create(8,hostIsrHandler,&hwiParams,NULL); hwiParams.eventId = 9; hwiHandle = Hwi_create(9,hostIsrHandler,&hwiParams,NULL); hwiParams.eventId = 11; hwiHandle = Hwi_create(11,hostIsrHandler,&hwiParams,NULL); hwiParams.eventId = 12; hwiHandle = Hwi_create(12,hostIsrHandler,&hwiParams,NULL); hwiParams.eventId = 13; hwiHandle = Hwi_create(13,hostIsrHandler,&hwiParams,NULL); hwiParams.eventId = 15; hwiHandle = Hwi_create(15,hostIsrHandler,&hwiParams,NULL); 在hostIsrHandler中添加打印,并有断点,hostIsrHandler没有被调用。 请问,还有什么没有完成初始化嘛?为什么中断没有进来?谢谢,在出差很急坐等。谢谢。 |
|
相关推荐
4个回答
|
|
信息太少,建议全面排查下。
1. GPIO中断是否使能,GPIO是否配置为了输入方向?GPIO的中断模式是否设置为了下降沿? 2. 使用哪个GPIO管脚,该管脚的GPIO是一级事件还是二级事件?一级事件的话,事件ID映射是否正确?二级事件的话,是否完成了一级到二级事件的映射,同时通道配置是否正确? |
|
|
|
MAZHILEI 发表于 2018-6-21 11:55 关于第1项,我先前是没有使能的,因为不知道。更具你说的,我调用了下列接口。 /*初始化GPIO*/ gpioInit(); /*设置GPIO0为输入模式*/ gpioSetDirection(0,GPIO_IN); /*设置GPIO0为下降沿触发中的*/ gpioSetFallingEdgeInterrupt(0); /*使能GPIO全局中的*/ gpioEnableGlobalInterrupt(); 上述接口在evml6678的板级支持包中有。 关于第2项。硬件接的是0号GPIO,查看手册对应的事件号应该为0,然后我把0号事件创建在4号中断上面: /* 初始化硬件中断参数 */ Hwi_Params_init(&hwiParams); /* 创建硬件中断 */ hwiParams.eventId = 0; hwiHandle = Hwi_create(4,myhandle,&hwiParams,NULL); myhandle为: void myhandle() [ *(int*)(0x80800000) =i; i++; ] 在初始化完成后,会进入一次此中断处理函数,据硬件工程师说,GPIO0的上电输入为低电压,所以会产生一次中断。 后面GPIO0的输入电压被拉高,然后被拉低,此时应该产生中断,但是中断处理函数没有执行。 请问,软件这边还有什么初始化没有做吗? |
|
|
|
MAZHILEI 发表于 2018-6-21 11:55 你好,问题已经解决,谢谢您的回复。 原来是我再中断处理中没有清理掉FGPA中中断控制的状态位。 |
|
|
|
Dear sir: 我现在这边也使用了c6678的芯片,也是通过FPGA实现看门狗功能,当看门狗超时的时候,会发送一个中断信号给DSP,低电平触发中断,fpga和DSP之间是通过GPIO15进行连接,是DSP的GPIO15,现在遇到的问题是,当看门狗超时的时候,有中断过来,会导致DSP死掉,不清楚是什么原因导致DSP死掉,您能把您的关于GPIO的中断的代码发给我看一下吗?现在中断处理函数一直没有运行,挂中断一直挂不上,非常着急,能否帮小弟一个忙呢,不胜感激。 |
|
|
|
只有小组成员才能发言,加入小组>>
586 浏览 1 评论
425 浏览 1 评论
619 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
909 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
709 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
192浏览 29评论
1155浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
323浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
286浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
135浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-3 07:55 , Processed in 0.793554 second(s), Total 51, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号