M5Stack开发板内部采用的是ESP32的芯片,所以如果要建立相应的开发环境,可以在ubuntu上搭建ESP32的开发环境。接下来,整理一下M5Stack如何在ubuntu上进行开发编译工作。
对于esp32的开发,需要依赖一些库。
sudo apt-get install git make gcc libncurses5-dev flex bison gperf python-serial
首先创建工程目录
mkdir esp32
接着创建工程子目录
mkdir crossTools demos sources
目录说明
crossTools:交叉编译环境
demos:例程
sources:SDK源代码
可以到官网上下载xtensa-esp32-elf-linux64-
交叉编译环境,也可以用wget在控制台上进行下载。
wget 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
这一步的作用是可进行全局编译
修改/etc/profile文件
sudo vim /etc/profile
末尾添加自己解压的交叉编译环境的目录
例如:
export PATH=$PATH:/home/bigmagic/work/esp32/crossTools/xtensa-esp32-elf/bin
其中/home/bigmagic/work/esp32/
是我自己电脑上的目录,可以根据自己实际需求修改
配置完成后source一下环境
source /etc/profile
检查一下是否成功
xtensa-esp32-elf-gcc -v
出来如下的画面,表示成功
由于采用的是乐鑫的工具链,所以需要下载SDK,首先下载esp-idf。
git clone --recursive https://github.com/espressif/esp-idf.git
同时设置环境变量
export IDF_PATH=/home/bigmagic/work/esp32/sources/esp-idf
注意,这里也是需要自己的工作目录,需要进行相应的修改。
最后更新一下环境
source /etc/profile
有了上述的交叉编译工具,并且有了相应的SDK,那么就可以编译工程了
在demo目录下添加工程文件hello_world,具体的目录在下面的文件中
/XXX/esp32/sources/esp-idf/examples/get-started/hello_world
将该文件夹全部转移到demo目录下
进入hello_world文件夹,直接make menuconfig
需要配置的地方主要有三点
(1)交叉编译工具
(2)设置bootload的打印级别
(3)配置烧写模式
配置完成后即可编译固件
make all -j8
编译完成后可进行烧录
make flash
可能会提示如下的错误
这是因为/dev/ttyUSB0访问权限不够造成
将该权限提高即可烧写
分析串口的烧写过程,实际上是有三个部分
0x1000 build/bootloader/bootloader.bin
0x10000 hello-world.bin
0x8000 partition_singleapp.bin
启动minicon即可看到
此时,表示系统启动并验证成功。
在ubuntu上使用ESP32的开发环境的好处是编译的很快,同时,烧写起来比较方便,但是编辑代码与下载调试不如windows。个人以为,在window上使用vscode+platform IO的开发编译环境更为方便。