版权所有 © 上海海思技术有限公司
前 言..........................................i
目 录..........................................iv
1 概述.........................................1
1.1 SDK 软件架构简述.............................1
2 开发环境搭建...................................5
2.1 概述........................................5
2.2 Linux 服务器开发环境搭建 ..................... 6
2.2.1 发布包使用的 Linux Server 版本..............6
2.2.2 网络环境搭建................................ 6
2.2.3 软件包安装 ................................. 6
2.2.4 交叉编译工具链安装............................7
2.2.5 安装 mtd-utils 工具依赖的组件 ................ 7
2.2.6 安装 ffmpeg 工具............................. 8
2.3 Windows PC 开发环境搭建......................... 8
2.3.1 安装超级终端.................................. 8
2.3.2 安装开发工具................................... 8
2.3.3 安装 HiTool ..................................8
2.4 Demo 单板准备................................... 9
2.4.1 Demo 单板及相关物料准备..........................9
2.4.2 单板接口介绍............................ 9
2.4.3 单板设置 ................................. 9
3 SDK 安装准备工作..................................10
3.1 安装 SDK........................................ 10
3.2 SDK 目录结构............................................ 10
3.3 从第三方网站上获取内核源码........................... 11
3.4 从第三方网络上获取工具类源码.......................... 11
3.5 从第三方网站上获取第三方源码..........................13
3.6 字库适配...................................... 14
3.6.1 矢量字库来源............................ 14
3.6.2 转换 ttf 为 ubf 格式................................ 15
3.6.3 reference Sample 字库适配.......................... 16
3.6.4 HiGV_Sample 字库适配................................17
3.6.5 OSD 字库适配..................................... 17
3.7 免责声明............................................ 17
4 SDK 编译.........................................18
4.1 SDK 编译介绍........................................ 18
4.2 SDK menuconfig.............................. 19
4.2.1 芯片及工具链选择.......................................19
4.2.2 中断部署配置......................................... 19
4.2.3 产品形态选择............................................. 20
4.2.4 单板选择 .............................................. 20
4.2.5 Flash 配置选择.................................... 20
4.2.6 Sensor 配置选项..................................... 20
4.2.7 编译选项选择............................................... 21
4.2.8 系统内存配置........................................... 22
4.2.9 AI 配置选择 ............................................. 23
4.2.10 外设配置选择.............................................23
4.2.11 通用功能特性选择..................................... 24
4.3 一键编译 SDK............................................ 25
4.4 osdrv 编译................................................. 26
4.4.1 u-boot 编译.............................................. 27
4.4.2 Linux 内核编译................................................... 27
4.4.3 Rootfs 编译..................................................... 28
4.4.4 Huawei LiteOS............................................... 35
4.5 MPP 编译.................................................... 36
4.6 middleware 编译...................................................... 37
4.7 reference 编译....................................................37
5 SDK 镜像烧写.....................................................39
5.1 概述.................................................... 39
5.2 单板镜像典型布局...................................................39
5.2.1 HiTool 烧写 ...................................................... 40
5.2.2 SD 卡烧写 ...................................................... 44
6 SDK 单板调试运行..................................................46
6.1 调试前准备.................................................... 46
6.2 USB 网口的搭建.................................................. 46
6.2.1 USB Device 网口操作示例........................................46
6.2.2 Windows 10 系统 USB 转网口驱动配置............................ 47
6.2.3 PC 桥接操作示例................... 52
6.3 middleware sample 调试.................................... 56
6.3.1 ndk sample 源码结构 .........................................56
6.3.2 ndk sample 编译 ............................................ 56
6.3.3 ndk sample 运行 ........................................... 56
6.3.4 middleware sample 源码 ........................................... 57
6.3.5 middleware sample 编译 .........................................58
6.3.6 middleware sample 运行 ........................................... 59
6.4 reference app 调试.......................................... 59
6.4.1 单串口调试方式........................................ 59
6.4.2 双串口调试方式.......................................... 60
6.4.3 USB 转串口调试方式.........................................61
6.4.4 Sample 调试方式......................................... 61
6.5 PQ 调试................................... 61
6.5.1 PQCtrol+行车 REF 模式启动板端程序............................. 62
6.5.2 PQCtrol+DV REF 模式启动板端程序 .............................. 62
6.5.3 PQCtrol+PQStream+REF 模式启动板端程序 ......................... 63
6.5.4 PQ 调试网络环境准备............................................63
6.5.5 启动 PC 端程序............................................... 64
6.5.6 通过 Rtsp 点播码流 ......................................... 64
本文档一共72页,内容太多就不放了,和其他嵌入式平台开发环境的搭建差不多,只是海思自己有交叉编译链arm-himix100-linux,不是arm-linux-gcc,海思提供的二次开发手册很齐全,具体看我上一篇文章。
Hi3559V200为双系统:Linux、Liteos
HiMobileCam SDK 是海思 Mobile Camera SoC 芯片配套的软件平台,支撑运动相机,航拍相机,全景相机等各种消费类影像产品的二次开发。
HiMobileCam SDK 范围涵盖单板,手机,PC 不同交付层次的功能组件,客户基于SDK,能够快速开发出各种差异化功能,缩短产品上市时间。
HiMobileCam SDK 系统自下而上包含 Osdrv,MPP,Hisyslink,Middleware 和Reference 这几个部分。
OSDRV 层主要提供底层系统支持包,包含 linux/Huawei LiteOS、Bootloader、OS、Rootfs 模板、控制器 driver 及双核通信驱动等。
MPP 提供媒体模块驱动和库,如 VI,VPSS,VEnc,VO 等,和海思监控领域SDK 接口保持一致,对外提供 MPI 接口;还包含 DEMB 使用的板级外设驱动Sample 代码,Sample 代码仅用于 DEMB 功能展示。
Hisyslink 为海思自研多核通信基础组件,用于系统间的消息通信,内存数据共 享。 Intelligent Lib 为海思面向应用交付的智能算法,交付内容随版本更新。
Middleware 层包含录像、文件封装、文件管理、回放,GUI 等功能组件;还包含媒体适配 NDK 及 RTSP server 等 Sample 代码,Sample 代码仅用于 DEMB 功能展示。
HiMobileCam SDK 还提供可用于参考和演示用的相关产品形态的参考 APP,客户参考 Sample 功能实现,可快速理解原有功能逻辑,便于开发自己的 APP 代码。
为了满足快速开机需求,同时兼顾外围 Wifi,BT,GPS 等器件的可适配性,以及客户开发易用性诉求,继承原来海思在 linux 平台上的技术积累,HiMobileCam 软件架构在Hi3556AV100 等芯片平台上采用 Linux+Huawei LiteOS 双系统 AMP 架构解决方案
MPP 所包含的音视频采集,处理,编码,解码库和驱动部署在 Huawei LiteOS侧。
NDK 提供媒体封装适配,跨越 linux 和 Huawei LiteOS,通过媒体 client 和 serverC/S 结构进行交互,两端 API 接口基本保持一致。
Reference 和它所依赖的 Middleware,基于 linux 环境提供,network 网络协议栈,存储文件系统,SD 控制器,也部署在 linux 侧。
HiMobileCam 双系统架构中,和媒体业务相关的外设,包括 sensor,陀螺仪,麦克风,AudioCodec 部署在 Huawei LiteOS 侧。为了快速预览,LCD 也部署在Huawei LiteOS 侧。
USB,Wifi,BT,GPS,以及 UI 相关的按键,触摸屏输入部署在 linux 侧,重用linux 协议栈,方便客户开发移植。
系统运行时常见外设部署示意