修改 ESP-IDF 依赖的 Python 版本
Ubuntu 系统一般默认 Python2,新版 ESP-IDF (4.0+)默认Python3,官方建议进行默认修改,参考:Setting up the Python Interpreter
当然,也可以在使用时直接指定,例如
python3 idf.py build
从 make 迁移到 cmake
Migrating from ESP-IDF GNU Make System
使用迁移工具,可以实现:
- 自动将项目
Makefile
转为CMakeLists.txt
- 自动将组件
component.mk
转为
CMakeLists.txt
如下:
$IDF_PATH/tools/cmake/convert_to_cmake.py /path/to/project_dir
转换后需要手动添加依赖(
REQUIRES
或PRIV_REQUIRES
)才能通过编译
多个 ESP-IDF 版本共存
IDF_PATH
一般设置到系统环境中,也可通过项目顶级CMakeLists.txt
中的project.cmake
推断。
后者的优点是,可以在项目中指定 ESP-IDF
路径。
cmake_minimum_required(VERSION 3.5)
include(${绝对路径}/tools/cmake/project.cmake)
project(myProject)
参考:编译过程,初始化阶段
兼容 ESP32-S2
- 使用
sdkconfig.defaults.TARGET_NAME
依据编译目标设置 sdkconfig 默认值:Target-dependent sdkconfig defaults - 在
Kconfig
中设置条件式默认值,参考:ESP-IDF Kconfig 编写备忘录
多源文件项目
如果源文件较多难以维护SRCS
列表,可以使用SRC_DIRS
结合EXCLUDE_SRCS
的方法添加整个文件夹的源文件,缺点是文件夹新增源文件,编译系统不能自动添加,需要运行idf.py reconfigure
触发cmake重新运行。
ESP-IDF自带组件使用了 Git 版本控制工具,对自身源文件进行管理。详见:File Globbing & Incremental Builds