1. OpenHarmony轻量系统开发环境搭建与Hello World驱动
任务说明
本案例目标是在Ubuntu主机上搭建鸿蒙南向(OpenHarmony轻量系统)开发环境,编译一个最小Hello World程序并烧录到Hi3861开发板,通过串口观察输出,验证“编写→编译→烧录→运行”的完整开发流程。
开发环境与依赖
宿主机要求:Ubuntu 20.04 x64,已安装Python 3.8+、Git、wget。Hi3861开发板通过USB转串口连接主机,串口驱动为CH340(Linux内核自带)。
目录结构与源码
在用户目录下创建鸿蒙源码根目录,并下载轻量系统源码(约1.5GB,需网络)。为节省篇幅,此处给出最小可复现的目录骨架与关键文件内容,完整源码通过repo命令获取。
# 安装repo工具
mkdir -p ~/bin
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o ~/bin/repo
chmod +x ~/bin/repo
export PATH=~/bin:$PATH
# 创建工作目录并初始化(以OpenHarmony 3.0 LTS为例)
mkdir -p ~/openharmony && cd ~/openharmony
repo init -u https://gitee.com/openharmony/manifest.git -b OpenHarmony-3.0-LTS --no-repo-verify
repo sync -c # 同步全部源码,约需30-60分钟
编写Hello World程序
在源码的applications/sample/wifi-iot/app目录下新建hello子目录,创建业务代码与编译配置文件:
# 文件:applications/sample/wifi-iot/app/hello/BUILD.gn
import("//build/lite/config/component/lite_component.gni")
lite_component("hello") {
features = [ "hello:hello_main" ]
}
# 文件:applications/sample/wifi-iot/app/hello/hello.c
#include <stdio.h>
#include "ohos_init.h"
void hello_main(void)
{
printf("Hello World! OpenHarmony IoT\\n");
}
SYS_RUN(hello_main); // 系统启动时自动调用
修改同目录下BUILD.gn,将hello组件加入编译列表:
# 文件:applications/sample/wifi-iot/app/BUILD.gn
import("//build/lite/config/component/lite_component.gni")
lite_component("app") {
features = [ "hello:hello" ]
}
编译与烧录
# 配置编译环境
cd ~/openharmony
hb set # 选择 wifiiot 产品
hb build -f # 开始编译,首次约20分钟
# 编译产物路径
# out/wifiiot/Hi3861_wifiiot_app_allinone.bin
烧录使用Hi3861专用工具(HiBurn),在Windows下操作:将上述bin文件通过HiBurn烧录到开发板,波特率921600,烧录地址0x0。
验证方法
烧录完成后,开发板自动重启。使用串口工具(如PuTTY)打开对应COM口,波特率115200,观察启动日志。若在日志末尾看到以下输出,则判定开发流程验证通过:
Hello World! OpenHarmony IoT
判定标准
满足以下条件即判定案例通过:
- 编译过程无错误,成功生成Hi3861_wifiiot_app_allinone.bin文件;
- 烧录后开发板正常启动,无异常重启循环;
- 串口工具在115200波特率下收到与源码printf内容完全一致的字符串输出。