树莓派(Raspberry Pi)Pico 2 C_C++开发环境配置(Docker+SDK)

树莓派(Raspberry Pi)Pico 2 C_C++开发环境配置(Docker+SDK)

  • 开发环境
  • 容器系统环境配置
  • 配置 Raspberry Pi Pico 2 C/C++ 开发环境
  • 编译构建 Blink 示例程序
    • 下载 pico-sdk 和 pico-examples
    • 构建 Blink
  • 链接

文章介绍了在容器中配置Raspberry Pi Pico 2 C/C++ 开发环境的方法。

开发环境

  • 宿主机操作系统:Manjaro Linux
  • 宿主机架构:x86_64
  • Docker版本:27.2.1
  • 基础镜像:archlinux

容器系统环境配置

参照《Docker中创建latex和sphinx文档环境》博文,配置archlinux基础镜像版本1.0。进入arlinux容器后大致步骤如下:

  1. 修改国内 pacman 安装源。
  2. 创建普通用户并设置用户 sudo 使用权限。
  3. 安装 bash 程序 zsh,设置 oh-my-zsh 配置,并设为用户默认bash。

退出容器后,提交容器到 archlinuxbase:1.0 镜像,删除容器,后续步骤重新启动。

配置 Raspberry Pi Pico 2 C/C++ 开发环境

启动容器:修改容器启动参数,以普通用户登陆,启动默认bash 为 zsh

docker run -it --name Pico2 -u qicz -v ~/Workspace:/home/qicz/Workspace  archlinuxbase:1.0 /bin/zsh

更新系统和包

sudo pacman -Syyu

在容器中安装依赖包

sudo pacman -S python cmake gcc make arm-none-eabi-gcc arm-none-eabi-newlib

安装picotool

#先安装yay
sudo pacman -S base-devel
git clone https://aur.archlinux.org/yay.git
cd yay
makepkg -si
#安装picotool
yay -S picotool

编译构建 Blink 示例程序

进入容器

下载 pico-sdk 和 pico-examples

git clone https://github.com/raspberrypi/pico-sdk.git --branch master
cd pico-sdk
git submodule update --init
cd ..
git clone https://github.com/raspberrypi/pico-examples.git --branch master

构建 Blink

创建构建目录

cd pico-examples
mkdir build
cd build

设置环境变量

export PICO_SDK_PATH=../../pico-sdk

开始构建

# 指定开发板为 pico2
cmake -DPICO_BOARD=pico2 ..
cd blink
make -j
ll blink.uf2

链接

  • Raspberry Pi官网

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/917212.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【OpenGL】OpenGL简介

文章目录 OpenGL概述OpenGL的本质OpenGL相关库核心库窗口管理glutfreeglutglfw 函数加载glewGLAD OpenGL概述 OpenGL(Open Graphics Library) 严格来说,本身并不是一个API,它是一个由Khronos组织制定并维护的规范(Specification)。OpenGL规范严格规定了…

AI写作(十)发展趋势与展望(10/10)

一、AI 写作的崛起之势 在当今科技飞速发展的时代,AI 写作如同一颗耀眼的新星,迅速崛起并在多个领域展现出强大的力量。 随着人工智能技术的不断进步,AI 写作在内容创作领域发挥着越来越重要的作用。据统计,目前已有众多企业开始…

ROS进阶:使用URDF和Xacro构建差速轮式机器人模型

前言 本篇文章介绍的是ROS高效进阶内容,使用URDF 语言(xml格式)做一个差速轮式机器人模型,并使用URDF的增强版xacro,对机器人模型文件进行二次优化。 差速轮式机器人:两轮差速底盘由两个动力轮位于底盘左…

Java 网络编程(二)—— TCP流套接字编程

TCP 和 UDP 的区别 在传输层,TCP 协议是有连接的,可靠传输,面向字节流,全双工 而UDP 协议是无连接的,不可靠传输,面向数据报,全双工 有连接和无连接的区别是在进行网络通信的时候,…

YOLOv8改进,YOLOv8通过RFAConv卷积创新空间注意力和标准卷积,包括RFCAConv, RFCBAMConv,二次创新C2f结构,助力涨点

摘要 空间注意力已广泛应用于提升卷积神经网络(CNN)的性能,但它存在一定的局限性。作者提出了一个新的视角,认为空间注意力机制本质上解决了卷积核参数共享的问题。然而,空间注意力生成的注意力图信息对于大尺寸卷积核来说是不足够的。因此,提出了一种新型的注意力机制—…

Python调用API翻译Excel中的英语句子并回填数据

一、问题描述 最近遇到一个把Excel表中两列单元格中的文本读取,然后翻译,再重新回填到单元格中的案例。大约有700多行,1400多个句子,一个个手动复制粘贴要花费不少时间,而且极易出错。这时,我们就可以请出…

虚拟化数据恢复—ESX SERVER共享的STORAGE中分区表被清零的数据恢复案例

虚拟化数据恢复环境&故障: 某单位信息管理平台,数台VMware ESX SERVER共享一台某品牌DS4100存储。 vc报告虚拟磁盘丢失,管理员ssh到ESX中执行fdisk -l查看磁盘,发现STORAGE中的分区表不见了。重启所有设备后,ESX S…

无效的目标发行版17和无法连接Maven进程问题

起因:我clean了一个模块的Maven想要重新下,他就开始报错。两次了都是这样。如果和我一样一开始都是好好的,直接找Maven的设置,在运行程序改,jre变成了11.它自己变成了我其他的jdk

在Docker环境下为Nginx配置HTTPS

前言 配置HTTPS已经成为网站部署的必要步骤。本教程将详细介绍如何在Docker环境下为Nginx配置HTTPS,使用自签名证书来实现加密通信。虽然在生产环境中建议使用权威CA机构颁发的证书,但在开发测试或内网环境中,自签名证书是一个很好的选择。 …

英伟达基于Mistral 7B开发新一代Embedding模型——NV-Embed-v2

我们介绍的 NV-Embed-v2 是一种通用嵌入模型,它在大规模文本嵌入基准(MTEB 基准)(截至 2024 年 8 月 30 日)的 56 项文本嵌入任务中以 72.31 的高分排名第一。此外,它还在检索子类别中排名第一(…

24 年第十届数维杯国际数模竞赛赛题浅析

本次万众瞩目的数维杯国际大学生数学建模赛题已正式出炉,无论是赛题难度还是认可度,该比赛都是数模届的独一档,含金量极高,可以用于综测加分、保研、简历添彩等各方面。考虑到大家解题实属不易,为了帮助大家取得好成绩…

SOP搭建:企业标准化操作程序构建与实施指南

一、引言 在当今充满竞争的商业领域,实现企业运营的标准化、高效化和高质量化是提升企业市场竞争力的关键所在。标准操作程序(SOP)作为一种至关重要的管理工具,能够清晰地阐述业务流程,规范操作行为,并促进…

【每日刷题】Day156

【每日刷题】Day156 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 1020. 飞地的数量 - 力扣(LeetCode) 2. 1765. 地图中的最高点 - 力扣(LeetCode) 3. 1162. 地图分…

J.U.C - 深入解读Condition条件变量原理源码

文章目录 Pre概述Condition 主要方法Condition案例Condition的源码解析1. 等待:condition. await2. 唤醒Condition. signal Condition总结 Pre J.U.C - 深入解析ReentrantLock原理&源码 概述 配合synchronized同步锁在同步代码块中调用加锁对象notify和wait方…

c++ 类和对象(中)

前言 我们看看下面的代码以及代码运行结果 代码1 我们可以看到在我们的类Data中的函数成员print中,我们并没有设置形参,在调用此函数时,也并没有多余传参,但是我们调用它时,却能准确打印出我们的_year、_month、_day…

python:用 sklearn 构建 K-Means 聚类模型

pip install scikit-learn 或者 直接用 Anaconda3 sklearn 提供了 preprocessing 数据预处理模块、cluster 聚类模型、manifold.TSNE 数据降维模块。 编写 test_sklearn_3.py 如下 # -*- coding: utf-8 -*- """ 使用 sklearn 构建 K-Means 聚类模型 "&…

使用python编写工具:快速生成chrome插件相关文件结构

本文将详细分析一段用 wxPython 编写的 Python 应用程序代码。该程序允许用户创建一些特定文件并将它们保存在指定的文件夹中,同时也能够启动 Google Chrome 浏览器并打开扩展页面,自动执行一些操作。 C:\pythoncode\new\crxiterationtaburl.py 全部代码…

使用Web Components构建模块化Web应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用Web Components构建模块化Web应用 使用Web Components构建模块化Web应用 使用Web Components构建模块化Web应用 引言 Web Co…

谷歌浏览器的自动翻译功能如何开启

在当今全球化的网络环境中,能够流畅地浏览不同语言的网页是至关重要的。谷歌浏览器(Google Chrome)提供了一项强大的自动翻译功能,可以帮助用户轻松跨越语言障碍。本文将详细介绍如何开启和使用谷歌浏览器的自动翻译功能&#xff…

算法---解决“汉诺塔”问题

# 初始化步骤计数器 i 1 # 定义移动盘子的函数 def move(n, mfrom, mto): global i # 使用全局变量i来跟踪步骤 print("第%d步:将%d号盘子从%s->%s" % (i, n, mfrom, mto)) # 打印移动步骤 i 1 # 步骤计数器加1 #第一种方法 # 定义汉诺塔问题的递归…