轻松玩转树莓派Pico之六、pico-project-generator使用

news2024/11/28 12:35:17

之前几个项目,都是通过copy老项目的CMakeLists.txt方式来编译项目,今天来体验一下树莓派官方提供的工具pico-project-generator。

pico-project-generator是树莓派官方出的Pico C SDK 项目的自动生成工具,该工具可以通过配置,自动生成编译所需的CMake文件、example文件、VSCodeIDE配置文件等。工具同时也支持命令行和可视化配置。

该工具使用Python3和tkinter编写而成,可以在

https://github.com/raspberrypi/pico-project-generator 下载。如当前电脑系统未安装tkinter,Linux可通过sudo apt-get install -y python3-tk 命令安装。

1、命令行运行

在命令行中输入./pico_project.py --help 可以获取工具命令行参数及对应参数使用说明。

./pico_project.py --help
usage: pico_project.py [-h] [-t TSV] [-o OUTPUT] [-x] [-l] [-c] [-f FEATURE] [-over] [-b] [-g] [-p PROJECT] [-r]
                       [-uart] [-nouart] [-usb] [-cpp] [-cpprtti] [-cppex] [-d DEBUGGER] [-board BOARDTYPE] [-bl]
                       [-cp CPATH]
                       [name]

Pico Project generator

positional arguments:
  name                  Name of the project

optional arguments:
  -h, --help            show this help message and exit
  -t TSV, --tsv TSV     Select an alternative pico_configs.tsv file
  -o OUTPUT, --output OUTPUT
                        Set an alternative CMakeList.txt filename
  -x, --examples        Add example code for the Pico standard library
  -l, --list            List available features
  -c, --configs         List available project configuration items
  -f FEATURE, --feature FEATURE
                        Add feature to generated project
  -over, --overwrite    Overwrite any existing project AND files
  -b, --build           Build after project created
  -g, --gui             Run a GUI version of the project generator
  -p PROJECT, --project PROJECT
                        Generate projects files for IDE. Options are: vscode
  -r, --runFromRAM      Run the program from RAM rather than flash
  -uart, --uart         Console output to UART (default)
  -nouart, --nouart     Disable console output to UART
  -usb, --usb           Console output to USB (disables other USB functionality
  -cpp, --cpp           Generate C++ code
  -cpprtti, --cpprtti   Enable C++ RTTI (Uses more memory)
  -cppex, --cppexceptions
                        Enable C++ exceptions (Uses more memory)
  -d DEBUGGER, --debugger DEBUGGER
                        Select debugger (0 = SWD, 1 = PicoProbe)
  -board BOARDTYPE, --boardtype BOARDTYPE
                        Select board type (see --boardlist for available boards)
  -bl, --boardlist      List available board types
  -cp CPATH, --cpath CPATH
                        Override default VSCode compiler path

可以看到-g 或者--gui参数可以运行可视化配置,接下来重点介绍一下可视化配置工具。

2、可视化配置

运行./pico_project.py --gui 启动可视化工具

  • Project Name:项目名称,创建的文件夹名称和CMake项目名都为该名称。

  • Location:项目存储位置

  • Board Type:可以选择不同的开发板类型

  • Library Options:选择当前项目需要的对应RP2040芯片外设,选中对应能力后,会在CMakeLists.txt文件的target_link_libraries中加入外设能力;如选中SPI则会自动加入hardware_spi。

  • Console Options:选择通过串口输入日志还是USB

  • Code Options:这个配置选项最多,点击Advanced还有更多。我常用的有“Add example for Pico library” 和“Run from RAM”,其他的功能后面继续发掘。

选中“Run from RAM”, 会在项目目录下的CMakeLists.txt中添加以下语句,代码运行在RAM中

# no_flash means the target is to run from RAM

pico_set_binary_type(testtt2 no_flash)

  • Build Options:选中“Run build after generation”会自动编译一次当前生成的项目。

  • IDE Options:选中“Create VSCode Project”,选中使用SWD还是PicoProbe。

配置完成后点击OK,工具自动会运行,如果没有配置PICO_SDK_PATH和toolchain环境变量会报错。

点击OK之后,如配置中选中了“Run build after generation”,会自动运行编译。

编译成功后,我们来看一下文件夹下有些啥?

pico-project-generator工具把编译需要的相关文件CMakeLists.txt和pico_sdk_import.cmake都已经自动创建了,比手工创建项目方便多了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaEE9-Spring Boot概念,创建和运行

目录 1.Spring Boot是什么?为什么要学? 1.1.概念 1.2.优点 2.Spring Boot项目创建 2.1.使用Idea创建(ide开发商提供) 2.1.1.使用Idea社区版 2.1.2.使用Idea专业版 2.2.网页版创建(Spring官方提供) …

基于深度学习的车道线检测论文解读

Ultra Fast Structure-aware Deep Lane Detection 论文地址:https://arxiv.org/abs/2004.11757 1.任务概述 车道线检测使用OpenCV就能够实现,而基于深度学习的车道线检测尝试解决车道线检测中的遮挡问题。 数据集介绍: 常用数据集:CULane Dataset,Tusimple(特点就是非常…

PostgreSQL 逻辑复制搭建测试

一、 准备工作 1. Publication(发布)节点 postgersql.conf wal_level logical max_replication_slots 8 #每个订阅需要消耗一个slot max_wal_senders 10 #每个订阅需要使用一个wal sender max_worker_processes128 #必须 >max_wal_senders加并…

BIO NIO AIO IO多路复用的区别

1、基础概念 1.1、阻塞非阻塞和同步异步的结合 下面通过例子来具体说明: 同步阻塞: 小明一直盯着下载进度条,到100%的时候完成。 同步体现在:小明关注下载进度条并等待完成通知。(可以看成同步是我主动关注任务完成的…

进度管理(上)

规划进度管理 定义:规划进度管理是为实施项目进度管理制定计划的过程。 输入: 1、项目管理计划 2、项目章程(包含里程碑,这个和规划进度有直接干系) 3、组织过程资产 4、事业环境因素。 输出:进度管…

2 线性回归demo数据-参数配置|训练回归模型|常见的tensor格式|Hub模块简介|气温数据集与任务介绍

文章目录线性回归demo数据-参数配置线性回归demo数据-训练回归模型常见的tensor格式scalarvectormatrix线性回归demo数据-参数配置 # 先传入数据,可以是手动定义,也可以导入,这边就直接拿一条直线y2x1,来进行模拟了。 # 构造x和y…

一篇五分生信临床模型预测文章代码复现——Figure 7 外部数据集验证模型

之前讲过临床模型预测的专栏,但那只是基础版本,下面我们以自噬相关基因为例子,模仿一篇五分文章,将图和代码复现出来,学会本专栏课程,可以具备发一篇五分左右文章的水平: 本专栏目录如下: Figure 1:差异表达基因及预后基因筛选(图片仅供参考) Figure 2. 生存分析,…

python爬虫学习笔记-SQL学习

Sql概述 先来看一个例子:小王第一次使用数据库,然后跟数据库来了个隔空对话 其实,我们想一想,mysql是一个软件,它有它自己一套的管理规则,我们想要跟它打交道,就必须遵守它的规则,如…

【stl -- 常用算法】

目录:前言一、遍历算法for_each、transform二、查找、统计算法find、find_ifadjacent_findbinary_searchcount、count_if三、排序算法sortrandom_shufflemergereverse拷贝、替换算法copyreplace、replace_ifswap算数生成算法accumulatefill集合算法set_intersection…

Day10 @Import整合第三方框架原理

1 前言Spring与MyBatis注解方式整合有个重要的技术点就是lmport,第三方框架与Spring整合xml方式很多是凭借自定义标签完成的,而第三方框架与Spring整合注解方式很多是靠import注解完成的。然后Import可以导入如下三种类:普通的配置类&#xf…

【蓝桥杯】历届真题 画廊(决赛)Java

【资源限制】 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 【问题描述】 小蓝办了一个画展,在一个画廊左右两边陈列了他自己的作品。为了使画展更有意思,小…

英语学习打卡day6

2023.1.26 1.promiscuous adj.混杂的;杂乱的;滥交的 pro(往前)misc(mix):在混乱上勇往直前 2.susceptible adj.易受影响(或伤害等);敏感;过敏;感情丰富的;善感的 accept(抓)接受 be susceptible to对…敏感 She isn…

【数据结构】7.3 树表的查找

文章目录7.3.1 二叉排序树1. 二叉排序树的定义2. 二叉排序树的查找二叉排序树算法二叉排序树算法分析3. 二叉排序树的插入4. 二叉排序树的生成5. 二叉排序树的删除7.3.2 平衡二叉树1. 平衡二叉树的定义2. 平衡二叉树的平衡调整方法LL型调整RR型调整LR型调整RL型调整3. 构造平衡…

C#手动操作DataGridView之------使用各种数据源填充表格实例

C#中的表格控件只有一个,那就是datagridview,不像QT中可以用QTableview,QTableWidget。新手拿到datagridview的第一个问题就是数据从哪里来?难道从设计器中一个个手动输入,到时候要变怎办?所以,…

Python3 PIL处理任意尺寸图片为1920*1080 图片模糊 虚化 图片合并居中叠加

各位好,我是宋哈哈,很久没更新文章了,其实这篇代码是我在年前已经写好了。代码呢,也比较冷门适合人很少。仅仅对会AE , PR 视频剪辑, 又要会 python 的人,而且在公司领导又要你来做相册视频,在公…

MSBuild 命令行编译Delphi

为了构建项目,IDE现在使用MSBuild而不是以前的内部生成系统。IDE中的build、compile和make命令调用Microsoft的新生成引擎:MSBuild,它提供了全面的依赖性检查。MSBuild项目文件基于XML,包含描述项目的特定项、属性、任务和目标的部…

[GWCTF 2019]枯燥的抽奖

目录 信息收集 知识回顾 解题思路 信息收集 查看源码&#xff0c;发现check.php <?php #这不是抽奖程序的源代码&#xff01;不许看&#xff01; header("Content-Type: text/html;charsetutf-8"); session_start(); if(!isset($_SESSION[seed])){ $_SESSIO…

html表格

1.基本标签 标签名说明table表示整体&#xff0c;用于包裹多个trtr表格每行&#xff0c;用于包裹tdtd表格单元格&#xff0c;用于包裹内容 注意点&#xff1a; 表格嵌套关系&#xff1a;table>tr>td 表格table的常见属性&#xff1a; 修饰table属性的标签 需要写道tab…

【FA-GAN:超分辨率MRI图像】

FA-GAN: Fused attentive generative adversarial networks for MRI image super-resolution &#xff08;FA-GAN&#xff1a;融合注意生成对抗网络的MRI图像超分辨率&#xff09; 高分辨率磁共振图像可以提供细粒度的解剖信息&#xff0c;但是获取这样的数据需要长的扫描时间…

UVA11426 - GCD - Extreme (II)(数论,欧拉函数)

题目链接&#xff1a;GCD - Extreme (II) - UVA 11426 - Virtual Judge (vjudge.net)​​​​​ 题意 给一个数N&#xff0c;求&#xff1a; ​​​​​​​ 其中&#xff0c;多组输入&#xff0c;输入以0结束&#xff0c;保证答案在long long范围内。 思路 很好的一道题…