ESP-Drone开源 Wi-Fi 无人机固件首次编译与错误排查

ESP-Drone开源 Wi-Fi 无人机固件首次编译与错误排查**ESP-Drone原名ESP-Plane***代码仓库:[esp-drone](https://github.com/espressif/esp-drone)*中文文档:[gettingstarted](https://docs.espressif.com/projects/espressif-esp-drone/zh_CN/latest/index.html)*展示视频:[安装与试飞](https://b23.tv/hnLq8Z)

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

文章更新版本 时间 备注 修订人
V0.1 2020.08.06 初始版本 bob

开源仓库地址

ESP-Drone 原名 ESP-Plane

在这里插入图片描述

编译成 ESP32-S2 固件

1. ESP32-S2 环境搭建

全新安装 ESP-IDF 环境

目前(2020.08.06)乐鑫在 master 分支对 ESP32-S2 提供最新支持,因此必须使用
master 版本的 ESP-IDF

请严格按照开发环境搭建-ESP32S2-Latest,按步骤完成环境搭建工作:

已搭建其它 IDF 环境,如何进行切换?

  1. cd 进入 IDF 根目录

  2. 使用 git log 查看当前版本信息

  3. 使用 git fetch 拉取分支信息

  4. 使用 git checkout master 切换到 master

  5. 执行 install.sh 安装 master 版本的工具链

  6. 执行 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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vim —- 自己主动的按钮indent该命令「建议收藏」

    vim —- 自己主动的按钮indent该命令

    2022年1月17日
    273
  • 因工作站与主要域间的信任关系失败而导致请求失败_此工作站和域控不信任

    因工作站与主要域间的信任关系失败而导致请求失败_此工作站和域控不信任在服务器的日志上,这个错误应该大家都不陌生了,错误的特征,我给大致描述一下:在域中总是会有计算机由于某种原因,导致计算机账户的密码无法和lsasecret同步系统会在计算机登陆到域的时候,提示已经丢失域的信任关系。日志大致如下:EventID:5SourceNETLOGONType  ErrorDescription  Thesessionsetupfromth…

    2022年10月18日
    5
  • 亿图图示mac版激活码 csdn(JetBrains全家桶)2022.01.24

    (亿图图示mac版激活码 csdn)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1TCF2R91JZ-eyJsaWNlbnNlSW…

    2022年3月31日
    270
  • ubuntu 硬盘安装图解

    ubuntu 硬盘安装图解br MaverickMeer 10 启用了全新的安装程序 使得整个安装过程不但焕然一新 对那些不太熟悉 Linux 环境的用户来说也更容易使用了 br 在安装过程中 用户可以下载软件更新 安装无线网卡官方驱动 并完成对 MP3 音频文件 AdobeFlashPl 播放器 Java DVD 播放的支持 br 下面说说在 WindowsXP 系统下硬盘安装 Ubuntu10 10 双系统的全程图解 安装很快 30 分钟不到就能安装好 br 1 首先下

    2025年11月8日
    2
  • Python标准库 (pickle包,cPickle包)

    Python标准库 (pickle包,cPickle包)在之前对Python对象的介绍中(面向对象的基本概念,面向对象的进一步拓展),我提到过Python“一切皆对象”的哲学,在Python中,无论是变量还是函数,都是一个对象。当Python运行时,对象存储在内存中,随时等待系统的调用。然而,内存里的数据会随着计算机关机和消失,如何将对象保存到文件,并储存在硬盘上呢? 计算机的内存中存储的是二进制的序列(当然,在Linux眼中,是文本流)。我们…

    2022年4月20日
    34
  • 5种常见的运行时异常_五种常见异常

    5种常见的运行时异常_五种常见异常五种常见的运行时异常空指针异常 NullPointerException数组越界异常 IndexOutOfBoundsException类转换异常 ClassCaseException向数组中存放与声明类型不兼容对象异常ArrayStoreException…

    2022年9月29日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号