调试 vxworks loadModule 失败

debugging vxworks loadModule failure

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

我在堆栈上分配了内存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);
在 运行ning loadModule();
之后在控制台中没有看到任何东西 但是 mId = 0 表示失败:(.
getErrno() 返回 0x3D0004 (S_objLib_OBJ_TIMEOUT)

注意:没多久就失败了 => 超时?

  1. 我尝试用一​​个简单的 void foo() { printf(...); } 模块替换模块,但仍然因同样的问题而失败。

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

不幸的是,我一无所获,
我怎么知道是什么导致它失败? (日志,last_error,我应该检查什么?)

找到了。 显然是从flash中读取的数据有误

我可以贡献的是 'loadModule()' 来自 memDrv 设备是可能的并且可以工作。