在c6678的评估板做串口的收中断,程序中进入main后先初始化串口,然后设置中断映射,CIC0的149(串口收中断),映射到主机中断32,在cfg文件中建立HWI中断,初级中断事件为21(因为CIC0的主机中断输出32对应core0的21初级中断事件),优先级7,。主任务uartrxtx()中等待信号量hUSem在中断中释放后执行发送数据。中断服务程序中收数据后,释放信号量hUSem。
1、中断不能响应,但在UART的IIR中可以看到有收中断事件,CIC0的System Interrupt Enable Set Registers中的对应149位置位,System Interrupt Status Raw/Set Registers中的148对应的位置位了;
2、当我使用taskpost()任务时,中断可以进入;
3、当CIC0的SYSINT_NUM 改为148(串口中断)其他映射不变时,程序一运行就进入中断程序。
请高手帮忙看看,明知是一个小问题,可卡在这里就是过不去!先行谢过!
du jianfeng:
在sys/bios下,串口收中断收数据,然后网口发送。
串口中断事件为收中断,cic0事件号为149(串口收中断),映射到主机中断32,对应初级中断21,挂接到中断服务程序。
现在使用Cpintc_postsysintc(0,149)来手动触发收中断,(0是cic0,149为cic0的串口收中断事件号)程序可以正确的响应,
但不用Cpintc_postsysintc(0,149)来手动触发收中断,使用串口调试助手来发送数据的时候就不能响应。这个情况是不是说明上面的映射和挂接都是正确,只是没有产生正确的中断源。
还有,当cic0事件号为148(串口中断)时,映射还是上面的映射,程序运行但在串口没有发数据时就响应中断了。请问是哪里的问题?新手学习中
Andy Yin1:
回复 du jianfeng:
参考UART中断例程:http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/18931.aspx
yuanwen dong:
回复 du jianfeng:
送你两个C6678 Uart相关的Demo,一个是裸跑的,一个是OSEck下面的。
见附件
william.dong@enea.com
du jianfeng:
问题已自行解决,不过还是要谢过各位!