设计开发上海网站设计开发公司网站群发软件
鸿蒙LiteOS网址:LiteOS: Huawei LiteOS开源代码官方主仓库.LiteOS Studio 开发工具请访问https://gitee.com/LiteOS/LiteOS_Studio
失败的实践记录见:完全按照手册win10里装Ubuntu 虚拟机然后编译ESP32(主要是想针对ESP32C3和S3)开发板的鸿蒙系统(失败)-CSDN博客
鸿蒙系统小助手的操作方案
将鸿蒙系统移植到ESP32开发板上的方法,可以按照以下步骤一步步来操作:
一、准备工作
-
下载鸿蒙系统源码:
- 从鸿蒙系统官方仓库下载最新的源代码,并解压到本地。
-
安装ESP-IDF开发环境:
- ESP-IDF是ESP32的开发框架,用于编译和调试ESP32程序。
- 根据ESP-IDF官方文档的指导进行安装。
二、配置移植环境
-
进入鸿蒙系统源码根目录:
- 打开终端或命令行工具,进入鸿蒙系统源码的根目录。
-
设置编译环境:
- 执行命令
source build/envsetup.sh
来设置编译环境。
- 执行命令
-
切换到ESP32配置:
- 执行命令
lunch esp32-userdebug
或lunch esp32-eng
来切换到ESP32的配置。
- 执行命令
-
配置鸿蒙系统:
- 执行命令
makemenuconfig
进入配置界面。 - 在配置界面中,根据ESP32的硬件特性进行相关配置,如选择Wi-Fi和蓝牙模块、设置时钟频率等。
- 执行命令
三、编译和烧写
-
编译鸿蒙系统:
- 执行命令
make -jN
(N为使用的线程数,可根据电脑性能调整)来编译鸿蒙系统。 - 编译过程可能需要一些时间,请耐心等待。
- 执行命令
-
烧写固件到ESP32:
- 编译完成后,执行命令
make flash
或类似的烧写命令,将生成的固件烧写到ESP32开发板上。
- 编译完成后,执行命令
四、运行鸿蒙系统
-
启动开发板:
- 将烧写完成的ESP32开发板连接到电源,并启动开发板。
-
观察输出信息:
- 可以使用串口工具连接到开发板,观察开发板上的输出信息,确认鸿蒙系统是否成功运行。
注意事项
- 在整个移植过程中,请确保所有步骤都按照官方文档和指南进行,以避免出现不必要的错误。
- 如果在移植过程中遇到问题,可以查阅鸿蒙系统和ESP-IDF的官方文档,或在相关社区和论坛中寻求帮助。
- 确保设备连接同一网络,并保持设备固件为最新版本,以确保功能稳定运行。
通过以上步骤,您应该能够成功地将鸿蒙系统移植到ESP32开发板上,并运行起来。
LiteOS手册
什么是移植,为什么要移植
对于嵌入式设备,由于芯片型号和外设差异较大,且资源有限,所以物联网操作系统无法像 Windows/Linux 那样适配集成所有驱动,因此通常会先适配部分芯片/开发板。为了让操作系统运行在其他芯片/开发板上,此时就需要移植。
开发板的移植包括 CPU架构移植、板级/外设驱动移植和操作系统的移植。
移植目录结构
表格列出了LiteOS源码的目录,其中加粗字体的目录/文件在移植过程中需要修改。
表 1 LiteOS源码目录
一级目录 | 二级目录/文件 | 说明 |
---|---|---|
arch | 芯片架构支持 | |
build | LiteOS编译系统需要的配置及脚本 | |
compat | LiteOS提供的CMSIS-RTOS 1.0和2.0接口 | |
components | 组件代码 | |
demos | 组件和内核的demo | |
doc | LiteOS使用文档 | |
include | components中各模块的头文件 | |
kernel | 内核代码 | |
lib | libc/zlib/posix接口 | |
osdepends | LiteOS提供的部分OS适配接口 | |
targets | bsp | 通用板级支持包 |
Cloud_STM32F429IGTx_FIRE | 野火STM32F429(ARM Cortex-M4)开发板的开发工程源码包 | |
qemu-virt-a53 | Cortex-A53的qemu开发工程源码包 | |
realview-pbx-a9 | Cortex-A9的qemu开发工程源码包 | |
STM32F072_Nucleo | STM32F072_Nucleo(ARM Cortex-M0)开发板的开发工程源码包 | |
STM32F103_FIRE_Arbitrary | 野火STM32F103(ARM Cortex-M3)霸道开发板的开发工程源码包 | |
STM32F769IDISCOVERY | STM32F769IDISCOVERY(ARM Cortex-M7)开发板的开发工程源码包 | |
... | 其他开发板的开发工程源码包 | |
Kconfig | ||
Kconfig.* | 不同厂商开发板menuconfig配置文件 | |
Makefile | ||
bsp.mk | ||
test | 内核测试用例集合套 | |
tests | 组件测试用例集合套 | |
tools | build/config | LiteOS支持的各开发板的编译配置文件,移植新的开发板时,需要在这个目录下增加这个新开发板的编译配置文件 |
menuconfig | LiteOS编译所需的menuconfig脚本 | |
Makefile | 整个LiteOS的Makefile | |
.config | 开发板的编译配置文件,默认为Cloud_STM32F429IGTx_FIRE开发板的配置文件,移植时需要替换成新开发板的编译配置文件 |
target目录下保存了当前已经支持的开发板工程源码。当移植新开发板时,应该在target目录下增加该开发板的目录,目录结构和代码可以参考当前已支持的开发板的目录。例如:
- STM32F4系列的移植可以参考Cloud_STM32F429IGTx_FIRE工程。
- STM32F7系列的移植可以参考STM32F746_Nucleo工程。
- STM32L4系列的移植可以参考STM32L496_Nucleo工程。
环境准备
-
获取LiteOS源代码
-
硬件环境
-
软件环境
获取LiteOS源代码
LiteOS源码仓在码云上,使用master分支。
硬件环境
开发板
本指南以国内主流STM32学习板-正点原子STM32F407开发板为例进行移植。该开发板的介绍可参考官方网站:探索者STM32F407开发板。
烧录仿真器
JLink。
软件环境
简介
本指南主要基于LiteOS Studio集成开发环境进行移植,烧录工具为JLink,同时使用STM32CubeMX软件生成裸机工程。
安装STM32CubeMX
STM32CubeMX下载,本指南使用的是6.0.1版本。
安装LiteOS Studio
除了LiteOS Studio,同时还需要安装git工具、make构建软件、arm-none-eabi编译器软件、C/C++扩展、JLink烧录软件、USB转串口驱动,这些软件的安装均可参考LiteOS Studio安装指南。
所有软件安装完毕后,需要重启计算机。
须知: 对于板载STLink仿真器的STM32开发板,需要先把STLink仿真器刷成JLink仿真器,再按照JLink的方式烧写。可以参考LiteOS Studio官方文档的“STM32工程示例”中的“ST-Link仿真器单步调测”。
验证LiteOS Studio集成开发环境
在正式开始移植前,可以先验证当前开发环境是否能成功编译LiteOS代码并完成烧录。目前开源LiteOS支持了若干开发板,如:Cloud_STM32F429IGTx_FIRE、STM32F769IDISCOVERY、STM32L431_BearPi等。可以视情况验证环境:
- 没有官方已适配的开发板,可以先使用LiteOS已支持的开发板工程验证编译功能。暂时不验证烧录功能,在下一章节“测试裸机工程”中再验证。
- 有官方已适配的开发板,使用开发板对应的工程验证编译和烧录功能。即:
- 对于Cloud_STM32F429IGTx_FIRE开发板,在LiteOS Studio中配置目标板信息时,选择STM32F429IG。
- 对于STM32F769IDISCOVERY开发板,在LiteOS Studio中配置目标板信息时,选择STM32F769NI。
- 对于STM32L431_BearPi 开发板,在LiteOS Studio中配置目标板信息时,选择STM32L431RC。
验证方法可以参考LiteOS Studio官方文档的“STM32工程示例”中的“使用入门”(只需关注其中的“打开工程”、“目标板配置”、“编译配置-编译代码”和“烧录配置-烧录”)。
HUAWEI LiteOS Studio简介 LiteOS_Studio: LiteOS Studio是基于LiteOS轻量级操作系统开发的工具。它提供了代码编辑、编译、烧录、调试及Trace跟踪等功能,可以对系统关键数据进行实时跟踪及保存与回放。
LiteOS Studio是基于LiteOS轻量级操作系统开发的工具。它提供了代码编辑、编译、烧录、调试及Trace跟踪等功能,可以对系统关键数据进行实时跟踪及保存与回放。
LiteOS Studio工具下载
访问下载页面进行下载。
LiteOS Studio 使用手册
请访问LiteOS Studio 使用手册,获取软件安装、环境配置、工程示例等等。
终于找到了ESP32的教程
LiteOS: Huawei LiteOS开源代码官方主仓库.LiteOS Studio 开发工具请访问https://gitee.com/LiteOS/LiteOS_Studio - Gitee.com
ESP32 LiteOS编译、烧录使用教程
1. 简介
ESP32目录包含esp32单板相关代码及脚本。
2. 环境搭建
2.1. Linux(Windows10 + VMware Workstation 16 Pro + Ubuntu 20.04.3 LTS)
开发平台采用 Windows10 + ubuntu 虚拟机的方式。
2.1.1. 安装 esp-idf
安装准备:
$ 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 源配置。
- 在执行
./install.sh
时,可能因 python、pip 版本过低导致失败,可将其更新到 python3.8、pip 21.2.4。此外,在install.sh
运行过程中,下载virtualenv时,失败的概率较大,可执行pip3 install virtualenv
单独进行安装,再重新执行./install.sh
。 - 关于安装过程的详细说明,可参考ESP32官方文档:ESP-IDF编程指南 - 快速入门。
- 用户如遇到其他问题,可通过向LiteOS开源仓库提issues、上网查询、查看ESP32官方文档等方式解决。
- 执行 $EGT_PATH/submodule-update.sh 时,如果仓库中的 submodules 没有增加或减少,可使用
2.1.2. install.sh 成功后,执行以下命令设置临时环境变量
install.sh 执行完毕后会出现提示,根据提示执行如下操作:
$ . ./export.sh
2.1.3. 编译工具链安装,建议安装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: 表示家目录,以自己的为准,可执行 echo $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
# $HOME: 表示家目录,以自己的为准,可执行 echo $HOME 查看自己的家目录
$ esptool.py version
esptool.py v3.1-dev
3.1-dev
-
注:执行
. ./export.sh
设置的环境变量为临时环境变量,只在当前shell窗口中有效,切换窗口后需要重新执行,为方便后续进行LiteOS代码的编译,建议在此处将xtensa-esp32-elf-gcc、esptool.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 # 用户安装的版本可能与此处不一致,有返回版本信息即可,没有版本要求
3.1
2.1.4. 利用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指南 - 分区表
2.2. Windows(Windows10 + HUAWEI-LiteOS-Studio V1.45.9 Beta)
HUAWEI-LiteOS-Studio 暂未适配 ESP32,本文档暂不做介绍。
3. 编译烧录LiteOS ESP32工程
3.1. 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 的烧录文件。
3.2. windows下的编译
HUAWEI-LiteOS-Studio 暂未适配 ESP32,本文档暂不做介绍。
4. 烧录
4.1. 安装烧录软件
烧录软件下载地址:ESP32 FLASH DOWNLOAD TOOLS,直接点击即可下载,该软件为 Windows 版本的,下载完成后解压,打开 flash_download_tool.exe。
4.2 配置及烧录
此处作简单说明,详细图文说明参考上述解压目录目录下的文档 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 选择 40MHz,SPIMODE 选择 DOUT,勾选 DoNoChgBin。
- 按实际情况选择 COM,波特率 BAUD 选择 115200。
- 点击START开始下载。
5. 查看运行结果
使用串口工具查看 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 #
6. shell 命令
输入命令 help 查看支持的 shell 命令
Huawei LiteOS # help
*******************shell commands:*************************date free help hwi memcheck swtmr systeminfo task
uname watchHuawei LiteOS #
输入命令 date 查看时间
Huawei LiteOS # date
Thu Jan 1 00:11:20 1970Huawei LiteOS #
总结:
老的esp板子,比如esp32和esp8266应该还可以用,但是esp32c3不支持。esp32s3,因为是双核,且cpu也变了,估计也不能用。