这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » vxWorks模块加载和自启动问题

共5条 1/1 1 跳转至

vxWorks模块加载和自启动问题

菜鸟
2006-10-16 18:49:21     打赏

我写了一段模块加载和自启动的代码,可是symFindByName()函数无法找到函数入口,哪位高手请指教原因出在哪里,谢谢!

#include "vxWorks.h"
#include "stdio.h"
#include "ioLib.h"
#include "loadLib.h"
#include "symLib.h"
#include "taskLib.h"
#include "nfsLib.h"
#include "nfsDrv.h"

void wxg_test(void);
extern SYMTAB_ID sysSymTbl;

int loadTest()
{
int fd = ERROR;
int status = ERROR;
MODULE_ID hModule;
FUNCPTR taskEntry = NULL;

SYM_TYPE Type;

fd = open("test.o",O_RDONLY,0);
if (fd==ERROR)
{
printf("can not open binary file\n");
return ERROR;
}
else
{
printf("binary file opened!\n");
}


hModule=loadModule(fd,LOAD_ALL_SYMBOLS);

close (fd);


status = symFindByName(sysSymTbl,"wxg_test",(char**)&taskEntry,&Type);%wxg_test为主函数入口,在test.o中
if (status==ERROR)
{
printf("symFindName error\n");
return ERROR;
}
else
printf("taskEntry=0x%x,type=%d\n",(int)taskEntry,(int)Type);



status = taskSpawn("test",100,0,30000,taskEntry,0,0,0,0,0,0,0,0,0,0);
if(status==ERROR)
{
printf("taskSpawn ERROR\n");
return ERROR;
}
return OK;


}




关键词: vxWorks     模块     加载     启动     问题    

菜鸟
2006-10-19 00:56:00     打赏
2楼

把Type改成指针类型的尝试一下!

也就是改成SYM_TYPE * Type;

然后symFindByName(sysSymTbl,"wxg_test",(char**)&taskEntry,Type);

这样子看看


菜鸟
2006-10-21 17:40:00     打赏
3楼
以下是引用seagull在2006-10-18 23:03:00的发言:

status = symFindByName(sysSymTbl,"wxg_test",(char**)&taskEntry,&Type);

改为

status = symFindByName(sysSymTbl,"_wxg_test",(char**)&taskEntry,&Type);


非常感谢,按你说的改了一下,问题解决了!谢谢![em01]

菜鸟
2006-10-21 17:42:00     打赏
4楼
以下是引用Happy_Angel在2006-10-18 16:56:00的发言:

把Type改成指针类型的尝试一下!

也就是改成SYM_TYPE * Type;

然后symFindByName(sysSymTbl,"wxg_test",(char**)&taskEntry,Type);

这样子看看

改了以后和以前都一样正确!


菜鸟
2006-11-17 04:48:00     打赏
5楼
为什么这么修改下就识别了?seagull兄能否说明一下!多谢!

共5条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]