鸿蒙2.0都来了,一起把环境搭建起来!

2023-11-10

自4月底开始,鸿蒙2.0系统便迎来公测,6月2日将举行鸿蒙操作系统以及华为全场景新品发布会,届时会正式推出鸿蒙OS稳定版。


针对华为发布的鸿蒙系统,网上评论褒贬不一,有吹捧的,有无脑黑的。

在这里一口君就不做评价了,但是有2点:

  1. 对任何一个新兴事物,我们都要保持最旺盛的求知欲,
  2. 在自己没有亲自实践就妄下评论的行为是缺乏智慧和不负责任的。

废话不多说,让我们一起搭建一个鸿蒙的运行环境,来一窥神秘的鸿蒙。

一、HarmonyOS 简介

HarmonyOS鸿蒙操作系统,是面向万物互联时代的全场景分布式操作系统。OpenHarmony在传统的单设备系统能力的基础上,创造性地提出了基于同一套系统能力、适配多种终端形态的理念,支持多种终端设备上运行,第一个版本支持128K~128M设备上运行,目前已发布2.0版本。

基于鸿蒙开发的方式有两个方向:面向应用开发(应用层)和面向设备开发(内核层、驱动子系统)。

本文将基于使用鸿蒙操作系统的子内核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内核架构图

2. LiteOS-M 简介

OpenHarmony LiteOS-M内核是面向IoT领域构建的轻量级物联网操作系统内核,具有小体积、低功耗、高性能的特点,其代码结构简单,主要包括内核最小功能集、内核抽象层、可选组件以及工程目录等,分为硬件相关层以及硬件无关层,硬件相关层提供统一的HAL(Hardware Abstraction Layer)接口,提升硬件易适配性,不同编译工具链和芯片架构的组合分类,满足AIoT类型丰富的硬件和编译工具链的拓展。

OpenHarmony LiteOS-M内核架构图

这里我们选择LiteOS-A,在QEMU上运行(不用硬件开发板,只需要一台电脑,方便你验证),通过一步步搭建起基本的开发环境,让你也体验一把鸿蒙开发的乐趣!

三、准备工作

下面列出的内容,就是我们需要准备的工具,这是一套基于windows搭建的开发环境,点击它们你可以直接下载,也可以通过后台回复LiteOS,获取完整工具链的压缩包。东西有点多,请耐心操作。

关于ARM GCCGNU 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),点击下一步

选择目标位置

使用默认,或者设置程序的安装位置,点击下一步

选择快捷方式

推荐全部勾选,在桌面上使用快捷方式,或在资源管理器文件夹内右键菜单,均可以快速打开程序HUAWEI LiteOS Studio。点击下一步

安装准备就绪

点击安装按钮执行安装即可。

安装完成后,界面如下:

可选:HUAWEI LiteOS Studio不提供常用工具、常用扩展的预置,需要用户自行下载,如用户本地已安装,可忽略此步骤。但这里有已点要注意,IDE是基于VsCode开发的,滞后通用型的VsCode版本,因此许多组件可能无法正常使用,你需要下载对应VsCode版本的组件才能正常安装。

2. 安装git工具

一般使用新建工程功能下载SDK,需要git for windows工具的支持。根据上文提供的连接下载git,并按安装向导完成最新版git for windows的安装。通常我们需要安装git,用于更新SDK和对版本进行管理控制。

3. 安装arm-none-eabi软件

开源LiteOS工程使用ARM GCC编译器进行编译,需要安装编译器软件。 下载bat文件以后,点击运行,软件将默认保存到C:\Users\<UserName>\.huawei-liteos-studio\tools\arm-none-eabi目录。

注意:本文提供的下载程序下载GNU Arm Embedded Toolchain,是基于官网提供的bat程序,需要先安装git for windows工具,并加入环境变量。

4. 安装Make构建软件

开源LiteOS工程使用Makefile文件组织编译和链接程序,需要安装GNU Make工具。下载bat文件以后,点击运行,软件将默认保存到C:\Users\<UserName>\.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\<UserName>\.huawei-liteos-studio\extensions\extension-collections目录。

在IDE 活动栏中,打开扩展视图,点击更多操作...,在弹出的菜单中选择从 VSIX 安装,然后指定扩展文件的路径,即可完成安装。

注意:通过本文提供的下载程序下载中文语言包,需要先安装git for windows工具,并加入环境变量。

中文语言包使能:

步骤 1 安装完成后,通过点击菜单栏中的查看->命令面板调出命令输入界面

步骤 2 在命令输入框中输入Configure Display Language,回车,选择需要切换的语言(enzh-cn等),弹出重启IDE完成配置的提示窗口,点击重启,即可完成语言切换

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 StduioQEMU来演示如何新建工程、编译、烧录、串口调试、GDB图形化单步调测等功能。

关于如何创建工程,HUAWEI LiteOS文档中心给出了丰富的教程,这里为了方便大家一口气学会,就再赘述一遍,省去大家重新打开网页的功夫。

1. 新建工程(可选)

注意:当本地已有工程/源码时,无需再新建工程,直接进入下一步打开工程

先点击左侧的Liteos studio图标
,弹出侧边栏,通过点击新建工程图标
,打开新建工程界面。在使用HUAWEI LiteOS Studio新建realview-pbx-a9工程时,需要联网,确保可以访问开源LiteOS。如果联网需要代理,请提前配置好代理,否则新建工程会失败。配置代理方法参考官网文档中心的常见问题章节。同时,需要确保本地已安装git for windows工具。

步骤 1工程名称中填入自定义的工程名

步骤 2工程目录中填入或选择工程存储路径,路径名中不要包含中文、空格、特殊字符等

步骤 3 选择SDK版本号,当前QEMU工程被维护在https://gitee.com/,支持最新版本master分支

步骤 4 在开发板信息表点选开发板所在行,目前默认提供STM32F429IGSTM32F769NISTM32L431RCSTM32F103ZESTM32F072RBSTM32F407ZGrealview-pbx-a9七种开发板

点击确认按钮,后台将下载并保存所选目标板的SDK,等待下载完成后会在一个新窗口中自动打开新建的工程。按照图示填写工程信息,选择QEMU虚拟开发板。

2. 目标板配置-选择目标板

步骤 1 点击工具栏上的工程设置图标
,打开工程配置界面

步骤 2 点击目标板,选取当前工程对应的开发板,,点击确认按钮
进行保存

3. 组件配置(可选)

如需对LiteOS开放可配置的组件与属性进行使能,而不是仅使用默认的配置,用户可以点击工程配置界面上的组件配置,在左侧的选择组件中点击想要使能或修改的组件,在右侧的组件属性栏勾选需要使能的组件,或更改组件属性值,点击确认按钮
保存。。

avatar

4. 编译配置-编译代码

步骤 1 点击工程配置界面上的编译器

avatar

步骤 2 编译器类型选择arm-none-eabi

步骤 3 编译器目录需要自行下载GNU Arm Embedded Toolchain编译交叉工具链,已提供默认路径。通过本站提供的自动下载程序,arm-none-eabi编译器就会安装到该路径下。用户也可自行指定安装目录,点击图标
设置为arm-none-eabi-gcc.exe所在路径

步骤 4 Make构建器需要我们自行下载Make.exe构建工具,已提供默认路径。通过本文提供的自动下载程序,Make.exe构建工具就会安装到该路径下。用户也可自行指定安装目录,点击图标设置为make.exe所在路径

步骤 5 Makefile脚本路径已填入默认值,也可以自行更改。在工程根目录下的Makefile文件上点击右键->设置为Makefile文件,或点击图标进行自定义设置,也可使用按钮自动搜索脚本文件

步骤 6 Make参数已填入默认值,也可自行修改

步骤 7 配置好后点击确认按钮
进行保存

步骤 8 点击工具栏上的编译图标
开始编译,也可以点击重新构建图标
进行清理和重新编译

编译成功的截图示例如下:

清理编译输出的截图示例如下:

点击编译按钮,执行编译,编译成功截图如下:

5. 执行QEMU仿真

进入烧录器界面,烧录方式选择Simulator烧录器目录选择qemu-system-arm.exe所在目录,烧录文件选择out/realview-pbx-a9目录下的Huawei_LiteOS.bin文件,界面配置示例截图如下:

点击烧录按钮
,仿真开启成功后进入交互界面,截图如下(在IDE下方的终端面板):
 如果没有成功运行,请检查是否安装好QEMU,并把其目录添加到环境变量中,同时检查是否编译成功,有无生成bin文件。

6. 进行QEMU调测

进入调试器界面,调试器选择Simulator调试器目录选择qemu-system-arm.exe所在目录,GDB目录选择arm-none-eabi-gdb.exe 可执行文件路径选择out/realview-pbx-a9目录下的Huawei_LiteOS.elf文件,界面配置示例截图如下:

点击debug按钮
,执行qemu仿真,仿真开启成功后进入交互界面,截图如下:

注意:这里烧录进QEMU仿真,和进行debug运行,并不能够同步执行,也就是说不可以同步调试,因为烧录进QEMU的是bin文件,而仿真使用的是elf文件。

到这里,你已经从成功将鸿蒙内核LiteOS-A运行起来了!

文中用到的所有安装包,可以关注公众号:一口Linux,

后台回复LiteOS,获取。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

鸿蒙2.0都来了,一起把环境搭建起来! 的相关文章

随机推荐

  • 使用Navicat Premium 同步 测试数据库 与 正式数据库 数据

    目录标题 使用Navicat Premium 同步 测试数据库 与 正式数据库 数据 使用Navicat Premium 同步 测试数据库 与 正式数据库 数据 步骤 1 使用 Navicat 打开连接 2 打开 工具 gt 结构同步 3
  • Linux中root用户找不到JAVA_HOME

    Linux中root用户找不到JAVA HOME 在Ubuntu环境中安装好Java环境后设置环境变量 在 etc profile中设置好了JAVA HOME变量并引入到PATH中 用于Ubuntu默认是不以root用户登录的 这时echo
  • kubernetes1.24版本部署+containerd运行时(弃用docker)

    背景介绍 kubernetes 1 24版本正式弃用docker 开始使用containerd作为容器运行时 运行时介绍 OCI Open Container Initiative 2015年Google docker Redhat IBM
  • 云原生之使用docker部署centos系统测试环境

    云原生之使用docker部署centos系统测试环境 一 检查本地服务器系统版本 二 检查docker版本 三 检查docker状态 四 下载centos镜像 五 创建centos容器 1 运行centos容器 2 检查容器内根目录 六 c
  • 使用广泛的开源PCB文件查看器 Gerbv 含多个严重漏洞

    聚焦源代码安全 网罗国内外最新资讯 编译 代码卫士 专栏 供应链安全 数字化时代 软件无处不在 软件如同社会中的 虚拟人 已经成为支撑社会正常运转的最基本元素之一 软件的安全性问题也正在成为当今社会的根本性 基础性问题 随着软件产业的快速发
  • SpringBoot配置加载顺序

    目录 前言 一 Spring Boot 配置优先级 二 命令行参数 三 示例分析 前言 Spring Boot 不仅可以通过配置文件进行配置 还可以通过环境变量 命令行参数等多种形式进行配置 这些配置都可以让开发人员在不修改任何代码的前提下
  • 小学steam计算机课程案例,STEAM课程典型案例——桥世界

    STEAM课程就是集科学 技术 工程 艺术 数学等多学科融合的综合教育 基于一个问题 小组合作 同伴讨论 着重培养学生设计能力与问题解决能力 为促进STEAM教育有效进入课堂 提高学生动手能力 激发学生创造能力 2019年4月 文华小学6年
  • MSSQL数据库注入

    MSSQL数据库注入实践 一 MSSQL注入的基础知识 一 注入点的检测 1 数据库类型判断 概述 MSSQL数据库中 存在一个系统表sysobjects 可以通过判断这个表是否存在来判断该数据库是否为MSSQL数据库 SQL语句执行 se
  • CTFSHOW内部赛web5_登陆就有flag

    网站地址 https ctf show 经过一番固定的注入尝试发现 1 长度限制为5 2 存在过滤且过滤的字符会有回显 能留下来的字符很少这里列出 gt lt 在排除一下 gt lt 可以只留等于号 逗号和点号暂时没想出来怎么利用 所以可用
  • 手把手操作JS逆向爬虫入门(三)---Headers请求头参数加密

    知识点 1 请求头加密参数分析 2 JS base64加密的多个实现方法 目标网站 aHR0cHM6Ly93d3cub2tsaW5rLmNvbS96aC1jbi9idGMvdHgtbGlzdD9saW1pdD0yMCZwYWdlTnVtPT
  • STM32 ADC转换实验

    摘自 STM32 ADC转换实验 作者 追兮兮 发布时间 2020 10 29 09 42 24 网址 https blog csdn net weixin 44234294 article details 109333307 STM32
  • 通过scrapy命令行工具做网页分析

    前言 Scrapy是由python语言开发的一个快速 高效的web抓取框架 用于抓取web站点并从页面中提取结构化的数据 只需要实现少量的代码 就能够快速的抓取 它最吸引人的地方在于它是一个爬虫框架 任何人都可以根据自己的需求方便的修改 s
  • Windows 下Maven安装配置(本地仓库配置)

    一 下载maven maven官网 http maven apache org 下载下来也就是一个压缩文件 解压 我下载的是3 5 2版本 解压之后如下 路径为 D Program Files apache maven 3 5 2 二 配置
  • idea繁体字-中文输入法变繁体字

    今天提交代码发现 在IDEA中输入法突然变成繁体字 解决方案如下 idea中适用的快捷键和你输入法快捷键冲突 具体是crtl shift f
  • Docker学习

    目录 外部访问容器 映射所有接口地址 映射到指定地址的指定端口 映射到指定地址的任意端口 查看映射端口配置 容器互联 新建网络 连接容器 Docker Compose 配置 DNS 高级网络配置 快速配置指南 容器访问控制 容器之间访问 访
  • 解决iframe重定向让父级页面跳转

    原文 http www jb51 net article 40583 htm 有内嵌iframe的页面 当session过期时 点击连接重定向后的跳转会在iframe中跳转 在登录页面中加入下面的代码 就会在最外层页面跳转 原文 http
  • JVM 默认Xss大小

    abin lee java XX PrintFlagsFinal version grep ThreadStackSize intx CompilerThreadStackSize 0 pd product intx ThreadStack
  • 独步潮流!如何在私有数据集上塑造GPT式大型语言模型的独特风格!

    导读 Fine tune 是一种能够以成本效益的方式调整预训练 LLM 的技巧 本文主要比较了用于最新的开源 LLM Falcon 的不同参数高效微调方法 并为大家介绍如何使用单个 GPU 并在一天内对开源的大语言模型 Falcon 进行微
  • 【色度学】光度学基础

    1 光的本质 1 波长不同的可见光 引起人眼的颜色感觉不同 2 人们观察到的颜色是物体和特有色光相结合的结果 而不是物体产生颜色的结果 2 光度量 ISP 光的能量与颜色 1 mjiansun的博客 CSDN博客 ISP 光的能量与颜色 2
  • 鸿蒙2.0都来了,一起把环境搭建起来!

    自4月底开始 鸿蒙2 0系统便迎来公测 6月2日将举行鸿蒙操作系统以及华为全场景新品发布会 届时会正式推出鸿蒙OS稳定版 针对华为发布的鸿蒙系统 网上评论褒贬不一 有吹捧的 有无脑黑的 在这里一口君就不做评价了 但是有2点 对任何一个新兴事