手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

Ubuntu系统下ESP32开发环境的搭建

时间:2024-10-28 16:19:26

1、官方采用的操作系统为Lubuntu16.04,实际上只要是ubuntun及其衍生版(比如Lubuntu和本经验采用的Ubuntu Mate)满足16.04的要求,开发环境的搭建过程中就不会因为交叉编译工具链而出一些稀奇百怪的错误1. 升级操作系统至最新稳定版:sudo apt-get upgrade2. 安装交叉编译工具链依赖的环境:sudo apt-get install git make gcc libncurses5-dev flex bison gperf python-serial

Ubuntu系统下ESP32开发环境的搭建

2、 创建ESP32专用的工作目录:sudo mkdir /esp322. 设置文件夹的归属为当前用户:sudo chown morris:morris /esp泌驾台佐323. 创建三个文件夹:crossTools、demos、sources分别保存交叉编译工具链、样例和SDK源码:mkdir crossTools demos sources4. 进入crossTools文件夹,下载官方的交叉编译工具:https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz5. 解压文件到当前目录下:tar -xzvfxtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz

Ubuntu系统下ESP32开发环境的搭建
Ubuntu系统下ESP32开发环境的搭建
Ubuntu系统下ESP32开发环境的搭建

3、将解压后的交叉编译工具连添加到系统的PATH环境变量中1. sudo vim /etc/profile2. 在最后面添加交叉编译工具链bin文件夹的目录export PATH=$PATH:/esp32/crossTools/xtensa-esp32-elf/bin3. 然后更新一下profile文件,使之生效source /etc/profile4. 检查是否安装成功xtensa-esp32-elf-gcc -v如果看到有版本信息显示,说明已经安装成功5. 可以看到使用的gcc版本为4.8.5,针对的目标机器格式为xtensa-esp32-elf,支持编译的源文件有C和C++,支持的线程模式是单线程single,整套的交叉编译工具链是使用crosstool-NG工具制作,如果不怕折腾,用户也可以自己制作一个新的

Ubuntu系统下ESP32开发环境的搭建
Ubuntu系统下ESP32开发环境的搭建

4、接下来可以下载ESP-IDF二次开发套建了,方法有两种1. 前往乐鑫官网下载最新版的ESP32-IDF开发条件(实质上就是SDK,换了个洋气点的名字而已),然后通过虚拟机的共享目录传送给虚拟机中的Linux系统,相对而言比较麻烦2. 既然ESP32-IDF已经开源托管在了github上,我们可以使用git clone命令进行下载git clone --recursive https://github.com/espressif/esp-idf.git

Ubuntu系统下ESP32开发环境的搭建
Ubuntu系统下ESP32开发环境的搭建

5、ESP-IDF的目录结构如下:components:ESP-IDF的核心组件examples:ESP-IDF提供的实例程序make:ESP-IDF工程管理目录tools:ESP-IDF提供的工具集docs:ESP-IDF相关文档

Ubuntu系统下ESP32开发环境的搭建

6、 将ESP-IDF目录下examples中的hello_world样例拷贝到我们之前新建的demo文件夹中cp -rf examples/01_hello_world/ ../../demos/2. 进入工程文件中,使用tree命令查看工程结构,可以看到整个工程主要有一个hello_world_main.c和一个Makefile,打开Makefile,发现里面需要一个IDF_PATH的变量,这个变量应当指向我们安装的ESP-IDF的实际位置,需要我们在编译的时候手动指名。另外一种一劳永逸的做法是在/etc/profile中添加这样一个环境变量export IDF_PATH=/esp32/sources/esp-idf

Ubuntu系统下ESP32开发环境的搭建
Ubuntu系统下ESP32开发环境的搭建
Ubuntu系统下ESP32开发环境的搭建
Ubuntu系统下ESP32开发环境的搭建

7、配置项目工程,在工程的根目录下使用make menuconfig1. 进入SDK tool 罕铞泱殳configuration查看交叉编译工具链是否指定正确,已经python命令是否正确安装,ESP-IDF需要你的python属于python2的版本,最好不要实用python32. 进入Bootloader config目录,配置bootloader的打印日志显示信息等级为warning3. 进入Secure boot configuration,开发阶段建议关闭secure boot功能4. 进入Serial flasher config,指定用于烧写程序的串口设备,一般使用USB转串口的选择/dev/ttyUSB0即可,设置默认的波特率为115200,Flash的SPI模式为DIO,SPI速率为40MHz,Flash的大小为2MB5. 进入Partition Table设置分区表,为了更好的管理SPI Flash,ESP-IDF引入了分区表的概念,默认使用Single factory app,no OTA制作分区BIN6. Component config是对ESP-IDF的内核进行的更加详细的配置

Ubuntu系统下ESP32开发环境的搭建
Ubuntu系统下ESP32开发环境的搭建
Ubuntu系统下ESP32开发环境的搭建
Ubuntu系统下ESP32开发环境的搭建
Ubuntu系统下ESP32开发环境的搭建
Ubuntu系统下ESP32开发环境的搭建

8、 退出make menuconfig的配置界面,保存刚才的配置,将会在工程根目录下新生成一个build文件夹和sdkconfig文件2. 在工程根目录下输入make all将会编译所有的BIN文件,默认会编译bootloader、partition_table、app文件,并且还会提示如何进行烧写

Ubuntu系统下ESP32开发环境的搭建
Ubuntu系统下ESP32开发环境的搭建
Ubuntu系统下ESP32开发环境的搭建

9、在烧写程序之前,需要给USB设备增加读写权限sudo usermod -a -G dialout $USER然后需要重启系统以生效sudo reboot

Ubuntu系统下ESP32开发环境的搭建

10、烧写所有BIN文件:首先长按Boot键,同时按Reset键,系统将会进入下载模式,然后make flash

Ubuntu系统下ESP32开发环境的搭建
Ubuntu系统下ESP32开发环境的搭建

11、按下Reset键,通过minicom串口终端查看打印输出信息,发现每隔10秒系统会重启,如何判断这是否是正常现象呢?我们查看当前工程的main函数可以看到,确实是这个功能

Ubuntu系统下ESP32开发环境的搭建
Ubuntu系统下ESP32开发环境的搭建
© 手抄报圈