第一步:下载必要的库文件
sudo apt-get install git make gcc libncurses5-dev flex bison gperf python-serial
![](https://img2018.cnblogs.com/blog/674969/201902/674969-20190212144147245-1637584962.png)
第二步:创建esp32专用目录
mkdir esp32
![](https://img2018.cnblogs.com/blog/674969/201902/674969-20190212144147794-8122668.png)
第三步:esp32文件夹中创建三个目录
mkdir crossTools demos sources
crossTools:交叉编译环境
demos:例程
sources:SDK源代码
![](https://img2018.cnblogs.com/blog/674969/201902/674969-20190212144148282-270675844.png)
第四步:下载交叉编译环境
https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-75-gbaf03c2-5.2.0.tar.gz
下载完成猴解压即可
tar -zxvf xtensa-esp32-elf-linux64-1.22.0-75-gbaf03c2-5.2.0.tar.gz
![](https://img2018.cnblogs.com/blog/674969/201902/674969-20190212144148702-124459421.png)
第五步:将编译环境添加到环境变量中
修改/etc/profile文件
sudo vim /etc/profile
在最末尾添加下面语句
export PATH=$PATH:/home/bigmagic/work/esp32/crossTools/xtensa-esp32-elf/bin
source一下源
source /etc/profile
查看是否配置成功
![](https://img2018.cnblogs.com/blog/674969/201902/674969-20190212144149472-139731966.png)
第六步:下载SDK代码
git clone --recursive https://github.com/espressif/esp-idf.git
设置环境变量
![](https://img2018.cnblogs.com/blog/674969/201902/674969-20190212144149946-477562347.png)
export IDF_PATH=/home/bigmagic/work/esp32/sources/esp-idf
更新源
source /etc/profile
第七步
编译与配置
在进行这一步时,我们的demos文件加中还没有文件,所以需要将文件进行转移
esp32/sources/esp-idf/examples/get-started/hello_world
全部转移的demos目录下
![](https://img2018.cnblogs.com/blog/674969/201902/674969-20190212144150366-34494724.png)
进入hello_world文件夹,直接make menuconfig
![](https://img2018.cnblogs.com/blog/674969/201902/674969-20190212144150981-19921503.png)
下面来介绍需要配置的地方
(1)交叉编译工具即Python环境
![](https://img2018.cnblogs.com/blog/674969/201902/674969-20190212144151402-469619473.png)
(2)配置bootload的打印级别为waring
![](https://img2018.cnblogs.com/blog/674969/201902/674969-20190212144151753-492586784.png)
(3)配置烧写模式
![](https://img2018.cnblogs.com/blog/674969/201902/674969-20190212144152305-725795695.png)
配置完成猴就可以编译固件了
make all -j8
编译完成
输入开始烧写
make flash
可能会提示如下的错误
![](https://img2018.cnblogs.com/blog/674969/201902/674969-20190212144153062-61463886.png)
这是因为/dev/ttyUSB0访问权限不够造成
将该权限提高即可烧写
![](https://img2018.cnblogs.com/blog/674969/201902/674969-20190212144153642-133919584.png)
分析串口的烧写过程,实际上是有三个部分
![](https://img2018.cnblogs.com/blog/674969/201902/674969-20190212144154108-2062997081.png)
![](https://img2018.cnblogs.com/blog/674969/201902/674969-20190212144154506-818767219.png)
0x1000 build/bootloader/bootloader.bin
0x10000 hello-world.bin
0x8000 partition_singleapp.bin
启动minicon即可看到
![](https://img2018.cnblogs.com/blog/674969/201902/674969-20190212144154968-1088624077.png)
此时表示烧录成功