购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 LiteOS快速入门

在介绍开发工具之后,本节以STM32开发板和QEMU模拟器为例,主要介绍如何在开发板和QEMU模拟器上启动和运行LiteOS。

2.2.1 在Linux环境下基于STM32开发板的LiteOS开发

在Linux上完成编译后,可通过Windows访问Linux主机上的文件,完成系统镜像文件的烧录、调测与运行。所以开发环境包括Linux下的编译环境,以及Windows下的烧录、调测工具和USB转串口驱动,本节在Linux下搭建编译环境之后,继续完成开发部署。

1.在Linux下搭建samba服务,实现在Windows下对Linux主机上文件的访问

1)安装samba。

2)修改samba的配置文件。执行以下命令打开samba的配置文件。

在文件末尾添加以下内容,其中需要将username修改为登录Linux主机的用户名,path为Windows下可以直接访问的Linux主机上的共享目录,请根据实际情况设置。

3)重启samba服务。

4)设置samba账户密码。执行以下命令设置samba账户密码,按提示输入密码,其中username为登录Linux主机的用户名。

5)设置共享目录权限。执行以下命令将第2步中配置的共享目录设置为对任何用户都可读可写可访问,请将/home/username修改为第2步中配置的目录。

6)通过Windows访问Linux主机上的共享目录。在Windows资源管理器路径中输入\\Linux主机IP,即可访问Linux共享目录。

2.烧录工具为JLink仿真器

在Windows主机中,从JLink官网下载JLink仿真器 。双击下载的JLink应用程序,直接使用默认配置进行安装即可。

3.安装USB转串口驱动

以CH340驱动为例,在Windows主机中,从官网下载转串口Windows驱动程序 。双击下载的驱动程序,直接使用默认配置进行安装即可。完成驱动安装后,使用USB线连接开发板的USB转串口到Windows主机,可以在Windows设备管理器中查看端口号。

2.2.2 在Windows环境下基于STM32开发板的LiteOS开发

在开发环境中新建工程或打开工程。如果本地没有下载Huawei LiteOS的源代码,则需要新建工程。如果本地已经下载Huawei LiteOS的源代码,则可以通过Studio直接打开本地源代码,无须新建工程。接下来,配置实际使用的开发板。

在Studio的“工程配置”→“目标板”窗口(图2.2中的序号2),列出了Huawei LiteOS当前支持的所有开发板,请根据实际使用的开发板进行选择,如图2.2所示。

接下来,配置待执行的Demo。打开Studio的“工程配置”→“组件配置”窗口,在左侧的“选择组件”界面中单击想要使能或修改的组件,在右侧的“组件属性”栏中勾选需要使能的组件,最后单击“确认”按钮保存。下面以使能Kernel Task Demo为例,介绍如何配置Demo。

图2.2 选择开发板

在“选择组件”界面中,选择菜单项Demos → Kernel Demo,然后在右侧的“组件属性”栏中勾选Enable Kernel Demo,在菜单项Kernel Demo Entry中选择DemoEntry(该配置项可以单独执行某个或某几个内核Demo,另一个配置项InspectEntry表示执行所有内核Demo)后,在其子菜单中选择Run Kernel Task Demo,最后单击“确认”按钮保存,如图2.3所示。

图2.3 配置待执行的Demo

接下来在Studio中配置编译器并编译,可以参考Studio编译配置-编译代码 ,如果在此之前已经编译,则可以使用“重新编译”按钮清理以前编译出的二进制文件并重新编译。编译出的文件保存在out目录中,以Cloud_STM32F429IGTx_FIRE为例,生成的系统镜像文件、反汇编等文件在out/Cloud_STM32F429IGTx_FIRE目录中,库文件在lib目录中,中间文件在obj目录中。因为使能了Kernel Task Demo,所以在保存库文件的lib目录中会有相应的库文件libkernel_demo.a。

使用USB线连接开发板的USB转串口到计算机,并将JLink仿真器正确连接到计算机后,就可以使用JLink将系统镜像文件Huawei_LiteOS.bin烧录到开发板,烧录器配置以及烧录方法,可参考链接:https://liteos.gitee.io/liteos_studio/#/project_stm32?id=烧录配置-烧录。

烧录成功后,单击串口终端图标打开串口终端界面,根据实际使用的串口端口号进行端口的设置,如图2.4所示。

图2.4 运行结果图1

开启串口开关,在开发板上,按下复位(RESET)按钮,可看到串口输出,接收区输出的内容就是Huawei LiteOS启动后运行Kernel Task Demo的输出,如图2.5所示。

图2.5 运行结果图2

2.2.3 在Linux环境下基于QEMU模拟器运行realview-pbx-a9

QEMU是一款通用的开源虚拟化模拟器,通过软件模拟硬件设备,当QEMU直接模拟CPU时,它能够独立运行操作系统。realview-pbx-a9工程就是使用QEMU模拟Cortex-A9处理器,以运行Huawei LiteOS操作系统。

1.搭建开发环境

realview-pbx-a9工程在Linux下的开发环境包括编译环境和QEMU模拟器。

1)搭建编译环境。请参考2.1.3节中Linux编译环境的搭建。

2)安装QEMU模拟器,可以参考如下命令安装:

除此之外,也可以通过QEMU源码包编译安装的方式安装QEMU

2.编译

(1)下载Huawei LiteOS代码

如前所述,需要下载完整的Huawei LiteOS代码,代码仓位于gitee平台,请选择master分支进行下载

(2)将模拟器工程配置文件复制为根目录.config文件

在Huawei_LiteOS根目录执行如下命令,复制realview-pbx-a9模拟器工程.config文件:

(3)配置想要执行的Demo

在Huawei LiteOS根目录下执行make menuconfig命令,打开menuconfig的图形化配置界面,使能想要执行的Demo。下面以使能Kernel Task Demo为例,介绍如何配置Demo。

进入菜单项Demos → Kernel Demo,通过空格键选择使能Enable Kernel Demo(使能后菜单项前面的括号里会有一个星号,即[*]),进入子菜单Kernel Demo Entry,选择DemoEntry(该配置项可以单独执行某个或某几个内核Demo,另一个配置项InspectEntry表示执行所有内核Demo)后,在其子菜单中选择Run Kernel Task Demo,如图2.6所示。

图2.6 Linux Demo配置

配置完成后,输入字母“S”保存配置项,其默认会保存到根目录下的.config文件中,按下回车键即可完成保存。最后输入字母“Q”退出menuconfig配置。

(4)清理工程

编译前,仍需要在Huawei LiteOS根目录下执行make clean命令,删除以前编译出的二进制文件。

(5)编译工程

在Huawei_LiteOS根目录下执行make命令即可完成工程编译,编译结果会在屏幕上输出。生成的系统镜像文件、反汇编等文件在out/realview-pbx-a9目录中,库文件在out/realview-pbx-a9/lib目录中,中间文件在out/realview-pbx-a9/obj目录中。因为使能了Kernel Task Demo,所以在保存库文件的lib目录中会有相应的库文件libkernel_demo.a。

3.运行

可以参考如下命令,通过QEMU启动guest虚拟机运行Huawei LiteOS,因为realview-pbx-a9工程默认使能了SMP(多核),所以启动虚拟机时也需要设置-smp参数:

上述命令中的各参数含义如下,更多信息可以通过执行qemu-system-arm--help命令查看。

· machine:设置QEMU要仿真的虚拟机类型。

· smp:设置guest虚拟机的CPU的个数。

· m:为此guest虚拟机预留的内存大小,如果不指定,默认为128MB。

· kernel:设置要运行的镜像文件(包含文件路径)。

· nographic:以非图形界面启动虚拟机。

虚拟机启动后,就会运行Huawei LiteOS,并进入Shell交互界面(出现“Huawei LiteOS #”提示符),可以看到如图2.7所示的打印信息。

图2.7 打印信息

2.2.4 在Windows环境下基于QEMU模拟器运行realview-pbx-a9

1.搭建开发环境

在下载Huawei LiteOS Studio之后,搭建Huawei LiteOS Studio开发环境。

因为工程使用Makefile进行构建管理,所以需要安装Make.exe构建工具、GNU Arm Embedded Toolchain编译交叉工具链。选择realview-pbx-a9开发板进行模拟,还需要安装QEMU模拟器工具。如果新建工程,则还应该安装git for windows工具。

1)安装Git for Windows工具。如果需要使用新建工程功能下载开源工程SDK,则应安装Git for Windows工具。从Git for Windows官网 下载,并按安装向导完成最新版Git for Windows的安装。

2)安装GNU Make等构建软件。可以通过执行x_pack_windows_build_tools_download自动下载程序 来进行下载,默认下载到C:\Users\<UserName>\.huawei-liteos-studio\tools\build目录。注意需要先先安装Git for Windows工具,并加入环境变量。

3)安装GNU Arm Embedded Toolchain软件。可以通过执行GNU Arm Embedded Toolchain自动下载程序 来进行下载,默认下载到C:\Users\<UserName>\.huawei-liteos-studio\tools\arm-none-eabi目录。同样注意需要先安装Git for Windows工具,并加入环境变量。

4)安装QEMU模拟器软件。开发板使用QEMU模拟器,还应根据情况安装QEMU软件,可访问QEMU下载官网 下载安装。

2.编译

(1)新建/打开工程

如果本地没有下载Huawei LiteOS的源代码,则需要新建工程。如果本地已经下载Huawei LiteOS的源代码,则可以通过Studio直接打开本地源代码,无须新建工程。

通过单击新建工程图标,打开新建工程界面。在使用Huawei LiteOS Studio新建工程时,需要联网,确保可以访问开源LiteOS。确保网络连接通畅的同时,需要确保本地已安装Git for Windows工具。

1)在“工程名称”中填入自定义的工程名。

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

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

4)在开发板信息表中选择开发板所在行,目前默认提供STM32F429IG、STM32F769NI、STM32L431RC、STM32F103ZE、STM32F072RB、STM32F407ZG、realview-pbx-a9七种开发板。

如图2.8所示,单击“确认”按钮,后台将下载并保存所选目标板的SDK,等待下载完成后会在一个新窗口中自动打开新建的工程。

图2.8 新建工程示例

新建工程后,会自动打开工程。如果需要打开存在的工程,则单击打开工程图标,选择工程所在的目录即可。

(2)配置QEMU模拟的开发板

打开Studio的“工程配置”→“目标板”窗口,选择realview-pbx-a9后单击“确认”按钮保存,如图2.9所示。

(3)配置想要执行的Demo

打开Studio的“工程配置”→“组件配置”窗口,在左侧的“选择组件”界面中单击想要使能或修改的组件,在右侧的“组件属性”栏中勾选需要使能的组件,最后单击“确认”按钮保存。下面以使能Kernel Task Demo为例进行详细介绍。

在“选择组件”界面中,选择菜单项Demos → Kernel Demo,然后在右侧的“组件属性”栏中勾选Enable Kernel Demo,在菜单项Kernel DemoEntry中选择DemoEntry(该配置项可以单独执行某个或某几个内核Demo,另一个配置项InspectEntry表示执行所有内核Demo)后,在其子菜单中选择Run Kernel Task Demo,最后单击“确认”按钮保存,如图2.10所示。

图2.9 目标板窗口

图2.10 配置Demo

(4)编译工程

如何在Studio中配置编译器并编译,可以参考Studio编译配置-编译代码(2.2.2节中的参考链接),如果在此之前已经编译过,则可以使用“重新编译”按钮清理以前编译出的二进制文件并重新编译。生成的系统镜像文件、反汇编等文件在out/realview-pbx-a9目录中,库文件在out/realview-pbx-a9/lib目录中,中间文件在out/realview-pbx-a9/obj目录中。因为使能了Kernel Task Demo,所以在保存库文件的lib目录中会有相应的库文件libkernel_demo.a。

3.运行

Huawei LiteOS Studio通过烧录功能启动QEMU虚拟机运行Huawei LiteOS。如何配置烧录器并运行Huawei LiteOS,可以参考启动realview-pbx-a9仿真工程 。烧录成功后,自动启动Huawei LiteOS,可以在“终端”界面中看到如图2.11所示的输出,按下回车键后即可进入Shell交互界面(出现“Huawei LiteOS #”提示符)。

图2.11 终端界面

Huawei LiteOS默认打开了Shell组件,可以在终端界面的“Huawei LiteOS”提示符后输入支持的Shell命令,执行Shell,如图2.12所示。如果要重新编译系统,需要先退出Shell交互界面。

图2.12 Shell交互界面 pUpAfu3MkwDDcZsHcjFyjgjeXMe7rscZPZ9/dnjjUNUBJlDQudsX8bxr5t8Ti+lR

点击中间区域
呼出菜单
上一章
目录
下一章
×