跳转至

构建首个项目

本章以 sample base为例,引导开发者完成首次编译、烧录与上板运行,运行结果为一个 HelloWorld 程序。

镜像获取支持两种方式,请根据实际需求选择其一:

  • 直接烧录:下载官方预编译镜像即可上板,无需搭建编译环境,适合只想快速体验或验证开发板功能的场景;
  • 源码编译:从源码开始自行编译生成镜像,适合需要阅读、修改代码或进行二次开发的场景。

两种方式产出的镜像内容一致,均包含以下文件:

boot_image.bin                    # boot 分区镜像
nand_env.bin                      # env 分区镜像(环境变量)
uImage                            # kernel 分区镜像(Linux 内核)
rootfs_hi3516cv610_*.ubifs        # rootfs 分区镜像(根文件系统)
nand_burn_table.xml               # NAND 分区表

一、获取镜像

方式一:直接下载预编译镜像

无需搭建编译环境时,可直接下载官方预编译镜像包:

下载 FactoryDemo_base.rar

下载完成后解压,即可获得上述镜像文件。

预编译镜像可使用 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 工程根目录执行:

bash scripts/build.sh build --target cv610_ev_board samples base

其中 --target 后依次指定板卡(cv610_ev_board)、应用分类(samples)与案例名称(base),脚本据此定位到 apps/cv610_ev_board/samples/base 执行编译。

编译产物位于:

_build/install/image/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 提示符:

Welcome to Linux.
~ #

3. 运行 HelloWorld

HelloWorld 程序位于 root 用户家目录 /root 下,不随系统启动自动执行。在 shell 中手动执行:

cd /root
ls -l hello
./hello

程序正常运行时输出:

Welcome to the world of Hi3516CV610, start your exploration now!

四、验证结果

完成以下检查项即表示 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 进程

常见问题及处理方法:

  1. 烧录失败:检查镜像与分区表是否匹配、串口/网口连接是否正常、烧录参数是否正确;
  2. 串口无输出或无法进入 shell:检查串口驱动、串口号、波特率及开发板供电;
  3. /root/hello 不存在:确认烧录的 rootfs 为本案例编译产物或官方 FactoryDemo_base.rar

完成上述操作后,即完成 base 案例的基础体验,可作为后续案例开发与验证的基础。