第一章 鸿蒙南向开发环境搭建
各位同学,咱们今天正式开课。第一章说白了就是「把家伙事儿备齐」。做嵌入式开发,环境搭不好,后面全是坑。我见过太多人卡在编译环境上,一卡就是半天,心态直接崩了。
所以这一章,我会把 OpenHarmony 源码获取、DevEco Device Tool 安装、编译环境配置、Hi3861 开发板介绍,一个一个掰开揉碎了讲。跟着我的步骤走,别跳步,基本一次过。
1.1 OpenHarmony 源码获取
先说说源码。OpenHarmony 的源码托管在 Gitee 上,国内访问速度还行。我个人习惯用 repo 工具来管理多仓库项目,因为 OpenHarmony 本身就是由几百个仓库组成的。
获取步骤
- 安装 Git 和 Python:版本要求 Git 2.20+,Python 3.8+。
- 配置 repo 工具:
mkdir ~/bin curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo chmod a+x ~/bin/repo export PATH=~/bin:$PATH - 初始化并同步源码:
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 参数表示只同步当前分支,能省不少时间。我第一次同步时没加这个参数,等了快两个小时……后来才发现,其实很多仓库你用不上。
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」图标。点进去,就能看到项目配置、编译按钮、烧录按钮。嗯,到这里环境就算搭了一半了。
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 间距,方便接传感器模块
知识结构总览
下面这张图,把第一章的核心知识点串起来了。你可以把它当作「地图」,后面每学一个环节,回来看看自己在哪个位置。