谢谢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时就出现此问题,一直没解决掉)