大家好,又见面了,我是你们的朋友全栈君。
文章更新版本 | 时间 | 备注 | 修订人 |
---|---|---|---|
V0.1 | 2020.08.06 | 初始版本 | bob |
文章目录
-
- 开源仓库地址
- 编译成 ESP32-S2 固件
-
- 1. ESP32-S2 环境搭建
- 2. 设置编译目标
- ESP32-S2 编译错误与解决方案
-
- 1. 编译目标错误 This chip is ESP32-S2 not ESP32
- 2. 未设置链接脚本 undefined reference to `_param_stop`
- 3. 编译优化报错 outside array bounds of TCB_t * volatile[1]
- 编译成 ESP32 固件
-
- 1. ESP32 环境搭建
- 2. 设置编译目标
- ESP32 编译错误与解决方案
-
- 1. 未设置链接脚本 undefined reference to `_param_stop`
开源仓库地址
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.cn/170575.html原文链接:https://javaforall.cn