MicroPython rp2-LVGL 固件编译记录

编译环境

  • 操作系统:MacBook Pro Sonoma 14.5
  • 配套环境:
    • Git 2.39.3
    • Brew 4.4.1
    • Cmake 3.30.5
    • Gcc-arm-embedded 13.3.1
    • 可能还有关联,只有以上几个是显性的需要用到

开始操作

  • 官方指导 找到Raspberry Pi Pico port,编译环境若得当应该很容易生成。

  • 我先后遇到如下问题:

    • 执行 make -C ports/rp2 BOARD=PICO submodules,什么错不报就结束,找到makefile(lv_micropython/ports/rp2下),做出如下修改:

      修改前

      First ensure that pico-sdk is initialised, then use cmake to pick everything

      else (including board-specific dependencies).

      submodules:
      (MAKE) -f ../../py/mkrules.mk GIT_SUBMODULES="lib/pico-sdk" submodules GIT_SUBMODULES=(cmake -B (BUILD)/submodules -DECHO_SUBMODULES=1 {CMAKE_ARGS} -S . 2>&1 | \ grep '^GIT_SUBMODULES=' | cut -d= -f2); \ (MAKE) -f ../../py/mkrules.mk GIT_SUBMODULES="$${GIT_SUBMODULES}" submodules

      修改后=============================

      First ensure that pico-sdk is initialised, then use cmake to pick everything

      else (including board-specific dependencies).

      submodules:
      (MAKE) -f ../../py/mkrules.mk GIT_SUBMODULES="lib/pico-sdk" submodules GIT_SUBMODULES=(cmake -B (BUILD)/submodules -DECHO_SUBMODULES=1 {CMAKE_ARGS} -S . 2>&1 ); \ (MAKE) -f ../../py/mkrules.mk GIT_SUBMODULES="$${GIT_SUBMODULES}" submodules

    • 再次执行报找不到"build-PICO"文件夹异常 ,随后直接在命令行执行CMARK命令,出现提示cmake版本过低,此时打开CMakeLists.txt文件,在文件第一行写着"cmake_minimum_required(VERSION 3.13)",使用brew重新安装cmake后,问题解决。还原文件,进入下一步。
    • 执行make -j -C ports/rp2 BOARD=PICO USER_C_MODULES=../../lib/lv_bindings/bindings.cmake,出现**"arm-none-eabi-gcc: fatal error: cannot read spec file 'nosys.specs'"**,卸载掉"brew uninstall arm-none-eabi-gcc"之后重新安装"brew install --cask gcc-arm-embedded"。
    • 再次执行,成功后,就可以看到build-PICO文件夹了,uf2就是最终生成的固件,如下图:

其他

  • brew的安装,可能会很慢,需要在/etc/hosts中加入"185.199.111.133 raw.githubusercontent.com",没安装的可以用以下命令安装:
bash 复制代码
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • 在使用brew下载时可能遇到提示brew权限的问题,去掉sudo即可,可能还会遇到做link的问题,需要授权 sudo chown -R $(whoami) /usr/local/bin
  • 捎带着回忆了一下cut的用法:
bash 复制代码
echo "Hello=World=cph=123" | cut -d= -f2

# 会打出World,对=是分隔符,f2是取第二个字符串:D
  • 反查固件版本号,可以编写脚本直接运行看
python 复制代码
import sys
 
# 打印MicroPython版本
print(sys.implementation)
print(sys.implementation.version)
print(sys.version)
相关推荐
Industio_触觉智能5 天前
RK3506 Buildroot系统目录地图-上|7个关键符号链接与构建产物全解析
嵌入式硬件·sdk·智能硬件·固件·瑞芯微·系统编译·rk3506
笨笨饿20 天前
#143_屏幕画撕裂的问题及解决方法
linux·stm32·单片机·嵌入式硬件·mcu·lvgl·嵌入式实时数据库
xbzb20 天前
服务器形态怎么选、BIOS 怎么进?从 1U 机架到固件启动项一次讲透
运维·服务器·bios·启动·固件·启动项
阿源-25 天前
从 INF、DSC、DEC 到 FDF:理解 EDK II 的 UEFI 编译与固件生成流程
嵌入式·uefi·edk2·固件
优信电子1 个月前
Raspberry Pi Pico 硬件开发 —— 第二课:MicroPython 从入门到项目实践(LED篇)
单片机·嵌入式硬件·树莓派·micropython·pico·入门教学
cmpxr_1 个月前
【MicroPython】如何刷新ESP8266的固件
开发语言·micropython
玖石书2 个月前
LVGL的windows开发环境安装指南
windows·数字人·lvgl·仿真
XLYcmy2 个月前
基于图神经网络的物联网固件漏洞静态挖掘技术方案 上
神经网络·物联网·网络安全·二进制·elf·漏洞检测·固件
mftang2 个月前
从部件整合到架构重构:LVGL 主要发行版本演进的系统性分析
lvgl
阿源-2 个月前
PCI 总线协议解析
嵌入式·x86·固件