我有一个VxWorks图像项目,没有文件系统上的MPC5200B,使用DIAB工具链。
我需要从flash动态加载一个模块。
我在堆栈char myTemporaryModuleData[MAX_MODULE_SIZE]上分配了内存
并将来自Flash的模块数据填充到其中。
(检查二进制数据是否完整)
然后我创建了一个memDevice('/mem/mem01', myTemporaryModuleData, moduleReadLength)
打开psuedo流int fdModuleData = open("/mem/mem01", O_RDONLY, 777);
当我运行int mId = loadModule(fdModuleData, LOAD_ALL_SYMBOLS);时
运行loadModule();后,控制台中没有看到任何内容
但是表示失败的mId = 0:
getErrno()返回0x3D0004 (S_objLib_OBJ_TIMEOUT)
注意:=>超时不需要很长时间就可以了?
void foo() { printf(...); }模块替换这个模块,但是同样的问题还是失败了。.out而不是.o不幸的是,我什么也没得到,
我怎么知道是什么导致它失败的?(日志,last_error,有什么需要检查的吗?)
发布于 2019-07-19 19:38:33
找到了。显然,这是一个错误的数据读取从闪存。
我可以贡献的是,来自memDrv设备的‘memDrv()’是可能的,而且可以工作。
https://stackoverflow.com/questions/57079184
复制相似问题