海思开发笔记:(六)海思Hi3519A编译运行MMP样例程序

1、编译sample程序
cd /home/hisilicon/3519A/Hi3519AV100_SDK_V2.0.2.0/smp/a53_linux/mpp/sample
source /etc/profile
make
2、编译hisilicon驱动

SDK中自带的驱动加载时有报错,猜测可能是toolchain更新的原因,偿试重新编译驱动
/ko # ./load3519av100 -i
mmz_start: 0x32000000, mmz_size: 1760M
sys_config: loading out-of-tree module taints kernel.
==========sensr0: imx334==========
==========sensr1: imx334==========
==========sensr2: imx334==========
==========sensr3: imx334==========
==========sensr4: imx334==========
hi_osal: Unknown symbol __kunmap_atomic (err 0)
hi_osal: Unknown symbol kmap_atomic (err 0)
insmod: can't insert 'hi_osal.ko': unknown symbol in module, or unknown paramete
r
******* Error: There's something wrong, please check! *****
重新编译驱动后再次加载时正常
/ko # ./load3519av100 -i
mmz_start: 0x32000000, mmz_size: 1760M
insmod: can't insert 'sys_config.ko': File exists
Module himedia: init ok
Hisilicon Media Memory Zone Manager
hi_osal 1.0 init success!
hi3519av100_base: module license 'Proprietary' taints kernel.
Disabling lock debugging due to kernel taint
load sys.ko for Hi3519AV100...OK!
load tde.ko for HI3519AV100...OK!
load region.ko for Hi3519AV100...OK!
load gdc.ko for Hi3519AV100...OK!
load vgs.ko for Hi3519AV100...OK!
load dis.ko for Hi3519AV100...OK!
load vi.ko for Hi3519AV100...OK !
ISP Mod init!
load vpss.ko for Hi3519AV100...OK!
load avs.ko for Hi3519AV100...OK!
load vo.ko for Hi3519AV100...OK!
load hifb.ko OK!
load chnl.ko for Hi3519AV100...OK!
load vedu.ko for Hi3519AV100...OK!
load rc.ko for Hi3519AV100...OK!
load venc.ko for Hi3519AV100...OK!
load h264e.ko for Hi3519AV100...OK!
load h265e.ko for Hi3519AV100...OK!
load jpege.ko for Hi3519AV100...OK!
load jpegd.ko ....OK!
load hi_vfmw.ko ....OK
load vdec.ko ....OK
load ive.ko for Hi3519AV100...OK!
<ipcm> <ipcm>
ipcm detecting thread running!
##message recv thread run
load nnie.ko for Hi3519AV100...OK!
load dsp.ko for Hi3519AV100...OK!
load dpu_rect.ko for Hi3519AV100...OK!
load dpu_match.ko for Hi3519AV100...OK!
load hi_piris.ko OK!!
Load sensor_spi.ko for Hi3519AV100...OK !
insert audio
load mipi_rx driver successful!

sudo su
source /etc/profile
# 编译文件中配置的内核文件目录名为linux-4.9.y-smp,实际编译内核时目录为linux-4.9.y,会造成编译驱动时找不到内核文件报错,解决办法创建软链接
cd /home/hisilicon/3519A/Hi3519AV100_SDK_V2.0.2.0/osdrv/opensource/kernel
ln -s linux-4.9.y linux-4.9.y-smp
cd /home/hisilicon/3519A/Hi3519AV100_SDK_V2.0.2.0/smp/a53_linux/drv/interdrv
make
cd /home/hisilicon/3519A/Hi3519AV100_SDK_V2.0.2.0/smp/a53_linux/drv/extdrv
make
cd /home/hisilicon/3519A/Hi3519AV100_SDK_V2.0.2.0/smp/a53_linux/osal/linux/kernel/
make
# 编译上述所有驱动后发现ko目录里没有mpp各子功能模块的驱动
cd /home/hisilicon/3519A/Hi3519AV100_SDK_V2.0.2.0/smp/a53_linux/mpp/component/hifb
make
cd /home/hisilicon/3519A/Hi3519AV100_SDK_V2.0.2.0/smp/a53_linux/mpp/component/isp
make
cd /home/hisilicon/3519A/Hi3519AV100_SDK_V2.0.2.0/smp/a53_linux/mpp/component/pci
make 
cd /home/hisilicon/3519A/Hi3519AV100_SDK_V2.0.2.0/smp/a53_linux/mpp/obj
make
# 与SDK自带的ko文件比较,还差4个驱动没有编译,但是己不影响 ./load3519av100 -i 正常运行
# hi_virt-tty.ko hi_ipcm.ko hi3519av100_motionfusion.ko hi3519av100_gyrodis.ko
# 将编译输出的ko文件目录拷备至开发板rootfs
cp /home/hisilicon/3519A/Hi3519AV100_SDK_V2.0.2.0/smp/a53_linux/mpp/ko/* /home/hisilicon/3519A/nfs/rootfs/ko
3、运行样例程序

加载驱动后直接运行样例程序有报错,提示缺少库文件
./sample_tde 1
./sample_tde: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
查看所以依赖库文件,对比rootfs/lib目录,发现少了libstdc++.so.6,如果只拷备此库文件,再次运行会提示缺少另外的库文件,应该是此库文件还依赖其它库文件,所以需将对应的目录的所有库文件复制到开发板rootfs
arm-himix200-linux-objdump -x sample_tde | grep NEEDED
NEEDED libpthread.so.0
NEEDED libm.so.6
NEEDED libdl.so.2
NEEDED libstdc++.so.6
NEEDED libc.so.6
NEEDED ld-linux.so.3
使用find / -name libstdc++.so.6 在交叉工具链中查找对应的库文件,将相应目录的库文件全部拷入rootfs/lib/a53_softfp_neon-vfpv4/目录中

# 开发环境
cp -R /opt/hisi-linux/x86-arm/arm-himix200-linux/arm-linux-gnueabi/lib/a53_softfp_neon-vfpv4/* /home/hisilicon/3519A/nfs/rootfs/lib/a53_softfp_neon-vfpv4/
cp 
# 3519开发板,此处需注意sample_tde对应的res文件夹需一起复制到rootfs,否则运行时会提示res中的资源文件找不到
./sample_tde 1
# hdmi输出可正常显示多个图标转动
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容