欢迎您选用LinkPi的产品,如果您第一次使用我的产品,建议您按照以下顺序开展工作:
Encoder
工程的源码,参考该工程,实现您自己的产品。 LinkSDK是一个基于海思平台的快速开发工具,致力于降低嵌入式音视频产品的开发门槛,缩短产品研发周期,增强产品扩展性与灵活性,提升产品稳定性。 LinkSDK 的设计灵感来自于 Gstreamer ,只要按照业务流程将模块与模块依次连接起来,并配置各个模块的少量参数即可。即使是没有嵌入式开发经验的软件人员,甚至是 web 前端开发者,都可以使用 LinkSDK 开发出成熟的音视频产品。
LinkSDK统一了海思各芯片方案的接口,使用 Lin kSDK ,你可以做到一套代码在不同的方案中无缝切换。 除了对于海思基本功能的封装外,还包括了常用驱动对接,以及 流媒体传输、多格式录制、多画面导播、图像调优、特效叠加、美颜、音频降噪 、移动侦测、 UI 框架 等。
在线文档:https://gitee.com/LinkPi/LinkLib/wikis/pages
当然,对于已经非常熟悉海思方案开发的工程师,LinkSDK 也不是必选的, LinkPi 的产品可以完美兼容海思官方的内核、 uboot 等原生开发环境。除了可以参考1.4 音视频资源分布的内容外,开发者可以使用 LinkSDK 快速搭建 产品 原型,再通过 proc 系统信息 编写、修正自己的程序。
C3531D 是一款基于 Hi3531DV100 芯片的全接口 评估板 ,支持 SDI 、 AHD 、 HDMI 2.0等接口。同时还支持 wifi 和 4g 无线网络。 C3531D 可以直接用于开发录播、视频会议、导播等产品,广泛应用于教育、医疗、体育、媒体等领域。
使用 LinkPi 的评估方案,借助简单易用的 LinkSDK ,可以快速搭建产品原型,缩短产品开发周期,为企业节省大量研发成本。
更多介绍请访问 http://linkpi.cn/product/c3531d_evb.html
对于使用 LinkSDK 开发的用户,可以忽略该章节, SDK 已经包含了底层驱动对接的所有工作,开发者无需关注资源的内部分布情况,只需要按照接口名称调 用即可。
视频资源:
接口 | 通道 | 其他 |
---|---|---|
SDI-1 | VI0 | 8bit BT.1120I |
SDI-2 | VI1 | 8bit BT.1120I |
SDI-3 | VI2 | 8bit BT.1120I |
SDI-4 | VI3 | 8bit BT.1120I |
AHD | VI4 | 8bit BT.656 |
HDMI-A | VI8 | 16bit BT.1120S |
HDMI-B | VI6 | 16bit BT.1120S |
HDMI-C & VGA | VI5 | 8bit BT.656 |
对于有经验的 海思 SDK 开发者,如果对以上视频资源分布有 任何不清楚的,可以在Encoder 工程运行时执行:
cat /proc/umap/vi
可以从系统打印信息中获取完整的配置参数。
音频资源:
接口 | 通道 | 其他 |
---|---|---|
HDMI-A | AI0 | L:cid=0, R:cid=2 chnCnt=16, 单声道48K |
HDMI-B | AI0 | L:cid=12, R:cid=14 chnCnt=16, 单声道48K |
HDMI-C | AI0 | L:cid=8, R:cid=10 chnCnt=16, 单声道48K |
HDMI-OUT | AO2 | 立体声48K,cid=0 |
Mini-In | AI2 | tlv32 |
Mini-out | AO0 | tlv32 |
同理,如果对于音频资源有任何不明确的地方,可以通过执行:
cat /proc/umap/ai
cat /proc/umap/ao
可以从系统打印信息中获取完整的配置参数。
接通 电源 与网线之后,系统启动并进入评估系统,可以通过默认IP 192.168.1.217
访问,网页登陆账号为admin
,密码为 admin
。
这是一个通用的编码器系统,登陆后可以看到各功能的设置页面,大部分功能简单易 懂,如遇问题,可以阅读《编码器使用说明》。
该系统的主程序、后台网页、文件系统等, 完全开源!!!
项目主页: https://gitee.com/LinkPi/Encoder
后面的章节将详细 讲解如何在这个系统的基础上进行OEM或二次开发。但是对于初学者,并不需要急于从这个完整的工程入手,下一章节将介绍如何从简单的工程开始熟悉
在评估板上的开发工作。
telnet
用户名 root
,密码为空
网盘中的虚拟机镜像已经包含了一个完整的开发环境,建议用VMware 15 以上版本导入 LinkPi.ovf 。具体过程如下:
1.鼠标右键点击 LinkPi. ovf 文件,使用 VMware 打开
2. 选择一个你希望导入的路径
3. 如果导入过程中出现如下提示,点击重试即可
4. 等待导入结束
该镜像基于 Ubuntu 16.04 用户名: linkpi
密码: 1
虚拟机目录结构
~/work
主工作目录
~/work/cross
系统可能用到的各种交叉编译库
~/work/LinkLib
LinkSDK库存放的位置
~/work/tftp
tftp根目录,主要用来放内核镜像
~/work/3531D
3531D方案的主目录
~/work/3531D/fs
3531D嵌入式文件系统(包含编码器系统和demo)
~/work/3531D/3531D
演示程序源码
~/work/3531D/Encoder
编码器主程序源码
切换开发环境类型
由于虚拟机中集成了多种板卡的运行环境,需要在使用之前进行切换,选择您所购买的板卡类型。具体操作为:
cd ~/work/3531D/
./board.sh
运行效果如下图:
更新SDK
cd ~/work/LinkLib
git pull
cp HI3531D/lib/* ../3531D/fs/usr/lib/ -d
更新Demo
cd ~/work/3531D/3531D
git pull
更新可执行测试程序
已经在3531D项目中增加了自定义步骤,每次编译完成,所有的测试程序都会自动更新到~/work/3531D/fs/root/demo
目录。
双击打开~/work/3531D/3531D/3531D.pro
文件,自动开启QtCreator
,可以看到改工程包含若干子工程,可以直接 build 全部工程 快捷键(ctrl+B),或者单独选取某一个工程进行编译。
查看左侧Project 标签页,可 以看到已经设置好了一个自定义构建步骤,将编译好的程序自动拷贝到嵌入式文件系统的 root/demo
目录。
关于各子工程的介绍,可以在以下页面查看:
项目主页:https://gitee.com/LinkPi/3531D
说明文档:https://gitee.com/LinkPi/3531D/wikis/pages
额外说明
如果创建新的项目,请参考Demo
程序中各项目的.pro
文件,其中chip
是必填项目,HOME CROSS MPP
为选填,默认值指向/home/zc
,虚拟机中已经将/home/zc
软链接到/home/linkpi/work,所以默认情况下不需要填写这三个值,如目录结构发生变化,以上三个值需要正确填写。
1.找到调试串口 J17 所在位置
2.按照丝印指示接好ttl转usb模块
,设置为115200 8n1
模式 ,虚拟机中已经安装并配置好 minicom
程序,可以将usb转ttl模块
接入虚拟机,并执行 sudo minicom w
,即可 。
配送的 usb转ttl模块
线序如下:
为了使得开发过程更便捷,建议使用nfs
启动的方式来运行评估板。具体方法如下:
minicom
终端uboot
,如下图192.168.1.120
为虚拟机 IP 192.168.1.206
为评估板 IP ,可以根据实际情况修改setenv serverip 192.168.1.120
setenv ipaddr 192.168.1.206
setenv gatewayip 192.168.1.1
setenv netmask 255.255.252.0
setenv bootcmd 'mw.b 42000000 ff 400000;tftp 42000000 uImage_3531D;bootm 0x42000000'
setenv bootargs 'mem=512M console=ttyAMA0,115200 root=/dev/nfs rw nfsroot=192.168.1.120:/home/linkpi/work/3531D/fs ip=192.168.1.206 init=/linuxrc mtdparts=hinand:1M(boot),4M(kernel),250M(rootfs)'
saveenv
reset
运行Demo程序
进入系统后,root/demo
目录即为上文所述 3531D 工程的各示例程序的拷贝目录,可以在该目录下运行您所编译的示例程序。
无线网络(仅适用于C3531D)
运行wifi 目录的 host .sh
脚本,将创建一个名为“ LinkPi_2G ”的热点,并启用 dhcp
服务供客户端接入; wifi.sh
是用于接入其他热点的脚本,可以通过 wpa.conf 文件进行 ssid和密码的编辑。
进入4g 目录后,执行 ./pppd call gprsdial
即可拨号入网,前提是在上电前已经 插入4G 模块和 SIM 卡。
用户可以参考以上示例,根据自己的业务需求,重新整理、编写适合的脚本或程序。
cd ~/work/3531D
sudo ./ubi.sh
生成的fs.img
即为ubi
文件系统。
提供的开发资料里面包含了“ LinkPi 量产工具”,可用于自动化烧写镜像文件。
目录说明:
MPToolEx.exe
主程序
script
自动化烧写 脚本
kernel
内核目录
led
oled 开机画面 需定制
logo
HDMI& VGA 开机画面
image
文件 系统 镜像
注意事项:
.net framework
MPTool
的 tftp
端口uboot
阶段 执行 nand scrub
命令后重试(需重刷uboot
)MPToolEx.exe
如下图对于已经装配好外壳的产品,使用网络加串口的方式烧写系统非常不方便 ,因此可以考虑使用U盘烧写文件系统,烧写速度更快 。 步骤 如下:
FAT32
格式HDMI
输出口接入显示器或电视 。DEF
按键,上电HDMI
显示系统升级中的时候,可以松开DEF
按键,等待烧写完成后,“系统升级中
“的提示会消失。 如果您的产品基于"编码器系统"定制,那么可以使用网页升级功能进行产品 升级 。 其实质是一个tar压缩包的上传与解压 。 您只需要按照板上文件系统的目录结构,把需要更新
的 文件 放入 ~/work/3531D/update
目录,随后执行~/work3531D/makeUpdate.sh
脚本会生成 update.bin
文件,通过网页上传该文件并重启即可 。