hisi3531a 使用 gpio模拟 spi 升级fpga,在254上打包升级包时,调用.sh出错

Hi3531A_SDK_V1.0.4.0 venc实例程序运行报错,错误码0xa0108010

运行日志如下:
/mnt/Hi3531A_SDK_V1.0.4.0/mpp/sample/venc # ./sample_venc 0
[SAMPLE_COMM_VI_Start]-719: Start VI Dev 0 0!
[SAMPLE_COMM_VI_StartDev]-607: HI_MPI_VI_SetDevAttr failed with 0xa0108010!
[SAMPLE_COMM_VI_Start]-723: SAMPLE_COMM_VI_StartDev failed with 0xffffffff
[SAMPLE_VENC_720p_CLASSIC]-136: start vi failed!
program exit abnormally!

/mnt/Hi3531A_SDK_V1.0.4.0/mpp/sample/venc # cat /dev/logmpp
<3>[ vi] [Func]:ViuDevIoctl [Line]:4259 [Info]:<3>[ vi] ERR IOCTL CMD 0x40044922
<3>[ vb] try to destroy a kernel pool!
<3>[ vb] try to destroy a kernel pool!

查看《HiMPP V3.0 媒体处理软件开发参考.pdf》的3-120,错误码解释如下:
0xA0108010 HI_ERR_VI_SYS_NOTREADY 视频输入系统未初始化

/dev/logmpp提示 ERR IOCTL CMD 0x40044922,请问有谁遇到过这个问题吗?

在组织大神的帮助下,此问题已解决:
原因是SDK版本和设备中安装的ko的版本不一致导致。

辨别方法:
通过下面的命令获取设备上面sdk的版本
~ # cat /proc/umap/vi

[VIU] Version: [Hi3531A_MPP_V1.0.2.0 B040 Release], Build Time: [Dec 19 2015, 17:42:33]

如果这里使用的sdk版本和设备安装的不匹配可以通过cat /etc/init.d/S80network获取ko的安装参数,例如:

ifconfig lo 127.0.0.1
cd /tp2813_ko/
./load3531a -a -ad 2823 -osmem 128
cd /
insmod tp2802_1.ko

~ # cat /etc/init.d/S80network

然后将设备的load3531a cp到你sdk的环境中
cp /tp2813_ko/load3531a /mnt/Hi3531A_SDK_V1.0.4.0/mpp/ko
cd /mnt/Hi3531A_SDK_V1.0.4.0/mpp/ko
./load3531a -r //在把sdk中的ko安装到系统,不要使用sdk中的load3531a来安装。
./load3531a -a -ad 2823 -osmem 128 //重新安装ko

安装之后,可以使用下面的命令查看版本是否匹配。
/mnt/Hi3531A_SDK_V1.0.4.0/mpp/ko # cat /proc/umap/vi

[VIU] Version: [Hi3531A_MPP_V1.0.4.0 B030 Release], Build Time: [Jan 13 2017, 17:17:09]

版本匹配之后,这个错误就会消失了。
http://bbs.ebaina.com/forum.php?mod=viewthread&tid=38698

升级问题的板子上位置:

/opt/app/driver/run.sh
./load3531a -i 是什么意思?
应该是加载3531a 相关 内核ko 。

你可能感兴趣的:(linux)