大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
| 文章更新版本 | 时间 | 备注 | 修订人 |
|---|---|---|---|
| V0.1 | 2020.08.06 | 初始版本 | bob |
开源仓库地址
ESP-Drone 原名 ESP-Plane
- 代码仓库:esp-drone
- 中文文档:getting started
- 展示视频:安装与试飞

编译成 ESP32-S2 固件
1. ESP32-S2 环境搭建
全新安装 ESP-IDF 环境
目前(2020.08.06)乐鑫在 master 分支对 ESP32-S2 提供最新支持,因此必须使用
master 版本的 ESP-IDF。
请严格按照开发环境搭建-ESP32S2-Latest,按步骤完成环境搭建工作:
已搭建其它 IDF 环境,如何进行切换?
-
cd进入 IDF 根目录 -
使用
git log查看当前版本信息 -
使用
git fetch拉取分支信息 -
使用
git checkout master切换到master -
执行
install.sh安装master版本的工具链 -
执行
git submodule update --init --recursive更新子仓库
如果 Windows 中无法正常切换到
master,可以查看解决方案。
注意 Windows 中使用
.bat代替.sh,例如第5变为执行install.bat安装master版本的工具链。
2. 设置编译目标
使用 idf.py set-target esp32s2 将编译目标切换为 esp32s2(默认为 esp32),如果中途切换编译目标,请将 build 目录和 sdkconfig sdkconfig.old 删除,重新 set-target
ESP32-S2 编译错误与解决方案
1. 编译目标错误 This chip is ESP32-S2 not ESP32
如果忘记通过 idf.py set-target esp32s2 将编译目标切换为esp32s2,会默认编译为esp32版本的固件,下载时会出现以下错误,请将 build目录和 sdkconfig sdkconfig.old 删除,重新 set-target。

2. 未设置链接脚本 undefined reference to _param_stop
如果环境搭建之后未设置链接脚本,请参考ESP32/ESP32-S2链接脚本修改进行设置。

3. 编译优化报错 outside array bounds of TCB_t * volatile[1]
由于 ESP32-S2 为单核芯片,综合性能目前不如 ESP32,因此在项目配置sdkconfig.defaults 中默认开启了编译性能优化,该优化项打开后,会导致报错outside array bounds of TCB_t * volatile[1]

需要注意在 components/freertos/tasks.c 中函数taskYIELD_OTHER_CORE 第一行添加xCoreID = 0;

编译成 ESP32 固件
1. ESP32 环境搭建
全新安装 ESP-IDF 环境:请严格按照开发环境搭建-ESP32,按步骤完成环境搭建工作,ESP32 对 IDF 版本没有要求,可使用 master 也可使用4.0 及以上的 release 分支或4.0.1版本。
2. 设置编译目标
使用 idf.py set-target esp32 将编译目标切换为 esp32 (默认为 esp32)
如果中途切换编译目标,请将 build 目录和
sdkconfig sdkconfig.old删除,重新
set-target
ESP32 编译错误与解决方案
1. 未设置链接脚本 undefined reference to _param_stop
如果环境搭建之后未设置链接脚本,请参考ESP32/ESP32-S2链接脚本修改进行设置。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170575.html原文链接:https://javaforall.net
