ESP32 MacOS开发环境搭建

最近手痒痒,又重新入手了一块ESP32和一块ESP8266开发板,主要是这俩玩意真的是便宜好玩,还可以直接联网,本身只有一块橡皮大小,真的非常适合玩耍。另外ESP的软件资源也是比较丰富的,虽然CPU是一个不怎么主流的处理器,但是各种移植都有,什么LUA呀,micro-python呀,甚至JavaScript都可以在上面跑。不过从我之前玩这块开发板的经验来看,这些移植基本都是在玩一玩的层面上,真正想做开发,还是要在官方的SDK上才行。

官方SDK是基于FreeRTOS的,这个系统我一直也想玩一下,这次有机会刚好一举两得。板子到手之后,我们照例要跑一下Hello World!,所以我们就来看看怎么一步步的跑起这个Hello World!.

编译工具安装

其实乐鑫官方的文档还是非常详细的,本次实践完全按照官方教程实现,根据自己平常的使用习惯稍作修改,基本没有遇到太多问题。这里给出官方教程的地址

首先我们要根据自己的操作系统下载相应的编译工具,官方已经打包好了,建议直接为ESP创建一个目录,后续文件都放到这个目录里面。

mkdir esp
wget https://dl.espressif.com/dl/xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz
tar -zxf xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz
rm xtensa-esp32-elf-osx-1.22.0-80-g6c4433a-5.2.0.tar.gz
cd xtensa-esp32-elf

这样就下载好了ESP的编译工具,下载完成之后也不需要安装,只是需要将相应的bin目录放到path里面就可以了,我个人使用zsh,所以直接在.zshrc里面修改PATH变量就可以了

export ESP_PATH="/Users/major/work/esp32/xtensa-esp32-elf"
export PATH=$PATH:$MYAPPPATH/armgcc/bin:$MYAPPPATH/riscv32gcc/bin:$ESP_PATH/bin

之后新建终端或者source ~/.zshrc就可以使用相应的工具了。

SDK安装

官方SDK托管在Github上,可以直接Clone下载:

git clone -b v3.3 --recursive https://github.com/espressif/esp-idf.git
cd esp-idf

需要注意的是-b v3.3是检出3.3版本的SDK,这是一个稳定版的SDK,另外--recursive也是必不可少的,它可以让git直接检出SDK中的子目录,没有这些子目录,SDK是无法编译的。

Clone SDK之后,照例还是要设置一下SDK的环境变量,这样我们的用户代码就可以和SDK分离了,这个是一个比较好的设计,这样我们就不用一层一层的去找我们的用户代码了,@NXP你们能不能学习一下下呀!

环境变量主要是定义一个IDF_PATH的变量,我们还是在.zshrc里面进行定义。

export IDF_PATH="/Users/major/work/esp32/esp-idf"

好了,到这里,我们的SDK就安装完成了

Python脚本安装

ESP芯片的程序下载是通过串口实现的,SDK中为了和串口进行交互,使用了Python语言的一些脚本,另外还有其他一些和镜像生成,加密操作等等的脚本,为了使用这些脚本,我们需要安装Python和相应的库,python安装就不说了,9102年了,基本都会安装一个python吧。不过这里还是建议python3,毕竟python2只有一个月的寿命了。官方的脚本好像默认是python,这就和电脑的系统设置相关了,比如我的电脑python默认就是Python2,害的我每次都要手动改python3,这个后面研究一下能不能改成pyhthon默认是Python3的。总之我们用如下的脚本安装相应的库:

pip3 install -r esp-idf/requirements.txt

一点说明:如果之前安装过serial库,一定要把这个库卸载喽,否者会和pyserial之间产生冲突。

Hello World

安装过程终于结束了,终于可以开始跑Hello World了,官方SDK已经贴心的给出了Hello World的例子了,我们只需要把程序拷贝过来重新编译下载运行一下就可以了:

cp -r esp-idf/examples/get-started/hello_world .
cd hello_world
make menuconfig
make flash
make monitor

嗯,步骤比较简单,但是还是遇到了一些问题的。首先就是serial没有找到,这个是因为Python默认使用了系统中的python2.7导致的,需要在menuconfig中把Python换成Python3,另外串口的路径也需要在menuconfig中进行修改,macOS中串口的路径是/dev/cu.xxxxxx这样的,反正根据自己的需要修改一下就好了。

软件什么设置好了之后,连上开发板,运行make flash下载的时候,发现一直连不上去connection timeout,这个是因为我们的开发板不支持自动进入bootloader,需要在连接过程中手动长按boot按键,这样,终于可以正常运行程序了,oh-yeah!终于可以把开发板束之高阁了。

相关文章

发表新评论