下面是我的代码
test.c:
#include<stdio.h>
void test()
{
printf("testing...");
}
sym.c:
#include <vxWorks.h>
#include <stdio.h>
#include <ioLib.h>
#include <loadLib.h>
#include <symLib.h>
#include <taskLib.h>
#include <nfsLib.h>
#include <nfsDrv.h>
#include <usrLib.h>
extern SYMTAB_ID sysSymTbl ;
int loadTestModuleAndRun()
{
int fd = ERROR ;
int status = ERROR ;
MODULE_ID hModule ;
FUNCPTR taskEntry = NULL ;
SYM_TYPE * pType ;
fd = open("/ata0a/test.out",O_RDONLY,0) ;
if (fd==ERROR)
{
printf("can not open binary file.\\n") ;
return ERROR ;
}
else
{
printf("binary file opened.\\n") ;
}
if ((hModule=loadModule(fd,LOAD_ALL_SYMBOLS))==NULL)
{
printf("loadModule error = 0x%x.\\n",errno) ;
return ERROR;
}
close(fd) ;
status = symFindByName(sysSymTbl,"_test",
(char **)&taskEntry,pType ) ;
if (status==ERROR)
{
printf("symFindByName error=%d\\n", errno) ;
return ERROR;
}
else
{
/*Type N_ABS=2,N_TEXT=4,N_DATA=6,N_BSS=8;N_EXT=1 */
taskEntry();
}
unld(hModule, 0);
printf("Module is unloaded!\n");
return OK ;
}
能够loadmodule,但是找不到symbol,是在vxworks 6.6下面实现的,谁知道该怎么解决吗