第一章 鸿蒙南向开发环境搭建

各位同学,咱们今天正式开课。第一章说白了就是「把家伙事儿备齐」。做嵌入式开发,环境搭不好,后面全是坑。我见过太多人卡在编译环境上,一卡就是半天,心态直接崩了。

所以这一章,我会把 OpenHarmony 源码获取、DevEco Device Tool 安装、编译环境配置、Hi3861 开发板介绍,一个一个掰开揉碎了讲。跟着我的步骤走,别跳步,基本一次过。

1.1 OpenHarmony 源码获取

先说说源码。OpenHarmony 的源码托管在 Gitee 上,国内访问速度还行。我个人习惯用 repo 工具来管理多仓库项目,因为 OpenHarmony 本身就是由几百个仓库组成的。

小提示: 如果你在 Windows 上开发,建议装一个 WSL2(Windows Subsystem for Linux 2),体验比虚拟机好太多。我在项目中用过 Cygwin,嗯,不推荐,坑多。

获取步骤

  1. 安装 Git 和 Python:版本要求 Git 2.20+,Python 3.8+。
  2. 配置 repo 工具:
    mkdir ~/bin
    curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
    chmod a+x ~/bin/repo
    export PATH=~/bin:$PATH
  3. 初始化并同步源码:
    mkdir ohos && cd ohos
    repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
    repo sync -c

这里有个细节:repo sync -c 后面的 -c 参数表示只同步当前分支,能省不少时间。我第一次同步时没加这个参数,等了快两个小时……后来才发现,其实很多仓库你用不上。

注意: 源码体积大约 8-10GB,请确保磁盘有足够空间。网络不稳定时,可以用 repo sync -c --no-clone-bundle 避免 bundle 文件下载失败。

1.2 DevEco Device Tool 安装

DevEco Device Tool 是华为官方提供的 IDE 插件,基于 VS Code。说白了,它就是帮你管理编译、烧录、调试的一站式工具。我个人觉得,比手动敲命令行舒服多了。

安装流程

步骤 操作 说明
1 下载 VS Code 从官网获取,版本 1.60+
2 安装 DevEco Device Tool 插件 在 VS Code 扩展市场搜索「DevEco Device Tool」
3 配置工具链路径 设置中指定 gcc_riscv32、gn、ninja 等路径
4 导入 OpenHarmony 源码 通过插件界面选择源码根目录

安装完成后,你会看到左侧多了一个「DevEco」图标。点进去,就能看到项目配置、编译按钮、烧录按钮。嗯,到这里环境就算搭了一半了。

避坑指南: 我曾经在 Ubuntu 20.04 上装完插件后,发现烧录按钮是灰色的。查了半天,原来是串口权限没开。执行 sudo usermod -a -G dialout $USER 然后重启,问题解决。

1.3 编译环境配置

编译环境这块,我建议直接用 Ubuntu 20.04 或 22.04 LTS。CentOS 也行,但依赖包要自己折腾,没必要。

必备工具安装

sudo apt-get update
sudo apt-get install -y gcc-arm-none-eabi gcc-riscv64-unknown-elf
sudo apt-get install -y python3 python3-pip
sudo apt-get install -y ninja-build gn
sudo apt-get install -y libncurses5-dev libssl-dev
pip3 install setuptools kconfiglib

这里我多说一句:gn 和 ninja 是 OpenHarmony 的构建核心。gn 负责生成构建规则,ninja 负责真正编译。你想想看,几百个仓库的代码,如果没有这两兄弟,编译一次得等到天荒地老。

编译验证

进入源码根目录,执行:

hb set
hb build -f

第一次编译大概需要 20-30 分钟。如果看到 BUILD SUCCEEDED,恭喜你,环境通了。

注意: 编译过程中如果报错 No module named 'Crypto',执行 pip3 install pycryptodome。这是 OpenHarmony 签名工具需要的依赖,我当初漏了这一步,排查了半小时。

1.4 Hi3861 开发板介绍

Hi3861 是海思推出的 Wi-Fi IoT 芯片,也是 OpenHarmony 南向开发的首选板子。为什么选它?说白了,便宜、够用、资料多。

核心参数

参数 值 备注
CPU RISC-V 32bit @ 160MHz 单核,带 FPU
RAM 352KB SRAM,够跑轻量系统
Flash 2MB 内置,可外扩
Wi-Fi 802.11 b/g/n 2.4GHz,支持 AP/STA
外设 GPIO、I2C、SPI、UART、PWM、ADC 基本覆盖传感器接口

这块板子最大的特点是「低功耗」。我在做智能家居项目时,用 Hi3861 配合电池供电,待机电流能做到 10μA 以下。嗯,这个后面讲传感器驱动时会细说。

开发板布局

拿到板子后,先认识几个关键位置:

  • USB 口:供电 + 串口通信,烧录和日志都靠它
  • 复位按键:短按复位,长按进入烧录模式
  • 天线区域:板载 PCB 天线,别用手摸,会影响信号
  • 排针接口:2.54mm 间距,方便接传感器模块
小技巧: 第一次上电前,先检查板子背面有没有短路。我遇到过一块板子,焊锡渣粘在引脚上,上电直接冒烟……还好只是烧了稳压芯片,换一个就好了。

知识结构总览

下面这张图,把第一章的核心知识点串起来了。你可以把它当作「地图」,后面每学一个环节,回来看看自己在哪个位置。

第一章知识结构图 第一章 鸿蒙南向开发环境搭建 源码获取 DevEco 安装 编译环境 Hi3861 板 repo init repo sync VS Code 插件 工具链配置 gn + ninja hb build GPIO/I2C/SPI 💡 学习路径建议 先搭编译环境 → 再获取源码 → 安装 DevEco → 最后认识开发板 遇到问题先看编译日志,90% 的错误都是依赖缺失或路径不对