×

ESP32 Linux Raspberry Pi

ESP32开发 -- 试玩ESP32

Kalet Kalet 发表于2019-04-20 18:00:28 浏览221 评论0

抢沙发发表评论

前文要测试网络调试助手,手头正好有个ESP32一直没有试过。这次正好拿来试玩一下。


一、ESP32官网查看

官网:ESP32官网 

 

这款最小系统开发板搭载了乐鑫最新的系统级芯片 ESP32, 支持 Wi-Fi 和蓝牙功能,具有丰富的外设,能够让开发者尽情发挥想象力进行二次开发!


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

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


1、安装交叉编译工具链依赖的环境:

sudo apt-get install git make gcc libncurses5-dev flex bison gperf python-serial


2、创建ESP32专用的工作目录:

sudo mkdir /esp32


3、设置文件夹的归属为当前用户:

sudo chown user:user /esp32


4、创建三个文件夹:

crossTools、demos、sources分别保存交叉编译工具链、样例和SDK源码: 

cd /esp32 

mkdir crossTools demos sources


5、进入crossTools文件夹,下载官方的交叉编译工具:

注意,需要查看你的linux是32位还是64位的。 

在linux终端输入 getconf LONG_BIT 命令 

如果是32位机器,则结果为32 

[root@localhost ~]# getconf LONG_BIT 

32 

如果是64位机器,则结果为64 

[root@localhost ~]# getconf LONG_BIT 

64


Linux(x32):wget https://dl.espressif.com/dl/xtensa-esp32-elf-linux32-1.22.0-59.tar.gz 

Linux(x64):wget https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-59.tar.gz


6、 解压文件到当前目录下:

tar -xzvf xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz


三、修改环境变量

1、将解压后的交叉编译工具连添加到系统的PATH环境变量中

sudo vim /etc/profile


2、在最后面添加交叉编译工具链bin文件夹的目录

export PATH=$PATH:/esp32/crossTools/xtensa-esp32-elf/bin


3、然后更新一下profile文件,使之生效

source /etc/profile


4、检查是否安装成功

xtensa-esp32-elf-gcc -v 

如果看到有版本信息显示,说明已经安装成功


5、可以看到使用的gcc版本为4.8.5

针对的目标机器格式为xtensa-esp32-elf,支持编译的源文件有C和C++,支持的线程模式是单线程single,整套的交叉编译工具链是使用crosstool-NG工具制作,如果不怕折腾,用户也可以自己制作一个新的


$ xtensa-esp32-elf-gcc -vUsing built-in specs.COLLECT_GCC=xtensa-esp32-elf-gccCOLLECT_LTO_WRAPPER=/esp32/crossTools/xtensa-esp32-elf/bin/../libexec/gcc/xtensa-esp32-elf/4.8.5/lto-wrapperTarget: xtensa-esp32-elfConfigured with: /home/vagrant/crosstool-NG/.build/src/gcc-4.8.5/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=xtensa-esp32-elf --prefix=/home/vagrant/crosstool-NG/builds/xtensa-esp32-elf --with-local-prefix=/home/vagrant/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf/sysroot --with-sysroot=/home/vagrant/crosstool-NG/builds/xtensa-esp32-elf/xtensa-esp32-elf/sysroot --with-newlib --enable-threads=no --disable-shared --with-pkgversion='crosstool-NG crosstool-ng-1.22.0-59-g8d95cad' --disable-__cxa_atexit --enable-cxx-flags='-fno-exceptions -fno-rtti' --with-gmp=/home/vagrant/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-mpfr=/home/vagrant/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-mpc=/home/vagrant/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-isl=/home/vagrant/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-cloog=/home/vagrant/crosstool-NG/.build/xtensa-esp32-elf/buildtools --with-libelf=/home/vagrant/crosstool-NG/.build/xtensa-esp32-elf/buildtools --enable-lto --enable-target-optspace --without-long-double-128 --disable-libgomp --disable-libmudflap --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-nls --disable-multilib --enable-languages=c,c++Thread model: singlegcc version 4.8.5 (crosstool-NG crosstool-ng-1.22.0-59-g8d95cad)


四、从Github上获取ESP-IDF

可以直接通过gitclone的方式获取ESP-IDF: 

git clone –recursive https://github.com/espressif/esp-idf.git


ESP-IDF的目录结构如下: 

components:ESP-IDF的核心组件 

examples:ESP-IDF提供的实例程序 

make:ESP-IDF工程管理目录 

tools:ESP-IDF提供的工具集 

docs:ESP-IDF相关文档


将esp-idf拷贝到 /esp32/sources


1、将ESP-IDF目录下examples中的hello_world样例拷贝到我们之前新建的demo文件夹中

cp /esp32/sources/esp-idf/examples/get-started/hello_world/ /esp32/demos/ -rf


打开Makefile,发现里面需要一个IDF_PATH的变量 

在/etc/profile中添加这样一个环境变量: 

export IDF_PATH=/esp32/sources/esp-idf 

source /etc/profile


2、配置项目工程,在工程的根目录下使用make menuconfig

进入SDK tool configuration查看交叉编译工具链是否指定正确,已经python命令是否正确安装,ESP-IDF需要你的python属于python2的版本,最好不要实用python3

进入Bootloader config目录,配置bootloader的打印日志显示信息等级为warning

进入Secure boot configuration,开发阶段建议关闭secure boot功能

进入Serial flasher config,指定用于烧写程序的串口设备,一般使用USB转串口的选择/dev/ttyUSB0即可,设置默认的波特率为115200,Flash的SPI模式为DIO,SPI速率为40MHz,Flash的大小为2MB

进入Partition Table设置分区表,为了更好的管理SPI Flash,ESP-IDF引入了分区表的概念,默认使用Single factory app,no OTA制作分区BIN

Component config是对ESP-IDF的内核进行的更加详细的配置 



退出make menuconfig的配置界面,保存刚才的配置,将会在工程根目录下新生成一个build文件夹和sdkconfig文件


在工程根目录下输入make all将会编译所有的BIN文件,默认会编译bootloader、partition_table、app文件,并且还会提示如何进行烧写


转自:https://blog.csdn.net/qq_29350001/article/details/79491209 

群贤毕至

访客