请问XTANG,我CPU板子挂接sja1000芯片,中断引脚连接好,但是事件一触发,板子就死了。

中文QNX 讨论: 欢迎大家灌水,讨论有关QNX 问题。
回复
dsljayoung
New Member
帖子: 5
注册时间: 周五 2月 03, 2012 4:19 pm

请问XTANG,我CPU板子挂接sja1000芯片,中断引脚连接好,但是事件一触发,板子就死了。

帖子 dsljayoung » 周四 3月 01, 2012 5:13 pm

请问XTANG,我CPU板子挂接sja1000芯片,中断引脚连接好,但是事件一触发,板子就死了。
另外,我想问一下XTANG:中断处理函数可以调试吗?如果可以的话,如何进行?
中断处理函数中的printf信息可以显示吗?貌似我的调试环境下,好多的printf(包括正常的打印信息)都不能显示了。

dsljayoung
New Member
帖子: 5
注册时间: 周五 2月 03, 2012 4:19 pm

Re: 请问XTANG,我CPU板子挂接sja1000芯片,中断引脚连接好,但是事件一触发,板子就死了。

帖子 dsljayoung » 周四 3月 01, 2012 5:14 pm

多谢XTANG了!

机器人
Senior Member
帖子: 106
注册时间: 周二 4月 27, 2010 12:09 pm
来自: 中国

Re: 请问XTANG,我CPU板子挂接sja1000芯片,中断引脚连接好,但是事件一触发,板子就死了。

帖子 机器人 » 周一 3月 05, 2012 11:11 am

中断函数里面很多东西都不能用 的,浮点运算,内核调用之类的

你看看帮助文档里ISR那一章

xtang
Moderator
帖子: 1816
注册时间: 周五 9月 12, 2003 4:14 am
来自: China

Re: 请问XTANG,我CPU板子挂接sja1000芯片,中断引脚连接好,但是事件一触发,板子就死了。

帖子 xtang » 周一 3月 05, 2012 10:29 pm

用通常的gdb,中断处理函数(ISR)是无法调试的。另外,如上面机器人说的,ISR里有很多系统函数是无法用的。基本上,QNX的C库里没有几个函数是可用的。

一个办法是用IST,InterruptAttachEvent(),通过event来激活用户态线程,这个时候,你可以随便用GDB来调试,IST里也可以用任何系统函数。

dsljayoung
New Member
帖子: 5
注册时间: 周五 2月 03, 2012 4:19 pm

Re: 请问XTANG,我CPU板子挂接sja1000芯片,中断引脚连接好,但是事件一触发,板子就死了。

帖子 dsljayoung » 周二 3月 06, 2012 7:31 pm

机器人 写了:中断函数里面很多东西都不能用 的,浮点运算,内核调用之类的

你看看帮助文档里ISR那一章
OK.我再看看。多谢了。

dsljayoung
New Member
帖子: 5
注册时间: 周五 2月 03, 2012 4:19 pm

Re: 请问XTANG,我CPU板子挂接sja1000芯片,中断引脚连接好,但是事件一触发,板子就死了。

帖子 dsljayoung » 周二 3月 06, 2012 7:32 pm

xtang 写了:用通常的gdb,中断处理函数(ISR)是无法调试的。另外,如上面机器人说的,ISR里有很多系统函数是无法用的。基本上,QNX的C库里没有几个函数是可用的。

一个办法是用IST,InterruptAttachEvent(),通过event来激活用户态线程,这个时候,你可以随便用GDB来调试,IST里也可以用任何系统函数。

我用线程的方式启动ISR,可以调试了,发现ISR是一个死循环,所以会导致CPU死掉。现在问题解决了,多谢了!

回复