树莓派Pico

2023-11-09

9.2. 在MS Windows上构建

在Microsoft Windows 10或Windows 11上安装工具链与其他平台有些不同。然而安装后,RP2040的构建代码基本类似。
Tips:什么是工具链
工具链是指一系列软件,逐个使用这一系列软件可以实现某一个技术目标。在软件开发中,工具链是一组编程工具,用于执行复杂的软件开发任务或创建软件产品,该软件产品通常是另一个计算机程序或一组相关程序 。
 警告
官方不支持在Windows 7或8上使用Raspberry Pi Pico,但在Windows 7或8上可以使其工作。

9.2.1. 安装工具链

如果您正在Microsoft Windows上为Raspberry Pi Pico进行开发,那么可以使用
Windows Pico Installer。
继续从Github (https://github.com/raspberrypi/pico-setupwindows)下载最新版本的安装程序,并运行它。安装向导(参见图15)将指导您安装工具链。
向导完成安装后,它将提示您是否应该显示教程,或者是否应该选择克隆并从Github构建pico-examples存储库。
包括软件:
• Arm GNU Toolchain
• CMake
• Ninja
• Python 3.9
• Git for Windows
• Visual Studio Code
• OpenOCD

9.2.1.1. 开始编写Visual Studio代码

在开始菜单中,在Raspberry Pi Pico SDK 文件夹中寻找Pico - Visual Studio Code快捷方式。的
快捷方式设置所需的环境变量,然后启动Visual Studio Code。
注意
如果您以前安装过Visual Studio Code,我们经常会看到由于插入的随机设置而导致的问题。其他扩展,或由用户,在现有的安装。如果是这种情况,请转到Pico安装程序获取已知问题和解决方案的清单。

9.2.1.2. 打开例子

第一次使用开始菜单快捷方式启动Visual Studio Code时,它将打开pico-examples存储库。
要稍后重新打开示例存储库,可以打开安装在C:\ProgramData\Raspberry Pi \Pico的SDK副本 \pico -examples。

9.2.1.3. 构建示例

当你第一次打开pico-examples项目时,Visual Studio Code会询问你是否要配置它;点击确定
提示继续。(如果你错过了提示,请查找右下角的“铃铛”图标。)然后系统会提示您
选择一个工具包-选择Pico ARM GCC - Pico SDK Toolchain,其中包含GCC ARM -none-eabi条目。如果Pico ARM GCC条目是
不存在,选择“未指定”以使SDK自动检测编译器。
要构建其中一个示例,请单击侧边栏上的“CMake”按钮的树形视图示例项目;展开要构建的项目,然后单击目标名称右侧的小构建图标构建特定的项目。
要构建所有内容,请单击CMake Project Outline视图顶部的“build All Projects”按钮。
注意
您可以在Windows的Pico设置教程中找到有关如何使用Visual Studio Code的更多信息。
重要
如果您在Windows下安装或使用工具链时遇到问题,在Pico安装Windows GitHub库中有可用的故障排除指南。

9.2.2. 可供选择的手动安装

警告
在MS Windows下手动安装工具链比较复杂,不建议使用。
要构建,您需要安装一些额外的工具。
• Arm GNU Toolchain (you need the filename ending with -arm-none-eabi.exe)
• CMake
• Build Tools for Visual Studio 2022
• Python 3.10
• Git
从上面的链接下载每个程序的可执行安装程序,然后仔细按照以下部分将这五个软件包安装到您的Windows计算机上。

9.2.2.1. 安装Arm GNU Toolchain

在安装过程中,您应该勾选该框,当提示这样做时可以将Arm编译器的路径加入系统path。

9.2.2.2. 安装CMake

在安装过程中,当安装程序提示时,将CMake添加到所有用户的系统路径中。

9.2.2.3. 安装Visual Studio 2022的构建工具

当由Visual Studio安装程序的构建工具提示时,您只需要安装c++构建工具。
注意
你必须安装完整的“Windows 10 SDK”包,因为SDK需要在本地构建pioasm和elf2uf2工具。
将它从已安装项目列表中删除将意味着您将无法构建Raspberry Pi Pico二进制文件

9.2.2.4. 安装Python 3.10

在安装过程中,确保它是“为所有用户”安装的,并在提示时将Python 3.10添加到系统PATH
安装程序。您还应该在Python末尾提示时禁用MAX_PATH长度限制
安装。

9.2.2.5. 安装Git

在安装Git时,您应该确保将默认编辑器从vim更改为缺省编辑器,如图21所示。
图21。安装Git
确保勾选复选框以允许从第三方软件使用Git,除非您有充分的理由
否则,在安装Git时,你也应该勾选“按原样签出,按原样提交”,选择“使用Windows”。
“默认控制台窗口”和“启用对伪控制台的实验支持”。

9.2.2.6. 获取SDK和示例

C:\Users\pico\Downloads> git clone https://github.com/raspberrypi/pico-sdk.git --branch master
C:\Users\pico\Downloads> cd pico-sdk
C:\Users\pico\Downloads\pico-sdk> git submodule update --init
C:\Users\pico\Downloads\pico-sdk> cd …
C:\Users\pico\Downloads> git clone https://github.com/raspberrypi/pico-examples.git --branch
master

9.2.2.7. 从命令行构建“Hello World”

通过选择Windows > Visual,从Windows菜单中打开开发人员命令提示符窗口
Studio 2022 > VS 2022的开发者命令提示符
然后设置SDK的路径,如下所示:
C:\Users\pico\Downloads> setx PICO_SDK_PATH “…\pico-sdk”
您现在需要关闭当前的命令提示符窗口并打开第二个开发人员命令提示符
窗口,在继续之前将在其中正确设置此环境变量。
导航到pico-examples文件夹,并按如下方式构建“Hello World”示例:
C:\Users\pico\Downloads> cd pico-examples
C:\Users\pico\Downloads\pico-examples> mkdir build
C:\Users\pico\Downloads\pico-examples> cd build
C:\Users\pico\Downloads\pico-examples\build> cmake -G “NMake Makefiles” …
C:\Users\pico\Downloads\pico-examples\build> nmake
来构建目标。这将产生elf、bin和uf2目标,您可以在hello_world/serial和中找到它们构建目录中的Hello_world /usb目录。UF2二进制文件可以直接拖放到
RP2040板连接到您的计算机使用USB。

9.2.2.8. 从Visual Studio Code构建“Hello World”

现在您已经安装了工具链,您可以安装Visual Studio Code并在该环境中构建您的项目而不是从命令行。
继续下载并安装Visual Studio Code for Windows。安装后打开Developer Command通过选择Windows > Visual Studio 2022 > Developer Command Prompt for VS2022,从Windows菜单中打开提示符窗口
菜单上的。然后输入,
C: >代码
听提示。这将打开Visual Studio Code,并设置所有正确的环境变量,以便工具链正确配置。
警告
如果您通过单击其桌面图标启动Visual Studio Code,或者直接从开始菜单启动构建环境配置不正确。虽然这可以在CMake工具设置中手动完成,
配置Visual Studio Code环境最简单的方法就是通过Developer Command打开它提示窗口,其中已经设置了这些环境变量。
现在我们需要安装CMake Tools扩展。单击左侧工具栏中的Extensions图标(或键入Ctrl +Shift + X),然后搜索“CMake Tools”,点击列表中的条目,然后点击安装按钮。
然后单击界面左侧导航栏底部的齿轮并选择“设置”。然后在设置窗格中单击“扩展”,然后单击“CMake工具”。然后向下滚动到“Cmake”:配置环境”。点击“Add Item”,将PICO_SDK_PATH设置为…\…\pico-sdk,如图22所示。
此外,您需要向下滚动到“Cmake: Generator”,并在框中输入“NMake Makefiles”。
重要
如果你不更改“Cmake: Generator”,Visual Studio将默认为ninja,并且作为GCC构建可能会失败以ninja无法理解的稍微不正确的格式输出依赖信息。
现在关闭设置页面,转到文件菜单,单击“打开文件夹”,导航到pico-examples repo和点击“选择文件夹”。系统将提示您配置项目,参见图23。选择“GCC for arm-none-eabi”
编译器。
点击窗口底部蓝色栏中的“Build”按钮(带有齿轮)。这将创建
运行CMake并构建示例项目,包括“Hello World”。
这将产生elf、bin和uf2目标,您可以在hello_world/serial和hello_world/usb目录中找到它们
在新创建的构建目录中。UF2二进制文件可以直接拖放到RP2040板上
用USB连接到电脑上。

9.2.2.9. 闪烁并运行“Hello World”

使用micro-USB电缆将树莓派Pico连接到树莓派上,确保按住
BOOTSEL按钮强制进入USB大容量存储模式。该板应自动显示为外部驱动器。你现在可以将UF2二进制文件拖放到外部驱动器上。
Raspberry Pi Pico将重新启动,并卸载自己作为外部驱动器,并开始运行闪存代码。
正如我们在第4章中所做的那样,您可以构建Hello World示例,将工作室路由到USB CDC(串行)或UART0在GP0和GP1引脚上。如果您使用USB CDC作为目标输出构建,则不需要安装驱动程序,因为它是一个class-compliant设备。

9.2.2.9.1. UART输出

可选的,如果您想要连接到Raspberry Pi Pico标准UART来查看您需要的输出使用USB到UART串行转换器(例如SparkFun FTDI)将树莓派Pico连接到计算机
基本板,见图24。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

树莓派Pico 的相关文章

  • fprintf() 线程安全吗?

    我正在为野人就餐问题的某些变量编写一个 C 解决方案 现在 我创建线程 每个线程都将 FILE 获取到同一个调试文件 在线程内我正在使用 fprintf 进行一些打印 打印的语句不受任何类型的互斥锁等保护 我没有在调试文件中观察到任何交错行
  • 如何在子 shell 中运行 cmd.exe 批处理文件

    我有一个批处理文件 通常像这样调用 longjob cmd gt result txt 2 gt 1 这工作正常 但脚本在执行过程中更改了目录 将我的 shell 留在该目录中 这很麻烦 有没有办法在子 shell 中运行命令 同时仍然允许
  • Pip 无法在 Windows 上安装 Twisted

    我正在尝试在 Windows 8 计算机上安装 Twisted 在 Twisted 官方网站上 只有一个 Windows 版的 Wheel 文件 https twistedmatrix com trac wiki Downloads htt
  • 使用taskkill停止Windows服务

    我需要帮助来使用 C 终止 Windows 服务 现在要终止该服务 请使用以下选项 从命令 sc queryex ServiceName 发现后PID服务的 taskkill pid 1234 exemple f 为了便于阅读 但如果您明白
  • opencv人脸检测示例

    当我在设备上运行应用程序时 应用程序崩溃并显示以下按摩 java lang UnsatisfiedLinkError 无法加载 detector based tracker findLibrary 返回 null 我正在使用 OpenCV
  • MinGW Make 抛出“系统找不到指定的路径。”错误

    我正在尝试在 Windows 7 上使用 cmake 生成一个 c 项目 在实际创建项目之前 cmake 会对您的工具链进行快速测试 我正在使用 MinGW 这就是我的问题所在 Cmake 触发 make 构建 最终失败并返回 系统找不到指
  • 开发者可以在 Windows 应用程序中使用 iCloud 吗?

    开发人员可以使用 Apple 的 iCloud API 在 Mac OS X 和 iOS 上的不同版本的应用程序之间同步应用程序数据 如果开发人员拥有 Windows 版本的应用程序 该版本是否也可以使用 iCloud 将应用程序数据与 M
  • 将文件夹中的所有文件及其所有子文件夹移动到一个大文件夹中 - windows xp

    我有一个文件夹 c downloads ffme 里面有很多子文件夹 每个子文件夹中都有不同数量的文件 我想将所有这些单独的文件合并到一个大文件夹中 同时将它们从子文件夹中删除 我希望最终得到一个包含大量文件的文件夹 但没有子文件夹 我怎样
  • 如何使用 PowerShell 扩展 ZIP 存档(UTF-8 文件名)

    我的 zip 存档有一个文件 P re No l txt 该 zip 可以通过 Windows 文件资源管理器 7 Zip 或我尝试过的任何其他工具很好地扩展 但我不知道如何从 PowerShell 中做到这一点 显然我已经尝试过展开 存档
  • 无法启动 Windows 服务,错误 1064

    我编写了一个在 Win10 上运行的 Windows 服务 它运行得非常好 直到我决定对其进行一些更改 我重写了一些逻辑 在调试和发布配置中进行了测试 一切都很好 然后 我使用卸载了当前版本的服务installutil exe u serv
  • 在运行时,我如何判断我是否在 WinXP+ 上? win32

    我正在进行一些 win32 字符串 API 调用 并假设字符串以宽字符串形式出现 这在 XP 和更高版本上有效 我该如何断言这一点 这是运行时检查还是编译时检查 我做错了吗 这是一个例子 typedef std basic string
  • 如何创建向后兼容 Windows 7 的缩放和尺寸更改每显示器 DPI 感知应用程序?

    我是 WPF 和 DPI 感知 API 的新手 正在编写一个在 Windows 7 8 1 和 10 中运行的应用程序 我使用具有不同每个显示器 DPI 设置的多个显示器 并且有兴趣将我的应用程序制作为跨桌面配置尽可能兼容 我已经知道可以将
  • 无法加载 JNI 共享库 (JDK)

    当我尝试打开时Eclipse http www eclipse org 弹出对话框指出 无法加载 JNI 共享库 C JDK bin client jvm dll 此后 Eclipse 强制关闭 我想提出以下几点 我检查了这条路径上是否存在
  • 仅在单个端口 8080 上转发到本地主机(Windows)可能吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我知道如何在 Windows 上使用 xampp 设置本地网络服务器 我在主机文件 c windows system32 drivers etc ho
  • 如何有效截断文件头?

    大家都知道truncate file size 函数 通过截断文件尾部将文件大小更改为给定大小 但是如何做同样的事情 只截断文件的尾部和头部呢 通常 您必须重写整个文件 最简单的方法是跳过前几个字节 将其他所有内容复制到临时文件中 并在完成
  • Windows 上的递归移动命令

    我需要做一个 sh 的 bat 副本 我不太了解 Windows cmd 在 Linux 上我可以做 mv or rsync a SOURCE DEST remove sent files ignore existing whole fil
  • Windows 窗体中的标准 Windows 菜单栏

    我注意到添加了一个MenuStrip 来自工具箱 我的表单设计不会产生像许多本机 Windows 应用程序中那样的菜单栏 相反 我得到了一个像 Visual Studio 自己的菜单栏 没有任何样式设置MenuStrip似乎模仿了更常见的本
  • Git difftool 未启动外部 DiffMerge 程序

    我一直遵循 戴夫的博客条目 http www davesquared net 2009 05 setting up git difftool on windows html 链接在此answer https stackoverflow co
  • 已达到网络 BIOS 命令限制

    我的 ASP Net 应用程序从另一台 Windows 服务器上的共享文件夹获取文件 当请求增加时 我收到以下错误 The network BIOS command limit has been reached 我已按照以下步骤操作微软 K
  • Tkinter - 浮动窗口 - 调整大小

    灵感来自this https stackoverflow com a 22424245 13629335问题 我想为我的根窗口编写自己的调整大小函数 但我刚刚注意到我的代码显示了一些性能问题 如果你快速调整它的大小 你会发现窗口没有像我希望

随机推荐

  • ctypes.ArgumentError: argument 2: type 'exceptions.TypeError': Don't know how to convert parameter

    错误描述 我在用python的ctypes库调用c 的 so文件时候 出现了下面的错误 ctypes ArgumentError argument 2
  • Java权限修饰符

    权限修饰符可以用来修饰属性和方法的访问范围 本类 同包 子类 其他 private 默认 protected public 默认 是什么修饰符都不加
  • 【mcuclub】数码管

    一 实物图 二 原理图 1 数码管介绍 1 1 作用 数码管是显示器件 用来显示数字 1 2 分类 单个 1位 联排 2位 4位 8位 1 3 工作原理 1 亮灭原理 其实就是内部的照明LED 2 显示数字 甚至文字 原理 利用内部的LED
  • Qt中的QString与int、const char 、ASCII码互相转换

    1 QString 转 int bool ok QString str1 0xf8 int value1 str1 toInt ok 16 qDebug lt lt ok lt lt lt lt value1 true 248 QStrin
  • 中级课程——CSRF

    文章目录 案例 原理 挖掘 案例 原理 挖掘 挖掘详情 首先就是对目标敏感部位进行抓包分析 比如修改信息 转账 添加信息等等 通常一个数据包HTTP请求头里边都会有一个Referer 这个需要特别去验证 比如放到Burpsuit Repea
  • ARM常用汇编指令汇总

    ARM常用汇编指令汇总 text表示代码段 data初始化的数据段 bss未初始化的数据段 rodata只读数据段 global表示全局变量 CPSR寄存器数据访问 指令 目的 源 描述 MRS R0 CPSR 将CPSR的数据放到R0中
  • viper12a电路图_viper12a电磁炉电路图

    电磁炉又称为电磁灶 1957年第一台家用电磁炉诞生于德国 1972年 美国开始生产电磁炉 20世纪80年代初电磁炉在欧美及日本开始热销 电磁炉的原理是电磁感应现象 即利用交变电流通过线圈产生方向不断改变的交变磁场 处于交变磁场中的导体的内部
  • Docker 导出/导入镜像

    如果服务器网络不好或者pull不下来镜像 只能在其它网络比较好的机器上pull下来镜像 导出成一个文件 再下载上传到网络不好的机器上 然后再从文件中导出来 这样在网络不好的机器上也能使用docker镜像了 首先使用 docker image
  • python画笑脸图案-怎么用python实现画笑脸

    在Python中画笑脸可以使用turtle库实现 1 打开idel 通过idel新建一个py文件 在空白的文件中输入下面的代码按F5运行此文件就可以画笑脸了 from turtle import screensize 600 600 spe
  • 【Spark NLP】第 19 章:生产化 NLP 应用程序

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • 计算机网络为什么要分层,从形而上到形而下视角的理解

    文章开始我想先亮明一下我个人的立场 个人关于世界的思考立场是偏唯心的 文章的标题其实也表明了我对于计算机网络的理解立场是从形而上出发的 计算机网络是计算机专业的同学的必修课 但很多同学学习的过程中都会觉得东西很多很杂 开始学还比较有动力 但
  • 2000系统如何查看某端口对应服务_ubuntu 默认防火墙安装、启用、查看状态

    ubuntu 9 10默认的是UFW防火墙 已经支持界面操作了 在命令行运行ufw命令就可以看到提示的一系列可进行的操作 最简单的一个操作 sudo ufw status可检查防火墙的状态 我的返回的是 不活动 sudo ufw versi
  • VS2008 常用快捷键

    VS2008常用快捷键 1 怎样调整代码排版的格式 选择 编辑 gt 高级 gt 设置文档的格式 或 编辑 gt 高级 gt 设置选中代码的格式 格式化cs代码 自动对齐 Ctrl k f 格式化aspx代码 Ctrl k d 2 怎样跳转
  • 除雾霾去朦胧增强色彩对比清晰画面调色插件 ClearPlus v2.1 Win/Mac AE/PR插件中文汉化版安装与使用

    插件介绍 ClearPlus是一款功能强大的AE超级色彩去雾插件 旨在增强包括模糊 水下和弱光视频在内的素材 它也是增强天空的理想选择 轻松灵活地使颜色变得时尚 阴影 高光使您可以在保持自然外观的同时调整图像的不同部分 阴影滑块和除雾滑块可
  • 成功解决:ModuleNotFoundError: No module named ‘amp_C‘

    在使用transformers时 在调用Trainer的时候遇到了这个问题 原因是apex包有问题 这里有解决apex安装包的多一些教程 https blog csdn net Xidian185 article details 12274
  • react讲解(组件,生命周期以及受控组件)

    文章目录 前言 一 组件的通信原理 state 和 setState 二 组件分类 1 类组件 2 组件中父子组件的通信 代码示例 A组件代码 B组件代码 2 跨组件通信 A组件代码如下 C组件代码如下 三 组件的生命周期
  • Elasticsearch内存那些事儿

    Elasticsearch 内存分配设置详解 前言 该给 ES 分配多少内存 为什么是给 ES 分配服务器的一半内存 为什么内存使用率不断升高 没有释放 为何经常有某个 field 的数据量超出内存限制的异常 为何感觉上没多少数据 也会经常
  • TCP协议 ---可靠传输的各种机制

    目录 一 可靠 确认应答机制 保证数据可靠 有序的到达对端 超时重传机制 二 效率 2 1 提高自身发送数据量 滑动窗口机制 滑动窗口的发送缓冲区是环形队列 滑动窗口的大小会变化吗 滑动窗口的nb之处 滑动窗口丢包问题 2 2 对方的接受能
  • twrp3.3.0刷n9002_【笔刷】iPad Procreate5.0新笔刷分享,巨好用!

    01 Procreate 趣味复古蜡笔纹理笔刷15款 适用软件 Procreate5 0以上 适用系统 ipad系统 笔刷格式 brushset 素材大小 93MB 笔刷视频演示 赠送15款笔刷 29款色卡 一张纸张背景 02 Procre
  • 树莓派Pico

    9 2 在MS Windows上构建 在Microsoft Windows 10或Windows 11上安装工具链与其他平台有些不同 然而安装后 RP2040的构建代码基本类似 Tips 什么是工具链 工具链是指一系列软件 逐个使用这一系列