引用 5 楼 zhangyinxun 的回复:
引用 3 楼 lpangbing 的回复:
有方法,把程序做成可加载的模块
这个就是我们现在的一般方法啊。在一个可加载的工程里做应用程序,然后编译成.a文件,再放在BSP里面联编成新的BSP,再烧进板子里。
我现在的想法是,应用程序是另外单位的人做的,我们只负责BSP。这样,他们如果有修改应用程序,不需要我们的配合就可以自己把板子里的应用程序更新。
所以,我想能不能把应用程序放在FLA……
你这种是静态连接的不是可加载的哈,可加载的是.out格式的,编译的规则(rule)是.out,不是那个archive的
在vxworks配置选项里边添加development tool components->loader components组件
在编译的时候就可以看到有生成符号表的过程:
F:\Tornado22pentium\host\x86-win32\bin\makeSymTbl.bat pentium tmp.o symTbl.c
你提供一个系统API给你的其他单位的人,通过某种方法(比如命令)加载对应的.out文件,这是一个ELF格式的文件,解析它,根据符号表把它调用到的函数都填成实际的地址,这样就可以运行了。
这只是一个大致的过程,具体你可以参考loadAoutLib.c里边的代码