当前位置: 首页 > article >正文

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"
/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的用法:
echo "Hello=World=cph=123" | cut -d= -f2

# 会打出World:D


http://www.kler.cn/news/355900.html

相关文章:

  • EF Core 中避免 SQL 注入的三种写法
  • 前端SSR框架(Next、Nuxt)利用宝塔面板部署
  • 文生图模型
  • 【Windows】DevOps PowerShell实现读取ini文件 生成登陆凭证 发送文件到远程服务器 远程服务器执行指令 实现fabric1的基础功能
  • 【论文阅读】Bi-Mamba+: Bidirectional Mamba for Time Series Forecasting
  • Flutter 与 React Native - 详细深入对比分析(2024 年)
  • 六万字77道Spring面试题总结(2024版)
  • WPF基础权限系统
  • C++内存对齐机制简介
  • 纯css 轮播图片,鼠标移入暂停 移除继续
  • C++初阶
  • 云服务解决方案,针对小程序、网页、HTML5等轻量化视频解决方案
  • (42)MATLAB中使用fftshift绘制以零为中心的功率谱
  • Python 网络编程:端口检测与IP解析
  • OBOO鸥柏自助服务终端:开启智慧城市便民新篇章
  • 【前端学习】AntV G6-09 复杂的自定义边、边动画
  • 模块化JS + OpenAI 手搓数据分析项目
  • 力扣 83.删除排序链表中的重复元素
  • Linux 系统上生成大文件的多种方法
  • mysql操作详解