为了编译ESP32-Drone四旋翼无人机代码,试用了几种编译环境,折腾一个上午,最后使用ESP-idf-4.23一次性编译通过。记录一下过程。
1.获取ESP32-Drone四旋翼无人机项目源代码:
测试版本代码,目前放在 GitHub 仓库,可使用 git 工具获取:
git clone https://github.com/espressif/esp-drone.git
![在这里插入图片描述](https://img-blog.csdnimg.cn/7fb6b63a1c42440781c1d553ea773a67.png)
源码目录如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/188f4e095b27464c89083b0dc9ef66f0.png)
2.下载并安装esp-idf-4.23:
直接下载安装就好,软件地址在下面链接:
https://dl.espressif.cn/dl/esp-idf/?idf=4.4
![](https://img-blog.csdnimg.cn/7815f5994f8e434798f336d9d5535422.png)
安装完成后会生成两个控制台工具,任选一个使用。
![在这里插入图片描述](https://img-blog.csdnimg.cn/8e9ef22f65d540d5b0574ebaeba7552a.png)
3.ESP32/ESP32-S2 链接脚本修改:
根据官方编译手册提示,修改两处链接脚本。
打开 ESP32/ESP32-S2 的链接脚本模板
D:\Espressif\frameworks\esp-idf-v4.2.3\components\esp32\ld/esp32.project.ld.in
D:\Espressif\frameworks\esp-idf-v4.2.3\components\esp32s2\ld/esp32s2.project.ld.in
将以下代码添加到 .flash.rodata 段的末尾。
/* Parameters and log system data /
_param_start = .;
KEEP((.param))
KEEP((.param.))
_param_stop = .;
. = ALIGN(4);
_log_start = .;
KEEP((.log))
KEEP((.log.))
_log_stop = .;
. = ALIGN(4);
以上代码可以实现将具有 .param. 或 .log.* 段属性的变量,放置在连续的存储区域,从而加快变量遍历速度。
(备注,在Visual Studio Code下面安装的ESP-IDF环境下,我找不到这两个文件,只能放弃来,不知道哪位大神可以指示一下)
4.编译代码:
从ESP-IDF 4.2 CMD命令行窗口进入到源码目录,执行idf.py set-target esp32s2和idf.py build。
![在这里插入图片描述](https://img-blog.csdnimg.cn/465b6cb8e9b84a50800acdfebaaad9fc.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/671f5e32adb442c294f43c02e7b31a4b.png)
出现红框提示就是编译成功了。
![在这里插入图片描述](https://img-blog.csdnimg.cn/cefac03210794fd3a7b214ea6be67396.png)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)