这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » vxworks任务创建问题求助!

共5条 1/1 1 跳转至

vxworks任务创建问题求助!

菜鸟
2007-05-26 09:13:15     打赏

各位高手好!小弟最近遇到一个无助的问题,请帮忙指导:
开发环境:vxWorks5.5+Tronado2.2+s3c4510B
我在作了文件系统的FLASH上放了GOAHEAD服务器处理程序和网页,当发起GOAHEAD任务时遇到了以

下问题,系统从FLASH启动后在控制台(VxWorks COM1)通过命令:sp websvxmain发起GOAHEAD任

务,在浏览器中输入目标板IP就可以顺利访问到在FLASH文件系统上的网页,此时有:
tLogTask logTask ff7d90 0 PEND ebb08 ff7ca8 0 0


tShell shell f53e9c 1 READY e2e14 f53b30 0 0


tRlogind rlogind f59bc4 2 PEND 5138c f59850 0 0


tNetTask netTask fb8e90 50 PEND 5138c fb8e10 0 0


tFtpdTask 689c f57994 55 PEND 5138c f5787c 0 0


tTffsPTask flPollTask ff62b8 100 DELAY e1d44 ff6234 0 1


t1 websvxmain efebc8 100 PEND+T 5138c efeacc 3d0002 8


tDcacheUpd dcacheUpd f227d4 250 DELAY e1d44 f22740 0 4


但是在UserAppInit()中通过
web_id=taskSpawn("tweb",100,0x100,2000,(FUNCPTR)websvxmain,0,0,0,0,
0,0,0,0,0,0);
发起任务后,网页访问不到了,FTP也不能用了,查看CPU利用率99%都是给了websvxmain了!此时

任务状态:
tLogTask logTask ff7d90 0 PEND ebb08 ff7ca8 0 0


tShell shell f53e9c 1 READY e2e14 f53b30 0 0


tRlogind rlogind f59bc4 2 PEND 5138c f59850 0 0


tNetTask netTask fb8e90 50 PEND 5138c fb8e10 0 0


tFtpdTask 689c f57994 55 PEND 5138c f5787c 0 0


websvxmain efebc8 100 READY 5138c efeacc 3d0002 8

tTffsPTask flPollTask ff62b8 100 READY e1d44 ff6234 0 1


tDcacheUpd dcacheUpd f227d4 250 READY e1d44 f22740 0 4

websvxmain没有显示名字,而且下边的三个任务都是READY,我想试着修改 websvxmain到 PEND

状态,但没能成功,请各位有相关调试经验的高手指导,谢谢! 怎么才能达到在系统启动工程

让任务 websvxmain发起,并且能够正常执行?




关键词: vxworks     任务     创建     问题     求助    

菜鸟
2007-05-26 21:04:00     打赏
2楼

期待woodhead斑竹的到来!!


菜鸟
2007-05-27 09:00:00     打赏
3楼

谢谢yaopg 斑竹指点!

顺着您说的,我再尝试一下,这个问题已经困扰我一周了,明天过来继续向您请教!


菜鸟
2007-05-27 10:48:00     打赏
4楼

谢谢yaopg高手关键性的指点,一直以来小弟觉得这个问题太小所以自己琢磨着解决,但又受到以

前开发人员参考程序的思想限制,迟迟到现在才得以解决!
1、首先把程序实现过程中出现现象先帖出来,以便遇到类似问题的爱好者能够根据自己的错误对

照以寻求解决方法。
web_id=taskSpawn("tweb",100,0x100,2000,(FUNCPTR)websvxmain,0,0,0,0,
0,0,0,0,0,0); /*两处错误:0x100 & 2000*/执行后现象:
-> i
NAME ENTRY TID PRI STATUS PC SP ERRNO DELAY
---------- ------------ -------- --- ---------- -------- -------- ------- -----
tExcTask excTask ffa70c 0 PEND ebc50 ffa614 0 0
tLogTask logTask ff7d90 0 PEND ebc50 ff7ca8 0 0
tShell shell f51510 1 PEND 514d4 f511a4 0 0
tRlogind rlogind f59a7c 2 PEND 514d4 f59708 0 0
tWdbTask wdbTask f537b0 3 READY 514d4 f536e4 0 0
tNetTask netTask fb8e90 50 READY 17fc0 fb8d08 0 0
tFtpdTask 0x689c f5784c 55 PEND 514d4 f57734 0 0
com2udp ComtoUdp efc338 90 PEND 514d4 efc138 3d0002 0
tTffsPTask flPollTask ff62b8 100 DELAY e1e8c ff6234 0 2
 websvxmain ef7318 120 READY 8ff0c ef7194 3d0001 0
tDcacheUpd dcacheUpd f1ff54 250 READY e1e8c f1fec0 0 0
value = 0 = 0x0
-> checkStack
NAME ENTRY TID SIZE CUR HIGH MARGIN
------------ ------------ -------- ----- ----- ----- ------
tExcTask excTask ffa70c 7988 248 392 7596
tLogTask logTask ff7d90 4988 232 292 4696
tShell shell f51510 64860 876 1076 63784
tRlogind rlogind f59a7c 7988 884 1156 6832
tWdbTask wdbTask f537b0 8180 204 1300 6880
tNetTask netTask fb8e90 9988 392 588 9400
tFtpdTask 0x689c f5784c 11988 280 340 11648
com2udp ComtoUdp efc338 19992 512 1088 18904
tTffsPTask flPollTask ff62b8 2036 132 280 1756
 websvxmain ef7318 1324 412 ??? ??? VX_NO_STACK_FILL
tDcacheUpd dcacheUpd f1ff54 4988 148 248 4740
value = 0 = 0x0
->
*********************************************************
修改为:web_id=taskSpawn("tweb",100,0x100,5000,(FUNCPTR)websvxmain,0,0,0,0,
0,0,0,0,0,0); /*一处错误:0x100 */执行后现象:
-> i
NAME ENTRY TID PRI STATUS PC SP ERRNO DELAY
---------- ------------ -------- --- ---------- -------- -------- ------- -----
tExcTask excTask ffa70c 0 PEND ebc54 ffa614 0 0
tLogTask logTask ff7d90 0 PEND ebc54 ff7ca8 0 0
tShell shell f51510 1 PEND 514d8 f511a4 0 0
tRlogind rlogind f59a7c 2 PEND 514d8 f59708 0 0
tWdbTask wdbTask f537b0 3 READY 514d8 f536e4 0 0
tNetTask netTask fb8e90 50 READY 17fc4 fb8d08 0 0
tFtpdTask 0x689c f5784c 55 PEND 514d8 f57734 0 0
com2udp ComtoUdp efc338 90 PEND 514d8 efc138 3d0002 0
tTffsPTask flPollTask ff62b8 100 DELAY e1e90 ff6234 0 2
tweb websvxmain ef7318 100 PEND+T 514d8 ef721c 3d0002 100
tDcacheUpd dcacheUpd f1ff54 250 DELAY e1e90 f1fec0 0 10
value = 0 = 0x0
-> checkStack
NAME ENTRY TID SIZE CUR HIGH MARGIN
------------ ------------ -------- ----- ----- ----- ------
tExcTask excTask ffa70c 7988 248 392 7596
tLogTask logTask ff7d90 4988 232 292 4696
tShell shell f51510 64860 876 1076 63784
tRlogind rlogind f59a7c 7988 884 1156 6832
tWdbTask wdbTask f537b0 8180 204 1300 6880
tNetTask netTask fb8e90 9988 392 472 9516
tFtpdTask 0x689c f5784c 11988 280 340 11648
com2udp ComtoUdp efc338 19992 512 1088 18904
tTffsPTask flPollTask ff62b8 2036 132 308 1728
tweb websvxmain ef7318 4324 252 ??? ??? VX_NO_STACK_FILL
tDcacheUpd dcacheUpd f1ff54 4988 148 324 4664
value = 0 = 0x0
->
这种情况下websvxmain可以正常执行了,但是堆栈还有错误。
***********************************************************
修改为:web_id=taskSpawn("tweb",100,0,5000,(FUNCPTR)websvxmain,0,0,0,0,
0,0,0,0,0,0); 执行后现象:
-> i
NAME ENTRY TID PRI STATUS PC SP ERRNO DELAY
---------- ------------ -------- --- ---------- -------- -------- ------- -----
tExcTask excTask ffa70c 0 PEND ebc54 ffa614 0 0
tLogTask logTask ff7d90 0 PEND ebc54 ff7ca8 0 0
tShell shell f51510 1 PEND 514d8 f511a4 0 0
tRlogind rlogind f59a7c 2 PEND 514d8 f59708 0 0
tWdbTask wdbTask f537b0 3 READY 514d8 f536e4 0 0
tNetTask netTask fb8e90 50 READY 17fc4 fb8d08 0 0
tFtpdTask 0x689c f5784c 55 PEND 514d8 f57734 0 0
tTffsPTask flPollTask ff62b8 100 DELAY e1e90 ff6234 0 5
com2udp ComtoUdp efc338 100 PEND 514d8 efc138 3d0002 0
tweb websvxmain ef7318 100 PEND+T 514d8 ef721c 3d0002 96
tDcacheUpd dcacheUpd f1ff54 250 DELAY e1e90 f1fec0 0 8
value = 0 = 0x0
-> checkStack
NAME ENTRY TID SIZE CUR HIGH MARGIN
------------ ------------ -------- ----- ----- ----- ------
tExcTask excTask ffa70c 7988 248 392 7596
tLogTask logTask ff7d90 4988 232 292 4696
tShell shell f51510 64860 876 1076 63784
tRlogind rlogind f59a7c 7988 884 1156 6832
tWdbTask wdbTask f537b0 8180 204 1300 6880
tNetTask netTask fb8e90 9988 392 440 9548
tFtpdTask 0x689c f5784c 11988 280 340 11648
tTffsPTask flPollTask ff62b8 2036 132 308 1728
com2udp ComtoUdp efc338 19992 512 1088 18904
tweb websvxmain ef7318 4324 252 2120 2204
tDcacheUpd dcacheUpd f1ff54 4988 148 324 4664
value = 0 = 0x0
->
心得总结:
1、在自己的程序基础上参考开发例子的思想是很好的,而且有助于更快的学到知识,但要大胆思

维,敢于尝试自己的想法,特别是在出错的情况下更应该这样。
2、0x100我查了资料,没搞懂,这是从别的开发成功的例子中抄来的,给我了个很大的打击。
3、各位在遇到手动调试任务可以正常运行任务,自动启动不可以的情况下,希望以上的现象指导

可以给提供一些帮助!
******************************************
web_id=taskSpawn("tweb",100,0,5000,(FUNCPTR)websvxmain,0,0,0,0,
0,0,0,0,0,0);
******************************************
遗留问题:vxworks从文件系统启动过程中出现: WDB: Agent configuration failed.应该从哪

里(BSP?API?)修改使其配置成功?谢谢指导!(刚修改BSP时就出现此问题,一直没解决掉)



菜鸟
2007-05-28 07:33:00     打赏
5楼

yaopg斑竹您好!谢谢您的指导!高手就是高手啊!一语中的!WDB的问题您又给我提供了方向(曾经想到过是这方面的问题,因为我的板子IP在从FLASH启动的时候就不可用,就是我重新初始化的,经验不足啊),我再研究研究!您确实是经验丰富啊!小弟向您学习!

建议超级斑竹给yaopg斑竹的这两个帖子加精!从我调试出现的问题看我觉得这样的分析很有针对性!


共5条 1/1 1 跳转至

回复

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