在树莓派 Pico 上运行 AWTK

ops/2024/12/24 11:25:21/

本文档只在 MacOS 上验证过,Ubuntu 请根据情况自行调整。

在这里插入图片描述

0. 安装环境

  • cmake
brew install cmake
  • openocd
brew install openocd
  • arm-none-eabi-gcc

用 brew 安装的版本会出现如下错误:

arm-none-eabi-gcc: fatal error: cannot read spec file 'nosys.specs': No such file or directory

用 arm 官方的版本没有问题。

cd ~/Downloads
wget https://developer.arm.com/-/media/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi.tar.xzcd /opt
sudo tar xf ~/Downloads/arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi.tar.xz
  • arm-none-eabi-gdb
brew install arm-none-eabi-gdb
  • minicom
brew install minicom

1. 下载源码

https://github.com/zlgopen/awtk-pico.git
  • 进入 awtk-pico 目录
cd awtk-pico
git clone https://github.com/raspberrypi/pico-sdk.git 3rd/pico-sdk
  • 下载 awtk
git clone https://github.com/zlgopen/awtk.git src/awtk

2. 编译

  • 编译 awtk
cd src/awtk
scons
cd -
  • 生成 demo 资源
cd src/demos/hello
python scripts/update_res.py all
cd -

请编辑 build_rp2040.sh,修改 PICO_TOOLCHAIN_PATH 为实际路径。

./build_rp2040.sh

3. 烧录

  • 方法 1

    按住按钮,插上电源。 会加载一个磁盘分区,把固件拷贝到该磁盘分区。完成后,会自动重启。

  • 方法 2

使用 openocd 烧录。

./upload.sh ./build_rp2040/src/demos/app.elf

4. 调试

请确认连接了 pico debug probe。

  • 启动 openocd
./start_debug.sh 
  • 启动 gdb
./debug.sh 

5. 硬件说明

测试所用显示屏的尺寸为 3.5 寸,分辨率为 480x320,微雪 出品,如果使用其它硬件, 代码需要做相应调整。

注意事项

  • 为了将字体和图片等资源数据编译到代码中,需要修改示例项目的 project.json 文件:
 "const": "all_data",

参考:src/demos/hello/project.json

7. 参考资源

  • https://www.raspberrypi.com/documentation/microcontrollers/debug-probe.html
  • https://blog.csdn.net/absurd/article/details/144340608
  • https://www.waveshare.net/wiki/Pico-ResTouch-LCD-3.5

http://www.ppmy.cn/ops/144557.html

相关文章

WPS工具栏灰色怎么办

WPS离线不登录,开启工具栏等相关功能 当你在使用WPS的过程中,若因网络问题或其他特殊原因,导致无法登录使用WPS时,可根据以下步骤开启离线兼容模式,开启此模式后,可在未登录的状态下,激活并使用…

CVE-2024-34351 漏洞复现

CVE-2024-34351&#xff0c;由Next.js异步函数createRedirectRenderResult导致的SSRF。 影响版本&#xff1a;13.4.0< Next.js < 14.1.1 参考文章&#xff1a; Next.js Server-Side Request Forgery in Server Actions CVE-2024-34351 GitHub Advisory Database Gi…

C#使用实体类Entity Framework Core操作mysql入门:从数据库反向生成模型2 处理连接字符串

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的&#xff0c;可以在任何平台上使用。 源码指引&#xff1a;github源…

医院药学的创新引擎:ChatGPT的应用与思考

《医院药学的创新引擎&#xff1a;ChatGPT的应用与思考》是北京友谊医院药剂科李新刚教授于近日发表的一篇综述文章&#xff0c;探讨了人工智能大语言模型ChatGPT在医院药学领域的应用前景和挑战。 文章主要论述了&#xff1a; ChatGPT在医院药学日常工作中的应用&#xff1a;…

Pytorch | 从零构建ParNet/Non-Deep Networks对CIFAR10进行分类

Pytorch | 从零构建ParNet/Non-Deep Networks对CIFAR10进行分类 CIFAR10数据集ParNet架构特点优势应用 ParNet结构代码详解结构代码代码详解SSEParNetBlock 类DownsamplingBlock 类FusionBlock 类ParNet 类 训练过程和测试结果代码汇总parnet.pytrain.pytest.py 前面文章我们构…

Jmeter对图片验证码的处理【超详细】

Jmeter对图片验证码的处理 在web端的登录接口经常会有图片验证码的输入&#xff0c;而且每次登录时图片验证码都是随机的&#xff1b;当通过jmeter做接口登录的时候要对图片验证码进行识别出图片中的字段&#xff0c;然后再登录接口中使用&#xff1b; 通过jmeter对图片验证码…

0101多级nginx代理websocket配置-nginx-web服务器

1. 前言 项目一些信息需要通过站内信主动推动给用户&#xff0c;使用websocket。web服务器选用nginx&#xff0c;但是域名是以前通过阿里云申请的&#xff0c;解析ip也是阿里云的服务器&#xff0c;甲方不希望更换域名。新的系统需要部署在内网服务器&#xff0c;简单拓扑图如…

C语言指针与数组深入剖析及优化示例 指针解读 数组与指针的关系

说明&#xff1a; 这是个人对该在Linux平台上的C语言学习网站笨办法学C上的每一个练习章节附加题的解析和回答 ex14&#xff1a; 重新编写这些函数&#xff0c;使它们的数量减少。比如&#xff0c;你真的需要can_print_it吗&#xff1f; if(isalpha(ch) || isblank(ch)) {p…