在Eclipse中开发ESP32项目,编译并上传固件
最近对ESP32的开发产生兴趣,所以做一些记录。
1. 下载交叉编译工具链,将bin目录配置到PATH中
export PATH=$HOME/esp/xtensa-esp32-elf/bin:$PATH
2. 下载ESP-IDF(GitHub)
git clone --recursive https://github.com/espressif/esp-idf.git
3. 打开Eclipse
File->Import->Existing Code as Makefile Project
4. 在Existing Code Location中选择你的项目目录,比如examples中的blink示例
Toolchain for Indexer Settings选择Cross GCC
5. 点完成后,对项目名点击右键 ->属性(Properties)->C/C++ Build->Environment
点击Add...添加环境变量:
Name: BATCH_BUILD, Value: 1
Name: IDF_PATH, Value:${IDF_PATH}
6. 左面导航栏切换到 C/C++ General->Preprocessor Include Paths
点击窗口中的Providers标签
7. 设置CDT Cross GCC Built-in Compiler Settings中的
Command to get compiler specs:
xtensa-esp32-elf-gcc ${FLAGS} -E -P -v -dD "${INPUTS}"
8. 设置 CDT GCC Build Output Parser中的
Conpiler command pattern:
xtensa-esp32-elf-(g?cc)|([gc]\+\+)|(clang)
9. 点击Apply后,基本就可以编译了。不过会出错,官方文档要求在终端中做一次make menuconfig(如果你编译过linux内核,会感觉好熟悉)
然后编译就不会出错了
10. 上传固件(bin文件)到esp32开发板,对项目名点击右键 Build Targets->Create...
Target name: flash
然后确定,当你编译的时候就能上传固件了。
11. 上传固件是也可能会出错。其中之一就是访问/dev/tty*没有权限,官方有说明,可以将用户添加到dialout用户组中
sudo usermod -a -G dialout $USER
系统环境为Ubuntu16.04