电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
文章
鸿蒙2.0都来了,你学会用它做开发了吗?
分 享
扫描二维码分享
鸿蒙2.0都来了,你学会用它做开发了吗?
鸿蒙
一口Linux
关注
发布时间: 2021-06-01
丨
阅读: 855
首款鸿蒙平板6月2日发布。这是一个非常值得庆贺的事情。 针对华为发布的鸿蒙系统,网上评论褒贬不一,有吹捧的,有无脑黑的。 在这里一口君就不做评价了,但是有2点: 1. 对任何一个新兴事物,我们都要保持最旺盛的求知欲, 2. 在自己没有亲自实践就妄下评论的行为是缺乏智慧和不负责任的。 ![ ](https://img-blog.csdnimg.cn/20210529121831733.png) 废话不多说,让我们一起搭建一个鸿蒙的运行环境,来一窥神秘的鸿蒙。 ## 一、HarmonyOS 简介 HarmonyOS鸿蒙操作系统,是面向万物互联时代的全场景分布式操作系统。OpenHarmony在传统的单设备系统能力的基础上,创造性地提出了基于同一套系统能力、适配多种终端形态的理念,支持多种终端设备上运行,第一个版本支持128K~128M设备上运行,目前已发布2.0版本。 ![ ](https://img-blog.csdnimg.cn/20210529124301379.png) 基于鸿蒙开发的方式有两个方向:面向`应用开发`(应用层)和面向`设备开发`(内核层、驱动子系统)。 本文将基于使用鸿蒙操作系统的子内核LiteOS做设备开发,带领大家一步步揭开鸿蒙的神秘面纱,看看它到底像不像网传的那么牛掰。 ## 二、Huawei LiteOS 介绍 Huawei LiteOS 是华为自研、开源的物联网实时操作系统,ARM、RISC-V等主流的CPU架构,以轻量级低功耗,快速启动,互联互通,安全等关键能力,为开发者提供 “一站式” 完整软件平台,有效降低开发门槛、缩短开发周期。 LiteOS既可以作为一款RTOS运行在资源受限的MCU上,也可以作为HarmonyOS的子内核运行在资源丰富的SOC平台上。根据硬件的资源情况,LiteOS又可以分为LiteOS-A(内存≥1M) 和LiteOS-M(内存≥128KB)。 ### 1. LiteOS-A 简介 OpenHarmony LiteOS-A内核是基于Huawei LiteOS内核演进发展的新一代内核,是面向IoT领域构建的轻量级物联网操作系统。新增了丰富的内核机制、更加全面的POSIX标准接口以及统一驱动框架**HDF**(OpenHarmony Driver Foundation)等,为设备厂商提供了更统一的接入方式,为OpenHarmony的应用开发者提供了更友好的开发体验。 OpenHarmony LiteOS-A内核架构图 ![ ](https://img-blog.csdnimg.cn/20210529124339606.png) ### 2. LiteOS-M 简介 OpenHarmony LiteOS-M内核是面向IoT领域构建的轻量级物联网操作系统内核,具有小体积、低功耗、高性能的特点,其代码结构简单,主要包括内核最小功能集、内核抽象层、可选组件以及工程目录等,分为硬件相关层以及硬件无关层,硬件相关层提供统一的HAL(Hardware Abstraction Layer)接口,提升硬件易适配性,不同编译工具链和芯片架构的组合分类,满足AIoT类型丰富的硬件和编译工具链的拓展。 OpenHarmony LiteOS-M内核架构图 ![ ](https://img-blog.csdnimg.cn/20210529124401848.png) 这里我们选择LiteOS-A,在QEMU上运行(不用硬件开发板,只需要一台电脑,方便你验证),通过一步步搭建起基本的开发环境,让你也体验一把鸿蒙开发的乐趣! ## 三、准备工作 下面列出的内容,就是我们需要准备的工具,这是一套基于windows搭建的开发环境,点击它们你可以直接下载,也可以通过后台回复`LiteOS`,获取完整工具链的压缩包。东西有点多,请耐心操作。 * [HUAWEI LiteOS Studio](https://gitee.com/LiteOS/LiteOS_Studio/releases) * [git for windows](https://github.com/git-for-windows/git/releases/download/v2.31.1.windows.1/Git-2.31.1-64-bit.exe) * [ARM GCC](https://liteos.gitee.io/liteos_studio/scripts/GNU_Arm_Embedded_Toolchain_download.bat) * [GNU Make](https://liteos.gitee.io/liteos_studio/scripts/x_pack_windows_build_tools_download.bat) * [JLink](https://www.segger.com/downloads/jlink/) * [LiteOS Studio 中文语言包](https://liteos.gitee.io/liteos_studio/scripts/extension_download.bat) * [Qemu](https://qemu.weilnetz.de/w64/2021/) 关于`ARM GCC` 、 `GNU Make`、`中文语言包`,链接跳转的是一段脚本语言,直接复制到桌面建一个文本文件粘贴进里面,然后保存退出,将.txt后缀改成.bat,点击运行即可完成安装(如果你觉得麻烦,可以在后台获取完整的工具链)。 下载好所有工具以后,我们就可以配置开发环境了。 ## 四、配置环境 ### 1. 安装HUAWEI LiteOS Studio 安装前请注意:当前`HUAWEI LiteOS Studio`当前只提供Windows 10 64 位操作系统上的安装版本,如果你的系统是32位或者其他系统,可能无法安装IDE。 双击`HUAWEI-LiteOS-Studio-Setup-x64-X.XX.X.exe`,依照屏幕提示,安装`HUAWEI LiteOS Studio`集成开发环境。 **接受许可协议** 需要阅读并接受许可协议,才可以继续安装。选中`我接受协议(A)`,点击`下一步`。 ![ ](https://img-blog.csdnimg.cn/20210529124506765.png) **选择目标位置** 使用默认,或者设置程序的安装位置,点击`下一步`。 ![ ](https://img-blog.csdnimg.cn/20210529124538548.png) **选择快捷方式** 推荐全部勾选,在桌面上使用快捷方式,或在资源管理器文件夹内右键菜单,均可以快速打开程序`HUAWEI LiteOS Studio`。点击`下一步`。 ![ ](https://img-blog.csdnimg.cn/2021052912465182.png) **安装准备就绪** 点击`安装`按钮执行安装即可。 ![](https://img-blog.csdnimg.cn/20210529124719484.png) 安装完成后,界面如下: ![ ](https://img-blog.csdnimg.cn/20210529124741164.png) 可选:`HUAWEI LiteOS Studio`不提供常用工具、常用扩展的预置,需要用户自行下载,如用户本地已安装,可忽略此步骤。但这里有已点要注意,IDE是基于VsCode开发的,滞后通用型的VsCode版本,因此许多组件可能无法正常使用,你需要下载对应VsCode版本的组件才能正常安装。 ### 2. 安装git工具 一般使用新建工程功能下载SDK,需要`git for windows`工具的支持。根据上文提供的连接下载git,并按安装向导完成最新版`git for windows`的安装。通常我们需要安装git,用于更新SDK和对版本进行管理控制。 ### 3. 安装arm-none-eabi软件 [`开源LiteOS`](https://gitee.com/LiteOS/LiteOS)工程使用`ARM GCC`编译器进行编译,需要安装编译器软件。 下载bat文件以后,点击运行,软件将默认保存到`C:\Users\
\.huawei-liteos-studio\tools\arm-none-eabi`目录。 **注意:本文提供的下载程序下载`GNU Arm Embedded Toolchain`,是基于官网提供的bat程序,需要先安装`git for windows`工具,并加入环境变量。** ### 4. 安装Make构建软件 [`开源LiteOS`](https://gitee.com/LiteOS/LiteOS)工程使用`Makefile`文件组织编译和链接程序,需要安装`GNU Make`工具。下载bat文件以后,点击运行,软件将默认保存到`C:\Users\
\.huawei-liteos-studio\tools\build`目录。 **注意:本文提供的下载程序下载`GNU Make`,是基于官网提供的bat程序,需要先安装`git for windows`工具,并加入环境变量。** ### 5. 安装JLink仿真器软件 如果开发板使用`JLink`仿真器,则根据情况安装`JLink`软件。从上文提供的导航链接下载,并按安装向导完成最新版`JLink`的安装。建议将`JLink.exe`所在目录加入`PATH`环境变量(虽然我们这里基于QEMU运行LiteOS,但保不齐你以后用开发板做开发,所以还是要安装好)。 ### 6. 中文语言包安装 安装中文语言包扩展`vscode-language-pack-zh-hans`,可以获得更好的交互体验。`HUAWEI LiteOS Studio`默认不预置中文语言包,因此界面默认显示为英文,需要自行安装。 下载bat文件以后,点击运行,软件将默认保存到`C:\Users\
\.huawei-liteos-studio\extensions\extension-collections`目录。 在IDE 活动栏中,打开`扩展`视图,点击更多操作`...`,在弹出的菜单中选择`从 VSIX 安装`,然后指定扩展文件的路径,即可完成安装。 ![ ](https://img-blog.csdnimg.cn/20210529124841750.png) **注意:通过本文提供的下载程序下载`中文语言包`,需要先安装`git for windows`工具,并加入环境变量。** **中文语言包使能:** **步骤 1** 安装完成后,通过点击菜单栏中的`查看`->`命令面板`调出命令输入界面 ![ ](https://img-blog.csdnimg.cn/2021052912494818.png) **步骤 2** 在命令输入框中输入`Configure Display Language`,回车,选择需要切换的语言(`en`、`zh-cn`等),弹出重启IDE完成配置的提示窗口,点击重启,即可完成语言切换 ![ ](https://img-blog.csdnimg.cn/20210529124909821.png) ### 7. 安装QEMU Qemu是一套由FabriceBellard编写的以GPL许可证的模拟处理器,在GNU/Linux平台上使用广泛,也支持在X86环境上运行。有关Qemu的介绍可参考其github社区内容。`HUAWEI LiteOS Stduio`使用`Qemu的realview-pbx-a9`开发板来模拟运行LiteOS开源工程。本文主要介绍Windows下如何基于Qemu运行LiteOS。 由于我们使用QEMU来运行LiteOS-A,所以必须安装这个软件。从上文提供的导航链接下载它,并按照安装向导完成最新版`QEMU`的安装。建议将QEMU所在bin目录加入`PATH`环境变量。 ## 五、快速搭建工程 这一部分将基于`HUAWEI LiteOS Stduio`和`QEMU`来演示如何新建工程、编译、烧录、串口调试、`GDB`图形化单步调测等功能。 关于如何创建工程,HUAWEI LiteOS文档中心给出了丰富的教程,这里为了方便大家一口气学会,就再赘述一遍,省去大家重新打开网页的功夫。 #### 1. [新建工程(可选)](https://liteos.gitee.io/liteos_studio/#/project_stm32?id=新建工程(可选)) **注意:当本地已有工程/源码时,无需再新建工程,直接进入下一步`打开工程`。** 先点击左侧的`Liteos studio`图标![ ](https://img-blog.csdnimg.cn/20210529125100857.png#pic_center) ,弹出侧边栏,通过点击`新建工程`图标![ ](https://img-blog.csdnimg.cn/20210529125121288.png#pic_center) ,打开新建工程界面。在使用`HUAWEI LiteOS Studio`新建`realview-pbx-a9`工程时,需要联网,确保可以访问[开源LiteOS](https://gitee.com/LiteOS/LiteOS)。如果联网需要代理,请提前配置好代理,否则新建工程会失败。配置代理方法参考官网文档中心的[常见问题](https://liteos.gitee.io/liteos_studio/#/studio_qa?id=新建工程失败问题)章节。同时,需要确保本地已安装`git for windows`工具。 **步骤 1** 在`工程名称`中填入自定义的工程名 **步骤 2** 在`工程目录`中填入或选择工程存储路径,路径名中不要包含中文、空格、特殊字符等 **步骤 3** 选择SDK版本号,当前QEMU工程被维护在`https://gitee.com/`,支持最新版本`master`分支 **步骤 4** 在开发板信息表点选开发板所在行,目前默认提供`STM32F429IG`、`STM32F769NI`、`STM32L431RC`、`STM32F103ZE`、`STM32F072RB`、`STM32F407ZG`、`realview-pbx-a9`七种开发板 点击`确认`按钮,后台将下载并保存所选目标板的SDK,等待下载完成后会在一个新窗口中自动打开新建的工程。按照图示填写工程信息,选择QEMU虚拟开发板。 ![](https://img-blog.csdnimg.cn/20210529125147861.png) #### 2. [目标板配置-选择目标板](https://liteos.gitee.io/liteos_studio/#/project_stm32?id=目标板配置-选择目标板) **步骤 1** 点击工具栏上的工程设置图标![](https://img-blog.csdnimg.cn/20210529130007282.png#pic_center) ,打开工程配置界面 **步骤 2** 点击`目标板`,选取当前工程对应的开发板,,点击确认按钮![](https://img-blog.csdnimg.cn/2021052912523920.png#pic_center) 进行保存 ![ ](https://img-blog.csdnimg.cn/20210529130035572.png) #### 3. [组件配置(可选)](https://liteos.gitee.io/liteos_studio/#/project_stm32?id=组件配置-组件使能与属性修改可选) 如需对LiteOS开放可配置的组件与属性进行使能,而不是仅使用默认的配置,用户可以点击工程配置界面上的`组件配置`,在左侧的`选择组件`中点击想要使能或修改的组件,在右侧的`组件属性`栏勾选需要使能的组件,或更改组件属性值,点击确认按钮![](https://img-blog.csdnimg.cn/20210529131608243.png#pic_center) 保存。。 ![avatar](https://img-blog.csdnimg.cn/img_convert/99f9a23cf630aef87adc013ce33a5446.png) #### 4. [编译配置-编译代码](https://liteos.gitee.io/liteos_studio/#/project_stm32?id=编译配置-编译代码) **步骤 1** 点击工程配置界面上的`编译器` ![avatar](https://img-blog.csdnimg.cn/img_convert/5390fcfedd7f2f123236821dad4473a0.png) **步骤 2** `编译器类型`选择`arm-none-eabi` **步骤 3** `编译器目录`需要自行下载`GNU Arm Embedded Toolchain编译交叉工具链`,已提供默认路径。通过本站提供的自动下载程序,`arm-none-eabi`编译器就会安装到该路径下。用户也可自行指定安装目录,点击图标![](https://img-blog.csdnimg.cn/20210529130130295.png#pic_center) 设置为`arm-none-eabi-gcc.exe`所在路径 **步骤 4** `Make构建器`需要我们自行下载`Make.exe构建工具`,已提供默认路径。通过本文提供的自动下载程序,`Make.exe构建工具`就会安装到该路径下。用户也可自行指定安装目录,点击图标![](https://img-blog.csdnimg.cn/20210529130130295.png#pic_center)设置为`make.exe`所在路径 **步骤 5** `Makefile脚本`路径已填入默认值,也可以自行更改。在`工程根目录`下的`Makefile`文件上`点击右键->设置为Makefile文件`,或点击图标![](https://img-blog.csdnimg.cn/20210529130130295.png#pic_center)进行自定义设置,也可使用![](https://img-blog.csdnimg.cn/20210529130130295.png#pic_center)按钮自动搜索脚本文件 **步骤 6** `Make参数`已填入默认值,也可自行修改 **步骤 7** 配置好后点击确认按钮![](https://img-blog.csdnimg.cn/20210529130240748.png#pic_center) 进行保存 **步骤 8** 点击工具栏上的编译图标![](https://img-blog.csdnimg.cn/20210529130258537.png#pic_center) 开始编译,也可以点击重新构建图标![](https://img-blog.csdnimg.cn/20210529130318588.png#pic_center) 进行清理和重新编译 编译成功的截图示例如下: ![ ](https://img-blog.csdnimg.cn/20210529125346680.png) 清理编译输出的截图示例如下: ![ ](https://img-blog.csdnimg.cn/20210529125406157.png) 点击编译按钮,执行编译,编译成功截图如下: ![ ](https://img-blog.csdnimg.cn/20210529130350619.png) #### 5. [执行QEMU仿真](https://liteos.gitee.io/liteos_studio/#/project_stm32?id=realview-pbx-a9执行qemu仿真) 进入`烧录器`界面,`烧录方式`选择`Simulator`,`烧录器目录`选择`qemu-system-arm.exe`所在目录,`烧录文件`选择`out/realview-pbx-a9`目录下的`Huawei_LiteOS.bin`文件,界面配置示例截图如下: ![ ](https://img-blog.csdnimg.cn/20210529125540980.png) 点击烧录按钮![ ](https://img-blog.csdnimg.cn/20210529125604854.png#pic_center) ,仿真开启成功后进入交互界面,截图如下(在IDE下方的终端面板): ![ ](https://img-blog.csdnimg.cn/20210529125500924.png)如果没有成功运行,请检查是否安装好QEMU,并把其目录添加到环境变量中,同时检查是否编译成功,有无生成bin文件。 #### 6. [进行QEMU调测](https://liteos.gitee.io/liteos_studio/#/project_stm32?id=realview-pbx-a9调测) 进入`调试器`界面,`调试器`选择`Simulator`,`调试器目录`选择`qemu-system-arm.exe`所在目录,GDB目录选择`arm-none-eabi-gdb.exe` `可执行文件路径`选择`out/realview-pbx-a9`目录下的`Huawei_LiteOS.elf`文件,界面配置示例截图如下: ![ ](https://img-blog.csdnimg.cn/20210529125647280.png) 点击debug按钮![ ](https://img-blog.csdnimg.cn/202105291257082.png#pic_center) ,执行`qemu`仿真,仿真开启成功后进入交互界面,截图如下: ![ ](https://img-blog.csdnimg.cn/20210529125724488.png) 注意:这里烧录进QEMU仿真,和进行debug运行,并不能够同步执行,也就是说不可以同步调试,因为烧录进QEMU的是bin文件,而仿真使用的是elf文件。 到这里,你已经从成功将鸿蒙内核LiteOS-A运行起来了! ![ ](https://img-blog.csdnimg.cn/20210529132312398.png) 文中用到的所有安装包,可以关注公众号:一口Linux, 后台回复`LiteOS`,获取。
原创作品,未经权利人授权禁止转载。详情见
转载须知
。
举报文章
点赞
(
1
)
一口Linux
关注
评论
(0)
登录后可评论,请
登录
或
注册
相关文章推荐
MK-米客方德推出工业级存储卡
Beetle ESP32 C3 蓝牙数据收发
Beetle ESP32 C3 wifi联网获取实时天气信息
开箱测评Beetle ESP32-C3 (RISC-V芯片)模块
正点原子数控电源DP100测评
DP100试用评测-----开箱+初体验
Beetle ESP32 C3环境搭建
【花雕体验】16 使用Beetle ESP32 C3控制8X32位WS2812硬屏之二
X
你的打赏是对原创作者最大的认可
请选择打赏IC币的数量,一经提交无法退回 !
100IC币
500IC币
1000IC币
自定义
IC币
确定
X
提交成功 ! 谢谢您的支持
返回
我要举报该内容理由
×
广告及垃圾信息
抄袭或未经授权
其它举报理由
请输入您举报的理由(50字以内)
取消
提交