小白也能快速学会的Micropython编译指南

小白也能快速学会的Micropython编译指南

大家好,我是CSDN上的 上坂龍二 哦,今天给大家带来的是:如何快速一次成功地将Micropython和自己喜欢的模块编译进自己的Esp32固件中哦~

事前准备

Python

python的环境都可以,由于需要pip,推荐使用python3,pip模块更好用一些

Windows下访问https://www.python.org/下载安装python

Ubuntu下 apt install python3 python3-pip

MacOS下 curl https://bootstrap.pypa.io/get-pip.py | python3

make

Windows下需要单独安装,Linux和MacOS应该都是自带这玩意儿的

Windows下访问http://gnuwin32.sourceforge.net/packages/make.htm

下载Complete package, except sources版本的Setup

安装后手动将安装目录加入PATH就可以正常在powershell里面使用make了

Git

同上Windows下需要单独安装,Linux和MacOS应该都是自带这玩意儿的

Windows下访问https://gitforwindows.org/下载安装git,开启命令行支持更方便

第一步 - 克隆并配置ESP-IDF及工具链

1、准备好一个纯英文的专用路径,并且在你的终端中打开它

例如:

/Users/username/esp

/home/username/esp

D:\Workspace\esp

这样的路径,完全不要出现特殊字符和中文哦(如果不知道特殊符号如何界定的话,就只用英文吧)

在下文中,我们会将这个路径以 %ESP_ROOT% 来代替哦

在这一步准备好后,我们将在后续步骤中默认在终端窗口中已经进入了%ESP_ROOT%路径了

2、使用git来将esp-idf克隆进%ESP_ROOT%目录下

在这里,我们直接运行

git clone https://github.com/espressif/esp-idf.git

如果网络不是很好的话,需要挂上梯子,或者多尝试几遍、耐心等待一下

克隆下来后,将esp-idf设置为IDF_PATH

Linux及MacOS下应该在对应的shell配置文件中加入

export IDF_PATH=%ESP_ROOT%/esp-idf

Windows直接打开高级系统设置来配置路径和变量

3、访问网站,下载并将工具链加入PATH中

接下来,从 MacOS点这里 Linux点这里 Windows点这里 获取到相关的toolchain

将下载到的压缩文件解压到%ESP_ROOT%下并且将工具链中的bin文件夹加入到PATH中

Linux及MacOS下应该在对应的shell配置文件中加入

export PATH= P A T H : PATH: PATH:HOME/esp/xtensa-esp32-elf/bin

Windows直接打开高级系统设置来配置路径和变量

第二步 - 克隆并配置Micropython

1、克隆micropython项目到本地

回到%ESP_ROOT%路径下,使用git克隆micropython

git clone https://github.com/micropython/micropython.git

在确认无错误克隆下项目后,进入%ESP_ROOT%/micropython目录下,使用

git submodule update --init --recursive

来将依赖全部更新好,同样的,如果中间出现failed或者错误的话,要重复运行这个指令直到运行后什么都不提示为止哦

2、为项目选定ESP-IDF版本

打开%ESP_ROOT%/micropython/ports/esp32/Makefile,里面有个部分像这样写着

# The git hash of the currently supported ESP IDF version.
# These correspond to v3.3.2 and v4.0.1.
ESPIDF_SUPHASH_V3 := 9e70825d1e1cbf7988cf36981774300066580ea7
ESPIDF_SUPHASH_V4 := 4c81978a3e2220674a432a588292a4c860eef27b

这里指明了需要的esp-idf的版本和对应的checkout分支哦,因为3.3.2对于网络功能的支持更全一些,所以这里选择用v3的版本(记住你自己的makefile文件中记载的分支代码,因为需要制作的micropython版本不同,我这里的可能和你需要的不一样),所以我将这里的9e70825d1e1cbf7988cf36981774300066580ea7简称为 %ESP_IDF_V3_CHECKOUT%

然后回到%ESP_ROOT%/esp-idf文件夹下,执行

git checkout %ESP_IDF_V3_CHECKOUT%

git submodule update --init – recursive

将esp-idf指定版本后,更新所有的依赖,方便后续编译

3、创建虚拟的python环境

进入%ESP_ROOT%/micropython/ports/esp32目录下,依次执行

python3 -m venv build-venv

source build-venv/bin/activate

pip install --upgrade pip

pip install -r %ESP_ROOT%/esp-idf/requirements.txt

4、完成make前最后一步配置

进入%ESP_ROOT%/micropython/mpy-cross目录下,执行

make mpy-cross

进入%ESP_ROOT%/micropython/ports/esp32目录下,执行

make submodules

第三步 - 更改并编译你的固件

到这里,我们已经可以直接使用make来编译制作我们的固件了~

但是,既然都自己编译了,那么肯定有一些东西是我们希望能够添加到固件中的不是吗?

那么我们只需要知道以下几点哦

1、ntptime.py在esp8266目录下,可以修改一下让授时自动加上时区方便观看

2、添加自己写的py文件在modules文件夹中,可以将对应的模块编译到固件中哦

3、添加C语言编写的模块时,在%ESP_ROOT%下新建一个c_modules目录,将需要的模块放进去,然后在编译的时候加上USER_C_MODULES=%ESP_ROOT%/c_modules/ all参数即可

4、可以自己编写一个makefile,按照实际情况更改下面的内容即可

ESPIDF ?=

BOARD ?= GENERIC

# PORT ?= /dev/ttyUSB0

# FLASH_MODE ?= qio

# FLASH_SIZE ?= 4MB

# CROSS_COMPILE ?= xtensa-esp32-elf-

# USER_C_MODULES=%ESP_ROOT%/c_modules/ all

include Makefile

最后,使用make命令,即可完成对于你的专属固件的编译哦

后记

写的时候姑且还是蛮开心的,希望大家看的时候也能够一样开心吧

git操作的时候千万不要发脾气哦~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值