在这个万物互联的时代,操作系统作为连接硬件与应用的桥梁,其重要性不言而喻。华为推出的HarmonyOS(鸿蒙操作系统),自诞生以来便备受瞩目,它不仅承载着华为对未来智能生态的愿景,更以其独特的分布式技术,为用户带来了前所未有的使用体验。
最近通过小熊派Nano开发板体验了鸿蒙体系中的一种Huawei LiteOS,Huawei LiteOS是华为面向IoT领域,构建的轻量级物联网操作系统,可广泛应用于智能家居、个人穿戴、车联网、城市公共服务、制造业等领域。Huawei LiteOS发布于2015年5月的华为网络大会上。自开源社区发布以来,围绕 NB-IoT 物联网市场从技术、生态、解决方案、商用支持等多维度使能合作伙伴,构建开源的物联网生态。
一、BearPi_Nano
1. 简介
小熊派-HarmonyOS·季(BearPi-HM Nano)是一款由小熊派专为HarmonyOS系统打造的HarmonyOS开发板。
- 采用IoTCluB的E53接口标准,可接入所有的E53案例扩展板。
- 主控为WiFi SOC Hi3861,160MHz主频,SRAM 352KB、ROM 288KB、2M Flash。
- 板载NFC Forum Type 2 Tag芯片及天线,可实现HarmonyOS“碰一碰”功能。
- 一根TypeC USB线,即可实现供电、下载、调试等多种功能。
官方资料教程连接小熊派开源社区/BearPi-HM_Nano
2. 环境搭建
快速上手教程:
applications/BearPi/BearPi-HM_Nano/docs/quick-start/BearPi-HM_Nano十分钟上手-gitee方式.md · 小熊派开源社区/BearPi-HM_Nano - Gitee.com
建议按照官方给的十分钟上手教程完成环境安装,也可以通过官方的教学视频自行配置环境,不过可能会出现比较多问题,如果没有linux相关基础建议直接使用官方提供的镜像,后期熟悉后可以尝试自己配置环境。后期的实验中将会经常用到以下工具以及命令:
- SSH客户端工具(在Windows上远程连接服务器)
- RaiDrive软件(把ubuntu文件远程映射到Windows上)
- 编译命令:python build.py BearPi-HM_Nano
- Hiburn工具(下载工具)
二、初体验点灯
通过十分钟教程后已经完成了环境搭建以及和HarmonyOS的第一次互动(串口打印),不过对于初次拿到的板子还是更喜欢点亮LED。
1. 获取源码
在官方提供的手把手教程里面第三节中提供了多种源码下载的方式,多种方式里更喜欢利用从代码仓库获取需要提前准备gitee账号。
通过ssh工具连接ubuntu后具体命令如下:
mkdir bp_gitee //新建一个文件夹
cd bp_gitee/ //进入文件夹//进入要存放的文件夹后配置gitee然后克隆对应目录
git config --global user.name "gitee的用户名"
git config --global user.email "邮箱"
git clone https://gitee.com/bearpi/bearpi-hm_nano.git -b master
//根据网速快慢,需要等待一段时间//编译代码
python build.py BearPi-HM_Nano
完成获取后通过RaiDrive将代码映射到本地(参照官网十分钟上手教程),拖入VScode中打开。
2. 新建业务文件夹
为点灯建立一个新的文件夹,applications\BearPi\BearPi-HM_Nano\sample中新建文件夹led,给文件夹存放点灯需要的文件,myled.c和BULID.gn。注意:新建文件夹的名字和C文件的名字后续会用到,我这里的文件夹名为led,C文件名为myled。
2.1. myled.c(业务代码)
将一下内容填入myled.c文件中,配置led点亮,后期会对硬件驱动进行详细研究。
#include <stdio.h>
#include <unistd.h>#include "ohos_init.h"
#include "wifiiot_gpio.h"
#include "wifiiot_gpio_ex.h"void LedTask(void)
{//初始化GPIOGpioInit();//设置GPIO_2的复用功能为普通GPIOIoSetFunc(WIFI_IOT_IO_NAME_GPIO_2, WIFI_IOT_IO_FUNC_GPIO_2_GPIO);//设置GPIO_2为输出模式GpioSetDir(WIFI_IOT_GPIO_IDX_2, WIFI_IOT_GPIO_DIR_OUT);GpioSetOutputVal(WIFI_IOT_GPIO_IDX_2, 1);
}/*参数为执行的函数名*/
APP_FEATURE_INIT(LedTask);
2.2. BUILD.gn(编译构建文件)
将如下内容写入BUILD.gn中,注意:static_library("led_example")中led_example名称后续会用到,sources中填入的是对应C文件的文件名。
static_library("led_example") {sources = [/*c文件的文件名*/"myled.c"]include_dirs = ["//utils/native/lite/include","//kernel/liteos_m/components/cmsis/2.0","//base/iot_hardware/interfaces/kits/wifiiot_lite",]
}
2.3. 修改sample\BUILD.gn(模块编译构建文件)
import("//build/lite/config/component/lite_component.gni")
lite_component("app") {features = ["led:led_example","文件夹名:编译构建文件BUILD中static_library的入参"]
}
3. 编译
通过VScode也可以下方终端工具也可以通过ssh访问Ubuntu,进入对应文件夹后输入python build.py BearPi-HM_Nano进行编辑。
通过vscode进入终端
4. 烧录
择对应的bin文件,利用HiBurn工具烧录