ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Hi3516CV610 20S V4 开发板启动与调试流程

Hi3516CV610 20S V4 开发板启动与调试流程 Hi3516CV610 20S V4 开发板启动与调试流程1 目标和当前成果本文记录 Hi3516CV610 20S V4 开发板从首次上电到应用开发环境可用的完整过程。目前已经完成开发板通过 UART0 正常启动并进入 Linux。Windows、Ubuntu 虚拟机与开发板能够通过网线直连通信。SC4336P 摄像头、ISP、VI、VPSS、H.265 编码和 RTSP 推流正常。VLC 可以显示实时视频镜头已经完成手动调焦。Ubuntu 与开发板之间的 NFS 双向读写正常。海思 ARM musl 交叉编译器可用。自行编译的 ARM 程序已经在开发板上成功运行。厂家 Ubuntu 虚拟机及 Hi3516CV610 SDK 已准备完成。下一阶段是编译和运行sample_venc开始研究 MPP 应用层流程。2 硬件连接开发板主要接口Type-C默认 5V 电源输入。UART0 Debug系统启动日志和命令行调试。RJ45有线网络。Sensor 0/1摄像头 FPC 接口。首次启动需要两条独立连接USB 转串口模块连接电脑和开发板 UART0。Type-C 为开发板供电使用 5V、1A 或以上电源。注意只插 Type-C 电源不会产生 UART0 的 COM 端口。COM 端口来自 CH340/CH343 USB 转串口模块。安全要求摄像头禁止带电插拔。摄像头 FPC 排线不能插反。不要在普通启动时按升级键。不要把 Zadig 用于 CH340/CH343 普通串口驱动。暂时不要烧写固件、修改 U-Boot 或驱动。3 Windows 串口调试3.1 检查串口模块将 USB 转串口模块单独插入电脑它即使没有连接开发板也应该被 Windows 识别。设备管理器中正常应出现类似USB-SERIAL CH340 (COMx)如果只有“蓝牙链接上的标准串行 COM3/COM4”说明 USB 转串口模块尚未被识别。排查顺序重新插拔 USB 转串口模块。更换电脑 USB 接口不经过 USB Hub。安装资料包中的 CH340 驱动。Win11 下仍不稳定时再考虑使用 CH343。3.2 串口参数使用 SecureCRT、XCOM 或 Xshell波特率115200 数据位8 停止位1 校验无 流控无先打开串口窗口再给开发板 Type-C 上电。看到 U-Boot 和 Linux 启动日志表示基本启动正常。4 开发板系统信息开发板实测系统Linux 5.10.221 ARMv7 32 位 架构armv7l C 库musl 1.2.3 BusyBox1.34.1 交叉编译器系列arm-v01c02-linux-musleabi-gcc 10.3.0查看命令uname-auname-mcat/proc/version busybox开发板是裁剪过的 BusyBox 嵌入式 Linux不是 Ubuntu因此没有apt。通常没有sudo。不一定存在/etc/os-release。软件应在 Ubuntu 中交叉编译再传到板子运行。5 电脑与开发板网线直连没有路由器也可以调试。只要电脑、虚拟机和开发板处于同一静态网段即可。本节记录的是此前的192.168.9.x直连方案。后来改为交换机连接并给板子配置10.20.3.91/28详见 交换机静态 IP 联网配置。后续命令中的旧地址需要按实际网络环境调整。本次使用的地址开发板 eth0192.168.9.9/24 Ubuntu 虚拟机192.168.9.119/245.1 开发板配置ifconfigeth0192.168.9.9 netmask255.255.255.0 up5.2 Ubuntu 配置先确认网卡名称ip-braddr假设有线网卡是ens38sudoifconfigens38192.168.9.119 netmask255.255.255.0 up不需要设置网关和 DNS。5.3 连通性测试Ubuntu 测试开发板ping-c4192.168.9.9开发板测试 Ubuntuping-c4192.168.9.119Windows 也可以测试ping 192.168.9.96 使用 PQTools 点亮摄像头进入开发板 PQTools 目录cd/system/Hi3516CV610-PQ-V1.0.2.0SC4336P 摄像头./PQTools.sh-ssc4336p其他可能的型号./PQTools.sh-ssc450ai ./PQTools.sh-sgc8613只能选择实际摄像头型号不能随意尝试。检查 RTSP 服务netstat-an|grep554正常应看到 554 端口处于监听状态。7 使用 VLC 播放视频RTSP 地址rtsp://192.168.9.9:554/0该地址需要放入 VLC 的“打开网络串流”不能直接当作 PowerShell 命令执行。Ubuntu 虚拟机中建议关闭硬件解码vlc --avcodec-hwnone --rtsp-tcp --network-caching1000rtsp://192.168.9.9:554/0VMware 中出现以下日志表示虚拟显卡不支持 VA-API/VDPAU 硬件解码vaInitialize: unknown libva error Failed to open VDPAU backend这类错误可通过软件解码规避。Windows 能够 Ping 通开发板时直接用 Windows VLC 播放通常更稳定。如果出现少量Could not find ref with POC通常表示刚接入 H.265 码流时缺少参考帧或虚拟机解码/缓存不足。持续出现时使用 TCP、增加缓存并优先在 Windows VLC 播放。8 摄像头调焦如果画面能显示但整体呈现大面积光斑和均匀模糊通常是镜头没有对焦不是网络或 ISP 故障。调焦方法将带文字的纸放在镜头前约 12 米。保持 VLC 实时播放。轻轻旋转镜头前端圆形镜筒。每次只旋转一点观察文字清晰度。越来越糊时改为反方向旋转。不要拉扯模组或排线不要把镜头完全拧下也不要触摸镜片玻璃。确认镜片表面没有保护膜。9 检查媒体内存和负载查看 MMZ 媒体内存cat/proc/umap/media-mem本次 PQTools 推流实测MMZ 总量96MB 已用约 83MB 剩余约 13MB内存记录中可看到vi isp vpss h265e pqt_mbuf说明当前媒体链路为SC4336P Sensor → ISP/VI → VPSS → H.265 VENC → RTSP查看 CPUtop实测ittb_stream sc4336pCPU 占用约 4.8%推流负载正常。PQTools 的 MMZ 占用较大主要用于测试和 ISP 调试不适合作为最终产品应用。10 配置 NFS10.1 NFS 的用途NFS 让开发板把 Ubuntu 的目录当作自己的目录使用Ubuntu/nfs ↕ 网线 开发板/tmp使用方式Ubuntu 写代码和交叉编译 → 输出文件放入 /nfs → 开发板在 /tmp 中立即看到并运行这样无需反复烧写 Flash也方便保存视频、日志和调试文件。10.2 Ubuntu 导出目录确认目录ls-ld/nfs安装服务sudoaptupdatesudoaptinstallnfs-kernel-server导出给开发板sudoexportfs-i-orw,sync,no_subtree_check,no_root_squash,insecure192.168.9.9:/nfssudoexportfs-v永久配置/etc/exports时加入/nfs 192.168.9.9(rw,sync,no_subtree_check,no_root_squash,insecure)然后执行sudoexportfs-ravsudosystemctl restart nfs-kernel-server10.3 开发板挂载mount-tnfs-onolock,vers3192.168.9.119:/nfs /tmp检查mount|grepnfsls-la/tmp双向测试Ubuntuechohello hi3516/nfs/nfs_test.txt开发板cat/tmp/nfs_test.txtechohello from hi3516/tmp/board_test.txtsyncUbuntucat/nfs/board_test.txt本次双向测试已经成功。卸载前先离开挂载目录cd/syncumount/tmp11 安装交叉编译器工具链压缩包gcc-20240318-arm-v01c02-linux-musleabi.tgz解压安装tar-xzfgcc-20240318-arm-v01c02-linux-musleabi.tgzcdgcc-20240318-arm-v01c02-linux-musleabichmodx install_gcc_toolchain.shsudo./install_gcc_toolchain.shsource/etc/profile检查whicharm-v01c02-linux-musleabi-gcc arm-v01c02-linux-musleabi-gcc--version默认安装位置通常是/opt/linux/x86-arm/arm-v01c02-linux-musleabi-gcc12 验证交叉编译和运行Ubuntu 创建测试程序printf#include stdio.h\nint main(void){puts(hello Hi3516CV610);return 0;}\n/nfs/hello.c编译arm-v01c02-linux-musleabi-gcc /nfs/hello.c-o/nfs/hello_armfile/nfs/hello_arm结果应包含ELF 32-bit ARM interpreter /lib/ld-musl-arm.so.1开发板运行cd/tmpchmodx hello_arm ./hello_arm本次实际输出hello Hi3516CV610这证明交叉编译器、NFS、CPU 架构和开发板运行环境全部正常。13 厂家虚拟机和 SDK厂家 SDK 源码目录~/Hi/hi3516cv610_1020_musl/Hi3516CV610_SDK_V1.0.2.0/smp/a7_linux/source主要结构source/ ├── bsp 整个系统和固件编译入口暂时不使用 ├── cfg.mak ├── common ├── interdrv 芯片内部驱动当前不研究 ├── Makefile.param ├── mpp 媒体应用和 sample当前重点 ├── osal ├── out 海思二进制库和模块不修改 └── scripts当前只研究 MPP 应用层不研究协议、底层驱动、U-Boot 和完整固件构建。14 下一步编译 sample_venc进入 SDK 的source目录后查找source/etc/profilefindmpp/sample-maxdepth3-typed-iname*venc*-printfindmpp/sample-maxdepth4-typef-nameMakefile|grep-ivenc目录可能是mpp/sample/venc或者mpp/sample/sample_venc进入实际目录cd实际找到的目录ls-lamake21|tee~/sample_venc_build.log查找编译结果find.-typef-namesample_venc-lsfile./sample_venc复制到 NFScp./sample_venc ~/nfs/chmodx ~/nfs/sample_venc运行前必须停止 PQTools避免ittb_stream与sample_venc同时占用 VI、ISP、VPSS 和 VENC。最稳妥的方法是重启开发板然后只启动sample_venc。开发板重新配置网络并挂载 NFS 后运行cd/tmpchmodx sample_venc ./sample_venc01按照厂家说明后续交互依次选择0 cVLC 地址rtsp://192.168.9.9:554/live.h26415 sample_venc 应重点研究的应用流程后续阅读源码时只跟踪以下主线系统和 VB/MMZ 初始化 → Sensor 与 ISP 启动 → 创建 VI → 创建 VPSS → 创建 VENC → 绑定 VI → VPSS → VENC → 获取编码码流 → 保存文件或发送 RTSP → 停止线程 → 按相反顺序解绑和释放资源模块的简单理解ISP曝光、白平衡、去噪、色彩和图像质量。VI从 Sensor 接收视频帧。VPSS缩放、裁剪、增强并生成不同尺寸的视频帧。VENC编码为 H.264、H.265 或 JPEG。应用层控制启停、获取码流、保存录像和网络发送。16 常见问题速查Windows 没有 COM 端口Type-C 只是供电UART0 需要独立 USB 转串口模块。检查 CH340 驱动Win11 不稳定时再考虑 CH343。不要用 Zadig 接管普通 USB Serial。能 Ping 但 VLC 打不开确认 PQTools 已启动。执行netstat -an | grep 554。地址必须是rtsp://192.168.9.9:554/0。暂停 VPN、代理并检查防火墙。视频非常模糊先旋转镜头手动调焦。检查镜头保护膜。不要先调整 ISP 参数。NFS Permission denied确认导出的是真实目录。/home/youyan/nfs之类路径只是示例必须以pwd为准。确认/etc/exports或exportfs已允许开发板 IP192.168.9.9。板子没有 apt这是 BusyBox 嵌入式 Linux不是 Ubuntu。在 Ubuntu 交叉编译再通过 NFS 到板子运行。sample_venc 运行失败或资源忙不要同时运行 PQTools/ittb_stream。重启板子后只运行sample_venc。确认摄像头型号和配置一致。录像文件保存位置不要把大文件写入板载 Flash。优先保存到 NFS 或 SD 卡。断电前执行sync。17 最终开发闭环Windows 串口观察启动日志 → Ubuntu 交叉编译应用 → NFS 共享到开发板 → 开发板运行程序 → VI/ISP/VPSS/VENC 处理视频 → VLC 验证 RTSP → 保存日志和码流到 Ubuntu完成sample_venc后再开始对照源码绘制应用流程图并围绕初始化、绑定、取流和退出四部分研究 MPP API。
返回列表