void runModule()
{
STATUS status=ERROR;
int fd;
MODULE_ID hModule ;
FUNCPTR taskEntry=NULL;
SYM_TYPE * pType ;
if ((fd = open("rwerer.o", O_RDONLY, 0)) < 0)
{
printf("\nCannot open memory device.\n");
goto done;
}
if ((hModule=loadModule(fd,LOAD_ALL_SYMBOLS ))==NULL)
{
printf("loadModule error = 0x%x.\n",errno) ;
goto done;
}
status = symFindByName(sysSymTbl,
"func1",
(char **)&taskEntry,pType );
if (status==ERROR)
{
printf("symFindByName error=%d\\n", errno) ;
goto done;
}
}
这个函数在shell中可以执行。但是在usrAppInit 中调用报错。
发现是symFindByName函数出错。
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
'pType': 如果是输入变量,肯定必须先赋值,没发现有赋值;
'sysSymTbl': 来自哪里?输入变量还是输出?如果是输入变量,有没有赋值?
'func1'确实存在于'rwerer.o'中吗?