您的位置:首页 > 其它

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才能正确完成,至此,一个适于调试的环境便搭建成功。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: