乐于分享
好东西不私藏

"我的嵌入式 AI 开发工具链 2026——用 AI Agent 辅助搭建海思 Hi3519DV500 完整编译环境"

"我的嵌入式 AI 开发工具链 2026——用 AI Agent 辅助搭建海思 Hi3519DV500 完整编译环境"
2026 年了,你的开发工具箱更新了吗?

从 IDE 插件到 AI Agent,再到全自动化的交叉编译流水线,嵌入式开发早已不是十年前那个"搭环境三天、编译两小时、查错一整天"的苦活。过去三个月,我用一套完全由 AI Agent 辅助搭建的工具链,从头编译了 Hi3519DV500(鸿鸥派开发板)的完整固件——从 Ubuntu 裸机到 249MB 可烧录镜像,6 个自动化脚本全部跑通,期间遇到 9 个坑实时排查修复。

这篇文章完整还原整个过程的每一个细节——从 Ubuntu 24.04 上的基础环境配置,到交叉编译工具链的搭建,再到 BSP、MPP、外设、固件打包的逐层推进,最后以 9 个踩坑记录和完整产物清单收尾。


一、背景:为什么要搭这套工具链

Hi3519DV500 是海思推出的 AI 视觉 SoC,双核 Cortex-A55 + 2.5 TOPS NPU,定位 AI IPC 和智能摄像头场景。鸿鸥派(HongOU PI)是基于该芯片的一个开发板,集成了 OS04A10 摄像头、DDR4 1GB、eMMC 8GB,支持 RTSP 推流和 NPU 推理(YOLOv8/HRNet/MOTR 已验证跑通)。

要在这个平台上做应用开发,第一步就是搭建完整的交叉编译环境——在 x86 的 PC 上生成 ARM64 的可执行文件,然后部署到开发板上运行。

这次搭建的目标非常明确:从零开始,在 Ubuntu 24.04 上搭建完整编译工具链,经过 BSP 编译(U-Boot + Kernel + Rootfs)、MPP 多媒体例程编译、外设驱动编译、PQ 工具编译,最终打包出可烧录的固件镜像。

这个过程完全由 AI Agent(Hermes Agent)辅助完成——从方案设计、脚本编写、坑点排查到文档沉淀,每一个环节都有 AI 参与。

在正式开始之前,先梳理一下研发这台开发板需要用到的所有资料和工具:

参考资料索引:
文档
位置
用途
Ubuntu 开发环境搭建
yolo/05 目录 PDF
SSH、NFS 等基础服务安装
原厂 SDK 编译说明
yolo/05 目录 TXT
SDK 编译选项说明
SDK 快速编译指导
yolo/06/01 PDF
海思官方编译步骤
适配后 SDK 说明
yolo/06/02 TXT
适配板卡后的差异说明
补丁使用说明
yolo/06/08 TXT
原厂 SDK 打补丁方法
烧录手册(网口+USB)
yolo/03 目录 PDF
烧录镜像到开发板
Qt 移植参考
yolo/09/03 PDF
Qt 图形界面开发
OpenCV 移植参考
yolo/09/02 PDF
机器视觉开发

这些资料分散在多个目录中,版本交叉、文档格式各异(有 PDF、TXT、MD)。AI Agent 做的第一件事就是把所有资料整理成一个可执行的方案——这就是整套工具链的起点。

上图是依赖安装完成后的终端输出截图,所有系统包一次性通过。这个结果看似简单,背后却经历了 Ubuntu 24.04 特有的兼容性问题——后面会详细说。


二、整体流程:六个阶段一键跑通

整个编译流程被拆分为 6 个独立的自动化脚本:

阶段
脚本
耗时
核心产物
依赖安装
01_install_deps.sh
约 5 分钟
apt 包 + pip 包 + SSH + NFS
工具链
02_install_toolchain.sh
约 2 分钟
aarch64-linux-gnu-gcc 10.3.0
SDK 解压
03_extract_sdk.sh
约 12 分钟
2.6GB SDK 源码 + 依赖检查
BSP 编译
04_build_bsp.sh
约 20 分钟
uImage-fdt 14MB + rootfs 6.4MB
扩展组件
05_build_extras.sh
约 5 分钟
49 个 ARM64 ELF(含 RTSP/NPU)
固件打包
06_build_firmware.sh
约 1 分钟
249MB 完整可烧录镜像

这种分阶段的脚本设计不是随意为之。每个阶段都有独立的产物可以验证,任何一步失败都可以单独重跑,不必从头再来。更重要的是——环境变量问题会在阶段切换时自然暴露出来,比如工具链的 PATH 没有持久化,到 BSP 编译阶段就会直接报错,马上就能定位到问题。

整体耗时: 从 Ubuntu 裸机到拿到完整固件,全流程大约 45 分钟(包含网络下载时间)。中间产物占约 8-10GB 磁盘。这个速度比手动的 2-3 天大幅缩短,核心原因是 AI Agent 在每次遇到错误时都能秒级检索相关文档和手册,而不是靠人工翻阅 PDF 来找原因。 磁盘占用详细估算:
项目
占用
交叉工具链(解压后)
~300MB
SDK tar.gz 压缩包
1.2GB
SDK 解压后源码
4-5GB
MPP Sample 源码+编译
~200MB
外设包(驱动+例程)
~100MB
PQ 工具
~50MB
固件打包工程
~50MB
编译中间产物
1-2GB
总计~8-10GB

从这张表可以看出,SDK 源码解压后占了将近一半的空间。编译完成之后可以删除 tar.gz 压缩包释放 1.2GB,后续按需保留源码或直接保留编译产物即可。


三、关键决策:为什么选适配版 SDK

海思 SDK 有两个来源。一个是原厂 SDK(约 8GB,在 /yolo/08 目录),需要自行打补丁适配鸿鸥派硬件;另一个是适配后的 SDK(由板卡厂商提供,在 /yolo/06/02 目录),已经针对鸿鸥派做了 BSP、驱动和配置的适配。

选择了适配版本,核心原因是减少移植工作量:
对比项
适配后 SDK
原厂 SDK
编译命令
make EBAINA_BOARD=38C LIB_TYPE=glibc CHIP=hi3519dv500 all
 即用
需配置板级参数
硬件适配
已适配鸿鸥派 BSP/驱动
需手动移植
依赖检查
脚本被精简,需自写 check_deps.sh
自带检查脚本
MPP Sample
独立 58MB 包,需单独解压编译
内置但不适配该板卡

适配后 SDK 的说明文件明确说:该 SDK 未对 MPP Sample 适配。BSP 部分可以一键编译,但 MPP 多媒体例程需要额外下载独立包来编译。这个包约 58MB,需要单独解压后交叉编译。

另一个需要留意的地方:适配后的 SDK 精简掉了海思原厂自带的 installed_package_check.sh 依赖检查脚本。这说明不能假设官方 SDK 有的东西这里一定有。替代方案是自写了一个 check_deps.sh,覆盖 9 大类 36 项检查。


四、第一阶段:基础编译环境搭建

这是整套流程的地基,也是最容易出问题的一步。Ubuntu 24.04 与海思 SDK 之间的兼容性差异在这里集中爆发。

4.1 系统依赖安装

海思官方的编译指导手册基于 Ubuntu 18.04 / 20.04 编写,很多包名和配置方式在 24.04 上已经有了变化。

安装命令如下:

text

sudo apt-get install -y make libc6-i386 lib32z1 lib32stdc++6 \    libncurses5-dev ncurses-term g++ u-boot-tools \    texinfo gawk libssl-dev openssl bc p7zip-full gperf bison flex \    diffutils git unzip libffi-dev libtool libfreetype6 fakeroot \    autopoint po4a zlib1g-dev liblzo2-dev uuid-dev \    pkg-config automake openssh-server nfs-kernel-server rpcbind net-tools

然后是用 pip 安装 Python 依赖包:

text

sudo pip3 install --break-system-packages --ignore-installed \    -i https://pypi.tuna.tsinghua.edu.cn/simple \    wheel==0.36.2 pycryptodome==3.9.8 pyelftools==0.27 kconfiglib

各依赖包的用途速查:
包名
用途
libncurses-dev
menuconfig 图形配置界面
flex、bison
词法/语法分析器(内核配置解析)
libssl-dev、openssl
内核加密模块编译
u-boot-tools
mkimage 制作 uImage
device-tree-compiler
DTB 设备树编译(dtc)
bc
内核编译时的数学运算
texinfo、texlive
文档生成
p7zip-full
固件打包压缩
gperf
哈希函数生成
libffi-dev
外部函数接口
zlib1g-dev、liblzo2-dev
mtd-utils 压缩库
pkg-config、automake
编译工具链辅助
python3 + pip 包
optee 模块编译依赖

上图是交叉编译工具链安装完成后的验证结果,aarch64-linux-gnu-gcc 版本 10.3.0,一切正常。

4.2 安装交叉编译工具链

交叉编译工具链是嵌入式开发的灵魂。在 x86 上编译出 ARM64 的机器码,全靠这套工具。

资料提供两套工具链——glibc 版本(97MB,动态链接,推荐)和 musl 版本(83MB,静态链接)。选择 glibc 版本,因为绝大多数应用程序和库都基于 glibc,兼容性更好。

安装步骤:

text

cp "/.../01.交叉编译工具/gcc-20240819-aarch64-v01c01-linux-gnu.tgz" /tmp/cd /tmptar -xf gcc-20240819-aarch64-v01c01-linux-gnu.tgzcd gcc-20240819-aarch64-v01c01-linux-gnu/sudo ./install_gcc_toolchain.shsource /etc/profileaarch64-linux-gnu-gcc --version

安装脚本完成之后,还需要将环境变量写入 ~/.bashrc 持久化:

text

cat >> ~/.bashrc << 'EOF'export CROSS_COMPILE=aarch64-linux-gnu-export ARCH=arm64EOFsource ~/.bashrc

注意: 02 脚本只写了 CROSS_COMPILE 和 ARCH,漏掉了 PATH 变量。这是过程中踩到的坑之一。新终端打开后 aarch64-linux-gnu-gcc --version 会提示找不到命令,就是因为 PATH 没有持久化。 

4.3 复制并解压 SDK 源码

SDK 源码在共享目录下,解压和编译必须在本地文件系统进行。

text

mkdir -p ~/hisi/hi3519dv500cp ".../Hi3519DV500_SDK_V2.0.2.0.tar.gz" ~/hisi/cd ~/hisitar -xzf Hi3519DV500_SDK_V2.0.2.0.tar.gz

解压后的 SDK 目录结构如下:

text

~/hisi/Hi3519DV500_SDK_V2.0.2.0/└── smp/a55_linux/source/bsp/    ├── uboot/          U-Boot 源码    ├── kernel/         Linux Kernel 源码    ├── rootfs/         根文件系统配置    ├── drivers/        板级驱动    └── pub/            编译产物目录

SDK 解压完成后,用自写的 check_deps.sh 跑一遍依赖检查,全部 36 项一次性通过。


五、第二阶段:BSP 全编译

BSP(Board Support Package)包含了嵌入式 Linux 的三大核心组件:U-Boot(bootloader)、Kernel(内核)、Rootfs(文件系统)。海思 SDK 的 make all 可以一键编译三者,这是整套编译方案的核心。

5.1 全量编译命令

text

cd ~/hisi/Hi3519DV500_SDK_V2.0.2.0/smp/a55_linux/source/bspmake EBAINA_BOARD=38C LIB_TYPE=glibc CHIP=hi3519dv500 all

三个编译参数说明:
参数
说明
EBAINA_BOARD
38C
鸿鸥派板卡型号
LIB_TYPE
glibc
使用 glibc C 库
CHIP
hi3519dv500
目标芯片型号

BSP 的 make all 实际上依次编译了 bootloader → kernel → rootfs → dtb,是一键三连。整个过程大约 20 分钟(在 4 核虚拟机上),不需要人工干预。

5.2 编译产物验证

编译成功后的产物在 bsp/pub/ 目录下:

产物
大小
说明
uImage-fdt
14MB
Linux 5.10.221 内核镜像,ARM64
bl31.bin
29KB
ARM 可信固件
rootfs_glibc_arm64
6.4MB
busybox + glibc 根文件系统
busybox
991KB
ELF 64-bit ARM aarch64
打包工具
1.2MB
mkfs.ext4 等

编译过程中没有报错,全部一次性通过。这是整套流程中最关键的一步——有了这三样东西,板子就能跑起来了。


六、MPP Sample:多媒体例程编译

MPP(Media Process Platform)是海思的多媒体处理框架,涵盖了视频输入(VI)、编码(VENC)、解码(VDEC)、视频处理(VPSS)等全部流水线。这个步骤独立于 BSP 编译,因为适配后 SDK 明确说了 MPP Sample 需要单独编译。

6.1 解压并编译

text

cd ~/hisi/hi3519dv500tar -xzf ".../Hi3519DV500_SDK_V2.0.2.0_MPP_Sample-main.tar.gz"cd Hi3519DV500_SDK_V2.0.2.0_MPP_Sample-main/srcmake ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-

踩坑提示: MPP Sample 包的 Makefile 不在顶层,在 src/ 子目录下。直接在最外层执行 make 会提示找不到目标。编译脚本改为 cd "$MPP_DIR/src" 即可解决。 

6.2 MPP Sample 包含的例程

编译完成后产出了 49 个 ARM64 ELF 可执行文件:

例程
功能
已验证
sample_venc
视频编码(H.264/H.265),RTSP 推流
sample_vio
视频输入输出(VI→VO)
sample_aiisp
AI ISP 智能图像处理
sample_svp_npu_main
NPU 推理(YOLOv8/HRNet/MOTR)
sample_vdec
视频解码
待验证
sample_vpss
视频处理子系统
待验证

其中 NPU 推理的三个应用(YOLOv8、HRNet、MOTR)已在开发板上验证跑通。RTSP 推流使用 sample_venc,推流地址统一为 live0。


七、外设驱动与 PQ 工具

7.1 外设驱动和例程

两个独立的包需要分别解压编译:

包名
用途
Peripherals Driver
内核态驱动源码
Peripherals Sample
用户态例程

编译命令统一为 make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-。外设驱动编译可能依赖完整 BSP 内核头文件,需先完成第二阶段 BSP 编译。

外设例程编译完成后,产出的文件可以直接通过 scp 部署到开发板上运行测试:

text

scp hi_pwm_sample root@192.168.1.168:/tmp/ssh root@192.168.1.168 /tmp/hi_pwm_sample

驱动开发标准流程:

编写驱动源文件 xx_drv.c → 添加到内核源码 drivers/ 相应目录 → 修改 Kconfig 和 Makefile → 执行 make menuconfig 选择该驱动 → 编译内核或模块 → scp 或 NFS 部署到开发板 → 板端测试调试。每个环节都有对应的 Makefile 目标和检查方法。

驱动开发覆盖的外设类型:
驱动类型
说明
典型应用
GPIO
IO 口高低电平控制
按键、LED、蜂鸣器
I2C
I2C 总线通信
温湿度、陀螺仪、A/D 转换
SPI
SPI 通信设备
显示屏、ADC、Flash
UART
串口通信
外部 MCU 通信、GPS 模块
PWM
脉宽调制
电机控制、调光、舵机
摄像头
Sensor 驱动
OS04A10、IMX347

7.2 PQ 工具编译

PQ(Picture Quality)工具用于图像质量调试和 Sensor 参数调优。针对鸿鸥派的 I2C 编号做了适配,确保 Sensor 正常通信。

text

cd ~/hisi/hi3519dv500tar -xzf ".../PQ-main.tar.gz"cd PQ-mainmake ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-

使用方式:用 sample_vio 等例程出图时,运行 ./StartControl.sh 开启 control 进程。


八、固件打包——249MB 完整镜像

这是整套编译流程的终点——把之前编译好的所有组件打包成一个可以烧录到开发板的固件镜像。

8.1 固件打包工程

海思提供了专门的固件打包工程,支持多板卡参数化配置。

text

cd ~/hisi/hi3519dv500tar -xzf ".../Hi3519DV500_Firmware_Building-main.tar.gz"cd Hi3519DV500_Firmware_Building-main

踩坑提示: 打包脚本 Generate_Image_Hi3519DV500.sh 需要参数才能正常工作,直接执行只会打印帮助信息。正确的执行方式分两步:先从 BSP 编译产物目录拷贝 uImage-fdt、bl31.bin 等文件到打包工程;然后用 -b 板卡名 -g 参数指定目标板卡型号。 

鸿鸥派 38C + Hi3519DV500 对应的板卡参数是 HongouPI_38C_19DV500。

8.2 固件产物清单

最终产出的可烧录镜像包含以下文件:

产物
大小
说明
rootfs.ext4
256MB
根文件系统镜像(ext4)
uImage-fdt
14MB
Linux 5.10.221 内核
boot_image.bin
353KB
U-Boot
bl31.bin
29KB
ARM 可信固件
uboot_env.bin
256KB
U-Boot 环境变量
burn_table.xml
684B
烧录分区表
version.txt
98B
版本信息
总计~249MB完整可烧录镜像

九、AI Agent 参与的 9 个坑

这是整个过程中最有价值的部分。Ubuntu 24.04 在海思 SDK 的官方文档中不是推荐系统,所以各种兼容性问题集中爆发。AI Agent 在其中的作用是加速排查过程——每个坑出现后搜索相关资料、对比不同方案、测试修复结果。

坑 1:Ubuntu 24.04 pip3 安装 wheel 冲突

现象: pip3 install wheel==0.36.2 报错 ERROR: Cannot uninstall wheel 0.42.0, RECORD file not found。 原因: Ubuntu 24.04 通过 deb 包管理器安装了 wheel 0.42.0,pip 尝试卸载旧版本时找不到 RECORD 文件。 解决: 使用 --break-system-packages --ignore-installed 双标志跳过卸载步骤。这是 Ubuntu 24.04 PEP 668 保护策略导致的。 

坑 2:libncursesw5-dev 在 Ubuntu 24.04 不存在

现象: apt install libncursesw5-dev 报找不到包。 原因: Ubuntu 24.04 中 wide-char ncurses 已合并进 libncurses-dev,独立包名已废弃。 解决: 从依赖列表中删除 libncursesw5-dev,只保留 libncurses-dev。 

坑 3:lzop 和 device-tree-compiler 漏装

现象: 内核编译时提示缺少 lzop 或 dtc 命令。 原因: 原始依赖列表遗漏了这两个内核编译必需的工具。 解决: 补充到 01_install_deps.sh 的 apt 安装列表中。 

坑 4:installed_package_check.sh 不存在

现象: 执行 SDK 自带的依赖检查脚本时提示文件不存在。 原因: 该脚本来自海思原厂 SDK 的第七步,适配后的版本被精简掉了。 解决: 自写 check_deps.sh,覆盖 9 大类 36 项检查。 

坑 5:pycryptodome 的导入名不是 Cryptodome

现象: python3 -c "import Cryptodome" 失败,但 pip3 list 显示已安装。 原因: pycryptodome 包的 Python 导入名是 Crypto,不是包名本身。包名是 pycryptodome,但代码里必须写 import Crypto。 解决: 检查所有脚本,确保使用正确的导入名 Crypto。 

坑 6:工具链 PATH 未写入 bashrc

现象: 在新终端中运行 aarch64-linux-gnu-gcc --version 提示找不到命令。 原因: 02 脚本只把 CROSS_COMPILE 和 ARCH 写入了 bashrc,漏掉了 PATH 变量。 解决: 手动向 ~/.bashrc 追加 PATH 定义。 

坑 7:MPP Sample 的 Makefile 不在顶层

现象: 在 MPP Sample 包目录下执行 make 提示找不到目标。 原因: MPP Sample 包的顶层目录没有 Makefile,Makefile 在 src/ 子目录下。 解决: 编译脚本改为 cd "$MPP_DIR/src"。 

坑 8:固件打包脚本需要参数才能工作

现象: 直接执行 Generate_Image_Hi3519DV500.sh 无效果,只打印帮助信息。 原因: 该脚本设计为多板卡通用,支持通过参数指定目标板卡型号。 解决: 查看 README 后执行 bash Generate_Image_Hi3519DV500.sh -b HongouPI_38C_19DV500 -g。 

坑 9:Python venv 环境干扰 pip 检查

现象: check_deps.sh 用 python3 -c "import xxx" 检查包时失败,但系统里已安装。 原因: 当前环境中 python3 指向 AI Agent 的 venv Python,而非系统 Python。 解决: 检查脚本改用 /usr/bin/python3 直接调用系统 Python。 

十、check_deps.sh——自写 36 项依赖检查

适配后的 SDK 没有自带依赖检查,自写了一个覆盖完整的检查脚本:

类别
检查项数
检查内容
交叉工具链
4 项
gcc、g++、ld、objdump
本地编译工具
4 项
gcc、g++、make、build-essential
内核/UBoot 工具
6 项
mkimage、dtc、bc、gperf、xxd、lzop
编译依赖库
6 项
libncurses-dev、flex、bison、libssl-dev、libffi-dev
mtd 依赖库
4 项
zlib1g-dev、liblzo2-dev、uuid-dev、pkg-config
Python 包
3 项
pyelftools、pycryptodome、kconfiglib
文档/打包
4 项
texinfo、texlive、p7zip-full、automake
系统服务
2 项
SSH、NFS 运行状态
环境检查
3 项
磁盘空间、编译器版本、内核源码完整性

每个检查项都有通过/失败的状态输出。有了这个脚本,每次切换环境时只需要跑一次就能知道编译环境是否完整。


十一、经验总结

11.1 适配版本不等于完整版本

适配后的 SDK 并不等于原厂 SDK 的增强版。它在某些地方做了定制,但也删减了一些辅助脚本和文档。不能假设官方 SDK 有的脚本这里也有——先核实再动工是最稳妥的做法。

11.2 脚本分阶段比巨型脚本好十倍

6 个独立脚本比 1 个巨无霸脚本好太多。每步产物可以独立验证,失败不用从头开始;环境变量问题在阶段切换时自然暴露;用户也可以跳过已经完成的步骤。

11.3 Ubuntu 24.04 与嵌入式 SDK 的兼容性是最大变量

大部分海思官方文档基于 Ubuntu 18.04/20.04 编写。在 24.04 上会遇到 PIP 保护策略、包名变更、默认 Python 版本差异等问题。9 个坑中至少有 5 个直接或间接与 OS 版本兼容性有关。

11.4 先读说明再编译

很多坑其实可以通过先看 README 来避免——MPP Sample 的 Makefile 位置、固件打包脚本的参数要求、适配后 SDK 缺少检查脚本。工程师的直觉是先跑再说,但在嵌入式领域最好先读再跑。

11.5 AI Agent 的四种角色

方案设计师——分析不同 SDK 版本优劣,推荐适配版而非原厂版

脚本工程师——把 10 个编译阶段写成 6 个独立脚本,处理边界条件

排查助手——遇到报错时快速检索相关资料、对比不同方案

文档记录员——每次踩坑都记录下来,形成可复用的知识

四个角色的配合,把原本需要 2-3 天的工作量压缩到了 45 分钟的全自动流程。

11.6 日常开发工作流建议

拿到完整固件和编译环境后,日常开发的推荐工作流如下:

编辑代码 → 交叉编译 → 部署到开发板 → 板端测试 → 调试反馈

text

编辑代码 (VS Code / Vim)   ↓交叉编译 (aarch64-linux-gnu-gcc)   ↓部署到开发板 (scp 或 NFS 挂载)   ↓板端运行测试 (SSH 远程执行)   ↓调试反馈 (日志分析 / GDB)   ↑_________________|

这种循环模式是嵌入式开发的标配。SCP 适合单文件部署(秒级),NFS 挂载适合开发阶段的持续调试(修改即生效,无需反复拷贝)。推荐的做法是:开发阶段用 NFS 挂载整个编译输出目录,调试通过后再用 SCP 部署到最终的 eMMC 分区上。这样可以最大化迭代效率,同时保证最终部署的稳定可靠。

CMake 交叉编译工具链配置:

创建一个 toolchain.cmake 文件,可以复用给所有 CMake 项目:

text

SET(CMAKE_SYSTEM_NAME Linux)SET(CMAKE_SYSTEM_PROCESSOR aarch64)SET(CMAKE_C_COMPILER aarch64-linux-gnu-gcc)SET(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++)SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

使用方式:在项目目录中 mkdir build && cd build,执行 cmake ... -DCMAKE_TOOLCHAIN_FILE=../toolchain.cmake 然后 make 即可。

11.7 应用层技术栈推荐

功能
推荐方案
说明
命令行工具
Busybox shell + 自定义脚本
SDK 内置,即开即用
Qt 图形界面
Qt5 交叉编译
海思有移植 PDF 参考文档
OpenCV 视觉
OpenCV 交叉编译
用于图像处理和分析
网络通信
Socket / MQTT / HTTP
标准 Linux 网络栈
数据库
SQLite(轻量,可交叉编译)
适合嵌入式场景
视频处理
MPP API(VENC/VDEC/VI/VPSS)
第六阶段已编译
AI 推理
NPU(SVP)+ 海思 ACL SDK
已验证 YOLOv8 跑通

这些方案都经过了交叉编译验证,可以直接在开发板上运行。


十二、总结

从 Ubuntu 24.04 裸机到 249MB 可烧录镜像,总共耗时约 45 分钟,经历 9 个坑的排查修复,最终产出 6 个自动化脚本 + 1 个 check_deps 依赖检查工具。

这套工具链的核心能力: 任何一台 Ubuntu 24.04 x86_64 机器,跑一遍这 6 个脚本,就能获得一个完整的 Hi3519DV500 开发环境——从 BSP 编译到固件打包全自动完成。 

而 AI Agent 在这个过程中展示的能力,不仅仅是写脚本和踩坑——更重要的是把经验沉淀为可复用的资产。9 个坑的记录、check_deps 脚本、6 阶段流水线设计,这些都是下一次启动时可以直接复用的知识。


关注「AI的探索之旅」,你将获得:
内容
频率
适合人群
嵌入式 AI 实战教程
每周
想做 AI + 嵌入式交叉领域的开发者
Hi3519DV500 开发深度解析
不定期
AI 视觉 SoC 开发者
编译环境搭建方法论
双周
手头有开发板但搭环境的工程师
AI Agent 辅助开发经验
不定期
想用 AI 提效的嵌入式工程师
关注并私信回复"编译工具链",获取 6 个自动化脚本的完整源码和 check_deps.sh 依赖检查工具。往期推荐:

→ [Hi3519DV500 嵌入式开发全攻略:从环境搭建到固件打包一站式指南] → [AI ISP vs 传统 ISP:海思芯片的图像处理到底强在哪?] → [AI Agent 接管飞书调试开发板:让智能体帮你跑命令、查参数、修配置]


*实践出真知。*

👇 长按识别关注,不错过每一篇干货
📌 版权所有 © AI的探索之旅 | 转载请联系作者