You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
LiteOS-Reading/src/doc/LiteOS_Quick_Start.md

426 lines
22 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# Huawei LiteOS 快速入门
- [STM32开发板](#STM32开发板)
- [Linux下使用命令行开发](#Linux下使用命令行开发)
- [搭建开发环境](#搭建开发环境)
- [编译](#编译)
- [烧录](#烧录)
- [运行](#运行)
- [Windows下使用Huawei LiteOS Studio开发](#Windows下使用Huawei-LiteOS-Studio开发)
- [搭建开发环境](#搭建开发环境-0)
- [编译](#编译-1)
- [烧录](#烧录-2)
- [运行](#运行-3)
- [QEMU模拟器运行realview-pbx-a9](#QEMU模拟器realview-pbx-a9)
- [简介](#简介)
- [Linux下使用命令行开发](#Linux下使用命令行开发-4)
- [搭建开发环境](#搭建开发环境-5)
- [编译](#编译-6)
- [运行](#运行-7)
- [Windows下使用Huawei LiteOS Studio开发](#Windows下使用Huawei-LiteOS-Studio开发-8)
- [搭建开发环境](#搭建开发环境-9)
- [编译](#编译-10)
- [运行](#运行-11)
- [QEMU模拟器运行qemu-virt-a53](#QEMU模拟器qemu-virt-a53)
<h2 id="STM32开发板">STM32开发板</h2>
<h3 id="Linux下使用命令行开发">Linux下使用命令行开发</h3>
<h4 id="搭建开发环境">搭建开发环境</h4>
在Linux上完成编译后通过Windows访问Linux主机上的文件完成系统镜像文件的烧录调测与运行。所以开发环境包括Linux下的编译环境以及Windows下的烧录调测工具和USB转串口驱动。
- 在Linux下搭建编译环境。
参考[搭建Linux编译环境](./LiteOS_Build_and_IDE.md#4-1)。
- 在Linux下搭建samba服务实现Windows下对Linux主机上的文件的访问。
1. 安装samba。
```
sudo apt-get install samba
```
2. 修改samba的配置文件。
执行以下命令打开samba的配置文件
```
sudo vi /etc/samba/smb.conf
```
在文件末尾添加以下内容其中username需要修改为登录Linux主机的用户名path为Windows下可以直接访问的Linux主机上的共享目录请根据实际情况设置。
```
[username]
path = /home/username
browseable = yes
available = yes
public = yes
writable = yes
valid users = username
create mask = 0777
security = share
guest ok = yes
directory mask = 0777
```
3. 重启samba服务。
```
sudo service smbd restart
```
4. 设置samba账户密码。
执行以下命令设置samba账户密码按提示输入密码其中username为登录Linux主机的用户名。
```
sudo smbpasswd -a username
```
5. 设置共享目录权限。
执行以下命令将第2步中配置的共享目录设置为对任何用户都可读可写可访问/home/username请修改为第2步中配置的目录。
```
sudo chmod 777 /home/username
```
6. 通过Windows访问Linux主机上的共享目录。
在Windows资源管理器路径中输入\\\\Linux主机IP即可访问Linux共享目录。
- 烧录工具为JLink仿真器。
在Windows主机中从JLink官网下载<a href="https://www.segger.com/downloads/jlink/JLink_Windows.exe" target="_blank">JLink仿真器</a>。双击下载的JLink应用程序直接使用默认配置进行安装即可。
- 安装USB转串口驱动。
以CH340驱动为例在Windows主机中从官网下载<a href="http://www.wch.cn/downloads/CH341SER_EXE.html" target="_blank">转串口Windows驱动程序</a>。双击下载的驱动程序直接使用默认配置进行安装即可。完成驱动安装后使用USB线连接开发板的USB转串口到Windows主机可以在Windows设备管理器中查看端口号如下图所示。
![](figures/quick_start/get_serial_port.png)
<h4 id="编译">编译</h4>
搭建完开发环境后,即可按以下步骤完成编译。
1. 下载Huawei LiteOS代码。
请下载完整的Huawei LiteOS代码代码仓在gitee上请选择master分支进行下载<a href="https://gitee.com/LiteOS/LiteOS" target="_blank">LiteOS代码仓</a>
2. 拷贝开发板配置文件为根目录.config文件。
根据实际使用的开发板拷贝tools/build/config/目录下的默认配置文件$\{platform\}.config到根目录并重命名为.config。
3. 配置想要执行的Demo。
在Huawei\_LiteOS根目录下执行**make menuconfig**命令打开menuconfig的图形化配置界面使能想要执行的Demo。下面以使能“Kernel Task Demo”为例介绍如何配置Demo。其他Demo的使能方法详见Huawei LiteOS源码根目录下demos目录中各个子目录中的README\_CN.md。
进入菜单项“**Demos → Kernel Demo**”,通过空格键选择使能“**Enable Kernel Demo**”(使能后菜单项前面的括号里会有一个星号,即\[ \* \]),进入子菜单“**Kernel Demo Entry**”,选择“**DemoEntry**”该配置项可以单独执行某个或某几个内核Demo另一个配置项InspectEntry表示执行所有内核Demo在其子菜单中选择“**Run Kernel Task Demo**”,如下图所示。
![](figures/quick_start/select_task_demo_in_linux.png)
配置完成后输入字母“S”保存配置项其默认会保存到根目录下的.config文件中回车即可完成保存。最后输入字母“Q”退出menuconfig配置。
4. 清理工程。
在编译前先在Huawei\_LiteOS根目录下执行**make clean**命令删除以前编译出的二进制文件。
5. 编译工程。
在Huawei\_LiteOS根目录下执行**make**命令即可完成工程编译,编译结果会在屏幕上输出。
编译出的文件保存在out目录中以Cloud\_STM32F429IGTx\_FIRE为例生成的系统镜像文件、反汇编等文件在out/Cloud\_STM32F429IGTx\_FIRE目录中库文件在out/Cloud\_STM32F429IGTx\_FIRE/lib目录中中间文件在out/Cloud\_STM32F429IGTx\_FIRE/obj目录中。因在步骤 3 中使能了“Kernel Task Demo”所以在保存库文件的lib目录中会有相应的库文件libkernel\_demo.a。
<h4 id="烧录">烧录</h4>
1. 将JLink仿真器的两端分别连接到开发板和Windows主机上。
2. 使用USB线连接开发板的USB转串口到Windows主机上。
3. 运行JFlashLite.exe。
双击JLink安装目录中的JFlashLite.exe如下图所示。
![](figures/quick_start/run_JFlashLite.png)
4. 设置开发板信息。
点击下图红框中的“...”按钮选择对应的设备图中以STM32F429为例将设备设置为STM32F429IG。最后点击右边的“OK”按钮完成设置。
![](figures/quick_start/set_device_in_JLink.png)
5. 选择要烧录的镜像文件。
点击下图箭头所指的“...”按钮。
![](figures/quick_start/click_burn_button_in_JLink.png)
在弹出的窗口中选择要烧录的文件这里可以通过搭建好的samba服务访问Linux下编译好的二进制文件在文件路径栏中输入“\\\\IP”即可访问Linux主机的文件这里需要将IP替换为实际的Linux主机IP。
![](figures/quick_start/select_burn_file_in_JLink.png)
6. 执行烧录。
点击下图箭头所指的“Program Device”按钮进行烧录。烧录成功后会在Log框中提示“...Downloading...Done”如下图所示。
![](figures/quick_start/burn_stm32_in_JLink.png)
<h4 id="运行">运行</h4>
1. 打开任意一款串口工具,将端口号设置为[安装USB转串口驱动](#搭建开发环境)中查询到的端口号,波特率等其他设置可以直接使用如下所示的默认值。
![](figures/quick_start/set_serial_tool.png)
2. 复位开发板运行Huawei LiteOS。
按下开发板的复位RESET按钮可以看到串口输出了Huawei LiteOS启动后运行“Kernel Task Demo”的打印信息其中“Huawei LiteOS \#”是Shell交互界面的提示符如下图所示
![](figures/quick_start/run_liteos_in_serial.png)
Huawei LiteOS默认打开了Shell组件可以在串口工具中输入支持的Shell命令再勾选“加回车换行”点击“发送”按钮即可执行Shell命令如下图所示
![](figures/quick_start/run_shell_in_serial.png)
如果想要更多的了解Shell功能可以参考官方文档[Shell使用教程](../shell/README_CN.md)。
Shell组件是否已经使能可以通过Linux下make menuconfig命令来确认如果已经使能则应该配置了“Enable shell”选项
![](figures/quick_start/enable_shell_in_linux.png)
<h3 id="Windows下使用Huawei-LiteOS-Studio开发">Windows下使用Huawei LiteOS Studio开发</h3>
<h4 id="搭建开发环境-0">搭建开发环境</h4>
1. 下载Huawei LiteOS Studio。
访问<a href="https://gitee.com/LiteOS/LiteOS_Studio/releases/" target="_blank">Huawei LiteOS Studio下载链接</a>获取最新发行版。
2. 搭建Huawei LiteOS Studio开发环境。
参考<a href="https://liteos.gitee.io/liteos_studio/#/install" target="_blank">Huawei LiteOS Studio安装指南</a>,完成开发环境的搭建。
<h4 id="编译-1">编译</h4>
1. 新建工程/打开工程。
如果本地没有下载Huawei LiteOS的源代码则需要新建工程参考<a href="https://liteos.gitee.io/liteos_studio/#/project_stm32?id=%e6%96%b0%e5%bb%ba%e5%b7%a5%e7%a8%8b%ef%bc%88%e5%8f%af%e9%80%89%ef%bc%89" target="_blank">Huawei LiteOS Studio新建工程</a>
如果本地已经下载Huawei LiteOS的源代码则可以通过Studio直接打开本地源代码无需新建工程参考<a href="https://liteos.gitee.io/liteos_studio/#/project_stm32?id=%e6%89%93%e5%bc%80%e5%b7%a5%e7%a8%8b" target="_blank">Huawei LiteOS Studio打开工程</a>
2. 配置实际使用的开发板。
在Studio的“工程配置”**→**“目标板”窗口列出了Huawei LiteOS当前支持的所有开发板请根据实际使用的开发板进行选择。
![](figures/quick_start/st32_select_board.png)
3. 配置想要执行的Demo。
打开Studio的“工程配置”**→**“组件配置”窗口在左侧的“选择组件”界面中点击想要使能或修改的组件在右侧的“组件属性”栏勾选需要使能的组件最后点击“确认”按钮保存。下面以使能“Kernel Task Demo”为例介绍如何配置Demo。其他Demo的使能方法可以参考Huawei LiteOS源码根目录下demos目录中各个子目录中的README\_CN.md。
在“选择组件”界面中,选择菜单项“**Demos → Kernel Demo**”,然后在右侧的“组件属性”栏勾选“**Enable Kernel Demo**”,在菜单项“**Kernel Demo Entry**”中选择“**DemoEntry**”该配置项可以单独执行某个或某几个内核Demo另一个配置项InspectEntry表示执行所有内核Demo在其子菜单中选择“**Run Kernel Task Demo**”,最后点击“确认”按钮保存,如下图所示。
![](figures/quick_start/select_task_demo_in_studio.png)
4. 编译工程。
如何在Studio中配置编译器并编译可以参考<a href="https://liteos.gitee.io/liteos_studio/#/project_stm32?id=%e7%bc%96%e8%af%91%e9%85%8d%e7%bd%ae-%e7%bc%96%e8%af%91%e4%bb%a3%e7%a0%81" target="_blank">Studio编译配置-编译代码</a>如果在此之前已经编译过则可以使用“重新编译”按钮清理以前编译出的二进制文件并重新编译。编译出的文件保存在out目录中以Cloud\_STM32F429IGTx\_FIRE为例生成的系统镜像文件、反汇编等文件在out/Cloud\_STM32F429IGTx\_FIRE目录中库文件在out/Cloud\_STM32F429IGTx\_FIRE/lib目录中中间文件在out/Cloud\_STM32F429IGTx\_FIRE/obj目录中。因在步骤 3 中使能了“Kernel Task Demo”所以在保存库文件的lib目录中会有相应的库文件libkernel\_demo.a。
<h4 id="烧录-2">烧录</h4>
使用USB线连接开发板的USB转串口到电脑并将JLink仿真器正确连接到电脑后就可以使用JLink将系统镜像文件Huawei\_LiteOS.bin烧录到开发板烧录器配置以及烧录方法请参考<a href="https://liteos.gitee.io/liteos_studio/#/project_stm32?id=%e7%83%a7%e5%bd%95%e9%85%8d%e7%bd%ae-%e7%83%a7%e5%bd%95" target="_blank">Studio烧录配置-烧录</a>
<h4 id="运行-3">运行</h4>
烧录成功后点击串口终端图标打开串口终端界面设置端口请根据实际使用的串口端口号进行设置开启串口开关开发板按下复位RESET按钮可以看到串口输出接收区输出的内容就是Huawei LiteOS启动后运行“Kernel Task Demo”的输出如下图所示
![](figures/quick_start/st32_studio_run_liteos.png)
Huawei LiteOS默认打开了Shell组件可以在串口终端的“发送区”输入支持的Shell命令再勾选“加回车换行”点击“发送”按钮即可执行Shell命令。命令的输出结果显示在“接收区”中最后的“Huawei LiteOS \#”即是Shell交互界面的提示符如下图所示
![](figures/quick_start/st32_studio_run_shell.png)
如果想要更多的了解Shell功能可以参考官方文档[Shell使用教程](../shell/README_CN.md)。
Shell组件是否已经使能可以按照下图所示进行确认如果已经使能则应该配置了“Enable full functionality of shell”选项
![](figures/quick_start/st32_studio_select_shell.png)
<h2 id="QEMU模拟器realview-pbx-a9">QEMU模拟器运行realview-pbx-a9</h2>
<h3 id="简介">简介</h3>
QEMU是一款通用的开源虚拟化模拟器通过软件模拟硬件设备当QEMU直接模拟CPU时它能够独立运行操作系统有关QEMU的介绍可参考[https://github.com/qemu/qemu](https://github.com/qemu/qemu)。realview-pbx-a9工程就是使用QEMU模拟Cortex-A9处理器以运行Huawei LiteOS操作系统。
<h3 id="Linux下使用命令行开发-4">Linux下使用命令行开发</h3>
<h4 id="搭建开发环境-5">搭建开发环境</h4>
realview-pbx-a9工程在Linux下的开发环境包括编译环境和QEMU模拟器。
- 搭建编译环境。
请参考[搭建Linux编译环境](LiteOS_Build_and_IDE.md#4-1)。
- 安装QEMU模拟器。
可以参考如下命令安装:
```
$ apt-get install qemu
$ apt-get install qemu-system
```
除此之外,也可以通过<a href="https://www.qemu.org/download/#source" target="_blank">QEMU源码包</a>编译安装的方式安装QEMU。
<h4 id="编译-6">编译</h4>
1. 下载Huawei LiteOS代码。
请下载完整的Huawei LiteOS代码代码仓在gitee上请选择master分支进行下载<a href="https://gitee.com/LiteOS/LiteOS" target="_blank">LiteOS代码仓</a>
2. 拷贝模拟器工程配置文件为根目录.config文件。
在Huawei\_LiteOS根目录下执行如下命令拷贝realview-pbx-a9模拟器工程的.config文件
```
$ cp tools/build/config/realview-pbx-a9.config .config
```
3. 配置想要执行的Demo。
在Huawei\_LiteOS根目录下执行**make menuconfig**命令打开menuconfig的图形化配置界面使能想要执行的Demo。下面以使能“Kernel Task Demo”为例介绍如何配置Demo。其他Demo的使能方法详见Huawei LiteOS源码根目录下demos目录中各个子目录中的README\_CN.md。
进入菜单项“**Demos → Kernel Demo**”,通过空格键选择使能“**Enable Kernel Demo**”(使能后菜单项前面的括号里会有一个星号,即\[ \* \]),进入子菜单“**Kernel Demo Entry**”,选择“**DemoEntry**”该配置项可以单独执行某个或某几个内核Demo另一个配置项InspectEntry表示执行所有内核Demo在其子菜单中选择“**Run Kernel Task Demo**”,如下图所示。
![](figures/quick_start/select_task_demo_in_linux.png)
配置完成后输入字母“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目录中。因在步骤 3 中使能了“Kernel Task Demo”所以在保存库文件的lib目录中会有相应的库文件libkernel\_demo.a。
<h4 id="运行-7">运行</h4>
可以参考如下命令通过QEMU启动guest虚拟机运行Huawei LiteOS因为realview-pbx-a9工程默认使能了SMP多核所以启动虚拟机时也需要设置-smp参数
```
$ qemu-system-arm -machine realview-pbx-a9 -smp 4 -m 512M -kernel out/realview-pbx-a9/Huawei_LiteOS.bin -nographic
```
>![](public_sys-resources/icon-note.gif) **说明:**
>上述命令各参数含义如下更多信息可以通过执行qemu-system-arm --help命令查看
>- -machine设置QEMU要仿真的虚拟机类型。
>- -smp设置guest虚拟机的CPU的个数。
>- -m为此guest虚拟机预留的内存大小如果不指定默认为128M。
>- -kernel设置要运行的镜像文件包含文件路径
>- -nographic以非图形界面启动虚拟机。
虚拟机启动后就会运行Huawei LiteOS并进入Shell交互界面出现“Huawei LiteOS \#”提示符),可以看到如下打印信息:
```
********Hello Huawei LiteOS********
LiteOS Kernel Version : 5.0.0
Processor : Cortex-A9 * 4
Run Mode : SMP
GIC Rev : GICv1
build time : Jan 5 2021 16:30:06
**********************************
main core booting up...
osAppInit
releasing 3 secondary cores
cpu 0 entering scheduler
cpu 2 entering scheduler
cpu 3 entering scheduler
cpu 1 entering scheduler
app init!
Kernel task demo begin.
LOS_TaskLock() ok.
Create Example_TaskHi ok.
Create Example_TaskLo ok.
Enter TaskLo Handler.
Enter TaskHi Handler.
TaskHi LOS_TaskDelay Done.
TaskHi LOS_TaskSuspend ok.
TaskHi LOS_TaskResume ok.
Kernel task demo ok.
Huawei LiteOS #
```
如果想要更多的了解Shell功能可以参考官方文档[Shell使用教程](../shell/README_CN.md)。
<h3 id="Windows下使用Huawei-LiteOS-Studio开发-8">Windows下使用Huawei LiteOS Studio开发</h3>
<h4 id="搭建开发环境-9">搭建开发环境</h4>
1. 下载Huawei LiteOS Studio。
访问<a href="https://gitee.com/LiteOS/LiteOS_Studio/releases/" target="_blank">Huawei LiteOS Studio下载链接</a>获取最新发行版。
2. 搭建Huawei LiteOS Studio开发环境。
参考<a href="https://liteos.gitee.io/liteos_studio/#/project_stm32?id=%e6%90%ad%e5%bb%bawindows%e5%bc%80%e5%8f%91%e7%8e%af%e5%a2%83" target="_blank">搭建Windows开发环境</a>,完成开发环境的搭建。
<h4 id="编译-10">编译</h4>
1. 新建工程/打开工程。
如果本地没有下载Huawei LiteOS的源代码则需要新建工程参考<a href="https://liteos.gitee.io/liteos_studio/#/project_stm32?id=%e6%96%b0%e5%bb%ba%e5%b7%a5%e7%a8%8b%ef%bc%88%e5%8f%af%e9%80%89%ef%bc%89" target="_blank">Huawei LiteOS Studio新建工程</a>
如果本地已经下载Huawei LiteOS的源代码则可以通过Studio直接打开本地源代码无需新建工程参考<a href="https://liteos.gitee.io/liteos_studio/#/project_stm32?id=%e6%89%93%e5%bc%80%e5%b7%a5%e7%a8%8b" target="_blank">Huawei LiteOS Studio打开工程</a>
2. 配置QEMU模拟的开发板。
打开Studio的“工程配置”**→**“目标板”窗口选择“realview-pbx-a9”后点击“确认”按钮保存。
![](figures/quick_start/a9_select_board.png)
3. 配置想要执行的Demo。
打开Studio的“工程配置”**→**“组件配置”窗口在左侧的“选择组件”界面中点击想要使能或修改的组件在右侧的“组件属性”栏勾选需要使能的组件最后点击“确认”按钮保存。下面以使能“Kernel Task Demo”为例介绍如何配置Demo。其他Demo的使能方法可以参考Huawei LiteOS源码根目录下demos目录中各个子目录中的README\_CN.md。
在“选择组件”界面中,选择菜单项“**Demos → Kernel Demo**”,然后在右侧的“组件属性”栏勾选“**Enable Kernel Demo**”,在菜单项“**Kernel Demo Entry**”中选择“**DemoEntry**”该配置项可以单独执行某个或某几个内核Demo另一个配置项InspectEntry表示执行所有内核Demo在其子菜单中选择“**Run Kernel Task Demo**”,最后点击“确认”按钮保存,如下图所示。
![](figures/quick_start/select_task_demo_in_studio.png)
4. 编译工程。
如何在Studio中配置编译器并编译可以参考<a href="https://liteos.gitee.io/liteos_studio/#/project_stm32?id=%e7%bc%96%e8%af%91%e9%85%8d%e7%bd%ae-%e7%bc%96%e8%af%91%e4%bb%a3%e7%a0%81" target="_blank">Studio编译配置-编译代码</a>如果在此之前已经编译过则可以使用“重新编译”按钮清理以前编译出的二进制文件并重新编译。生成的系统镜像文件、反汇编等文件在out/realview-pbx-a9目录中库文件在out/realview-pbx-a9/lib目录中中间文件在out/realview-pbx-a9/obj目录中。因在步骤 3 中使能了“Kernel Task Demo”所以在保存库文件的lib目录中会有相应的库文件libkernel\_demo.a。
<h4 id="运行-11">运行</h4>
Huawei LiteOS Studio通过“烧录”功能启动QEMU虚拟机运行Huawei LiteOS。如何配置“烧录器”并运行Huawei LiteOS可以参考<a href="https://liteos.gitee.io/liteos_studio/#/project_stm32?id=realview-pbx-a9%e6%89%a7%e8%a1%8cqemu%e4%bb%bf%e7%9c%9f" target="_blank">启动realview-pbx-a9仿真工程</a>。烧录成功后自动启动Huawei LiteOS可以在“终端”界面中看到如下输出回车后既可进入Shell交互界面出现“Huawei LiteOS \#”提示符):
![](figures/quick_start/a9_studio_run_liteos.png)
Huawei LiteOS默认打开了Shell组件可以在终端界面的“Huawei LiteOS \#”提示符后输入支持的Shell命令执行Shell如下图所示。如果要重新编译系统需要先退出Shell交互界面。
![](figures/quick_start/a9_studio_run_shell.png)
如果想要更多的了解Shell功能可以参考官方文档[Shell使用教程](../shell/README_CN.md)。
<h2 id="QEMU模拟器qemu-virt-a53">QEMU模拟器运行qemu-virt-a53</h2>
即将适配支持,敬请期待。