这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » VxWorks系统函数loadModule()程序示例[转帖]

共2条 1/1 1 跳转至

VxWorks系统函数loadModule()程序示例[转帖]

菜鸟
2003-07-03 21:51:40     打赏
铁峰:东北大学 计算机专业毕业。精通VxWorks系统编程,Win32系统编程,TCP/IP, SNMP协议。在嵌入式系统上开发了许多非常有价值的程序。 ---------------------------------------------------------------------------------------------------------------------- loadModule()在VxWorks中用来加载.o,.out文件,然后用moduleFindByName()来找到符号表中固定入口函数所在的位置。 可以参考usrLib.h和moduleLib.h来获得详细信息。 #include #include #include #include #include #include #include #include extern SYMTAB_ID sysSymTbl ; int loadTestModuleAndRun() { int fd = ERROR ; int status = ERROR ; MODULE_ID hModule ; FUNCPTR taskEntry = NULL ; SYM_TYPE * pType ; fd = open("/sd0/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 */ printf("taskEntryr=0x%x, type=%d\n.", (int)taskEntry,(int)*pType); } status = taskSpawn("test",100,0,30000,taskEntry,      0,0,0,0,0,0,0,0,0,0) ; if (status==ERROR) { printf("taskSpawn error=%d\n",errno) ; return ERROR; } return OK ; }



关键词: VxWorks     系统     函数     loadModule         

菜鸟
2003-07-08 02:34:00     打赏
2楼
[quote][b]以下是引用[i]freetalk在2003-7-7 10:06:00[/i]的发言:[/b] 我的文件系统肯定是初始化成功的。 systembel是什么东东? 在哪里加? [/quote][upload=jpg]UploadFile/20037718334365679.jpg[/upload]

共2条 1/1 1 跳转至

回复

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