1. 鸿蒙南向开发环境全景:从源码到烧录
做南向驱动开发,第一步就是把环境搭起来。很多新手一上来就卡在环境配置上,折腾几天还没见到代码长什么样。我刚开始接触 OpenHarmony 时也踩过不少坑,今天就把这些经验梳理清楚。
说白了,整个环境搭建就四步:拿源码 → 装工具 → 配编译 → 烧固件。咱们一个一个来。
核心要点:环境搭建是南向开发的基础,一步错步步错。建议严格按照版本对应关系来,不要混用。
1.1 OpenHarmony 源码获取
源码获取方式有好几种,我个人最推荐用 repo 工具。为什么?因为 OpenHarmony 的仓库太多了,手动一个个 clone 会疯掉。
先装 repo:
# 创建 bin 目录并加入 PATH
mkdir ~/bin
PATH=~/bin:$PATH
# 下载 repo 工具
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo
chmod a+x ~/bin/repo
然后初始化并同步代码:
# 创建工作目录
mkdir ohos_3.1 && cd ohos_3.1
# 初始化 repo(以 3.1 Release 为例)
repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony-3.1-Release --no-repo-verify
# 同步源码(这一步很慢,建议挂代理或夜间跑)
repo sync -c -j4
我的经验:第一次同步源码时,我用了 -j8 结果网络频繁断开。后来改成 -j4 反而更稳定。网络不好的话,可以加 --no-tags 跳过标签下载。
同步完成后,源码目录结构大概是这样的:
| 目录/文件 | 说明 |
|---|---|
kernel/ |
LiteOS 内核源码 |
device/ |
各芯片厂商的 BSP 和驱动 |
drivers/ |
HDF 驱动框架核心代码 |
vendor/ |
产品级配置和适配层 |
build/ |
编译构建系统(gn/ninja) |
out/ |
编译产物目录(首次编译后生成) |
1.2 DevEco Device Tool 安装
DevEco Device Tool 是华为官方出的集成开发环境。说白了,它把源码管理、编译、烧录、调试都整合到一起了。我个人觉得,用 IDE 比命令行效率高不少,尤其是烧录和调试阶段。
安装步骤:
- 下载安装包:从华为开发者官网下载对应操作系统的版本(Windows/Linux)。
- 安装依赖:Windows 下需要提前装好 Python 3.8+、Git、Node.js 14+。
- 一键安装:双击安装包,按向导走就行。安装路径不要有中文和空格。
- 配置工具链:打开 DevEco Device Tool,在设置里配置
gn、ninja、gcc_riscv32等工具的路径。
注意:DevEco Device Tool 的版本必须与 OpenHarmony 版本匹配。我见过有人用 2.2 的工具链去编译 3.1 的源码,结果各种报错。建议去官方文档查版本对应表。
1.3 编译环境搭建:gn/ninja 构建系统
OpenHarmony 用的是 gn + ninja 这套构建系统。gn 负责生成构建规则,ninja 负责真正干活——并行编译。
为什么要用这套?因为快。ninja 的并行编译速度比 Makefile 快一个数量级。你想想看,一个全量编译动辄几十分钟,能省一秒是一秒。
环境配置要点:
- Python 3.8+:gn 和 ninja 的脚本依赖 Python。
- 交叉编译工具链:Hi3861 是 RISC-V 架构,需要
gcc_riscv32工具链。 - gn 和 ninja 二进制:可以从 OpenHarmony 的
prebuilts目录下找到,或者自己编译。
编译 Hi3861 的示例命令:
# 设置编译环境
hb set -root $PWD
# 选择 Hi3861 开发板
hb set -p hi3861
# 开始编译
hb build -f
编译完成后,固件在 out/hi3861/wifiiot_sdk/ 目录下,文件名是 Hi3861_wifiiot_app_allinone.bin。
避坑指南:我第一次编译时忘了装 gcc_riscv32,报错说找不到编译器。后来发现 DevEco Device Tool 自带工具链,但路径需要手动配置。建议直接用 IDE 的自动检测功能。
1.4 Hi3861 开发板烧录
Hi3861 是海思出的 Wi-Fi IoT 芯片,RISC-V 内核,性价比很高。烧录方式有两种:串口烧录和 JTAG 烧录。咱们开发阶段用串口就够了。
烧录步骤:
- 连接硬件:用 USB 转串口线连接 Hi3861 开发板,注意 TX/RX 不要接反。
- 进入烧录模式:按住开发板上的
BOOT键,再按一下RESET键,然后松开BOOT键。 - 选择固件:在 DevEco Device Tool 里选择刚才编译好的
.bin文件。 - 开始烧录:点击烧录按钮,等待进度条走完。
烧录成功后,串口会输出启动日志。如果看到 Hello OpenHarmony,恭喜你,环境搭好了。
注意:烧录时如果提示 Failed to connect,八成是串口驱动没装或者 BOOT 模式没进对。Windows 下需要装 CH340 驱动,Linux 下需要给串口设备加权限:sudo chmod 666 /dev/ttyUSB0。
1.5 整体流程一览
我把整个环境搭建的流程画了张图,方便你对照着操作:
1.6 常见问题与排查
环境搭建过程中,我遇到过不少问题。挑几个典型的说说:
| 问题 | 原因 | 解决方法 |
|---|---|---|
repo sync 卡住不动 |
网络不稳定或仓库太大 | 加 --no-tags 参数,或换时间段重试 |
编译报错 gn not found |
gn 未安装或路径未配置 | 检查 prebuilts 目录,或手动指定路径 |
烧录时 Failed to connect |
串口驱动问题或 BOOT 模式未进入 | 重装驱动,重新按 BOOT+RESET |
| 烧录成功但无串口输出 | 串口波特率不匹配或 TX/RX 接反 | 检查波特率(默认 115200),交换 TX/RX |
我的习惯:每次搭建新环境,我都会先跑一遍 hb build -f 确认编译没问题,再烧录。这样能快速定位问题是出在编译阶段还是烧录阶段。
嗯,环境搭建这部分就这些内容。记住一个原则:版本对应、工具链匹配、串口接线别搞反。做到这三点,环境搭建基本不会出大问题。