调试vxworks loadModule失败

时间:2019-07-17 15:16:29

标签: module embedded vxworks loadmodule

我使用 DIAB 工具链在 MPC5200B 上有一个没有文件系统的VxWorks Image Project项目。
我需要从闪存动态加载模块。

我在堆栈char myTemporaryModuleData[MAX_MODULE_SIZE]上分配了内存
并用Flash中的模块数据填充它。
(检查二进制数据是否完整)

然后我创建一个memDevice('/mem/mem01', myTemporaryModuleData, moduleReadLength)
打开伪流int fdModuleData = open("/mem/mem01", O_RDONLY, 777);

当我运行int mId = loadModule(fdModuleData, LOAD_ALL_SYMBOLS);
时 运行loadModule();后在控制台中看不到任何内容
但是mId = 0表示失败:(。
getErrno()返回0x3D0004(S_objLib_OBJ_TIMEOUT)

注意:失败并不需要很长时间=>超时吗?

  1. 我尝试用简单的void foo() { printf(...); }模块替换该模块,但仍然失败,并出现相同的问题。

  2. 尝试加载.out而不是.o

不幸的是,什么也没让我无所作为,
我怎么知道导致它失败的原因? (日志,last_error,我应该检查的任何内容?)

1 个答案:

答案 0 :(得分:0)

发现它。 很快,这是从闪存读取数据的错误。

我能贡献的是memDrv设备中的'loadModle()'是可行的。