构建首个项目
本章以 sample base为例,引导开发者完成首次编译、烧录与上板运行,运行结果为一个 HelloWorld 程序。
镜像获取支持两种方式,请根据实际需求选择其一:
- 直接烧录:下载官方预编译镜像即可上板,无需搭建编译环境,适合只想快速体验或验证开发板功能的场景;
- 源码编译:从源码开始自行编译生成镜像,适合需要阅读、修改代码或进行二次开发的场景。
两种方式产出的镜像内容一致,均包含以下文件:
boot_image.bin # boot 分区镜像
nand_env.bin # env 分区镜像(环境变量)
uImage # kernel 分区镜像(Linux 内核)
rootfs_hi3516cv610_*.ubifs # rootfs 分区镜像(根文件系统)
nand_burn_table.xml # NAND 分区表
一、获取镜像
方式一:直接下载预编译镜像
无需搭建编译环境时,可直接下载官方预编译镜像包:
下载完成后解压,即可获得上述镜像文件。
预编译镜像可使用 ToolPlatform(BurnTool)烧录,参见 编译构建与烧录 - 二、烧录 - 2. ToolPlatform(BurnTool)烧录。
方式二:下载源码并编译
本案例基于 Windows PC 内置 WSL 环境。请先完成环境搭建,详见 Windows PC 内置 WSL 环境搭建。
1. 下载源码
前置:请先完成 gitcode 凭据配置与 repo 工具安装,详见 repo 安装与源码下载。
# 指定多仓结构配置(base 案例为 Linux 构建形态,使用 -g linux 仅下载所需代码仓)
repo init -u https://gitcode.com/HiSpark/hi_aiot_solution_manifest -b main -g linux
# 同步下载多仓源码
repo sync
# 各子仓在本地创建 master 分支,便于后续开发提交
repo start master --all
2. 编译 base 案例
在 WSL 工程根目录执行:
其中 --target 后依次指定板卡(cv610_ev_board)、应用分类(samples)与案例名称(base),脚本据此定位到 apps/cv610_ev_board/samples/base 执行编译。
编译产物位于:
首次编译包含 BSP(内核、uboot、rootfs)编译,耗时较长。
编译命令各字段含义、编译产物说明、清理与重新编译方法,以及 OpenHarmony(OHOS)构建方式,详见 编译构建与烧录 - 编译章节。
源码编译后的镜像可使用脚本烧录或 ToolPlatform(BurnTool)烧录。
二、烧录到开发板
根据镜像来源选择不同的烧录方式:
| 镜像来源 | 可用烧录方式 |
|---|---|
| 预编译镜像 | 只能用 ToolPlatform(BurnTool) |
| 源码编译镜像 | 脚本烧录 或 ToolPlatform(BurnTool) |
1. 脚本烧录
使用前需完成以下配置(详见 Windows PC 内置 WSL 环境搭建):
- WSL2 直连 USB 串口设备
- WSL2 内运行 TFTP server
烧写参见 编译构建与烧录 - 二、烧录 - 1. 脚本烧录。
2. ToolPlatform(BurnTool)烧录
参见 编译构建与烧录 - 二、烧录 - 2. ToolPlatform(BurnTool)烧录。
三、上电运行
1. 启动开发板
烧录完成后开发板自动复位并启动系统。
2. 串口登录
使用串口调试工具(如 MobaXterm、SecureCRT、minicom 等)连接开发板串口。串口号、波特率等参数以实际开发板资料为准。
连接成功后,可在串口终端中看到系统启动日志,并进入 shell 提示符:
3. 运行 HelloWorld
HelloWorld 程序位于 root 用户家目录 /root 下,不随系统启动自动执行。在 shell 中手动执行:
程序正常运行时输出:
四、验证结果
完成以下检查项即表示 base 案例操作成功:
| 验证项目 | 操作方法 | 预期结果 |
|---|---|---|
| 镜像烧录成功 | 查看 BurnTool 弹窗及控制台日志 | 提示烧写成功,输出 Partition burnt completed!,CRC 校验通过 |
| 串口登录 | 使用串口调试工具连接开发板 | 显示系统启动日志并进入 ~ # 提示符 |
| HelloWorld 存在 | ls -l /root/hello |
文件存在且具有可执行权限 |
| HelloWorld 手动执行 | cd /root && ./hello |
输出 Welcome to the world of Hi3516CV610, start your exploration now! |
| HelloWorld 不自动执行 | 重启后执行 ps \| grep hello |
无 hello 进程 |
常见问题及处理方法:
- 烧录失败:检查镜像与分区表是否匹配、串口/网口连接是否正常、烧录参数是否正确;
- 串口无输出或无法进入 shell:检查串口驱动、串口号、波特率及开发板供电;
/root/hello不存在:确认烧录的 rootfs 为本案例编译产物或官方FactoryDemo_base.rar。
完成上述操作后,即完成 base 案例的基础体验,可作为后续案例开发与验证的基础。