【RP2040】香瓜树莓派RP2040之搭建开发环境(windows)
本文最后修改时间:2022年08月23日 01:57
一、本节简介
本节以树莓派pico开发板为例,搭建windows下的编译环境。
二、实验平台
1、硬件平台
1)树莓派pico开发板
①树莓派pico开发板
②micro usb数据线
2)电脑
2、软件平台
暂无
三、版权声明
1)作者:甜甜的大香瓜
2)声明:喝水不忘挖井人,转载请注明出处。
3)纠错/业务合作:897503845@qq.com
4)香瓜嵌入式之树莓派群:512598061
5)本文出处:原创连载资料《简单粗暴学树莓派》
6)完整开源资料下载地址(电脑端打开):
opengua.taobao.com
四、实验前提
1、在进行本文步骤前,请先阅读以下章节:
1)《简单粗暴学树莓派》的“第一章至第二章”章节。
2)《Raspberry Pi Pico : C/C++ SDK and Toolchain Setup in Windows 10》:
Raspberry Pi Pico : C/C++ SDK and Toolchain Setup in Windows 10 - Arnab Kumar Das
3)《Raspberry-Pi-PICO系列--第四篇 开发环境搭建-Windows系统 + Visual Studio Code开发》:Raspberry-Pi-PICO系列--第四篇 开发环境搭建-Windows系统 + Visual Studio Code开发_coder.mark的博客-CSDN博客
4)《getting-started-with-pico》的《9.2. Building on MS Windows》
2、在进行本文步骤前,请先实现以下章节:
暂无
五、基础知识
1、pico是什么?
答:
pico是树莓派公司在21年1月出的一款单片机开发板,价格大概在4美金(20多元人民币)。
目前型号有pico、pico H(pico焊上插针)、pico W(pico基础上增加wifi模块)、pico WH(pico W焊上插针)。
2、pico能在几个平台做开发?
答:
可以在树莓派(比如树莓派4等)、mac、windows下做开发。
3、windows下需要装哪些软件?
答:
其实要下载安装的软件有很多,上图的只是让你能命令行编译的软件。详情看本文具体操作步骤(或看目录快速浏览)。
六、实验步骤
1、安装Arm GNU Toolchain
1)下载链接
Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developer
2)安装注意事项
这里特别注意要打上勾。
可以在命令行里输入“arm-none-eabi-gcc -v”来判断是否装好。
2、安装CMake
1)下载链接
https://objects.githubusercontent.com/github-production-release-asset-2e65be/537699/658da1cd-1df4-4ba8-ae1f-24f8f742f29d?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20220805%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220805T124236Z&X-Amz-Expires=300&X-Amz-Signature=2fd92b6a8dd08e92e247972e293098ef571ac9f44bce61c1a15171fe4ede8d76&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=537699&response-content-disposition=attachment%3B%20filename%3Dcmake-3.24.0-windows-x86_64.msi&response-content-type=application%2Foctet-stream
2)安装注意事项
需如上选择。
3、安装Visual Studio2022
1)下载链接
下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux
2)安装注意事项
要注意文件很大,看看C盘够不够空间。
4、安装Python3.10
1)下载链接
Python Releases for Windows | Python.org
2)安装注意事项
5、安装Git
1)下载链接
https://git-scm.com/download/win
2)安装注意事项(其他按默认)
6、下载pico的SDK和例程
1)在D盘新建一个文件夹,命名为“GUA_PICO”。
2)在GUA_PICO里,点右键,选择“Git Bash Here”。
3)依次输入:
git clone -b master https://github.com/raspberrypi/pico-sdk.git cd pico-sdk git submodule update --init cd .. git clone -b master https://github.com/raspberrypi/pico-examples.git |
7、设置SDK的环境变量
1)右键“我的电脑”属性,点击“高级系统设置”,点击系统属性里“高级”中的“环境变量”。
填入“PICO_SDK_PATH”、“D:\GUA_PICO\pico-sdk”
8、创建编译文件夹并编译
1)打开一个新的Developer Command Prompt for VS 2022。
2)输入:
D: cd D:\GUA_PICO\pico-examples mkdir build cd build cmake -G "NMake Makefiles" .. nmake |
其中nmake是编译所有例程,时间会比较久。
注意,如果更换了Arm GNU Toolchain的版本,需要删掉build文件夹里的东西,重新编译
注意:
如上图则表示“cmake -G "NMake Makefiles" ..”执行正确了。
如果是报错,有可能是环境变量的路径没设置对,或者要先把build文件夹内的文件删除干净。
如上图,就说明命令行的编译环境已建好。
9、安装Visual Studio Code
1)下载链接
https://code.visualstudio.com/download
2)安装注意事项
默认就有添加PATH,都按默认装即可。
10、配置Visual Studio Code
1)用Developer Command Prompt for VS 2022打开Visual Studio Code
注意这里不能直接打开VS CODE,一定要用命令行打开。
2)在VS CODE里按Ctrl + Shift + X,安装CMake Tool(注意不是CMake)
3)添加环境变量
点击右下角设置选择extensions setting
与前面一样填入“PICO_SDK_PATH”、“D: \GUA_PICO\pico-sdk”。如下图
往下找到Cmake: Generator,输入“NMake Makefiles”,然后关闭Settings。
4)安装cortex-Debug插件
11、使用VS CODE编译
导入工程,File->Open Folder,选择pico-examples的路径。香瓜的路径是“D:\ GUA_PICO\pico-examples”,如下图
点击“all”选择“blink”工程,我们只选择编译这个工程,否则时间非常久。如下图
此时可以随便修改一下blink(不改的话编译文件不会生成),点build编译,如下图
如果有弹出安装C的指令,点击安装
查看uf2编译文件的时间是否被更新了,如果更新了,说明编译成功,如下图
12、下载uf2编译文件到pico
1)按着PICO上的BOOTSEL按键,插入usb供电,然后松开。
2)电脑会弹出或识别出一个盘,将刚刚编译的blink.uf2放进新盘内,会自动关闭。
3)pico的led开始闪烁,说明代码已下载成功。
4)可通过调整LED的闪烁时间,来进一步验证是否下载的是自己修改的代码。
至此,就已经装好了VS CODE编译环境,接下来是实现仿真功能。
13、安装MSYS2
1)下载链接
https://www.msys2.org/
2)安装注意事项
全部默认安装后,在弹出的框内填入
pacman -Syu |
装好后窗口会自动关闭,然后重新打开MSYS2。
输入
pacman -Su |
安装完成后输入
pacman -S mingw-w64-x86_64-toolchain git make libtool pkg-config autoconf automake texinfo mingw-w64-x86_64-libusb gcc |
然后要装很久……装好后手动关闭。
14、下载openocd编译文件并执行
1)将香瓜提供的openocd文件夹复制到“D: \GUA_PICO”下
2)打开x64版本的
输入指令(注意是“/”,不是“\”)
cd D:/GUA_PICO/openocd ./openocd.exe |
15、下载picoprobe固件进pico
1)按着pico的BOOTSEL按键,插入USB,松开按键。等待电脑识别pico为一个盘。
2)将picoprobe固件拖拽进pico识别的盘里,会自动关闭,即下载成功。
16、安装Zadig驱动
1)下载地址
https://zadig.akeo.ie/
2)已下好picoprobe固件的pico,连接电脑。
3)
拔插pico的usb,查看驱动是否装好。
这样出现COM口就说明已经装好了。
17、VS debug环境配置
1)在pico-examples目录下右击鼠标, Git Bash Here
2)输入如下指令,会将pico-examples/ide内的文件拷贝到.vscode目录并修改
cp ide/vscode/launch-raspberrypi-swd.json .vscode/launch.json |
3)用文本打开“D: \GUA_PICO\pico-examples\.vscode”路径下的launch.json文件,并改成如下图所示,图后附上修改后的代码
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Cortex Debug", "cwd": "${workspaceRoot}", "executable": "${workspaceRoot}/build/blink/blink.elf", "request": "launch", "type": "cortex-debug", "servertype": "openocd", "device": "Pico2040", "runToMain": true, "configFiles": ["interface/picoprobe.cfg", "target/rp2040.cfg"], "searchDir": ["D:/GUA_PICO/openocd/tcl"], "svdFile": "D:/GUA_PICO/pico-sdk/src/rp2040/hardware_regs/rp2040.svd", } ] } |
注意searchDir是新加的,需要改成自己电脑中的路径。
4)修改Cortex-Debug插件的配置项目
添加如下路径(根据自己openocd.exe所在路径),修改后关闭,记得点保存
{ "cmake.configureEnvironment": { "PICO_SDK_PATH": "D:\\GUA_PICO\\pico-sdk" }, "cmake.generator": "NMake Makefiles", "cmake.configureOnOpen": true,
"cortex-debug.openocdPath":"D:/GUA_PICO/openocd/openocd.exe", "cortex-debug.gdbPath": "arm-none-eabi-gdb", } |
18、下载libusb
1)下载地址
https://libusb.info/
2)复制文件,具体操作如下图
19、下载python27.dll
1、下载并复制“python27.dll”到“C:\Windows\SysWOW64”
2、使用命令行执行:
regsvr32 python27.dll -s |
相关文章:

【RP2040】香瓜树莓派RP2040之搭建开发环境(windows)
本文最后修改时间:2022年08月23日 01:57 一、本节简介 本节以树莓派pico开发板为例,搭建windows下的编译环境。 二、实验平台 1、硬件平台 1)树莓派pico开发板 ①树莓派pico开发板 ②micro usb数据线 2)电脑 2、软件平台 …...

基于springboot线上礼品商城
博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…...

开源,微信小程序 美食便签地图(FoodNoteMap)的设计与开发
目录 0 前言 1 美食便签地图简介 2 美食便签地图小程序端开发 2.1技术选型 2.2前端UI设计 2.3主页界面 2.4个人信息界面 2.5 添加美食界面 2.6美食便签界面 2.8 美食好友界面 2.9 美食圈子界面 2.10 子页面-店铺详情界面 2.11 后台数据缓存 2.12 订阅消息通知 2.1…...

kubernetes集群(k8s)之安装部署Calico 网络
目录 安装部署Calico 网络 (一)环境准备 (二)部署docker环境 (三)部署kubernetes集群 (四)部署Calico网络插件 安装部署Calico 网络 (一)环境准备 IP地…...
【C/C++】C++11 Lambda 表达式捕获变量使用技巧
在 C11 中,lambda 表达式可以通过捕获列表来捕获指定的变量。捕获列表是放在 lambda 表达式参数列表之前的一对方括号 [] 中,用来指定 lambda 表达式捕获哪些变量。 捕获列表有以下几种形式: []:不捕获任何变量。[&]&#x…...

大势智慧软硬件技术答疑第八期
1.DasViewer可以使用同一个账号登录多台电脑,然后同时进行格式转换操作吗? 答:可以的 2.在DasViewer里面添加了标注点,能手动修改标注点坐标、手动输入坐标值 吗? 答:目前DasViewer暂不支持手动输入坐标 …...
jvm-jvm与java体系结构
1.JAVA及JVM简介 jvm发展历程 sun classic vm jdk1.4时完全被淘汰 2.虚拟机与JAVA虚拟机 java虚拟机就是二进制字节码的运行环境,负责装载字节码到其内部,解释/编译为对应平台上的机器指令执行,每一条java指令,java虚拟机中都有…...

Three.js 实现材质边缘通道发光效果
相关API的使用: 1. EffectComposer(渲染后处理的通用框架,用于将多个渲染通道(pass)组合在一起创建特定的视觉效果) 2. RenderPass(是用于渲染场景的通道。它将场景和相机作为输入,使用Three.…...

【MFC】10.MFC六大机制:RTTI(运行时类型识别),动态创建机制,窗口切分,子类化-笔记
运行时类信息(RTTI) C: ##是拼接 #是替换成字符串 // RTTI.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include <iostream> #include <afxwin.h>#ifdef _DEBUG #define new DEBUG_NEW #endifCWinApp th…...

ui设计师个人年终工作总结2020最新范文5篇
ui设计师个人年终工作总结(一) 我于20年x育人x日成为公司的试用员工,安排在技术研发中心担任UI界面设计一职,现将我的工作情况分为三个阶段来总结如下汇报: 一、萌芽阶段 记得初次应聘时,我对公司的认识仅仅局限于行业之一&#x…...

开源数据库Mysql_DBA运维实战 (修改root密码)
MySQL——修改root密码的4种方法 本文以windows为例为大家详细介绍下MySQL修改root密码的4种方法,大家可以可以根据的自己的情况自由选择,希望对大家有所帮助 方法1: 用SET PASSWORD命令 首先登录MySQL。 格式:mysql> set pass…...
javap获取Kotlin方法JNI方法签名
获取Kotlin方法签名和JAVA不一样的地方就是需要使用Kotlin 命令行编译器生成.class文件: 编写一个Kotlin类,添加JNI方法: class TestLib {external fun init(callBack: CallBack)interface CallBack{fun onData(count:Int,data:String)} }在…...

ARM-M0内核MCU,内置24bit ADC,采样率4KSPS,传感器、电子秤、体脂秤专用,国产IC
ARM-M0内核MCU 内置24bit ADC ,采样率4KSPS flash 64KB,SRAM 32KB 适用于传感器,电子秤,体脂秤等等...

【STM32】FreeRTOS消息队列和信号量学习
一、消息队列(queue) 队列是一种用于实现任务与任务之间,任务与中断之间消息交流的机制。 注意:1.数据的操作是FIFO模式。 2.队列需要明确数据的大小和队列的长度。 3.写和读都会出现堵塞。 实验:创建一个消息队列…...

初始C语言(6)——详细讲解表达式求值以及其易错点
系列文章目录 第一章 “C“浒传——初识C语言(1)(更适合初学者体质哦!) 第二章 初始C语言(2)——详细认识分支语句和循环语句以及他们的易错点 第三章 初阶C语言(3)——…...

【数据结构】树和二叉树
一、树的概念及结构 1、树的概念 树 是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。 有一个特殊的结点&a…...
GPIO 配置 和 PINCTRL有啥区别
GPIO(通用输入/输出)和 PINCTRL(引脚控制器)是在嵌入式系统中用于管理和控制硬件引脚的关键概念。它们在硬件层面上起着不同的作用。 GPIO配置: GPIO 是一种通用的硬件接口,用于控制和读取数字信号。每个 …...
GPT法律领域
法律领域 LaWGPT Github: https://github.com/pengxiao-song/LaWGPT 简介:基于中文法律知识的大语言模型。 数据:基于中文裁判文书网公开法律文书数据、司法考试数据等数据集展开,利用Stanford_alpaca、self-instruct方式生成对话问答数据…...
【C++11保姆级教程】Type aliases(类型别名)、alignof and alignas(类型对齐))
文章目录 前言一、类型别名(Type aliases)1.1类型别名是什么?1.2使用方法1.3实际使用1.4优势 二、类型对齐(alignof and alignas)2.1类型对齐的概念2.2类型对齐快速理解2.3具体使用2.4示例代码 总结 前言 在C11标准中…...

地址解析协议-ARP
ARP协议 无论网络层使用何种协议,在实际网络的链路上传输数据帧时,最终必须使用硬件地址 地址解析协议(Address Resolution Protocol,ARP):完成IP地址到MAC地址的映射,每个主机都有一个ARP高速缓…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
镜像里切换为普通用户
如果你登录远程虚拟机默认就是 root 用户,但你不希望用 root 权限运行 ns-3(这是对的,ns3 工具会拒绝 root),你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案:创建非 roo…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

算法岗面试经验分享-大模型篇
文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer (1)资源 论文&a…...

回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
鸿蒙(HarmonyOS5)实现跳一跳小游戏
下面我将介绍如何使用鸿蒙的ArkUI框架,实现一个简单的跳一跳小游戏。 1. 项目结构 src/main/ets/ ├── MainAbility │ ├── pages │ │ ├── Index.ets // 主页面 │ │ └── GamePage.ets // 游戏页面 │ └── model │ …...
ubuntu22.04 安装docker 和docker-compose
首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...

高分辨率图像合成归一化流扩展
大家读完觉得有帮助记得关注和点赞!!! 1 摘要 我们提出了STARFlow,一种基于归一化流的可扩展生成模型,它在高分辨率图像合成方面取得了强大的性能。STARFlow的主要构建块是Transformer自回归流(TARFlow&am…...

spring boot使用HttpServletResponse实现sse后端流式输出消息
1.以前只是看过SSE的相关文章,没有具体实践,这次接入AI大模型使用到了流式输出,涉及到给前端流式返回,所以记录一下。 2.resp要设置为text/event-stream resp.setContentType("text/event-stream"); resp.setCharacter…...