LiteOS ESP32使用指南

举报
Lionlace 发表于 2021/10/26 10:49:59 2021/10/26
【摘要】 本文档介绍LiteOS开源版本ESP32的使用教程,供开发及测试相关人员参考

简介

ESP32是一系列低成本、低功耗的微控制器系统,集成了Wi-Fi和双模蓝牙。其中包含内置天线开关、RF巴伦、功率放大器、低噪声接收放大器、滤波器和电源管理模块等。ESP32源代码目录包含esp32开发板相关代码及脚本,如下表所示:

目录/文件

说明

Inc

芯片外设配置的头文件

Src

芯片外设配置的头文件

include

系统相关配置头文件

os_adapt

适配的接口文件

Makefile

当前开发板工程的Makefile

README_CN.md

当前开发板的说明文档

eap32.rom.ld    ESP32 ROM

地址表

liteos.ld

当前开发板工程的链接文件

注,以上相关源代码路径为:https://gitee.com/LiteOS/LiteOS/tree/master/targets/ESP32。



环境搭建

LinuxWindows10 + VMware Workstation 16 Pro + Ubuntu 20.04.3 LTS

开发平台采用 Windows10 + ubuntu 虚拟机的方式。


安装 esp-idf

esp-idf是乐鑫官方推出的物联网开发框架,相关内容可参考https://github.com/espressif/esp-idf/blob/master/README_CN.md。

安装准备:  

  $ cd ~
  $ sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
  $ python3 -m pip install --upgrade pip setuptools wheel
  $ mkdir esp32
  $ cd esp32

(左右滑动,查看更多)

esp-idf 安装:

 $ git clone -b v4.3.1 --recursive https://github.com/espressif/esp-idf.git
 $ cd esp-idf
 $ export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"
 $ ./install.sh

注,关于下载过程中的部分问题说明:

上述操作下载的软件源大部分位于国外,国内下载速度非常慢,大概率会下载失败,下载失败可重复执行,也可替换为如下操作:

$ git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git
$ git clone -b v4.3.1 https://gitee.com/EspressifSystems/esp-idf.git
$ cd ~/esp32/esp-gitee-tools/
$ export EGT_PATH=$(pwd)
$ cd ~/esp32/esp-idf
$ $EGT_PATH/submodule-update.sh
$ pip config set global.index-url http://mirrors.aliyun.com/pypi/simple
$ pip config set global.trusted-host mirrors.aliyun.com
$ $EGT_PATH/install.sh
  • 执行 $EGT_PATH/submodule-update.sh 时,如果仓库中的 submodules 没有增加或减少,可使用 git submodule update --init --recursive 来更新。

  • install.sh 安装过程中,会使用pip安装所需的包,默认情况下pip使用的是国外的软件源,使得其安装过程非常慢,为解决该问题,可切换pip的源。此处设置为阿里的源,也可以更换为其他的源,具体的pip源配置可参考:https://cloud.tencent.com/developer/article/1601851

  • 在执行./install.sh时,可能因pythonpip版本过低导致失败,可将其更新到 python3.8pip 21.2.4。此外,在install.sh运行过程中,下载virtualenv时,失败的概率较大,可执行pip3 install virtualenv单独进行安装,再重新执行 ./install.sh

  • 关于安装过程的详细说明,可参考ESP32官方文档:ESP-IDF编程指南 - 快速入门https://docs.espressif.com/projects/esp-idf/zh_CN/v4.3.1/esp32/get-started/index.html

  • 用户如遇到其他问题,可通过向LiteOS开源仓库提交issueshttps://gitee.com/LiteOS/LiteOS/issues)、上网查询、查看ESP32官方文档等方式解决。


install.sh 成功后,执行以下命令设置临时环境变量

install.sh 执行完毕后会出现提示,根据提示执行如下操作:

$ . ./export.sh

编译工具链安装,建议安装8.4.0版本(已验证)。一般来说,在成功执行install.sh后,所需编译工具xtensa-esp32-elf-gcc、esptoos.py已经安装完成。执行export.sh后,会为编译工具链设置临时环境变量,可通过执行如下命令查看安装位置及版本

查看xtensa-esp32-elf-gcc安装位置及版本

 $ which xtensa-esp32-elf-gcc
 $HOME/.espressif/tools/xtensa-esp32-elf/esp-2021r1-8.4.0/xtensa-esp32-elf/bin/xtensa-esp32-elf-gcc
 # $HOME: 表示家目录,以自己的为准
 $ xtensa-esp32-elf-gcc -dumpversion  # 也可执行 xtensa-esp32-elf-gcc -v
 8.4.0                                # 8.4.0版本已验证,其余版本可能编译失败

查看esptool.py安装位置及版本
 $ which esptool.py
 $HOME/esp32/esp-idf/components/esptool_py/esptool/esptool.py
 $ esptool.py version
 esptool.py v3.1-dev
 3.1-dev

注:执行. ./export.sh设置的环境变量为临时环境变量,只在当前shell窗口中有效,切换窗口后需要重新执行,为方便后续进行LiteOS代码的编译,建议在此处将xtensa-esp32-elf-gccesptool.py添加到用户环境变量中。具体操作方式为:

# 打开配置文件
$ vim ~/.bashrc
# 在文件末尾输入以下内容:
export PATH=$PATH:$HOME/.espressif/tools/xtensa-esp32-elf/esp-2021r1-8.4.0/xtensa-esp32-elf/bin
export PATH=$PATH:$HOME/esp32/esp-idf/components/esptool_py/esptool

如编译工具xtensa-esp32-elf-gcc未安装或版本较低,也可通过如下命令进行手动安装:

 $ cd ~/esp32
 $ mkdir tools
 $ cd tools
 $ wget https://github.com/espressif/crosstool-NG/releases/download/esp-2021r1/xtensa-esp32-elf-gcc8_4_0-esp-2021r1-linux-amd64.tar.gz
 $ tar -xzf xtensa-esp32-elf-gcc8_4_0-esp-2021r1-linux-amd64.tar.gz

解压完成后进入解压文件,找到编译工具 xtensa-esp32-elf-gcc 的位置,添加环境变量:

$ vim ~/.bashrc

在文件末尾输入以下内容:

export PATH=$PATH:$HOME/esp32/tools/xtensa-esp32-elf/bin

使环境变量生效:

$ source ~/.bashrc

查看编译工具版本(如输入命令时,使用tab键无法自动补全或联想,可尝试退出当前shell终端,重新打开):

$ xtensa-esp32-elf-gcc -v

安装 esptool,此工具用于生成 esp32 二进制烧录文件:

$ python -m pip install esptool

添加环境变量:

 $ vim ~/.bashrc

在文件末尾输入以下内容:

export PATH=$HOME/.local/bin:$PATH
export PATH=$HOME/esp32/tools:$PATH

使环境变量生效:

$ source ~/.bashrc

查看esptool是否安装成功:

$ esptool.py version
esptool.py v3.1   # 用户安装的版本可能与此处不一致,有返回版本信息即可,没有版本要求


利用esp32的examples工程生成bootloader.bin引导文件、分区表文件

 $ cd ~/esp32/esp-idf
 $ . ./export.sh
 $ cd examples/get-started/hello_world
 $ make -j

编译成功后,将在当前 build 目录下生成分区表文件 partitions_singleapp.bin、引导文件 bootloader.bin,具体信息可查看输出信息。

注:此处为引导文件和分区表的简便生成方式,若要了解更多细节,可查看esp32官方文档:

ESP-IDF编程指南 - API指南 - 引导加载程序 ESP-IDF编程指南 - API指南 - 分区表


WindowsWindows10 + HUAWEI-LiteOS-Studio V1.45.9 Beta

HUAWEI-LiteOS-Studio 暂未适配 ESP32,本文档暂不做介绍。

编译烧录LiteOS ESP32工程


Ubuntu下的编译

从 LiteOS 仓库 拉取LiteOS源码:

 $ cd ~/esp32
 $ git clone https://gitee.com/LiteOS/LiteOS.git

进入 LiteOS 工程,拷贝 esp32 默认配置文件替换当前配置文件:

 $ cd ~/esp32/LiteOS
 $ cp tools/build/config/ESP32.config .config

编译LiteOS ESP32工程:

 $ make clean; make -j

编译完成后会在当前路径下生成文件 out/ESP32/Huawei_LiteOS.bin,该文件即为 esp32 的烧录文件。


windows下的编译

HUAWEI-LiteOS-Studio 暂未适配 ESP32,本文档暂不做介绍。


烧录

安装烧录软件

烧录软件下载地址:https://www.espressif.com/sites/default/files/tools/flash_download_tool_3.9.0_0.zip,该软件为 Windows 版本的,下载完成后解压,打开 flash_download_tool.exe。


配置及烧录

此处只做简单说明,详细的图文说明可参考上述解压目录下的文档:doc/Flash_Download_Tool__cn.pdf 中的“2.下载示例”部分的相关介绍。

  • 打开软件,芯片类型 chipType 选择 ESP32,点击 OK 进入下一步;
  • 选择 SPIDownload
  • SPIDownload页面下的空白栏,按顺序填入引导文件 bootloader.bin 的路径及下载地址、分区表文件 partitions_singleapp.bin 的路径及下载地址、esp32的烧录文件Huawei_LiteOS.bin的路径及下载地址并勾选,如下:

文件路径

下载地址

esp32/esp-idf/examples/get-started/hello_world/build/bootloader/bootloader.bin

0x1000

esp32/esp-idf/examples/get-started/hello_world/build/partitions_singleapp.bin

0x8000

esp32/LiteOS/out/ESP32/Huawei_LiteOS.bin

0x10000

  • SpiFlashConfig 部分SPI SPIEED选择40MHzSPIMODE选择DOUT勾选 DoNoChgBin
  • 按实际情况选择COM,波特率BAUD选择115200
  • 点击START开始下载。

查看运行结果

使用串口工具查看 esp32 的串口输出,内容如下:

...... 引导程序内容,此处省略
********Hello Huawei LiteOS********
LiteOS Kernel Version : 5.1.0
build data : Sep 24 2021 14:56:29
**********************************
OsAppInit
cpu 0 entering scheduler
app init!
Hello, welcome to liteos demo!
Huawei LiteOS #

shell命令

输入命令 help 查看支持的 shell 命令

Huawei LiteOS # help
*******************shell commands:*************************
date         free         help         hwi           memcheck     swtmr         systeminfo   task
uname         watch
Huawei LiteOS #

以上为ESP32使用教程的全部内容,欢迎大家学习交流。

结语

未来我们还会持续新增更多组件、开发板、架构、特性等。

感谢您的阅读,有任何问题、建议,都可以留言给我们,让我们一起进步:https://gitee.com/LiteOS/LiteOS/issues

为了更容易找到“LiteOS”代码仓,建议访问https://gitee.com/LiteOS/LiteOS,关注“ Watch”、点赞“Star”、并“Fork”到自己账号下,如下图。


- end -

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。