为树莓派PICO编译MicroPython固件

MicroPython官网有已经编译好的固件,但是出于各种原因(添加第三方库文件、Flash大小不匹配等)我们有时候要自己进行编译。长时间不编译MicroPython,有时候就忘记怎么搞了,所以写一篇报告记录一下编译流程。

目标

16MByte(128Mbits/8bit)的flash提供支持,加入第三方库ulab(类似于Numpy和scipy的micropython库)

编译环境

Windows11下的wsl2的ubuntu22.04版本

micropython1.19.1版本

ulab5.1.1版本

教程

  1. 获取micropython和ulab的源码

git clone https://github.com/v923z/micropython-ulab ulab
git clone https://github.com/micropython/micropython.git
cd micropython
git submodule update --init lib/tinyusb
git submodule update --init lib/pico-sdk
cd lib/pico-sdk
git submodule update --init lib/tinyusb

提示,有时候国内网络抽风连接不上github,从其它镜像站下载的micropython源码在进行git submodule update时可能会现网络错误,可以编辑工程内./.gitmodules文件,将submodule的地址url改为国内可以连接的网站即可,可以再gitee或其他网站上寻找版本一致的工程替换。注意,在micropython和micropython/lib/pico-sdk下均有一份.gitmodules文件。

  1. 更改micropython中关于PICO的flash定义

  • 第一处文件是micropython/ports/rp2/rp2_flash.c,将其中的MICROPY_HW_FLASH_STORAGE_BYTES修改为你用来存储自己写的.py .txt等文件的大小

cd ../../ports/rp2/
vim rp2_flash.c

将下面的1408 * 1024修改为 15*1024*1024

  • 第二处文件是micropython/ports/rp2/boards/PICO/mpconfigboard.h,将其中的MICROPY_HW_FLASH_STORAGE_BYTES修改为和上一个一样的值

vim boards/PICO/mpconfigboard.h

将下面的1408 * 1024修改为 15*1024*1024

  • 第三处文件是micropython\lib\pico-sdk\src\boards\include\boards\pico.h中的PICO_FLASH_SIZE_BYTES,这是真实的flash大小

cd ../../lib/pico-sdk/src/boards/include/boards/
vim pico.h

将下面的2 * 1024 * 1024修改为16 * 1024 * 1024

  1. 编译

  • 编译mpy-cross工具链

cd ../../../../../../mpy-cross/
make
  • 编译固件

cd ../ports/rp2/
make BOARD=PICO submodules
make USER_C_MODULES=../../../ulab/code/micropython.cmake

输出的uf2文件放在micropython/ports/rp2/build-PICO/firmware.uf2

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值