MacOS 下 pico/pico2 学习笔记

news/2024/12/14 0:12:27/

1.安装开发工具

  • 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
sudo apt install minicom

picosdk_45">2. 安装 pico-sdk

mkdir -p ~/work/lab/pico
cd ~/work/lab/pico
git clone --recursive https://github.com/raspberrypi/pico-sdk.git
git clone --recursive https://github.com/raspberrypi/pico-examples.git

3.编译

build_rp2040.sh

cd pico-examples
rm -rf build_rp2040
mkdir -p build_rp2040
cd build_rp2040
export PICO_SDK_PATH="../../pico-sdk"
export PICO_TOOLCHAIN_PATH="/opt/arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi/bin"
cmake ../ -DPICO_PLATFORM="rp2040" -DPICO_BOARD="pico" -DCMAKE_BUILD_TYPE=Debug
make -j4 

build_rp2350.sh

cd pico-examples
rm -rf build_rp2350
mkdir -p build_rp2350
cd build_rp2350
export PICO_SDK_PATH="../../pico-sdk"
export PICO_TOOLCHAIN_PATH="/opt/arm-gnu-toolchain-13.3.rel1-darwin-arm64-arm-none-eabi/bin"
cmake ../ -DPICO_PLATFORM="rp2350" -DPICO_BOARD="pico2" -DCMAKE_BUILD_TYPE=Debug
make -j4 

4. 烧录

  • 方法1

    按住按钮,插上电源。 会加载分区 /Volumes/RP2350,把固件拷贝到 /Volumes/RP2350。完成后,会自动重启。

RP2350换成实际的设备名称。

  • 方法2

使用 openocd 烧录。

upload.sh

PROGRAM=$1if [ "$#" -eq 0 ]; thenecho "$0 program"echo "ex: $0 ./pico-examples/build_rp2040/blink/blink.elf"
else  sudo openocd -f interface/cmsis-dap.cfg -f target/rp2040.cfg -c "adapter speed 5000" -c "program $PROGRAM verify reset exit"
fi

5. 调试

  • 启动 openocd
sudo openocd -f interface/cmsis-dap.cfg -f target/rp2040.cfg -c "adapter speed 5000"
  • 启动 gdb
arm-none-eabi-gdb pico-examples/build_rp2040/blink/blink.elf
target remote localhost:3333
monitor reset init
continue

sleep_us/sleep_ms在调试时会挂起,需要修改rp2040.cfg,只是用一个核心。

文件位置(视不同版本而定):~/.pico-sdk/openocd/0.12.0+dev/scripts/target/rp2040.cfg

set _USE_CORE { 0 }

6. 串口调试

minicom -b 115200 -o -D /dev/tty.usbmodem1302

参考

  • https://www.raspberrypi.com/documentation/microcontrollers/debug-probe.html
  • https://www.hackster.io/whitney-knitter/raspbery-pi-pico-development-on-m2-mac-103609
  • https://www.waveshare.net/wiki/Pico-ResTouch-LCD-3.5
  • https://github.com/raspberrypi/pico-sdk/issues/1528

http://www.ppmy.cn/news/1554887.html

相关文章

运输层4——TCP格式(重点!)

目录 一、TCP报文段格式 二、最大报文长度 MSS 一、TCP报文段格式 长度:前20个字节固定 后4n个字节(报文段格式不固定) 1、源端和目的端:各2个字节 作用:指明TCP链接的发送 2、序号 4字节 作用&#xff1…

python脚本:向kafka数据库中插入测试数据

# coding:utf-8 import datetime import json import random import timefrom kafka import KafkaProducer生产者demo向branch-event主题中循环写入10条json数据注意事项:要写入json数据需加上value_serializer参数,如下代码producer KafkaProducer(val…

深入源码层面:在 Spring Boot 和 Spring MVC 项目中实现全面请求记录与异常处理的拦截器与监听器分析

在现代 Web 应用开发中,了解请求处理和异常管理的底层实现是提升应用稳定性与可维护性的关键。本文将从源码层面深入分析 Spring Boot 和 Spring MVC 中的拦截器(Interceptor)与监听器(Listener),探讨如何通…

mHand Pro动捕数据手套,赋予手部虚拟交互沉浸式极致体验

随着虚拟现实技术的不断发展,数据手套作为与虚拟世界交互的重要工具,在提升交互沉浸式体验感方面发挥着重要作用。而mHand Pro动捕数据手套的出现则为追求更加极致体验的游戏玩家,创意表达者与开发者提供了一个更高性价比选择,凭借…

“切片赋值”创建列表批量操作“新”方法(Python)

[start:end]切片赋值,扩展了list批量增减元素的操作能力。 (笔记模板由python脚本于2024年12月06日 15:07:56创建,本篇笔记适合研python基础的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网:https://www.python.org/ Free:…

孚盟云 MailAjax.ashx SQL注入漏洞复现

0x01 产品简介 上海孚盟软件有限公司是一家外贸SaaS服务提供商,也是专业的外贸行业解决方案专业提供商。 全新的孚盟云产品,让用户可以用云模式实现信息化管理,让用户的异地办公更加流畅,大大降低中小企业在信息化上成本,用最小的投入享受大型企业级别的信息化服务,主要…

vmware vsphere5---部署vCSA(VMware vCenter Server)附带第二阶段安装报错解决方案

声明 因为这份文档我是边做边写的,遇到问题重新装了好几次所以IP会很乱 ESXI主机为192.168.20.10 VCSA为192.168.20.7,后台为192.168.20.7:5480 后期请自行对应,后面的192.168.20.57请对应192.168.20.7,或根据自己的来 第一阶段…

【sgVideoDialog】自定义组件:基于video标签和el-dialog构建弹窗预览视频文件

sgVideoDialog源码 <template><div :class"$options.name" v-if"visible"><!-- 如果不加v-if"visible"弹窗中使用el-tabs组件就会死循环卡死&#xff0c;这个是elementUI的bug --><el-dialog:append-to-body"true&qu…