TI中文支持网
TI专业的中文技术问题搜集分享网站

DM6446:打开内核的previewer模块后,运行上层程序出现错误“”CMEM Error“”

DM6446:打开内核的previewer模块后,运行上层程序出现错误

具体错误信息如下:

davinci_resizer davinci_resizer.2: Bad command Value 

CMEM Error: getVersion: Failed to retrieve version from driver: -1.
CMEM Error: init: major version mismatch between interface and driver.
CMEM Error: needs driver version 0x2300000, got 0xffffffff
davinci_previewer davinci_previewer.2: Bad command Value

davinci_previewer davinci_previewer.2: Bad command Value 

如果不打开previewer模块,便不会出现上述错误。

有劳指教。

————————————————————–

另:版本信息如下:

mv_pro_5.0

dvsdk_2_00_00_22

linux sat 4.4.0-92-generic

Chris Meng:

zguodavinci_resizer davinci_resizer.2: Bad command Value

先定位一下这个错误的原因吧。驱动都有源码的,加打印看看。

user4226330:

回复 Chris Meng:

1. 加载previewer模块后,上层只执行dvsdk的CERuntime_init()函数情况下。 在resizer和previewer相应”Bad command Valu"处打印跟踪的_IOC_TYPE(cmd)是NULL.

2. 如在内核配置采用手动加载previewer模块,

     如果在cmem模块驱动后再insmod previewer,不会出现上述错误,但dev/previewer的open没报错,执行相关ioctl操作却均无返回,根据所加打印信息均无输出,该previewer全部函数应该都没执行;

     如果在cmem模块驱动前insmod,则仍出现标题及其帖子中的错误。

Chris Meng:

回复 user4226330:

你好,

dvsdk默认的demo都有使用这些驱动的,你的代码有参考demo来写么?

user4226330:

回复 Chris Meng:

你好,我是参照dvsdk的例子中的“capture_example.c” 来写的,用到里面的InitPreviewer()和DoPreview函数。

user4226330:

回复 Chris Meng:

你好,另外,我单独测试dvsdk的previewer_example的测试程序,该例程报错是error in setting parameters,而在内核ioctl跟踪不进去,信息无法打印,类似前面所述的ioctl貌似没有进去。 而内核设备是已经有的,用cat /dev/davanci_previewer是有信息的。

Chris Meng:

回复 user4226330:

你好,

你使用的是什么硬件?是TI的EVM么?如果是自己的硬件,有相关的视频输入么?

user4226330:

回复 Chris Meng:

是自己搭建的硬件,前版本已经批量产过。

视频采集等线程已经关闭。

目前单独跑previewer例程已通过,之前是因为设备号冲突造成无法访问。

但是,将该例程加入到arm端的app,也就是app只有previewer的例程,然后按照现有codecengine架构进行编译,能对previewer进行open和ioctl,但是不能进入mmap,内核打印信息显示没有进入到mmap。

赞(0)
未经允许不得转载:TI中文支持网 » DM6446:打开内核的previewer模块后,运行上层程序出现错误“”CMEM Error“”
分享到: 更多 (0)