00. 目录
01. OpenHarmony概述
OpenHarmony是由开放原子开源基金会(OpenAtom Foundation)孵化及运营的开源项目,目标是面向全场景、全连接、全智能时代,基于开源的方式,搭建一个智能终端设备操作系统的框架和平台,促进万物互联产业的繁荣发展。
内核层
- 内核子系统:采用多内核(Linux内核或者LiteOS)设计,支持针对不同资源受限设备选用适合的OS内核。内核抽象层(KAL,Kernel Abstract Layer)通过屏蔽多内核差异,对上层提供基础的内核能力,包括进程/线程管理、内存管理、文件系统、网络管理和外设管理等。
- 驱动子系统:驱动框架(HDF)是系统硬件生态开放的基础,提供统一外设访问能力和驱动开发、管理框架。
系统服务层
系统服务层是OpenHarmony的核心能力集合,通过框架层对应用程序提供服务。该层包含以下几个部分:
- 系统基本能力子系统集:为分布式应用在多设备上的运行、调度、迁移等操作提供了基础能力,由分布式软总线、分布式数据管理、分布式任务调度、公共基础库、多模输入、图形、安全、AI等子系统组成。
- 基础软件服务子系统集:提供公共的、通用的软件服务,由事件通知、电话、多媒体、DFX(Design For X) 等子系统组成。
- 增强软件服务子系统集:提供针对不同设备的、差异化的能力增强型软件服务,由智慧屏专有业务、穿戴专有业务、IoT专有业务等子系统组成。
- 硬件服务子系统集:提供硬件服务,由位置服务、用户IAM、穿戴专有硬件服务、IoT专有硬件服务等子系统组成。
根据不同设备形态的部署环境,基础软件服务子系统集、增强软件服务子系统集、硬件服务子系统集内部可以按子系统粒度裁剪,每个子系统内部又可以按功能粒度裁剪。
框架层
框架层为应用开发提供了C/C++/JS等多语言的用户程序框架和Ability框架,适用于JS语言的ArkUI框架,以及各种软硬件服务对外开放的多语言框架API。根据系统的组件化裁剪程度,设备支持的API也会有所不同。
应用层
应用层包括系统应用和第三方非系统应用。应用由一个或多个FA(Feature Ability)或PA(Particle Ability)组成。其中,FA有UI界面,提供与用户交互的能力;而PA无UI界面,提供后台运行任务的能力以及统一的数据访问抽象。基于FA/PA开发的应用,能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。
02. 串口驱动安装
安装串口驱动程序:打开 DevTools_Hi3861V100_v1.0 文件夹,里面有一个usb_serial_driver 的文件夹:
该文件夹里面有个串口驱动 CH341SER.EXE ,双击进入安装界面,点击安装按钮即可。安装完毕后,会提示驱动预安装成功,这时,使用USB数据线,连接开发板与电脑的USB口,驱动程序会自动安装,安装成功后,单击桌面“此电脑”右键–管理–设备管理–端口,如果看到一个 USB-SERIAL CH340(COM3) 的串口,说明串口驱动程序已安装成功。
03. DevEco Device Tool烧写程序
3.1 当串口程序安装成功后,在 DevEco Device Tool 界面, 菜单栏 Menu 中点击 Project Settings,进入Hi3861项目配置界面,找到 upload,在右边的 upload_port 选择 COM3[USB-SERIAL CH340(COM3)]。
3.2 在 DevEco Device Tool 界面的 PROJECT TASKS 中,点击 Upload ,执行程序烧录,将程序烧录到开发板中。
当出现提示“Connecting, please reset device…”,在开发板上按下RST键进行开发板复位。
3.3 等待烧录完成,在TERMINAL窗口输出“SUCCESS”,表示烧录成功。
Processing hi3861 (platform: vendoroh; board: hi3861; framework: hb)
-----------------------------------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option
Configuring upload protocol...
AVAILABLE: hiburn-serial
CURRENT: upload_protocol = hiburn-serial
Uploading with HiBurn
Connecting, please reset device...
Wait connect success flag (hisilicon) overtime.
scons: ***=================== [FAILED] Took 32.35 seconds =================
* 终端进程“D:\Program Files\DevEco-Device-Tool\core\deveco-venv\Scripts\hos.exe 'run', '--target', 'upload', '--project-dir', 'E:\IOT\2', '--environment', 'hi3861'”已终止,退出代码: 1。
* 终端将被任务重用,按任意键关闭。
* 正在执行任务: D:\Program Files\DevEco-Device-Tool\core\deveco-venv\Scripts\hos.exe run --target upload --project-dir E:\IOT\2 --environment hi3861
Processing hi3861 (platform: vendoroh; board: hi3861; framework: hb)
----------------------------------------------------------------------------------------------------------Verbose mode can be enabled via `-v, --verbose` option
Configuring upload protocol...
AVAILABLE: hiburn-serial
CURRENT: upload_protocol = hiburn-serial
Uploading with HiBurn
Connecting, please reset device...
Ready to load at 0x10A000
CCStartBurn
total size:0x3B00
loady succ
Entry loader
============================================
erase flash 0x0 0x200000
Ready for download
CC
Ctotal size:0xA4390
Execution Successful
============================================
====================== [SUCCESS] Took 23.84 seconds ==========================
* 终端将被任务重用,按任意键关闭。
04. 使用HiBurn进行烧录
当产品处于开发阶段时,开发者使用 VSCode 下载非常方便,但产品开发完成,需要批量生产时,再用 VSCode 下载,则对普通生产员来说操作就很麻烦,所以可以选择 HiBurn 串口工具来下载。
4.1 打开burnTool工具
打开 DevTools_Hi3861V100_v1.0 文件夹,里面有一个 burntool 的文件夹,该文件夹里有一个 BurnTool.exe 文件,双击该文件,打开程序烧录工具 HiBurn,按照以下步骤进行程序烧录:
-
**步骤1:**选择 COM 口,具体 COM 口号按照前面讲解的内容进行查询,我们这里是 COM3;
-
**步骤2:**点击 Select file 按钮,选择需要烧录程序的路径。路径就在我们工程项目所在的文件夹,需要烧录的文件是 Hi3861_wifiiot_app_allinone.bin,完整路径为:
D:\hi3861_hdu_iot_application\src\out\hispark_pegasus\wifiiot_hispark_pegasus
-
**步骤3:**路径选择好后,会显示在图中标记为3的区域;
-
**步骤4:**路径确认无误后,勾选 Auto burn;
-
**步骤5:**点击 Connect 按键,开始连接开发板;
4.2 按下开发板复位按键,这是程序进行自动烧录,下面的进度条会显示烧录进度;
4.3 当程序烧录完毕后,会显示 Execution Successful,这表明程序已经成功烧录到开发板了,这时点击上面的 Disconnect 按钮,然后再按开发板的复位按键,这时,程序就可以在开发板上正常运行了。请注意,程序烧录完毕后,一定要按 Disconnect 按钮,然后再按开发板复位按键,如果不按 Disconnect 按钮直接按开发板复位按键,这时程序又会重新再次进行烧录!