MPC下的中断问题

freejames   2010-2-5 14:36 楼主
我在做关于MPC8260的工作.目前,我想为DMA加入中断处理程序.MPC8260的参考手册中
说,IDMA1的中断号是6,我使用如下函数:
intConnect(INUM_TO_IVEC(6),dma_isr,0);
连接中断处理程序与中断源.但是一旦DMA结束,BC中断到来之后,整个EP8260板子就死掉了.我
估计原因是中断处理程序没有设置好,导致CPU进入一段错误的代码中了.另外,通过printf,我
看到INUM_TO_IVEC(6)的返回值仍然是6,这是不是有问题?是不是还要设置一下中断向量表的
基地址?

回复评论 (8)

没用过这个芯片,帮顶一下吧!
点赞  2010-2-5 14:48
谢谢
点赞  2010-2-5 14:51
建议楼主 再次审核下 你的中断处理函数,

另外在中断处理函数最后部分加上打印,看看中断处理是否完成,看是否由于DMA中断本身出错导致死掉的

另外既然你怀疑 在中断后,跑到错误地址死掉,你在看看是否能打印他跑到哪个函数中?
点赞  2010-2-5 16:03
INUM_TO_IVEC(6)的正确返回值是可以查的啊!你自己找找看对不对。还有,你的中断处理程序最好越简单越好,不要把太多的东西放到里面。如果需要处理一些工作,应该放到外面。如果中断处理函数里东西太多,可能会出问题。
希望对你有帮助。
点赞  2010-2-5 22:35
中断号是你初始化MPC8260的中断控制器时候指定的,你要看看你bsp初始化中断控制器的时候写进的是多少,不一定是6的!
点赞  2010-2-7 11:32
在中断处理函数中不要调用printf,应该使用logMsg
在中断处理函数里面调用清中断试试
点赞  2010-2-8 15:05
很可能是中断服务程序有问题,用排除法,
中断服务程序有很多限制的,
点赞  2010-2-8 19:54
两点建议:
1.检查中断挂接时是否正常,入参是否正确。
2.检测中断服务程序中是否存在"printf"打印,这类的打印是需要抢占系统I/o相关资源的,可能会造成系统挂死。
点赞  2010-3-11 10:41
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复