为了编译ESP32-Drone四旋翼无人机代码,试用了几种编译环境,折腾一个上午,最后使用ESP-idf-4.23一次性编译通过。记录一下过程。
1.获取ESP32-Drone四旋翼无人机项目源代码:
测试版本代码,目前放在 GitHub 仓库,可使用 git 工具获取:
git clone https://github.com/espressif/esp-drone.git
源码目录如下:
2.下载并安装esp-idf-4.23:
直接下载安装就好,软件地址在下面链接:
https://dl.espressif.cn/dl/esp-idf/?idf=4.4
安装完成后会生成两个控制台工具,任选一个使用。
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。
出现红框提示就是编译成功了。