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


相关推荐

  • 解决$.ajax()请求异常~ jQuery提示parsererror错误解决办法

    解决$.ajax()请求异常~ jQuery提示parsererror错误解决办法在前端通过ajax请求后台之后返回的时候,出现了下面的异常:error:function(req,textStatus,errorThrown){}req:textStatus:”parsererror”;errorThrown:undefined.而自己的ajax请求如下:type:’POST’,contentType:’application/j…

    2022年6月26日
    54
  • linux java 日志_linux 查看日志

    linux java 日志_linux 查看日志1、cat命令:功能:1)显示整个文件。示例:$catfileName2)把文件串连接后传到基本输出,如将几个文件合并为一个文件或输出到屏幕。示例:$catfile1file2>file说明:把档案串连接后传到基本输出(屏幕或加>fileName到另一个档案)cat参数详解:-n或–number由1开始对所有输出的行数编号-b或–number-no…

    2022年6月16日
    23
  • 计算机高配表要表格,为何高配电脑还会卡? 因为你没选择FreeSync套装

    计算机高配表要表格,为何高配电脑还会卡? 因为你没选择FreeSync套装可能有很多玩家在网络对战游戏中都遇到如此状况:电脑配置并不低,但游戏画面依然不够顺滑,不但经常卡顿,而且明明先瞄准敌人开枪,敌人没死而自己被秒掉。其实,这并不是因为玩家枪法太菜,问题在很大程度上出在玩家选择的显卡与显示器上。那到底玩家的显卡和显示器上到底有什么问题?让我们为大家分析一下吧。高配电脑可以提供高帧速,但并不一定无卡顿高配置的电脑当然能提供强劲的性能,在游戏中自然可以提供很高的帧速。但为…

    2022年6月1日
    36
  • haxm intel庐_如何开启Intel HAXM功能「建议收藏」

    haxm intel庐_如何开启Intel HAXM功能「建议收藏」1.启用BIOS中的Intel(R)VirtualizationTechnology选项2.设置成功后,在控制台中输入scqueryintelhaxm。出现下图即为成功3.启动androidSDK,在Extras目录的最下边,勾选IntelHAXM项,并下载4.下载完成后,打开目录:Sdk\extras\intel\Hardware_Accelerated_Execution_…

    2022年6月28日
    27
  • django_session表_django queryset合并

    django_session表_django queryset合并前言session:session和cookie的作用有点类似,都是为了存储用户相关的信息。不同的是,cookie是存储在本地浏览器,session是一个思路、一个概念、一个服务器存储授权信息的解

    2022年7月30日
    6
  • 文本挖掘实例[通俗易懂]

    文本挖掘实例[通俗易懂]文本挖掘junjun2016年2月4日文本分析的应用越来越广泛,今天就讲讲关于评论数据的那点事。评论数据的获取:一般通过网络爬虫的方式抓取各大网站的评论数据,本次分析数据就来源于携程网某酒店的评论,成功爬取该酒店的评论数据,于是我开始使用这些数据做相关的分析。(注意:数据分析、挖掘时,这部分工作可以有专门的人员来完成)1、加载数据和包#1)本文使

    2022年6月26日
    30

发表回复

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

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