ESP32开发(1):搭建Linux下的开发环境
此教程完全参考乐鑫官方网站: 主要针对和我一样第一次在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: 32-bit Linux: 我们使用终端命令来创建一个文件夹 ~/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 ~/esp/xtensa-esp32-elf-linux64-1.22.0-80-g6c4433a-5.2.0.tar.gz
因为编译ESP工程需要用到交叉编译链中的bin文件,我们将其路径添加到系统环境变量中。添加环境变量可以在好几个文件中添加,文件不同效果不同。我们将其添加在当前用户的.profile中,使其只对当前用户有效。使用gedit命令打开.profile文件.
gedit .profile
在文本最后加入
export PATH="$PATH:$HOME/esp/xtensa-esp32-elf/bin"
安装esp-idf
esp-idf是乐鑫官方提供的开发框架,含有丰富的库/API,以及一些简单的例程。我们需要在其基础上做二次开发。 输入以下命令获取esp-idf
cd ~/esp git clone --recursive https://github.com/espressif/esp-idf.git
同样的,需要将其路径添加到系统环境变量中。打开.profile文件,在最后加上IDF_PATH的路径。
gedit .profile
加入下面这一行
export IDF_PATH=/home/hanchen/esp/esp-idf
为了让我们新设置的这两条环境变量生效,我们需要重新登录一下。 然后使用以下命令,查看是否设置成功。
printenv PATH IDF_PATH
如果能正确显示我们刚才设置的路径,那就说明没问题了。
安装依赖的python软件包
ESP-IDF 所依赖的 Python 软件包位于$IDF_PATH/requirements.txt 文件中,我们输入以下命令进行安装。
python -m pip install --user -r $IDF_PATH/requirements.txt
测试例程
插上ESP32开发板,确认其在Linux中的串口名称,具体方法问百度。不过一般不用改,默认的就可以用。因为我们使用的是普通用户,所以对串口设备没有操作权限,我们需要用以下命令将当前用户添加到dialout组,才能通过USB读写串口。
sudo usermod -a -G dialout $USER
更改完后,重新登录一下,以确保串口设备的读写权限被启用。 进入~/esp/esp-idf/examples/get-started中,将hello_world文件夹复制到另外一个测试文件夹中,然后点击右键,选择在终端打开,输入make 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+ ] 退出监视程序。