这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 目标模块加载后如何在系统中自动运行

共5条 1/1 1 跳转至

目标模块加载后如何在系统中自动运行

菜鸟
2006-10-26 23:12:55     打赏
目标模块(*.out),在usrAppInit.c中用loadModule(),加载后如何自动运行模块中的函数.



关键词: 目标     模块     加载     何在     系统     自动     运行    

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

菜鸟
2007-03-08 16:38:00     打赏
3楼
ddd

菜鸟
2007-03-23 04:45:00     打赏
4楼

loamoulde成功后,用symFindByName找到符号表地址。写给个例子给你。你的想法很好。

char * entry = NULL;

SYM_TYPE * pType = NULL;

char * fn = "myMouldFileName"

char * symEntry = "myMainFunction" /* 你想执行的那个函数名 */

char * entry = NULL; /* 一个指针,随便啥类型的指针都行啦,用来存放你的函数加载到内存中后的内存地址 */

fd = open(fn,O_RDONLY,0); /* 你的加载模块,在你的CF卡或者Flash中的,必要的话使用绝对路径,加上文件夹 */

hmodule = loadModule(fd,LOAD_ALL_SYMBOLS); /* 加载模块中的符号表 */

/* find the start entry */
status = symFindByName(sysSymTbl,symEntry,&entry,pType); /* 从系统符号表中找出你的函数的内存地址,也就得到了一个函数指针嘛。 */

status = ((FUNCPTR)entry)(args); /* 执行这个函数指针指向的函数,后面的参数就填你的函数原型中的需要的参数,推荐用整型参数,好对齐。 */

大概就这样,记得成品代码中要加上错误判断啊。

不懂再发个人消息给我。


菜鸟
2007-03-24 22:28:00     打赏
5楼

1.open

2.loadModule

3.symFindByName

4.taskSpawn or function call


共5条 1/1 1 跳转至

回复

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