HarmonyOS 设备开发入门
版本: 1.2
作者: 连志安
时间: 2020 年 11 月
更新: 鸿蒙小车及其语音控制等 6 个子章节
目录
目录 .................................................................................................................................................. 1
第 1 章 HarmonyOS 介绍 .................................................................................................................. 2
1.1 鸿蒙系统与 Linux、Android 的不同 ............................................................................. 2
1.2 LiteOS 内核 ..................................................................................................................... 2
1.3 相关资料 ........................................................................................................................... 3
第 2 章 开发环境搭建 ..................................................................................................................... 3
2.1 Linux 环境搭建 ................................................................................................................ 3
2.2 Windows 访问 ubuntu 文件 .............................................................................................. 5
2.3 Windows 环境搭建 ............................................................................................................ 8
2.4 烧录 ................................................................................................................................... 8
第 3 章 Hi3861 开发 ........................................................................................................................ 8
3.1 编写一个简单的 hello world 程序 ............................................................................... 8
3.2 Hi3861 相关代码结构 .................................................................................................... 10
3.3 Hi3861 启动流程 ............................................................................................................ 11
3.4 Hi3861 AT 指令源码分析,如何添加一条自己的 AT 指令 ........................................ 14
3.5 Hi3861 WiFi 操作,热点连接 ...................................................................................... 17
3.6 Hi3861 OLED 驱动 .......................................................................................................... 21
3.7 Hi3861 实现 APP 配网功能 ........................................................................................... 24
3.8 如何往鸿蒙系统源码中添加第三方软件包 ................................................................. 31
3.9 移植 paho mqtt 软件包到鸿蒙系统 ............................................................................. 36
3.10 ADC 按键的使用 ............................................................................................................ 51
3.11 使用鸿蒙开发板实现第一个物联网项目 ................................................................... 56
3.12 分析 helloworld 程序是如何被调用,SYS_RUN 做什么事情 ................................. 60
3.13 基于鸿蒙系统 + Hi3861 的 WiFi 小车 ..................................................................... 66
3.13 Hi3861 NV 操作——如何保存数据到开发板,断电不丢失 .................................... 72
3.13 MQTT 编程 ...................................................................................................................... 78
3.13 语音控制小车 ............................................................................................................... 79
欢迎访问 HarmonyOS 技术社区 https://harmonyos.51cto.com/
第 1 章 HarmonyOS 介绍
1.1 鸿蒙系统与 Linux、Android 的不同
HarmonyOS 是一款“面向未来”、面向全场景(移动办公、运动健康、社
交通信、媒体娱乐等)的分布式操作系统。在传统的单设备系统能力的基础上,
HarmonyOS 提出了基于同一套系统能力、适配多种终端形态的分布式理念,能
够支持多种终端设备。
HarmonyOS 整体遵从分层设计,从下向上依次为:内核层、系统服务层、
框架层和应用层。系统功能按照“系统 > 子系统 > 功能/模块”逐级展开,在
多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。
HarmonyOS 技术架构如图所示。
我们可以看到,鸿蒙系统不单单是一个内核,它还包含了整个操作系统的所
有框架,更像是 Windows 和 Android。
而鸿蒙系统的内核支持 Linux 和 LiteOS。
1.2 LiteOS 内核
LiteOS 是一个内核,相比其 Linux 来说,它更精简,启动时间更快。同时 liteOS
内核有 liteOS-a 和 liteOS-m 。
liteOS-a 通常运行支持 MMU 的芯片上,支持内核/APP 空间隔离。ARM cotex
-A 系列
欢迎访问 HarmonyOS 技术社区 https://harmonyos.51cto.com/
liteOS-m 运行在没有 MMU 的芯片上,也就是 MCU,例如我们常见的 STM32
芯片。所以鸿蒙 OS 也是支持 STM32 系列单片机的,但是目前还没有完成移植
工作。
1.3 相关资料
鸿蒙官方文档:https://www.harmonyos.com/cn/develop
鸿蒙 gitee:https://openharmony.gitee.com/openharmony
鸿蒙 OS 代码下载:
https://device.harmonyos.com/cn/docs/start/get-code/oem_sourcecode_guide-000000
1050769927
第 2 章 开发环境搭建
关于开发环境的搭建,可以参考华为官网说明。
https://device.harmonyos.com/cn/docs/start/introduce/oem_quickstart_3861_buil
d-0000001054781998 。
目前鸿蒙系统的开发方式是在 Linux 系统上面编译源码,Windows 系统上编
写、烧录。
故而需要搭建两个开发环境。
2.1 Linux 环境搭建
关于 Linux 系统的环境搭建,个人建议使用 ubuntu 20.04。当然我们也提供
了搭建好环境的 ubuntu 20.04 镜像,大家可以直接下载,直接编译代码,不需要
再按官网的操作再重新搭建环境。
目测个人第一次搭建至少需要几个小时的时间,还可能会出错。
由于百度网盘经常封链接,如果发现链接失效,可以联系我,VX
13510979604
腾讯云盘
链接:https://share.weiyun.com/6suCAhNN
欢迎访问 HarmonyOS 技术社区 https://harmonyos.51cto.com/
百度网盘(以下几个链接,选一个能用的下载就行):
1、链接:https://pan.baidu.com/s/1sT3ASuqRbh3zH3WFdxw6AA
提取码:iaap
2、链接:https://pan.baidu.com/s/1j8jLF0QZmiWhriiwzMPCMg
提取码:zgew
说明:
1、已配置好开发环境,可直接编译代码,编译可以正常运行
2、配置好 sftp ,可远程传输文件
账号:harmony
密码:123456
代码路径:~/harmony/code/code-1.0
相关的环境工具路径(可以不用管了,已经配置好了,直接可以编译):
~/harmony/tools
编译命令:
(1)对应开发板: hi3516 IPC 开发板
python build.py ipcamera_hi3516dv300
(2)对应开发板: hi3518 IPC 开发板
python build.py ipcamera_hi3518ev300
(3)对应开发板: hi3861 智能家居 开发板
python build.py wifiiot
编译结果,可以看到已经编译成功了
欢迎访问 HarmonyOS 技术社区 https://harmonyos.51cto.com/
2.2 Windows 访问 ubuntu 文件
由于我们后面需要在 Windows 上直接编辑 ubuntu 系统里面的鸿蒙源码,故
而我们需要使用 samba 服务,让 Windows 能访问到 ubuntu。
操作如下:
1.设置 apt-get 源
可以更快地下载 samba。设置如下
(1)在桌面右上角点击打开菜单,点击 setting 选项。
(2)在设置选项右侧下拉找到“关于”,点击 Software Updates。
欢迎访问 HarmonyOS 技术社区 https://harmonyos.51cto.com/
(3)在软件和更新界面里可以看到“下载自”,我们可以进行修改。
(4)推荐选择 mirros.aliyun.com 或者 mirrors.tuna.tsinghua.edu.cn,你也可以点
击选择最佳服务器,测
(5)试连接最快的软件源(测试时间较长)。
(6)最后,退出软件与更新界面时,会提示更新软件列表信息,点击重新载入
即可。
2.安装 samba
输入如下命令:
sudo apt-get install samba
sudo apt-get install samba-common
欢迎访问 HarmonyOS 技术社区 https://harmonyos.51cto.com/
修改 samba 配置文件
sudo vim /etc/samba/smb.conf
在最后加入如下内容:
[work]
comment = samba home directory
path = /home/harmony/
public = yes
browseable = yes
public = yes
writeable = yes
read only = no
valid users = harmony
create mask = 0777
directory mask = 0777
#force user = nobody
#force group = nogroup
available = yes
保存退出后,输入如下命令,设置 samba 密码,建议 123456 即可
sudo smbpasswd -a harmony
重启 samba 服务
sudo service smbd restart
3.windows 映射
在文件夹路径输入虚拟机的 IP 地址
最后映射成网络驱动器即可
欢迎访问 HarmonyOS 技术社区 https://harmonyos.51cto.com/
2.3 Windows 环境搭建
Windows 的环境搭建,官网已经有了,这里就不在赘述。
https://device.harmonyos.com/cn/docs/ide/user-guides/tool_install-00000010501
64976
2.4 烧录
烧录也可以参考官方文档:
https://device.harmonyos.com/cn/docs/ide/user-guides/riscv_upload-0000001051
668683
第 3 章 Hi3861 开发
3.1 编写一个简单的 hello world 程序
编写一个 hello world 程序比较简单,可以参考官网:
欢迎访问 HarmonyOS 技术社区 https://harmonyos.51cto.com/