专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > VxWorks

vxworks6.6中symFindByName无法找到执行函数的指针有关问题

发布时间:2010-06-14 16:52:13 文章来源:www.iduyao.cn 采编人员:星星草
vxworks6.6中symFindByName无法找到执行函数的指针问题
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函数出错。

------解决方案--------------------
探讨
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)
……

------解决方案--------------------
'pType': 如果是输入变量,肯定必须先赋值,没发现有赋值;
'sysSymTbl': 来自哪里?输入变量还是输出?如果是输入变量,有没有赋值?
'func1'确实存在于'rwerer.o'中吗?
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: