vxWorks5.4下加载.out文件的需要注意事项
2014-10-13 22:58
225 查看
最近在做vxWorks5.4下的项目,在其中一个需要进行动态加载使用c语言编写的.out文件时,使用loadModule函数加载相关的模块后,使用symFindByName查找用户的入口函数时,总是提示0x1c000001错误,经查找为无法找到此符号。使用如下的验证方式:
1.在shell下输入lkup "入口函数的名称",发现可以找到函数的入口地址。
2.在shell下直接输入入口函数的名称,同样可以直接运行此函数
查找vxWorks的编程手册和编程指南,以及网络上的关于vxWorks加载.out文件的方式,发现全部是使用如上的组合方式,且在编程指南的symlib和loadlib中的指南均如此,如此三番五次均未解,后来在symlib.h文件中发现有个symFindByCName, 使用此函数后发现调用成功,可以成功找到相应的函数入口地址,故而得解。原因可能是c++和c原因的函数在符号表中的生成方式不一样,c语言使用xxx的方式, 而c++则使用XXX_XXX_XXX...,后面为参数类型,vxWorks5,4下的此函数和vxWorks5.5不同即在此处。
关于target shell的一些问题,在用户进行现场验收时发现之前在使用gei0进行网络下载和调试时,target connect连接方式为end connect driver ,而在使用主板的后置网口进行调试时发现target shell连接不上,后改为networks connect方式后可以正常连接。且在shell下需要进行使用copy命令将本机的文件拷贝到目标机上时,需要添加target shell file system才能正确完成,至此,一个适于调试的环境便搭建成功。
1.在shell下输入lkup "入口函数的名称",发现可以找到函数的入口地址。
2.在shell下直接输入入口函数的名称,同样可以直接运行此函数
查找vxWorks的编程手册和编程指南,以及网络上的关于vxWorks加载.out文件的方式,发现全部是使用如上的组合方式,且在编程指南的symlib和loadlib中的指南均如此,如此三番五次均未解,后来在symlib.h文件中发现有个symFindByCName, 使用此函数后发现调用成功,可以成功找到相应的函数入口地址,故而得解。原因可能是c++和c原因的函数在符号表中的生成方式不一样,c语言使用xxx的方式, 而c++则使用XXX_XXX_XXX...,后面为参数类型,vxWorks5,4下的此函数和vxWorks5.5不同即在此处。
关于target shell的一些问题,在用户进行现场验收时发现之前在使用gei0进行网络下载和调试时,target connect连接方式为end connect driver ,而在使用主板的后置网口进行调试时发现target shell连接不上,后改为networks connect方式后可以正常连接。且在shell下需要进行使用copy命令将本机的文件拷贝到目标机上时,需要添加target shell file system才能正确完成,至此,一个适于调试的环境便搭建成功。
相关文章推荐
- server 端上传大文件需要注意事项
- 套用国嵌例程的2440init.s文件需要注意的事项
- mybatis中xml文件编写时需要注意的事项
- 使用Flex加载stage3D文件时需要注意的问题
- Java中对于文件读取写入需要注意的事项
- mybatis中xml文件编写时需要注意的事项
- 文件上传所需要注意的常见事项
- easy UI使用include<>包含页面时以及加载js文件所注意的事项。
- QT 动态加载UI文件注意事项
- Struts2的配置文件加载顺序及常用常量名及更改方法、注意事项
- HttpFileCollection 多文件上传的实现以及需要注意的事项
- flex application中预加载配置文件需要注意的问题
- zip,collections.defaultdict lambda,csv.DictReader用法简介,及subprocess.call注意事项(需要使用chmod将待执行的文件变为可执行)
- php cli模式和浏览器访问下加载php.ini文件的注意事项[架构篇]
- 使用webpack打包.css文件时需要注意的事项
- Java动态加载第三方jar包中的类需要注意的事项
- Java使用form表单上传文件10大需要注意事项
- QT 动态加载UI文件注意事项
- [原创]QT动态加载UI文件注意事项
- 使用静态库时需要注意的事项(gcc下程序调用静态库编译命令:主文件必须在静态库前面!)