1. OpenHarmony 初探:从项目背景到开发板选型
大家好,我是你们这门课的老朋友。今天咱们正式开篇,聊聊 OpenHarmony 到底是个什么来头,以及我们为什么要选 BearPi-HM Nano 这块板子来入门。
说实话,我接触 OpenHarmony 也有几年了。最早看到这个项目时,我第一反应是:又一个新系统?但深入了解后,我发现它跟 Linux、FreeRTOS 那些老面孔还真不一样。它瞄准的是物联网这个碎片化到极致的战场——你想想看,从几 KB 内存的传感器到几 GB 内存的智能屏,传统方案往往要换好几套系统,而 OpenHarmony 想用一套架构通吃。这个野心,我喜欢。
1.1 OpenHarmony 项目背景:为什么要有它?
物联网设备开发有个老毛病:碎片化。我早年做智能家居项目时,一个网关里跑了 Linux,传感器节点用 FreeRTOS,手机 App 又是 Android。三套系统,三套 API,联调时简直想砸键盘。
OpenHarmony 的核心理念就是解决这个痛点。它由开放原子开源基金会孵化,目标是构建一个面向全场景、全连接、全智能的分布式操作系统。说白了,就是让不同设备能像同一个团队那样协作。
关键特性一览:
- 分布式架构:设备之间可以跨系统调用能力,比如用手机摄像头给电视做视频输入
- 一次开发,多端部署:同样的业务逻辑,在轻量系统和小型系统上复用
- 硬件驱动框架 HDF:统一驱动接口,换芯片不用重写驱动
- 轻量级内核:支持 LiteOS-M、LiteOS-A、Linux 三种内核,按需选配
我记得第一次在 BearPi 上跑通分布式软总线时,两个开发板之间互相发现、建立连接,那个感觉——嗯,就像你第一次让两个 Arduino 用 I2C 通信成功一样,虽然简单,但成就感满满。
1.2 南向设备开发:到底在开发什么?
很多初学者会问:南向开发跟嵌入式开发有什么区别?
其实说白了,南向开发就是嵌入式开发在 OpenHarmony 生态里的叫法。它指的是靠近硬件的底层开发工作,包括驱动编写、内核适配、板级支持包(BSP)移植等。与之对应的是北向开发,也就是应用层开发。
我习惯把南向开发比作「搭桥」——桥的一头是芯片和传感器,另一头是系统服务和应用。你的工作就是让数据在这座桥上顺畅跑起来。
| 开发方向 | 工作内容 | 典型产出 |
|---|---|---|
| 南向开发 | 驱动、内核、BSP、HAL | .ko 驱动模块、设备配置文件 |
| 北向开发 | 应用 UI、业务逻辑、分布式能力 | HAP 应用包、JS/TS 代码 |
我的建议:如果你是嵌入式老手,南向开发会让你感觉很亲切——无非是换了一套 API 和构建系统。但如果你是刚入门,我建议先从 GPIO、I2C、UART 这些基础外设驱动开始,别一上来就啃内核调度。
1.3 开发板选型:为什么是 BearPi-HM Nano?
市面上支持 OpenHarmony 的开发板不少,比如润和的 Hi3861、小熊派的 BearPi、以及各种 STM32 移植版。我为什么推荐 BearPi-HM Nano 作为入门首选?
原因有三:
- 资料最全:官方文档、社区教程、示例代码,基本覆盖了南向开发的常见场景
- 外设丰富:板载了 Wi-Fi、蓝牙、OLED 屏、温湿度传感器、加速度计等,不用额外接线就能跑很多实验
- 价格亲民:百元级价位,学生党也能负担
我曾经帮一个团队选型,他们纠结于 BearPi 和另一款高价板。我说:入门阶段,板子不是越贵越好,关键是你能快速跑通第一个例程,建立信心。BearPi 就是那个让你「第一次就成功」的板子。
1.4 BearPi-HM Nano 硬件概览
咱们来看看这块板子的核心配置:
| 组件 | 型号/规格 | 说明 |
|---|---|---|
| 主控芯片 | Hi3861V100 | RISC-V 架构,160MHz,2MB Flash |
| 无线连接 | 2.4GHz Wi-Fi | 802.11 b/g/n,支持 SoftAP 和 Station 模式 |
| 板载传感器 | SHT30(温湿度) | I2C 接口,精度 ±0.3°C |
| 显示 | 0.96 寸 OLED | 128×64 分辨率,SSD1306 驱动 |
| 扩展接口 | 2×8 排针 | 引出 GPIO、UART、I2C、SPI、ADC |
嗯,这里要注意:Hi3861 虽然是 RISC-V 内核,但 OpenHarmony 对它做了完整的 LiteOS-M 适配。你写驱动时基本不用关心内核细节,直接调用 HDF 接口就行。
1.5 知识体系总览:一张图看懂本章
下面这张 SVG 图梳理了本章的核心知识点和它们之间的关系。你可以把它当作整个课程的「导航地图」。
避坑提醒:我曾经遇到一个学员,拿到 BearPi 后直接插电,发现灯不亮——急得团团转。后来发现是 Type-C 线只支持充电不支持数据。记住:开发板需要数据线,不是充电线!另外,第一次烧录前务必安装好 CH340 驱动,否则电脑认不到设备。
1.6 开发环境速览:你需要准备什么?
在正式开始写代码之前,先把工具备齐。我列个清单,你照着准备就行:
- 硬件:BearPi-HM Nano 开发板 × 1、Type-C 数据线 × 1(要支持数据传输)
- 软件:Ubuntu 20.04(虚拟机或双系统)、OpenHarmony 源码(推荐 3.0 LTS 版本)、Hi3861 烧录工具
- 文档:BearPi-HM Nano 原理图、Hi3861 数据手册(官网可下载)
嗯,这里有个小技巧:我习惯在 Ubuntu 里用 repo 工具同步源码,第一次同步大概要下载 2-3GB 数据,建议用有线网络,Wi-Fi 容易断。同步完成后,执行 hb set 选择 bearpi_hm_nano 工程,然后 hb build 就能编译了。