这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 请教:Tornado如何使用系统模式调试?

共3条 1/1 1 跳转至

请教:Tornado如何使用系统模式调试?

菜鸟
2007-09-09 10:44:24     打赏

    在开发设备驱动,想要调试中断服务程序。已知在一行代码之后会产生中断,那么应该如何调试才能看到系统如何进入了中断服务程序呢?
    目标机是一个PC,使用网线连接。我是在会产生中断的那一行代码处设置了断点,在ISR开始也设置了断点。然后当在产生中断的代码处停止后,我attach了sytem任务和我驱动发送数据的任务。可是再执行一行代码,系统还是没有能进入我写的ISR,
    恳请各位不吝指导!谢谢啦




关键词: 请教     Tornado     如何     使用     系统     模式     调试    

菜鸟
2007-09-09 20:34:38     打赏
2楼
我来自己回答一条: 首先如果是使用网卡连接方式,那么网卡驱动必须支持查询方式。就这一点,让我失去了希望。

菜鸟
2007-09-10 20:22:50     打赏
3楼

ISR的时效性很强,而且没有任务上下文,我觉得用调试模式来调,可能会存在一些问题。如果有以太网的话,调试起来应该比较方便,可以考虑开一个telnet终端,用logMsg()进行打印调试。虽然很原始,但也比较有效。
调ISR首先要看ISR是否在合适的情况下被触发。再看执行的情况是否正确。
关于调试ISR是否被触发,可以在ISR的入口就加LogMsg进行打印跟踪。---注意:如果你的ISR与其它ISR共享了一个中断源,要判断到底是哪个中断源产生的中断。最好有一个独占的中断请求线用于调试。另外,有些芯片支持软件置中断,,如果有这个条件,调试起来就更加方便了。
ISR可以被触发之后,就可以用logMsg进行ISR的功能性调试了。
ISR中最需要注意的有:共享中断中的中断源有效判断,边沿触发的中断的中断标识清除,不调用任何导致阻塞的函数和执行导致阻塞的操作,ISR尽量小。
ISR与任务通信的方式比较多,但出于效率考虑,在VxWorks中,最好不要使用复杂的系统功能如管道。可以考虑使用的天然互斥但不阻塞的数据结构有:环型缓冲,链表。。效率较高的系统调用是消息队列和信号量释放(semGive)。


共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]