这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » msgQReceive 导致VxWorks任务挂起求助

共4条 1/1 1 跳转至

msgQReceive 导致VxWorks任务挂起求助

菜鸟
2007-05-30 16:51:33     打赏

任务被挂起,显示如下信息

>
Implementation Dependent Software Emulation
Exception current instruction address: 0x00000000
Machine Status Register: 0x00000000
Condition Register: 0x01d5c0d8
Task: 0x1d5bef8 "tCpuUp_0_Proc"

在超级终端上敲tt命令,显示如下:

tt
245d08 vxTaskEntry +64 : CpuUpProc_0_Task ()
121d0c CpuUpProc_0_Task+2c : msgQReceive ()
25812c msgQReceive +2a0: qJobGet ()
0 : 0 ()
value = 0 = 0x0

以前也遇到过类似任务挂起的问题,但都是由于自己写的函数造成的,很快就能解决问题,但这次看来是调用msgQReceive 出的问题,这可是VxWorks的系统函数呀,另外qJobGet 究竟是什么功能

诚请各位高手指教




关键词: msgQReceive     导致     VxWorks     任务    

菜鸟
2007-05-30 19:52:00     打赏
2楼
这个不像是MsgQ引起的,好像式CPU发生异常,跳到非法地址去了, 被Vxworks的异常处理程序抓住了回来再报告出来的,很有可能式非法的总线操作或者内存访问,有可能与程序中的指针使用或者是端口访问部分代码相关,又或者是MMU配置的问题。猜的。

菜鸟
2007-05-30 21:35:00     打赏
3楼

多谢版主回复!

问题解决啦,通过实验现象分析,定位到另外一个任务中,使用checkStack察看堆栈,发现该任务的堆栈溢出了,扩了堆栈后重复实验,现象消失了!

应该是这个任务的堆栈溢出影响了CpuUpProc_0_Task了。


菜鸟
2007-05-31 00:28:00     打赏
4楼
呵呵,大家做完程序都要checkStack一下啊,这是好习惯:)

共4条 1/1 1 跳转至

回复

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