HiSpark IPC DIY摄像头
HiSpark IPC DIY摄像头安装说明
HiSpark IPC DIY摄像头编译烧录
安装说明:
下面资源中有安装及使用说明,所以在这就强调安装中的细节,在配件包中有扬声器,麦克风,FPC天线,按照这个顺序安装,安装扬声器的时候一定要对准再贴牢固,FPC天线也是,不然粘歪了不好调整。
编译烧录:
我个人在做这个用的HiTool,里面芯片选择中没有Hi3518ev300,然后我百度了一下,下面是方案:
3518ev300简介
LiteOS与linux大致相通,不过还是有很多的不同点:
就比如说Linux下面加载驱动是insmod xxx.ko,而LiteOS则是sdk_init.c 中显式调用驱动的初始化;
函数。还有就是linux一般使用dts文件可以直接配置管脚的频率,而LiteOS只能通过设备节点方式去设置;
uboot起始地址Linux0x42000000,LiteOS0x40000000;
以及一些gpio的控制方式,外设挂载方式等。
编译环境搭建
1.编译链安装—arm-himix100-linux.tgz
cp到Ubuntu:
tar -xvf arm-himix100-linux.tgz 解压
cd arm-himix100-linux 进入
./arm-himix100-linux.install 安装
source /etc/profile 生效
2. SDK解压----Hi3518EV300_Hi3861L_SHC_V5.0.0.1.tgz
tar -xvf Hi3518EV300_Hi3861L_SHC_V5.0.0.1.tgz 解压
cd Hi3516EV200_SDK_V5.0.2.0 进入
./sdk.unpack 解包
编译
1.目录结构
|-- drv # drv 目录
| |-- extdrv # 板级外围驱动源代码
| |-- interdrv # mipi,cipher 等驱动源代码
|-- mpp # 存放单核媒体处理平台的目录
| |-- component # mpp 组件
| | |-- isp # isp 相关组件
| |-- include # 头文件
| |-- init # 内核模块的初始化源代码
| |-- lib # 音视频媒体库文件
| |-- sample # 样例源代码
| |-- tools # 媒体处理相关工具
| |-- cfg.mak # mpp 配置文件
| |-- Makefile.param # mpp 全局编译选项
| |-- Makefile. liteos.param # mpp liteos 编译选项
|-- osal # 存放操作系统适配层的头文件和源文件的目录
| |-- include # 存放操作系统适配层的头文件的目录
| |-- liteos # 存放 liteos 系统适配层的源文件的目录
|-- osdrv # 存放操作系统及相关驱动的目录
| |-- opensource # opensource 源代码
| | |-- uboot # uboot 源代码
| |–platform
| | |-- liteos # Huawei LiteOS 内核源代码
| |-- pub # 编译好的镜像、工具、drv 驱动等
| |-- tools # 工具源代码
| |-- readme_cn.txt # osdrv 中文使用说明
| |-- readme_en.txt # osdrv 英文使用说明
| |-- … #
| |-- Makefile # osdrv Makefile
|-- package # 存放 SDK 各种压缩包的目录
| |-- drv.tgz # drv 压缩包
| |-- mpp.tgz # 媒体处理平台软件压缩包
| |-- osal.tgz # 操作系统适配层源码压缩包
| |-- osdrv.tgz #操作系统源码压缩包
| |-- boot # 可供 FLASH 烧写的映像文件
|-- scripts # 存放 shell 脚本的目录
|-- sdk.cleanup # SDK 清理脚本
|-- sdk.unpack # SDK 展开脚本
**
2.整体编译
cd Hi3516EV200_SDK_V5.0.2.0/osdrv
修改目标芯片,这种方式可以一次编译出u-boot-hi3518ev300.bin与sample.bin。
3.Listeos编译
单独编译liteos (以hi3516ev200为例):
cd osdrv/platform/liteos
tar -xf liteos.tgz
cd liteos/
cp tools/build/config/hi3518ev300_defconfig .config
make menuconfig (如有需要,可根据需求进行功能配置)
4.uboot编译
也可以单独编译
make ARCH=arm CROSS_COMPILE=arm-himix100-linux- hi3518ev300_defconfig
5.输出
编译之后在pub目录生成对应u-boot-hi3518ev300.bin与sample.bin。
u-boot-hi3518ev300.bin:uboot文件
sample.bin:LiteOS中这个文件我理解为Linux版本的kernel+rootfs
6.MPP示例编译
在编译 sample 之前请先编译 liteos 内核,MPP 业务和 Huawei LiteOS 一起生成烧到单板的 sample_xxx.bin 文件,详见 mpp/sample/liteos/app_init.c 中的代码。
cd Hi3516EV200_SDK_V5.0.2.0/mpp/sample/venc
sample_venc.bin:一个venc的demo工程
烧录
1.LIteOS下载烧录
这里烧录上面编译好的u-boot-hi3518ev300.bin与sample.bin。
启动参数:
setenv bootcmd ‘sf probe 0;sf read 0x40000000 0x100000 0x900000; go 0x40000000’
setenv bootargs mem=512M console=ttyAMA0,115200 clk_ignore_unused rwroot=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(u-boot.bin),9M(kernel),6M(rootfs.jffs2)
saveenv
启动参数保存重启,可以看到liteos成功启动。
进入LiteOS
2.linux系统烧录
这里有别于之前的Linux的系统,Linux有要烧录uboot,kernel,roots三个文件
启动参数:
setenv bootargs ‘mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rw rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),4M(kernel),10M(rootfs)’
setenv bootcmd ‘sf probe 0; sf read 0x42000000 0x100000 0x400000;bootm 0x42000000’
saveenv