Ubuntu18.04:搭建ESP32 MicroPython编译环境

开发环境

硬件:ESP32 开发板
软件:阿里云ECS Ubuntu 18.04虚拟机

步骤

1.修改linux指向的python解释器为3.6

sudo rm /usr/bin/python  #删除旧的链接
sudo ln -s /usr/bin/ptyhon3.x /usr/bin/python   #这里默认你已经安装了3.x版的python

2.安装交叉编译工具链所依赖的环境

sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-pip python-setuptools python-serial python-cryptography python-future python-pyparsing python-pyelftools

3.创建工作目录级设置编译链

1.创建工作目录

mkdir ~/esp
cd ~/esp

2.在官网上下载最新的交叉编译链

wget https://dl.espressif.com/dl/xtensa-esp32-elf-linux64-1.22.0-61-gab8375a-5.2.0.tar.gz (64位)
wget https://dl.espressif.com/dl/xtensa-esp32-elf-linux32-1.22.0-61-gab8375a-5.2.0.tar.gz (32位) 

3.解压交叉编译链

tar -xzf ~/Downloads/xtensa-esp32-elf-gcc8_2_0-esp32-2019r1-linux-amd64.tar.gz  #(64位)
tar -xzf ~/Downloads/xtensa-esp32-elf-gcc8_2_0-esp32-2019r1-linux-i686.tar.gz  #(32位) 

4.设置环境变量

1.打开 vi ~/.profile
2.在最后一行输入 export PATH="$HOME/esp/xtensa-esp32-elf/bin:$PATH" 退出保存
3.使其生效 source ~/.profile

4.获取并安装esp-idf开发套件

1.从github上下载esp-idf

cd ~/esp
git clone --recursive https://github.com/espressif/esp-idf.git #克隆仓库时,请务必添加--recursive选项,否则将需要单独克隆子模块

2.为esp-idf设置环境变量

1.打开 vi ~/.profile
2.在最后一行输入 export IDF_PATH=~/esp/esp-idf 退出保存
3.使其生效 source ~/.profile

3.安装 Python 软件包

python -m pip install --user -r $IDF_PATH/requirements.txt #请提前更新pip,否则将有可能报错

5.获取micropython并为ESP32配置环境

1.从github上下载micropython源码

cd ~/esp
git clone -b master https://github.com/micropython/micropython.git

2.配置ESP-IDF

cd ~/esp/micropython/ports/esp32
vi Makefile
在Makefile中找到ESPIDF_SUPHASH := cc93e14770e7b3681ebc80b30336e498cc96e961 #每个版本不同
复制该字符串
进入esp-idf 目录 
cd ~/esp/esp-idf
切换到该分支对应的esp-idf
git checkout cc93e14770e7b3681ebc80b30336e498cc96e961 #checkout 后面是你下载的版本的hash
git submodule update --init --recursive #更新子模块

6.编译固件

cd ~/esp/micropython/
make -C mpy-cross #编译micropython交叉编译器
cd ports/esp32
git submodule init lib/berkeley-db-1.xx
git submodule update --init --recursive
make #编译ESP32固件

编译好的固件包存放在 ~/esp/micropython/ports/esp32/build下,名字是 firmware.bin
它与micropython官方提供的固件包的刷入方式是相同的,可以用esptool刷入也可以用第三方gui刷入。
这里特别提醒:使用uPyCraft刷入固件时,刷入地址不要用默认的0x0,改成0x1000

后记

python在开发的时候太好用了,然而micropython官方给的固件限制的太死板了,有些功能实在是不太灵活,只能自己修改,mp的更新速度极快,网上的资料根本跟不上节奏,断层还是比较严重的。这也是我写这篇教程的动力,做了一些微小的贡献。

另外,micropython官方的资料里提到,我们需要自建一个 makefile 文件,然而一建就出错,所以本篇内删去了这方面的内容。

这篇教程对于VMware下的Ubuntu18.04也是有效的,奈何本地的网络实在不如阿里的网络稳定,所以建议在云服务器上搭建环境,搭建完后取回固件即可。

参考资料

micropython官方: https://github.com/micropython/micropython/tree/master/ports/esp32
乐鑫官方: https://docs.espressif.com/projects/esp-idf/en/latest/get-started/index.html

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值