背景:目的是为了分别在海思的demo板和公司自己的板子上运行相同的sample,来对比功耗。
海思demo板:
- 烧录uboot、kernel、rootfs
为了节省时间demo板直接使用sdk里编译好的镜像文件,在Hi3519A_V100R001C02SPC020\Hi3519AV100R001C02SPC020\01.software\board\Hi3519AV100_SDK_V2.0.2.0\Hi3519AV100_SDK_V2.0.2.0\smp_image_glibc目录下,注意文件系统使用rootfs_hi3519av100_2k_4bit.yaffs2
烧写步骤按照Hi3519AV100 SDK 安装及升级使用说明.pdf 文档的2.1.2小节来就可以了
2.配置板子的网络(要先接网线,哈哈)
3.使用nfs文件系统进行开发
mount -t nfs -o nolock -o tcp -o rsize=32768,wsize=32768 xx.xx.xx.xx:/your-nfs-path /mnt
4.也可以直接用tftpd把需要的文件下载到板子里,执行(注意:这里不能用mksquashfs ./venc ./app-rs -comp xz来制作烧录程序,是因为demo板的文件系统类型不一样,可以用cat /proc/filesystem来看,但是它的文件系统是可读写的,所以可以直接下载到/mnt下手动执行)
5.开启telnet服务
telnetd&
6.编译运行sample
将mpp目录拷贝到nfs下
cd到sample目录下,make clean,make
到串口加载驱动:cd到ko目录下,./load3519av100 -i -sensor0 imx334
运行:cd到sample的venc目录下,./sample_venc 0
自己的板子:
1.烧录自己的uboot、kerne、rootfs
2.因为板子的sensor是imx415,所以不能直接用sdk里的sample,进行修改:
想法一:在sample里模仿imx334添加imx415,经过一番折腾,发现要改的地方实在是有点多,玩不下去了。
想法二:套用imx334的链路,修改如下图:
在可以看到,我把imx334的库注释了,加了imx415的库,这样加载sensor0时实际上就是加载imx415了。不过注意要把imx415的静态库放入lib目录下
3.编译sample
4.可以用挂载,也可以制作成文件系统烧录进分区,命令是:mksquashfs ./venc ./app-rs -comp xz
5.配置网络
6.加载驱动:注意是在/moudle目录下,./load3519av100 -i -sensor0 imx415
7.执行:././sample_venc 0
注意!!!:当下载或烧录到板子上运行时,会提示
这时并没有编码:
这是因为这个文件没有压进去:
解决办法:因为现在我只是让sample跑起来就可以了,并不需要保存什么视频帧数据,所以我们可以把sample中的保存帧数据的地方屏蔽掉,重新编译运行即可