ESP32开发(1):搭建Linux下的开发环境
此教程完全参考乐鑫官方网站:快速入门——ESP-IDF 主要针对和我一样第一次在Linux上开发的小伙伴。在此基础上加入自己的理解和躺过的一些坑。
你需要
1、一个ESP32开发板及一根MicroUSB线。
2、Linux操作系统:Ubuntu16.
安装所依赖的软件包
开发ESP32需要一系列软件支持。打开终端,输入下面的命令。
sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-pyparsing
安装交叉编译链
根据自己的Linux系统下载安装包,对Linux不熟的,可以在Windows中下载好,再移到Linux中解压。也可以直接在终端中用命令下载和解压。
64-bit Linux:https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
32-bit Linux:https://dl.espressif.com/dl/xtensa-esp32-elf-linux32-1.22.0-80-g6c4433a-5.2.0.tar.gz
我们使用终端命令来创建一个文件夹 ~/esp 用来安装交叉编译链。~指的是home目录。然后使用wget命令下载安装包。
mkdir -p ~/esp
cd ~/esp
wget https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz
下载完成后解压
tar -xzf ~/Downloads/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
因为编译ESP工程需要用到交叉编译链中的bin文件,我们将其路径添加到系统环境变量中。添加环境变量可以在好几个文件中添加,文件不同效果不同。我们将其添加在级别最高的/etc/profile中,使其对所有用户有效。
使用终端命令打开/etc/profile文件
sudo gedit /etc/profile
在文本最后加入
export PATH="$PATH:$HOME/esp/xtensa-esp32-elf/bin"
使用source命令使其立刻生效
source /etc/profile
安装esp-idf
esp-idf是乐鑫官方提供的开发框架,含有丰富的库/API,以及一些简单的例程。我们需要在其基础上做二次开发。
输入以下命令获取esp-idf
cd ~/esp
git clone --recursive https://github.com/espressif/esp-idf.git
同样的,需要将其路径添加到系统环境变量中。打开/etc/profile文件,在最后加上IDF_PATH的路径。
sudo gedit /etc/profile
加入下面这一行。
export IDF_PATH=/home/hanchen/esp/esp-adf/esp-idf
使用source命令使其立即生效。
source /etc/profile
可以使用以下命令,测试路径是否设置好。
printenv IDF_PATH
若能成功打印刚才设置好的路径,说明路径就设置好了。
安装依赖的python软件包
ESP-IDF 所依赖的 Python 软件包位于$IDF_PATH/requirements.txt 文件中,我们输入以下命令进行安装
python -m pip install --user -r $IDF_PATH/requirements.txt
测试例程
插上ESP32开发板,确认其在Linux中的串口名称,具体方法问百度。不过一般不用改,默认的就可以用。
进入~/esp/esp-idf/examples/get-started中,将hello_world文件夹复制到另外一个测试文件夹中,然后点击右键,选择在终端打开,输入make menuconfig。
如果开发环境搭建成功了,就会出现下面的菜单。
这个菜单是用来配置工程相关参数的,具体用法可以参考安信可配置ESP32 menuconfig 通过上下左右键来选择菜单,回车键选中修改。进入 Serial flasher config > Default serial port 配置串口。
填入之前查询到的USB设备名,回车确认,然后保存退出。
输入make flash monitor,开始编译下载及监视。make的具体用法如下,可以组合使用。
- make partition_table 查看分区
- make flash 编译并刷机
- make monitor 查看串口输出
- make app 只编译app模块
- make app-flash 只编译并烧写app模块
- make menuconfig 配置编译参数
- make all 编译所有
- make partition_table-flash 刷新分区表
- make erase_flash 擦除flash
如果下载成功,则会每隔10秒在终端打印一次hello world,至此,esp32开发的第一步就完成了。
同时按Ctrl+ ] 退出监视程序。