编译构建与烧录
本文介绍如何编译构建案例并将镜像烧录到开发板。项目支持 Linux 与 OpenHarmony(OHOS) 两种构建形态:
- Linux 构建使用
scripts/build.sh - OHOS 构建使用
scripts/build_ohos.sh
前置条件:
- 已完成开发环境搭建;
- 已安装 repo 工具并下载多仓源码。
一、编译
1. Linux 构建
Linux 构建的统一入口为 bash scripts/build.sh,语法如下:
字段含义见下表:
| 字段 | 含义 | 示例 | 字段值来源 |
|---|---|---|---|
| BOARD | 板卡目录 | cv610_ev_board |
apps 目录下的目录名 |
| APP_TYPE | 应用分类 | references / samples / solutions |
板卡目录下的目录名 |
| APP_NAME | 应用名称 | framework_media |
对应分类下的目录名 |
脚本解析定位到 apps/<BOARD>/<APP_TYPE>/<APP_NAME> 案例执行编译,具体可编译案例参见对应板仓目录。
以媒体框架案例为例:
# 进入工程目录
cd hi_aiot_solution
# 直接编译应用
bash scripts/build.sh build --target cv610_ev_board samples framework_media
编译成功后输出:
[OK] ============================================================
[OK] 构建成功!
[OK] 中间产物 : /xxxx/hi_aiot_solution/_build/lib/
[OK] /xxxx/hi_aiot_solution/_build/bin/
[OK] 第三方库 : /xxxx/hi_aiot_solution/_build/third_party/
[OK] ============================================================
[OK] ============================================================
[OK] 烧录镜像已写入:/xxxx/hi_aiot_solution/_build/install/
[OK] ============================================================
执行 ls _build/install/image/framework_media/ 查看案例可烧录镜像文件,通常包含:
nor_burn_table.xml NOR 分区表
nand_burn_table.xml NAND 分区表
boot_image.bin U-Boot 烧写文件
uImage 内核镜像
nor_env.bin NOR 环境变量镜像
nand_env.bin NAND 环境变量镜像
rootfs_*.* 文件系统镜像
注意:sample 类案例编译结果可能只有可执行文件,不含烧写文件。
2. OpenHarmony(OHOS)构建
OHOS 构建使用 scripts/build_ohos.sh。目前 ws73 无线模组整机集成方案已适配 OHOS 系统,以 references/factory_demo/ws73_lcd 案例为例:
bash scripts/build_ohos.sh --target cv610_ev_board references factory_demo/ws73_lcd --sdk-type hispark --shell busybox --product-name=ipcamera_hispark_hi3516cv610_linux --ccache --no-prebuilt-sdk
参数说明:
| 参数 | 说明 |
|---|---|
--target cv610_ev_board |
指定目标硬件平台 cv610_ev_board |
references factory_demo/ws73_lcd |
指定编译案例目标 |
--sdk-type hispark |
指定 SDK 类型 |
--shell busybox |
指定目标系统 shell 环境为 busybox(默认,可切换 toybox 用于 xts 测试) |
--product-name=ipcamera_hispark_hi3516cv610_linux |
最终编译出的产品/系统镜像名称 |
--build-xts=true |
启用 XTS 测试套件编译(可选) |
--ccache |
启用 ccache 编译缓存,加速增量编译 |
--no-prebuilt-sdk |
强制不使用预编译 SDK |
编译产物位于 ohos/out/hispark_hi3516cv610/ipcamera_hispark_hi3516cv610_linux/:
OHOS 详细适配说明参见 鸿蒙版本支持。
3. 清理与重新编译
总体原则:同一案例重编用 clean;切换案例前用 distclean。
脚本 scripts/build.sh 提供两个清理子命令,分工如下:
| 子命令 | 清理范围 | 适用场景 |
|---|---|---|
clean |
清理组件/应用/SK 子系统编译产物;保留 _build/、第三方库、SDK 源码树、.config/.target/Kconfig.apps 等配置状态文件 |
未切换案例,仅想重编当前案例(改了几行代码、调整编译选项等) |
distclean |
在 clean 基础上:删除整个 _build/ 目录、反打已应用的案例/BSP/SDK 补丁、删除 .config/.target/Kconfig.apps 等状态文件,恢复到未构建状态 |
切换案例前使用;或怀疑构建目录有残留污染时使用 |
# 不切案例,仅重编当前案例
bash scripts/build.sh clean
bash scripts/build.sh build
# 切换到另一个案例前,必须先 distclean
bash scripts/build.sh distclean
bash scripts/build.sh build --target <BOARD> <APP_TYPE> <APP_NAME>
OHOS 构建的清理
OHOS 构建切换案例时需清理产物与 sdk:
rm -rf ohos/out
rm -rf sdk/Hi3516CV610/
repo sync HiSpark/Hi3516CV610 HiSpark/busybox HiSpark/linux HiSpark/u-boot
二、烧录
当有烧录镜像后即可进行烧写。编译成功后,烧录镜像位于 _build/install/image/<VARIANT>/(见上文编译产物说明)。本项目提供三种烧录方式,按需选择:
| 烧录方式 | 适用场景 | 说明 |
|---|---|---|
| 脚本烧录 | Windows PC 内置 WSL / WSL 内的 Docker 容器 | 命令行烧录 |
| ToolPlatform(BurnTool) | U-Boot 异常 / Windows 下能访问烧录镜像文件 | 图形化工具,支持按分区手动烧写 |
| Skill 烧录 | AI Agent 自动化烧录 | 支持本地/远程双模式,覆盖多场景 |
1. 脚本烧录
适用于 Windows PC 内置 WSL 环境或 WSL 内的 Docker 容器环境。详细使用方法参见 烧录工具使用文档。
2. ToolPlatform(BurnTool)烧录
适用于 U-Boot 异常或 Windows 下能访问烧录镜像文件的场景。详细使用方法参见 ToolPlatform(BurnTool)。
3. Skill 烧录
适用于 AI Agent 自动化烧录场景,支持 local(板子与 Agent 同机)和 remote(板子接在远程 Windows PC)两种模式。详细使用方法参见 Hi3516CV610 烧录 Skill。