跳转至

编译构建与烧录

本文介绍如何编译构建案例并将镜像烧录到开发板。项目支持 LinuxOpenHarmony(OHOS) 两种构建形态:

  • Linux 构建使用 scripts/build.sh
  • OHOS 构建使用 scripts/build_ohos.sh

前置条件:

  • 已完成开发环境搭建;
  • 已安装 repo 工具并下载多仓源码。

一、编译

1. Linux 构建

Linux 构建的统一入口为 bash scripts/build.sh,语法如下:

bash scripts/build.sh build --target <BOARD> <APP_TYPE> <APP_NAME>

字段含义见下表:

字段 含义 示例 字段值来源
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/

nand_burn_table.xml
uImage
boot_image.bin
rootfs_hi3516cv610_2k_128k_198M.ubifs
nand_env.bin

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