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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 动画:用动画给面试官解释 TCP 三次握手过程

    动画:用动画给面试官解释 TCP 三次握手过程作者|小鹿来源|公众号:小鹿动画学编程写在前边TCP三次握手过程对于面试是必考的一个,所以不但要掌握TCP整个握手的过程,其中有些小细节也更受到面试官的青睐。对于这部分掌握以及TCP的四次挥手,小鹿将会以动画的形式呈现给每个人,这样将复杂的知识简单化,理解起来也容易了很多,尤其对于一个初学者来说。学习导图一、TCP是什么?TCP(Transmissio…

    2022年6月17日
  • 正交投影矩阵举例_正交投影矩阵的性质

    正交投影矩阵举例_正交投影矩阵的性质来自:https://blog.csdn.net/tengweitw/article/details/41174555二维投影上图表示的是,向量b在向量a上的投影。显然有例如以下表达式:当中,P为投影矩阵,由P的表达式能够看出,它具有例如以下性质:三维投影    三维投影,就是将一个向量投影到一个平面上。同上面一样,如果是将b向量投影到平面上的p向量,则有表达式:…

    2022年9月27日
  • 初识Python和使用Python爬虫

    初识Python和使用Python爬虫一.python基础知识了解:1.特点:Python的语言特性:Python是一门具有强类型(即变量类型是强制要求的)、动态性、隐式类型(不需要做变量声明)、大小写敏感(var和VAR代表了不同

    2022年7月6日
  • mybatis拦截器执行顺序配置_java拦截器使用详解

    mybatis拦截器执行顺序配置_java拦截器使用详解最近项目用上了mybatis,但是想像hibernate那样能打印sql,于是写了个基于mybatis拦截器的sql打印,参考这个https://blog.22xcode.com/post/78然后,碰到了问题,拦截器会重复输出一句sql排查下,项目里跟mybatis有关的就只有pagehelper了,猜测可能是pagehelper为了分页再发了一条算总数count的sql,而打印sql的拦截器没有获取到count查询的完整sql,所以看上去发了两遍一样的sql网上找了下拦截器的资料,

    2022年9月6日
  • python运维和开发实战-高级篇

    python运维和开发实战-高级篇python运维和开发实战-高级篇python运维和开发实战-高级篇课程链接如下:通过如下链接地址购买课程可享受2.5折优惠哈,时间有限~????https://edu.51cto.co…

    2022年7月14日
  • Linux文件的压缩和解压命令tar

    Linux文件的压缩和解压命令tar压缩文件扩展名打包并压缩文件tar的参数语法:tar[参数]压缩包名一个或多被打包的文件功能作用压缩一个或多个文件-c必须,创建一个压缩包-v可选,显示压缩的详细信息-z压缩,如果没有则只是打包-f<压缩文件名>后面必须指定文件名操作演示:定位于root目录,将当前目录下的Hello.java和Hello….

    2022年5月17日

发表回复

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

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