ESP32-IDF linux开发环境搭建

第0步:选择手册

手册有很多版本,不同版本针对的开发环境有所不同。

https://www.wolai.com/auPiYHni2Rxov7T2iVKDnv#pMyuWskA6vYmaUwvAitwnY

例如,旧版本的开发环境可能是Ubuntu 16.04默认的Python开发工具还是2.x.x版本。而现实情况是pythn2基本已经被淘汰了,新版的手册对应的也是Python3,所以要选择新版手册,但是beta版不稳定,所以选择一个最新的release。

第一步:安装准备

按照手册进行,根据自己的系统选择合适的命令,这里使用适合Ubuntu的命令。

sudo apt-get install git wget flex bison gperf python3 python3-pip python3-setuptools cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0

Tips : 设置python版本

按照下面方式,设置 Python 3 为 默认 Python 版本,否则后面会出现找不到python模块的错误。

#安装python3

sudo apt-get install python3 python3-pip python3-setuptools

#设置 Python3 为默认 Python 版本

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10 && alias pip=pip3

第二步:获取 ESP-IDF 和 工具模块

使用GitHub仓库下载速度过于缓慢,使用国内的Gitee仓库可以上百倍的缩短获取仓库的时间,这里只按照Gitee仓库的方式说明。

https://www.wolai.com/auPiYHni2Rxov7T2iVKDnv#fvwBQNqu8Qkj7358cvwJqf

1,获取 esp-idf

创建 esp 路径,切换到 esp 路径,并把ESP-IDF 下载至 ~/esp/esp-idf

按照以下命令进行,

mkdir -p ~/esp

cd ~/esp

git clone -b release/v4.3 --recursive https://gitee.com/EspressifSystems/esp-idf.git

补充说明:

--recursive参数代表克隆包括子模块在内的所有仓库。

-b release/v4.3 参数代表克隆 release 分支的 4.3 版本分支。

git clone https://gitee.com/EspressifSystems/esp-idf.git 则可克隆master分支。

https://gitee.com/EspressifSystems/esp-idf.git 参数则代表克隆的仓库地址,如过想要使用GitHub仓库则更换为 https://github.com/espressif/esp-idf.git 即可

下图可见,使用 GitHub 仓库,龟速。

提示输入当前gitee仓库的登录用户名和密码的时候,直接 ctrl + c 停止跳过即可。

2,获取工具模块

关于tools获取,参考

把ESP-IDF 下载至 ~/esp/esp-gitee-tools

cd ~/esp

git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git

下载后的工具模块需要更新

submodule-update.sh 脚本支持将待更新 submodules 的工程路径作为参数传入,例如:submodule-update.sh PATH_OF_PROJ

假如 Step 2 中 clone 的 esp-idf 位于 ~/esp/esp-idf 目录,可使用以下方式来更新:

cd esp-gitee-tools

./submodule-update.sh ~/esp/esp-idf

Tips

  • 注意路径 esp-gitee-tools 和参数目录 ~/esp/esp-idf

  • 如果仓库中的 submodules 没有增加或减少,在使用过该脚本的工程内需要对仓库进行更新的情况下,无需一定要再次执行该脚本,可以使用标准的 git 命令,如 git pull && git submodule update --init --recursive 来更新,当然要再次使用该脚本也是没有问题的。

  • 如果要切换版本,由于不同版本包含的 submodules 可能不同,建议切换版本后再次执行该脚本。

  • 如果执行脚本过程中由于网络原因异常退出,可以重复执行该脚本。

第三步:设置工具

除了 ESP-IDF 本身,您还需要安装 ESP-IDF 使用的各种工具,比如编译器、调试器、Python 包等。

注意使用备选方案

按照备选方案安装从Espressif服务器下载安装,提高安装速度。

要在安装工具时优先选择 Espressif 下载服务器,请在运行 install.sh 时使用以下命令:

cd ~/esp/esp-idf

export IDF_GITHUB_ASSETS="dl.espressif.com/github_assets"

./install.sh

很幸运的安装成功咯,可以进入下一步设置环境变量了。

第四步:设置环境变量

安装的工具尚未添加至 PATH 环境变量,无法通过“命令窗口”使用这些工具。因此,必须设置一些环境变量,这可以通过 ESP-IDF 提供的另一个脚本完成。

在需要运行 ESP-IDF 的终端窗口运行以下命令:

. $HOME/esp/esp-idf/export.sh

注意,命令开始的 “.” 与路径之间应有一个空格!

运行过后,提示已经设置成功,可以编译工程了。

第五步:开始创建工程

设置环境变量成功后,可以开始准备开发 ESP32 应用程序了。

esp-idf 中 examples 目录下的 get-started/hello_world 为例。

将 get-started/hello_world 工程复制到本地的 ~/esp 目录下。也可以不复制出来,直接编译示例,但是不推荐,直接修改或编译会污染参考文件,为后续检查问题带来麻烦。

cd ~/esp

cp -r $IDF_PATH/examples/get-started/hello_world .

第六步:连接设备

将 ESP32 开发板连接到 PC,并查看开发板使用的串口。

通常,串口在不同操作系统下显示的名称有所不同:

  • Windows 操作系统: COM1 等

  • Linux 操作系统: 以 /dev/tty 开始

  • macOS 操作系统: 以 /dev/cu. 开始

有关如何查看串口名称的详细信息,请见 与 ESP32 创建串口连接

Tips

请记住串口名,您会在下面的步骤中用到。

选择连接到虚拟机

成功连接到 linux 虚拟机

使用 ls /dev/tty* 命令查看端口,因为这里只连接到虚拟机一个USB设备,所以最后一个 ttyUSB0 就是我们设备的端口

**Linux 添加用户到 **dialout

需要把当前用户添加到 dialout 用户组,用于通过 USB 对串口进行读写操作。可以通过以下命令,将用户添加到 dialout 组,从而获许读写权限:

sudo usermod -a -G dialout $USER

请重新登录,确保串口读写权限生效。

用以下命令查看当前用户的所属组

groups $USER

第七步:配置

请进入 第五步:开始创建工程 中提到的 hello_world 目录,并运行工程配置工具 menuconfig

cd ~/esp/hello_world

idf.py set-target esp32

idf.py menuconfig

运行 idf.py set-target esp32 成功后,结果如下:

运行 idf.py menuconfig 成功后,结果如下:

可以通过配置 Serial flasher config - - - > 调试时(即烧录完成后芯片对外通信的)的串口波特率,下图中默认波特率是115200 bps。

第八步:编译工程

请在工程目录下使用以下命令,编译烧录工程:

idf.py build

运行以上命令可以编译应用程序和所有 ESP-IDF 组件,接着生成 bootloader、分区表和应用程序二进制文件。如果一切正常,编译完成后将生成 .bin 文件。

运行成功结果如下:

~/esp/hello_world 目录下有生成的 .bin 文件。

第九步:烧录到设备

使用以下命令,将刚刚生成的二进制文件 (bootloader.bin, partition-table.bin 和 hello-world.bin) 烧录至您的 ESP32 开发板:

sudo chmod 777 PORT

idf.py -p PORT flash

请将 PORT 替换为 ESP32 开发板的串口名称,具体可见  第六步:连接设备。我这里是 /dev/ttyUSB0 因此需要用如下指令:

sudo chmod 777 /dev/ttyUSB0

idf.py -p /dev/ttyUSB0 flash

运行命令后,成功结果如下:

Tips

  • 添加 flash 选项将自动编译并烧录工程,因此无需再运行 idf.py build

  • 更多有关 idf.py 参数的详情,请见 idf.py

第十步:检查烧录结果

按照上一步的提示,硬复位设备。短按boot 按键

1,方式一,使用linux监听结果

使用 idf.py -p PORT monitor 命令,监视 “hello_world” 工程的运行情况。注意,不要忘记将 PORT 替换为相应的端口名称,我们这里是 /dev/ttyUSB0,因此运行下面命令。

idf.py -p /dev/ttyUSB0 monitor

运行成功结果如下:

如图所示,监听到端口收到 hellow world!数据

使用 ctrl + ] 组合键,停止监听端口数据。

2,方式二,使用Win串口调试助手监听结果

点击 虚拟机 - 可移动设备 - 对应的移动设备(这里是SiliconCP2102xxx) - 断开连接(连接主机) ,释放设备的端口给windows。

打开串口调试助手。选择对应的 串口号 ,配置对应的波特率,这里是 115200 然后点击打开串口,即可接受到 相应的串口数据了。

恭喜,完成了ESP32开发环境的快速搭建了。

【参考】

https://docs.espressif.com/projects/esp-idf/zh_CN/release-v4.3/esp32/get-started/index.html

https://gitee.com/EspressifSystems/esp-idf

https://gitee.com/EspressifSystems/esp-gitee-tools/blob/master/docs/README-submodule-update.md

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章