导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→请高手解答一个VxWorks的问题[kingholly]

 *第21547篇: 请高手解答一个VxWorks的问题

  
楼 主:kingholly 2004年4月30日20:21
 请高手解答一个VxWorks的问题
在vxWorks目标机上运行一个模块,加载主机上的目标模块到目标机内存,代码如下:
 int fd,result,err;
 netDevCreate("wrs:", "host", 1);/*1 means use ftp*/
 fd = open("wrs:D:/Tornado/target/proj/Project6/I80486gnu/test.o",O_RDWR,0);
 result = loadModule(fd, LOAD_GLOBAL_SYMBOLS);
 err = errnoGet();
 printErrno(err);
用Tornado调试,跟踪后result =0,err = 0x3d0001,printErrno得到"S_objLib_OBJ_ID_ERROR".
这段代码通过netdrv驱动,ftp协议下载test.o,加载不成功,请问这是为什么?我用fopen打开一个主机文件,得到同样的错误号,但Debug窗

口没有了"can't add ... to system symbol table"的输出.

调试器的Virtual Console输出如下:
loadAoutLib error: can't add 'test.o_text' to system symbol table - error = 0x3d
0001.
loadAoutLib error: can't add 'test.o_data' to system symbol table - error = 0x3d
0001.
loadAoutLib error: can't add 'test.o_bss' to system symbol table - error = 0x3d0
001.
loadAoutLib error: can't add '_test' to system symbol table - error = 0x3d0001.
undefined symbol: _printf
S_objLib_OBJ_ID_ERROR

我在objLib.h找到了一个与S_objLib_OBJ_ID_ERROR有关的宏定义,但看不明白:BJ_VERIFY(objId,classId)
/*******************************************************************************
*
* OBJ_VERIFY - check the validity of an object pointer
*
* This macro verifies the existence of the specified object by comparing the
* object's classId with the expected class id.  If the object does not check
* out, errno is set with the appropriate invalid id status.
*
* This macro also checks for the existance of an windview instrumented object.
*
* RETURNS: OK or ERROR if invalid object id
*
* NOMANUAL
*/

#define OBJ_VERIFY(objId,classId)          (                                                                          (                (((OBJ_ID)(objId))->  pObjClass == (struct obj_class *)(classId)) ||        (                ((OBJ_ID)(objId))->  pObjClass &&               (((OBJ_ID)(objId))->  pObjClass ==                                        (CLASS_ID)(((struct obj_class *)(classId))->  initRtn))            )               )                                                                          ?                                                                            OK                                                                   :                                                                            (errno = S_objLib_OBJ_ID_ERROR, ERROR)                           )


>>>>>>对该主题发表你的看法

本主题贴数1,分页: [第1页]


[上一篇主题]:急求英才(5月15日前有效)

[下一篇主题]:编码器165V-COM电图