G16DV5-IPC-38E/G19DV5-IPC-38E 快速适配
文章目录
1、背景
• 背景:基于官方 SDK 快速适配社区 G16DV5-IPC-38E 板卡(适用于 G19DV5-IPC-38E)
• 技术定位:初级
• 目标群体:软件工程师
• 更新版本:V1.0
• 硬件接口见产品规格书和原理图。
• SDK 版本:Hi3519DV500R001C01SPC011
2、环境搭建
2.1 编译环境
• 官方文档:
参考\ReleaseDoc\zh\01.software\board\BSP\Hi35xxVxxx 开发环境用户指南.pdf 文档的第一章节
2.2 下载解压 SDK(Software Development Kit)
- 从业务端口获取 G16DV5-IPC-38E 的开发网盘资料
资料目录:【易百纳】G16DV5-IPC-38E 型 IPC 模组_VX.X
官方 SDK 路径:【易百纳】G16DV5-IPC-38E 型 IPC 模组VX.X\04_SDK 资料\04原厂 SDK
拷贝 Hi3519DV500_SDK_V1.0.1.1.tgz、Hi3519DV500_REF_V1.0.1.1.tgz、ref_patch.sh 到编译服务器。
Hi3519DV500_SDK_V1.0.1.1.tgz 压缩包路径:SMP_Linux_GCC_glibc\01.software\board
Hi3519DV500_REF_V1.0.1.1.tgz 压缩包 ref_patch.sh 脚本路径:SMP_Linux_GCC_glibc\02.only for reference解压 SDK 以及打入 REF 补丁命令如下:
说明:此说明仅用于使用 hi 接口操作,如使用 ss 接口,不涉及打补丁操作./ref_patch.shtar xf Hi3519DV500_SDK_V1.0.1.1.tgz tar xf Hi3519DV500_REF_V1.0.1.1.tgz cd Hi3519DV500_SDK_V1.0.1.1/ ./sdk.unpack cd .. chmod +x ref_patch.sh ./ref_patch.sh
- 1
- 2
- 3
- 4
- 5
- 6
- 7
2.3 修改配置
解压 u-boot 压缩包,打入补丁后删除压缩包和补丁。
tar -xf u-boot-2022.07.tar.bz2|
cd u-boot-2022.07
patch -p1 < ../u-boot-2022.07.patch
cd ..
rm u-boot-2022.07.*
- 1
- 2
- 3
- 4
- 5
解压 linux 压缩包,打入补丁后删除压缩包和补丁,重命名为 linux-5.10.y。
tar -xf linux-5.10.tar.gz
cd linux-5.10
patch -p1 < ../linux-5.10.patch
cd ..
rm linux-5.10.*
mv linux-5.10 ./linux-5.10.y
- 1
- 2
- 3
- 4
- 5
- 6
拷贝 0007-ebaina-busybox_config.patch
到 <SDK> /open_source/busybox/
目录下,修改 busybox 的 Makefile
- 补 丁 路 径 :
【 易 百 纳 】 G16DV5-IPC-38E 型 IPC 模 组 _VX.X/03_ 软 件 资 料 /05_ 补 丁 文 件/03_patch/0007-ebaina-busybox_config.patch
DV5-IPC-38E 烧录时使用的是百兆网,需要修改<SDK>/open_source/u-boot/u-boot-2022.07/include/configs/
目录下的 hi3519dv500.h
将 DDR 模板文件拷贝到<SDK>/smp/a55_linux/source/bsp/tools/pc/boot_tools/
目录下
- 模 板 文 件 路 径 :
【 易 百 纳 】 G16DV5-IPC-38E 型 IPC 模 组 _VX.X\03_ 软 件 资 料 \05_ 补 丁 文 件 \01_config\boot_tools
修改<SDK>/smp/a55_linux/source/bsp/
目录下的 Makfile
此时可以编译 SDK,执行以下命令make CHIP=hi3516dv500 all
- 1
- 说明:编译 eudev 报错找不到 blkid 头文件,解决方案查看 4.1 章节
<SDK>/smp/a55_linux/source/bsp/pub/hi3516dv500_image_glibc
目录下生成目标文件
2.4 固件烧录(Firmware Flashing)
固件烧录是指将固件写入设备的非易失性存储器(如 ROM、闪存等)的过程。这个过程通常用于更新或替换设备上的固件,以修复漏洞、改进功能或提升性能。
官方文档:
ReleaseDoc\zh\01.software\pc\ToolPlatform\ToolPlatform 工具平台使用指南.pdf
ReleaseDoc\zh\01.software\board\Hi3519DV500/Hi3516DV500 SDK 安装及升级使用说明.pdf
ReleaseDoc\zh\01.software\board\BSP\裸烧及非裸烧升级使用手册.pdf或者查看社区文档
《G16DV5-IPC-38E(G19DV5-IPC-38E)_VX.X 烧录及测试说明》
文档【易百纳】G16DV5-IPC-38E 型开发板_VX.X\01_手册文档\02_开发手册
3、开发指南
3.1 SDK 工程 Makefile 优化
官方 SDK 的 makefile 每次 distclean 都会删除 uboot,kernel 源码目录,再次解压、打入补丁。社区优化了makefile 文件。可以选择打入补丁,也可以自行修改。
- 补 丁 路 径 :
【 易 百 纳 】 G16DV5-IPC-38E 型 IPC 模 组 _VX.X\03_ 软 件 资 料 \05_ 补 丁 文 件\03_patch\0000-ebaina-makefile.patch。
将补丁拷贝到工程根目录下,执行以下命令patch -p1 < 0000-ebaina-makefile.patch
- 1
打完补丁进入<SDK>/smp/a7_linux/source/bsp
目录下
清除后重新编译 SDK,执行以下命令
cd smp/a7_linux/source/bsp/
make distclean
make CHIP=hi3516dv500 all
- 1
- 2
- 3
3.2 spi nand
官方 SDK 默认不支持当前使用型号,因此社区提供了补丁文件。
- 补 丁 路 径 :
【 易 百 纳 】 G16DV5-IPC-38E 型 IPC 模 组 _VX.X\03_ 软 件 资 料 \05_ 补 丁 文 件 \patch\0001-ebaina-dosilicon-spi-nand.patch。
将补丁拷贝到工程根目录下,执行以下命令patch -p1 < 0001-ebaina-dosilicon-spi-nand.patch
- 1
3.3 SSH
3.3.1 移植编译
将社区提供的 iperf、stress-ng、tcpdump、openssl、openssh、ntp、haveged 等工具和 Makefile.param,拷贝到<SDK>/open_source
目录下
- 工具路径:
【易百纳】G16DV5-IPC-38E 型 IPC 模组_VX.X\03_软件资料\05_补丁文件\ssh
进入 must_tools 目录下编译、增加 gdb-10.2 工具
cd must_tools
make all
- 1
- 2
编译成功后使用以下命令,拷贝到<SDK>/overlay
目录下
make install
- 1
拷贝社区提供的文件拷贝到 <SDK>/overlay/root
下后,重新编译
- 文件路径:
【易百纳】G16DV5-IPC-38E 型 IPC 模组_VX.X\03_软件资料\05_补丁文件\02_overlay\overlay\root
cd smp/a7_linux/source/bsp/
make distclean
make CHIP=hi3516dv500 all
- 1
- 2
- 3
- 说明:如果板端出现网络连接失败的情况,解决方案查看 4.2 章节
- 板端出现内存不足,无法拷贝的情况,解决方案查看 4.5 章节
- 如果补丁打入失败或部分打入失败,生成了.rej 文件,请根据.rej 文件提示手动修改对应文件内容,确保板端对应文件夹下有对应的文件
3.3.2 验证 SSH 连接
设置板端 IP
在另一终端通过 SSH 连接输入密码连接
3.4 VENC 视频编码
3.4.1 合入补丁
打入社区提供的 0003-ebaina-sample.patch 补丁。
- 补 丁 路 径 :
【 易 百 纳 】 G16DV5-IPC-38E 型 IPC 模 组 _VX.X\03_ 软 件 资 料 \05_ 补 丁 文 件\03_patch\0003-ebaina-sample.patch
patch -p1 < 0003-ebaina-sample.patch
- 1
- 说明:如果板端出现驱动加载异常的情况,解决方案查看 4.3 章节
根据连接的 sensor 镜头选择对应的类型修改<SDK>/smp/a55_linux/source/mpp/sample/Makefile.param
,这里以 SONY_IMX347 为例
修改后重新编译 sample,把生成的可执行文件拷贝到<SDK>/overlay/root
目录下
3.4.2 功能验证
板端加载驱动后运行 sample_venc。
./insmod.sh
./sample_venc 0
- 1
- 2
可将生成的 stream_chn0.h265 和 stream_chn1.h264 拷贝到 PC 上查看。播放之前需要修改权限,否则可能播放失败。
- 说明:如果板端出现 I2C 寄存器功能错误,解决方案查看 4.4 章节
3.5UVC
3.5.1 驱动移植
验证 UVC 之前需要拷贝 ConfigUVC.sh 和 sample_uvc 到板端
- 文件路径:
【易百纳】G16DV5-IPC-38E 型 IPC 模组_VX.X\03_软件资料\05_补丁文件\02_overlay\root\
3.5.2 功能验证
打开 PC 端系统自带相机,在板端执行脚本。
./start_uvc.sh
- 1
3.6 MIC&SPK(Microphone & Speaker)
麦克风是声音输入设备,用于捕捉声音并将声波转换为电信号。在单片机应用中,麦克风可以用于录音、语音识别等功能。
扬声器是声音输出设备,用于将电信号转换为声波。在单片机应用中,扬声器可以用于播放音乐、语音提示等功能。
3.6.1 动态库移植
拷贝 libmp3_lame.so、libmp3_enc.so、libmp3_dec.so 动态库到板端/lib64 目录下
- 文件路径:
【易百纳】G16DV5-IPC-38E 型 IPC 模组_VX.X\03_软件资料\05_补丁文件\02_overlay\lib64\
3.6.2 验证音频接口
./sample_audio 1 //录音
./sample_audio 2 //放音
- 1
- 2
3.7 AIISP
3.7.1 模型移植
将依赖的模型文件 ai3dnr、aibnr、aidrc 拷贝到板端
• 文件路径:【易百纳】G16DV5-IPC-38E 型 IPC 模组_VX.X\03_软件资料\05_补丁文件\02_overlay\root\
3.7.2 功能验证
板端运行例程 sample_aiisp,参数为 0,选择模型为 0;生成 stream_chn0.h265 文件。
./sample_aiisp 0
- 1
3.8 IRCUT 测试
板端加载驱动后执行测试 ircut 脚本。镜头 ircut 状态切换时会有“咔嚓”声响。
./ircut.sh on #打开
./ircut.sh off #关闭
- 1
- 2
3.9 验证 RTC(Real-Time Clock)功能
设置&获取 RTC 时间,通过以下的命令
date -s 2024.11.07-09:33:14
hwclock -u
hwclock -r
- 1
- 2
- 3
- 说明:使用 date 命令设置系统时间,hwclock -r 这条命令用于读取硬件时钟的时间并显示出来。
-r 选项表示读取硬件时钟(Real Time Clock,RTC)的时间并以可读的格式输出到终端。
-w 选项表示将当前系统时间同步到硬件时钟,使得硬件时钟的时间与系统时间保持一致。
-u 设置硬件时间为 UTC 时间。
通常,在设置完系统时间后,可以使用 hwclock -w 确保硬件时钟也得到更新,这样在系统重启等情况下,硬件时钟可以为系统提供一个初始的时间参考。
设置硬件时间后,执行 reboot 重启查看时间。
3.10 GPIO
3.10.1 合入补丁
打入社区提供的 0006-ebaina-gpio.patch 补丁
- 补 丁 路 径 :
【 易 百 纳 】 G16DV5-IPC-38E 型 IPC 模 组 _VX.X\03_ 软 件 资 料 \05_ 补 丁 文 件\03_patch\0006-ebaina-gpio.patch
patch -p1 < 0006-ebaina-gpio.patch
- 1
3.10.2 功能验证
以 GPIO6_5 为例,在板端执行例程。
./user_test GpioOutputTest 53 #GPIO6_5 6x8+5=53
- 1
万用表检测到的电压会随着切换高低电压,在 0~3.3V 范围跳动。
4、FAQ 问题
4.1 头文件报错
出现 blkid 头文件报错时,可以在工程<SDK>/open_source/eudev
目录下的 Makefile 第 23 行增加 —disable-blkid。
4.2 网络 ping 不通
如果在板端设置完 IP,依旧无法连网。
打入社区提供的 0002-ebaina-net.patch 补丁,重新烧录即可
- 补 丁 路 径 :
【 易 百 纳 】 G16DV5-IPC-38E 型 IPC 模 组 _VX.X\03_ 软 件 资 料 \05_ 补 丁 文 件\03_patch\0002-ebaina-net.patch
patch -p1 < 0002-ebaina-net.patch
- 1
4.3 驱动加载异常
打入社区提供的 0004-ebaina-insmod.patch 补丁,重新烧录即可
- 补 丁 路 径 :
【 易 百 纳 】 G16DV5-IPC-38E 型 IPC 模 组 _VX.X\03_ 软 件 资 料 \05_ 补 丁 文 件\03_patch\0004-ebaina-insmod.patch
patch -p1 < 0004-ebaina-insmod.patch
- 1
4.4 修改 I2C 寄存器值
如果出现以下错误
查看寄存器值并修改
bspmm 0x0eff0028 0x1752
bspmm 0x0eff0024 0x1752
- 1
- 2
4.5 扩展板端内存
拷贝可执行文件时提示内存已满的时候,打入社区提供的 0005-ebaina-memory-capacity.patch 补丁
- 补 丁 路 径 :
【 易 百 纳 】 G16DV5-IPC-38E 型 IPC 模 组 _VX.X\03_ 软 件 资 料 \05_ 补 丁 文 件\03_patch\0005-ebaina-memory-capacity.patch
patch -p1 < 0005-ebaina-capacity.patch
- 1
- 分享
- 举报

-
2024-07-24 10:04:02
-
浏览量:1674次2023-12-26 14:55:57
-
浏览量:186次2025-01-13 09:48:29
-
浏览量:253次2025-02-05 15:46:26
-
浏览量:1546次2024-06-01 14:33:25
-
浏览量:78次2025-03-08 21:33:28
-
2025-03-07 19:46:19
-
2025-03-07 20:11:34
-
浏览量:3183次2021-06-12 17:32:52
-
浏览量:1513次2024-06-06 09:47:33
-
浏览量:1570次2023-07-11 12:40:32
-
浏览量:3221次2020-07-13 19:23:12
-
浏览量:2199次2019-06-11 10:23:18
-
浏览量:2891次2020-11-24 10:29:19
-
浏览量:5028次2023-03-24 22:56:50
-
浏览量:3507次2020-12-24 11:41:36
-
2025-01-23 10:08:10
-
浏览量:1451次2023-01-11 12:36:23
-
浏览量:3425次2020-08-01 22:09:06
-
5篇
- OpenEuler&海思赋能:欧拉派Euler Pi——应⽤于机器⼈/机器视觉/⼯业控制
- 最近在看海思SDK中关于imx274_sensor_ctl.c代码中,如何快速初始化数组为同一值
- Hi3519DV500如何适配一款新的sensor--GC8613
- Aigtek功率放大器在压电陶瓷的光纤声光移频实验中的应用
- HI3518EV200主时钟及RTC时钟晶体选型要求
- 海思3559平台MCP2515 SPI转CAN驱动配置
- mp4v2移植和播放实战
- SS928与Hi3519A、Hi3559A的性能对比
- 海思3516A开发板调试整理(一)
- HI3516EV300音频输入串电阻方案、音频输出串电阻方案及影响
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖

咖啡不加奶






举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明