6

基于LiteOS Studio零成本学习LiteOS物联网操作系统

 3 years ago
source link: https://blog.csdn.net/devcloud/article/details/111194914
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

摘要:大家在学习物联网操作系统开发的时候,都不得不准备一套开发板和仿真器,也是一笔不小的投资。LiteOS社区现在对外开放了对Qemu模拟器的适配工程,在不使用开发板的情况下,也可以搭建LiteOS开发环境,做到零成本,非常方便初学者学习。

Qemu简介

Qemu是一套由FabriceBellard编写的以GPL许可证的模拟处理器,在GNU/Linux平台上使用广泛,也支持在X86环境上运行。有关Qemu的介绍可参考其github社区内容。LiteOS Stduio使用Qemu realview-pbx-a9开发板来模拟运行LiteOS开源工程。本文主要介绍Windows下基于Qemu运行LiteOS。

安装Qemu

在Windows上安装Qemu。下载qemu-w64-setup-20201124.exe,默认安装即可,不再赘述。如下图:

e03da7369db0ac17f59ec09cfe93c04d.png

LiteOS Studio安装

HUAWEI LiteOS Studio 是以Visual Studio Code社区开源代码为基础,根据LiteOS嵌入式系统软件开发语言、业务场景等特点开发的一款轻量级定制集成开发环境解决方案。对于熟悉Visual Studio Code的开发者,非常容易上手。

访问LiteOS Studio官网,下载LiteOS Studio安装软件,安装过程非常简单,直接看官网资料即可,不赘述。安装完毕之后,需要参考官网文档,搭建windows开发环境

(如下图)。

219161187cb638edd3624f6686243ea2.png

注意,新建工程时,需要git客户端工具,请确保本地已安装git for windows工具并添加环境变量。

新建Qemu仿真工程

点击新建工程图标,打开新建工程界面。在使用LiteOS Studio新建工程时,确保网络畅通,可以访问LiteOS开源社区站点https://gitee.com/LiteOS/LiteOS。

  • 工程名称:填入自定义的工程名
  • 工程目录:填入或选择工程存储路径
  • SDK版本号:选择Gitee-LiteOS-Master
  • 开发板列表:选择Qemureakview-pbx-a9开发板

点击确认,后台将下载并保存所选目标板的SDK,下载完成后自动打开新建的工程。

2a2af60772c0f8e3f52ac4eee98598f4.png

编译Qemu仿真工程

点击工具栏上的编译图标, 开始编译。编译成功后,在控制台输出如下信息:

f395330cf07ea0a93c35099ee78bea22.png

在编译完毕,打开工程设置,在烧录器Burner和调测器Debugger设置里,分别设置需要烧录的bin文件和调测使用的elf可执行文件,分别如下图:
烧录器Burner配置:

d307213f17f4dca54c2c5f4b31a32769.png

调试器Debugger配置:

2ea8db20bb2d908624ef98773bc3a513.png

除了烧录器、调试器,LiteOS Studio工程设置还支持对开发板、编译器、组件管理、串口等进行设置,大家可以自行查看相应的设置。本文使用默认设置即可,设置完毕后,点击确认Comfirm保存。

运行Qemu仿真工程

对于真实开发板,需要把镜像bin或者hex文件烧录到开发板,才能运行。使用Qemu模拟器好处是并不需要真实烧录,启动Qemu传入镜像参数即可。我们复用烧录功能,点击工具栏上的图标进行烧录,启动Qemu模拟器运行编译的LiteOS工程。

运行成功的截图如下:

6868bb3788e0bd45e74a82f6a177b317.png

默认的配置时,输出启动信息后,就进入shell模式,我们可以输入task,查看运行中的任务的信息。更多LiteOS shell命令,请参考 https://gitee.com/LiteOS/LiteOS/tree/master/shell 。Shell命令输出示例如下:

b561612b8b5327dc42472b51790cb524.png

如果想退出Qemu运行,在Terminal终端窗口同时按Ctrl + A,然后按X键即可退出。

配置Qemu仿真工程运行Kernel Demo

LiteOS是高度可配置的系统,除了默认设置,我们可以在工程设置--组件管理中对系统组件配置进行定制。这里演示下如何开启Kernel Demo在Qemu模拟器上运行。

fba1b7fa36e078e03f0315fd7f6ad809.png

开启的这个Kernel Task DemoDemo代码执行入口如下:

示例代码先后创建了2个任务,一个名为HIGH_NAME、一个名为LOW_NAME。在两个任务里,演示了Task相关的接口LOS_TaskSuspend、LOS_TaskResume、LOS_TaskDelay、LOS_TaskDelete的使用。更完整的示例请访问https://gitee.com/LiteOS/LiteOS/blob/master/demos/kernel/api/los_api_task.c。
了解到Demo代码后,重新编译一下。编译成功后,点击烧录按钮运行,即可看到如下输出:

43c539d074bd98984d0342c92ff1b6a9.png

看到实际运行的效果后,建议读者们好好阅读下相关的Demo代码,包含任务、内存管理、中断、IPC通信、时间管理、双向链表、任务同步等。请参考:https://gitee.com/LiteOS/LiteOS/tree/master/demos/kernel

调测Qemu仿真工程

HUAWEI LiteOS Studio 调测非常简单易用,点击工具栏上的调测按钮即可开启GDB图形化调测。对于我们的Qemu工程,开始调测后的界面如下:

1d8c1dfcc53afd765477ea5e257ff46f.png

对界面上的区域进行介绍下:

  • 变量Variable

展示局部变量、全局变量、静态变量的值。

  • 监视Watch

监视指定的表达式,可以输入变量名称或者表达式,实时计算结果。

  • 调用堆栈Call Stack

展示当前运行状态和暂停状态的任务调用堆栈。

  • 断点Breakpoints

展示设置的断点。

  • 寄存器Registers

查看各个寄存器的数值,支持复制数值操作。

  • 源代码窗口

高亮显示当前执行的源代码行。

  • 反汇编窗口

对应当前源代码文件行所在的反汇编代码。

  • 输出Output

展示GDB客户端的输出日志。

  • 调试控制台Debug Console

展示GDB Server的输出日志。
读者们可以继续尝试,继续、单步、跳入、调测、停止等调测动作。更加详细的调测介绍,请参考 ---调试器-执行调试。

本文演示了如何准备LiteOS Studio环境,如何新建Qemu工程,如何编译、烧录、如何组件配置Kernel Demo、如何GDB调测。
LiteOS Studio工具还是容易上手的,非常适合学习物联网开发的。特别是对于初学者,不需要购买开发板,即可以学习、体验LiteOS物联网操作系统开发。通过对LiteOS开源社区提供的Kernel Demo的学习、实际上手练习,会对LiteOS操作系统内核会有个更深入的了解。

LiteOS Studio社区资料:https://liteos.gitee.io/liteos_studio/#/

LieOS开源代码:https://gitee.com/liteos

Qemu介绍: https://github.com/qemu/qemu

QEMU Binaries for Windows (64 bit)下载:https://qemu.weilnetz.de/w64/

Linux环境基于Qemu运行LiteOS,请参考:https://gitee.com/LiteOS/LiteOS/blob/master/targets/realview-pbx-a9/README_CN.md

点击关注,第一时间了解华为云新鲜技术~


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK