ESP-IDF全称Espressif IoT Development Framework是乐鑫基于ESP32推出的新一代SDK,基于FreeRTOS系统,在上一代SDK基础上做了众多更新和改进,集合了众多组件。支持在Windows、Linux和MacOS下基于ESP-IDF开发。
ESP-IDF源码已托管在github上,可在https://github.com/espressif/esp-idf下载,
在命令行输入git clone --recursive https://github.com/espressif/esp-idf下载,注意git clone必须添加--recursive,否则无法拉取components目录下的全部模块。
下载完成后,我们可以看到ESP-IDF的目录结构如下:
l components:ESP-IDF的核心组件
l docs:ESP-IDF相关文档
l examples:ESP-IDF提供的示例程序,包括众多外设、Wi-Fi、蓝牙等demo
l make:EPS-IDF工程管理目录
l tools:ESP-IDF提供的工具集
ESP-IDF的example目录下提供了众多的示例程序,我们先编译“get-started”下的“hello_world”
如果直接在该目录下执行make,会提示出错
Makefile:8: /make/project.mk: No such file or directory
make: *** No rule to make target '/make/project.mk'. Stop.
这是因为Makefile里的变量IDF_PATH没有设置
这里有2种方法:
方法1:
在当前Demo工程内修改Makefile,添加IDF_PATH=/home/share/samba/espressif/esp-idf,输入的路径为ESP-IDF目录
这个方法,换个Demo工程就需要手工添加IDF_PATH变量,想要一次性搞定就使用方法2吧。
方法2:
修改/etc/profile文件,添加export IDF_PATH=/home/share/samba/espressif/esp-idf
并使用source /etc/profile使环境变量生效。
完成以上配置后,执行make命令,第一次执行make命令默认会进入configuration界面。我们可以使用默认设置直接退出。
make将继续执行编译直至完成。
本次编译总共生成了3个文件,分别为:
位于build/bootloader目录下的bootloader.bin
位于build目录下的partitions_singleapp.bin
位于build目录下的hello-world.bin
我使用的是乐鑫原厂出的基于ESP-WROOM-32模组做的ESP32_Core_borad_V2开发板,自带USB-TTL(CP2102),该开发板类似NodeMCU,可自动进入boot模式,下载程序极其方便。
本次测试没有使用在Ubuntu下下载代码,使用的是在Windows版串口下载程序“ESPFlashDownloadTool_v3.4.4.exe”
设置完成后,点击“START”后开始下载,进入boot模式后,“Download Panel”将显示各设备的MAC地址。
ESP32默认日志通过串口输出,串口波特率设置为:115200
复位开发板后,日志输出串口可看到Hello_world已经正常运行。
Demo程序还列出当前ESP32芯片相关信息:
1:当前demo运行于app cpu
2:当前ESP32芯片为双核
3:具有WIFI/BT/BEL功能
4:4MB外部FLASH