海思平台异构系统框架(Linux+liteos)运行MPP业务
异构模式多核业务部署方案:
A53UP作为媒体从核,跑liteos系统,只处理MPP相关的业务。
在此方案中:
1.A53UP上运行liteos,对应的媒体处理驱动文件放在发布包mpp/out/liteos/single目录中。
2.A73BL上运行的Linux big.little OS,对应的媒体处理驱动文件放在发布包mpp/out/linux/big-little目录中。
现在我在hi3559av100上运行linux+liteos双系统架构, 按照文档《Hi3559A╱C V100 SDK 安装及升级使用说明.pdf》上的操作,在完成编译烧写,然后启动后,开始执行5.4运行MPP业务的步骤:
如果在双系统中也是直接按照上述的步骤来的话,在执行./load3559av100_multicore -i -sensor0 imx334 -sensor1 imx334时就会出错,kernel就会崩溃。终端打印出异常接管的信息.
从5.4的步骤来看应该是单Linux系统架构的执行的步骤,不像是异构AMP系统的架构,毕竟mpp的业务是在liteos上有运行的。在Linux端的驱动ko文件也应该是mpp/out/linux/big-little/ko目录下的,而不是文档中指的mpp/out/linux/multi-core/ko下面的。
如果是上述的理解,在执行完ko文件的插入后,liteos端游如何启动运行MPP的vio业务呢?是否是通过sharefs将sample_vio传入到liteos端在执行./sample_vio 0 0?本人试过,会出现段错误的错误。
通过和代理商的FAE沟通后,mpp的sample算是运行起来了。现记录如下:
如果是异构系统的话,Linux端是不需要加载ko文件的,当然也不需要按照上面5.4的操作进行。只需要在mpp下面sample中使用make lite就可以在各自的目录下面编译出各自的sample_XXX.bin文件。在u-boot中使用tftp将生成的sample_XXX.bin liteos镜像文件烧写到a53端,然后reset运行,使用virt-tty a53进入liteos端,直接执行sample。就可以执行相应的mpp sample了。