#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld 原创 精华

sunqihan
发布于 2023-7-22 13:50
浏览
2收藏

此博客由金陵科技学院-开放原子开源社-孙启涵编写

1.前言:

本文我们将介绍使用VMware虚拟机安装Ubuntu的过程以及配置编译环境,下载和编译源码,使用vscode导入源码并编写入门程序,烧录工具Hiburn的使用,串口终端工具MobaXterm的使用。

笔者使用的是润和智能家居开发套件。下面是关于轻量系统的介绍和开发套件模版。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

2.使用VMware虚拟机安装Ubuntu的过程以及配置编译环境

关于安装虚拟机,大家可以看我同学写的一篇博客,写的很详细用心: https://ost.51cto.com/posts/24872

3.下载和编译源码。

下载源码

下面给出openharmony的代码仓库网址。 OpenHarmony

1.打开虚拟机,点击左边的文件,然后点击openharmony。我们在搭建虚拟机的环境时,自动下载了1.1.3的文件,由于这个文件里的内容并不完整,所有我们把它删除,并学习一下如何获取源码。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

选中1.1.3文件,点击键盘上的delete键即可删除。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

2.回到桌面,鼠标右击,选择在终端中打开。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

执行以下命令:
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

这个命令在你的用户主目录(~)下创建一个名为1.1.3的新目录。选项-p确保如果目录不存在,就创建整个路径。

mkdir -p ~/openharmony/1.1.3

这个命令将当前工作目录切换到刚刚创建的1.1.3目录。现在你将在这个目录中工作。

cd ~/openharmony/1.1.3

这个命令用指定的参数来初始化"repo"工具:

-u 指定要使用的 Git 仓库的 URL,这里是 Gitee 上的 OpenHarmony manifest 仓库。
-b 指定用于初始化的分支或标签,设置为 refs/tags/OpenHarmony-v1.1.3-LTS,表示将使用 OpenHarmony 的 v1.1.3-LTS 版本。
–no-repo-verify 禁用 repo 工具对清单仓库的验证。这个选项用于跳过 GPG 签名验证。

repo init -u https://gitee.com/openharmony/manifest.git -brefs/tags/OpenHarmony-v1.1.3-LTS --no-repo-verify

这个命令用于在初始化之后,将本地工作区与远程仓库进行同步。选项 -c 用于启用智能检出,这意味着只会同步在 repo init 命令中指定的当前分支,从而节省时间和磁盘空间。

repo sync -c

这个命令遍历 repo 工具管理的所有 Git 仓库,并在每个仓库中执行 git lfs pull 命令。git lfs pull 用于获取使用 Git Large File Storage (LFS) 管理的大文件。这一步确保所有仓库中的 LFS 文件被正确地拉取到你的本地工作区。

repo forall -c ‘git lfs pull’

#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

执行完以上命令后,OpenHarmony1.1.3版本的源码就下载好了。

以下是一些别的版本的下载方式
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

编译源码

1.打开虚拟机,选择文件,点击openharmony,点击1.1.1,鼠标右键选择在终端中打开。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

2.在编译之前,我们要进行hb安装,因为hb安装需要在源码的根目录下去执行相关指令,我们之前在配置Ubuntu时,并没有安装hb
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

python3 -m pip install --user build/lite

echo ‘export PATH=~/.local/bin:$PATH’ | tee -a ~/.bashrc

source ~/.bashrc

hb -h

安装完hb后,执行

hb build

然后会出现input code path的提示,按下键盘enter键,使用键盘上下键选择中间的wifiiot_hispark_pegasus。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

接着执行

hb build
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

出现如下提示,即为编译成功。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

下面给出一些hb的相关知识。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

以上就是下载和编译源码的过程,下面我们讲解如何从vscode中导入源码和编写入门程序案例。

4.从vscode中导入源码和编写入门程序案例

从vscode中导入源码
1.打开vscode,选择文件,点击打开文件夹
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

2.输入\+虚拟机地址。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

如何你不知道虚拟机的地址,下面有流程。

1.点击右上角的图标,然后点击有线已连接
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

2.点击有线设置
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

3.点击如下这个小图标
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

4.IPv4地址就是你的虚拟机地址。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

当你输入完\+虚拟机地址时,会出现如下提示:
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

这里的用户名是在进行ubuntu配置中smaba服务里配置的。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

进入home文件后,一直点击到openharmony,然后到了1.1.3文件,选择文件夹打开。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

以下是打开后的文件目录展示。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

下面我们来编写一个helloworld入门案例。

首先,在applications\sample\wifi-iot\app\startup下,点击新建文件。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

文件命名为:hello.c
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

在hello.c文件下编写代码。这里头文件有爆红先不管。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

#include <stdio.h>
#include “ohos_init.h”
 void hello(void)
{
    printf(“Hello World\n”);
}
SYS_RUN(hello);

接着打开 applications\sample\wifi-iot\app\startup\BUILD.gn
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

做如下修改,把source_set改成static_library和修改include目录,然后保存文件
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

然后再打开 applications\sample\wifi-iot\app\ BUILD.gn,并做如下修改。features:用于指定目标模块参与编译。点击保存文件。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

再以上文件的编写完成后,笔者就打开虚拟机进行了编译。但是出现了如下报错。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

可能原因是:笔者在编写hello.c文件时,#include <stdio.h>也爆红了。

下面分享解放方法。

1.打开.vsde下的c_cpp_properties.json
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

2.在includePath中添加如下的配置。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

${workspaceFolder}/device/hisilicon/hispark_pegasus/sdk_liteos/platform/os/Huawei_LiteOS/components/lib/libc/musl/include

然后保存文件。就会发现,#include <stdio.h>就不爆红了。

关于#include "ohos_init.h"爆红
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

我们点击这个小黄灯泡,选择编辑includepath设置。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

找到包含路径,添加如下

${workspaceFolder}/utils/native/lite/include
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

上图中是建议添加的配置。

接下来我们来编译源码。

1.打开虚拟机,点击文件,进去openharmony文件夹,点击1.1.3,鼠标右键选择在终端中打开。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

执行hb build -f进行全量编译

hb build -f
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

出现如上提示,说明编译成功了。

下面我们进行烧录。

在计算机和电子设备领域中,"烧录"指的是将软件(如固件、操作系统或应用程序)加载到特定的硬件设备中的过程。这个过程通常通过将二进制数据(编译后的代码)写入设备的存储器(如闪存、EPROM、EEPROM或固件存储器)来完成。

5.烧录

在烧录中,笔者采用的是Hiburn烧录工具,

和 DevEco Device Tool方式对比

使用HiBurn烧录相对于使用DevEco Device Tool烧录而言,好处主要有以下几点:

  1. 不依赖VSCode,你可以不用安装VSCode、nodejs、JDK、以及一些npm包;

  2. 下载速度更快,HiBurn.exe最大波特率可以设置到3000000,而DevEco Device Tool最大只能为921600,是它的三倍;

HiBurn方式烧录目前的缺点主要是:

  1. 需要手动点Disconnect主动断开连接,否则默认会重复下载;烧录成功后,如果你不断开串口,并且再次按了一下RESET按键,你会发现,它又烧录了一遍。

  2. HiBurn的串口参数无法保存,你关闭之后下次打开还需要重新设置,而DevEco则会可以保存串口参数;

  3. HiBurn相对DevEco来说,操作步骤更多一些,也稍微复杂一点;

1.准备开发板

#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

当电脑插上USB时,会弹出这样的窗口,我们选择连接到主机。否则在后续烧录过程中可能会出现主机跟虚拟机抢串口的问题。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

2.下载烧录工具Hiburn

下面给出下载地址,一键式安装即可。```
 https://ost.51cto.com/resource/29
``

1.打开Hiburn,选择Setting,选择Com settings
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

2.将Baud调为2000000,然后点击确定
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

下面我们配置串口号,就是COM,关于获取串口号,我们打开设备管理器,点击端口,在USB-SERIAL CH

340后面的,就是串口号。我这里是COM5。

#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

然后勾选上Autoburn。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

然后我们选择Select file。输入\+虚拟机号,进入openharmony下的1.1.3.
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

找到out,点击进去。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

一直点击,选择如下文件,然后点击右下角的打开。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

然后点击connect,当下面提示connecting…时,按下开发板中的RST键。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

出现如下提示,表示烧录成功,然后我们点击Disconnect,关闭烧录工具。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

至此烧录就完成了。下面我们讲解在智能家居开发板上查看运行结果。

6.运行

查看运行结果,我们使用串口终端工具MobaXterm。

下面提供下载网址: https://mobaxterm.mobatek.net/download.html

1.打开MobaXterm,选择Sessions.
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

然后点击Serial。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

选择串口号,修改波频为115200.
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

双击打开COM5
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

此时重启开发板,点击开发板上的RST键。
#jitoa#【Openharmony轻量设备开发】润和智能家居套件-openharmony开发入门-helloworld-鸿蒙开发者社区

此时我们看到,输出了HelloWorld。至此,openharmony的入门开发程序helloworld到这就结束了。

整个流程就是,从虚拟机中下载拉取源码,通过vscode访问虚拟机来获取源码并进行编写。通过Hiburn烧录工具来进行烧录,通过MobaXterm来查看输出。

总结:以上可能有一些疏忽,如有不足之处,欢迎大家指出并在评论区留言,笔者看到就会及时回复。让我们共同努力。

笔者将会在下一篇博客中讲解轻量系统的编译构建。

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2023-9-13 17:28:45修改
9
收藏 2
回复
举报
2条回复
按时间正序
/
按时间倒序
红叶亦知秋
红叶亦知秋

相当详细的讲解!

回复
2023-7-22 16:49:06
带带小老弟
带带小老弟

本小白就需要这样的教学

1
回复
2023-7-24 11:08:34
回复
    相关推荐