pico-sdk(零)
项目概述
Raspberry Pi Pico SDK(以下简称 SDK)提供了为 RP 系列微控制器设备(如 Raspberry Pi Pico 或 Raspberry Pi Pico 2)编写 C、C++ 或汇编语言程序所需的头文件、库和构建系统。
SDK 旨在为非嵌入式 C 开发人员和嵌入式 C 开发人员提供他们都熟悉的 API 和编程环境。一次在设备上运行一个程序,并使用传统的 main() 方法启动。支持标准 C/C++ 库以及 C 级库/API,用于访问 RP 系列微控制器的所有硬件,包括 PIO(可编程 IO)。
此外,SDK 还提供更高层级的库,用于处理定时器、同步、Wi-Fi 和蓝牙网络、USB 和多核编程。这些库足够全面,应用程序很少需要直接访问硬件寄存器。但是,如果确实需要或更喜欢访问原始硬件寄存器,还可以在 SDK 中找到完整且完全注释的寄存器定义头。无需在数据表中查找地址。
SDK 可用于构建任何内容,从简单的应用程序、成熟的运行时环境(如 MicroPython1)到低级软件(如 RP 系列微控制器的片上 bootrom 本身)。
整个 SDK 的设计目标是短小精悍。
未发布到 SDK 中的其他库/API 可以在 pico-extras 中找到。
license
-
BSD-3-Clause
- BSD - 3 - Clause license 是伯克利软件分发(BSD)许可证的一种。它是一种宽松的开源软件许可证,允许用户自由地使用、修改和分发软件,只要保留版权声明和许可声明即可。
- 使用该软件开发的应用程序可作为商业产品出售。
- 对该软件修改后,可以将修改后的版本分享给其他开发者,其他开发者可以继续基于这个版本进行开发。
- 使用该软件的产品不需要衍生使用该协议,可使用其他任何协议。
相关文档
- Getting Started with the Raspberry Pi Pico-Series:有关如何设置硬件、IDE/环境以及如何为 Raspberry Pi Pico 和其他基于 RP 系列微控制器的设备构建和调试软件的信息。
- Connecting to the Internet with Raspberry Pi Pico W:了解有关为 Raspberry Pi Pico W 编写连接到 Internet 的应用程序的更多信息。
- Raspberry Pi Pico-Series C/C++ SDK:了解有关使用 SDK 进行编程的更多信息,探索更多高级功能,以及完整的基于 PDF 的 API 文档。
- Online Raspberry Pi Pico SDK API docs:有关基于 HTML 的 API 文档。
依赖三方库
-
CYW43xx WiFi/BT SoC driver:CYW43xx3 WiFi/BT SoC的驱动程序。
-
lwIP:lwIP 是 TCP/IP 协议栈的一个小型独立实现。lwIP TCP/IP 实现的重点是减少 RAM 使用量,同时仍具有全功能的 TCP。这使得 lwIP 适用于具有数十千字节可用 RAM 和大约 40 千字节代码 ROM 空间的嵌入式系统。lwIP 最初由瑞典计算机科学研究所(SICS)的计算机与网络架构(CNA)实验室的 Adam Dunkels 开发,现在由全球开发者网络进行开发和维护。
-
Mbed TLS:Mbed TLS 是一个 C 库,用于实现加密原语4、X.509 证书5操作以及 SSL/TLS6 和 DTLS7 协议。其代码占用空间小,使其适用于嵌入式系统。
-
BTstack:BTstack 是 BlueKitchen8 的官方蓝牙技术栈实现。它非常适合小型、资源受限的设备,例如 8 位或 16 位嵌入式系统,因为它具有高度可配置性,并且具有超小的内存占用。
链接
MicroPython 是一种精简高效的 Python 编程语言实现,专门为微控制器和嵌入式系统设计。它可以在资源受限的设备上运行,如 Raspberry Pi Pico 等。MicroPython 提供了一种方便的方式,让开发者能够使用 Python 语言进行嵌入式开发,而无需深入了解底层硬件细节。它通常包括 Python 解释器和一系列针对特定硬件的库,以便开发者能够轻松地控制硬件外设、进行通信和实现各种应用。 ↩︎
Adafruit 是一家知名的开源硬件公司。成立于 2005 年,创始人是 Limor Fried(在网络上以 “Ladyada” 为人熟知),她毕业于麻省理工学院(MIT),是一名电子电气工程师和黑客。Limor Fried 在开源硬件社区很有影响力,曾被《Entrepreneur》杂志提名为 2012 年的年度创业者,也是首位登上《Wired》杂志封面的女性工程师。 ↩︎
加密原语。指的是密码学中最基本的操作和算法,如加密、解密、哈希函数、数字签名等。这些基本操作是构建更复杂密码学系统的基础。例如,在一个加密通信系统中,可能会使用多种加密原语来确保通信的安全性。 ↩︎
X.509 证书是一种数字证书标准,用于在计算机网络中进行身份验证和安全通信。它包含了证书持有者的身份信息、公钥以及证书颁发机构的数字签名等内容。X.509 证书在 SSL/TLS 和其他安全协议中被广泛使用,以确保通信双方的身份真实性和数据完整性。例如,在网站的 HTTPS 连接中,服务器会向客户端提供 X.509 证书,客户端通过验证证书的有效性来确认服务器的身份。 ↩︎
SSL(Secure Sockets Layer,安全套接层)和 TLS(Transport Layer Security,传输层安全)是为网络通信提供安全及数据完整性的一种安全协议。它们在互联网上广泛用于加密客户端和服务器之间的通信,例如在网页浏览、电子邮件传输等场景中,确保数据在传输过程中不被窃取、篡改或伪造。 ↩︎
DTLS(Datagram Transport Layer Security)即数据包传输层安全性协议。它是一种基于 UDP 的通信协议,用于在不可靠的网络上提供安全的数据传输。DTLS 在功能上类似于 TLS(Transport Layer Security),但专门针对数据包传输进行了优化,以适应诸如实时通信等对延迟敏感的应用场景。在本文中,Mbed TLS 支持 DTLS 协议。 ↩︎
BlueKitchen GmbH 是一家专注于蓝牙技术相关软件开发的公司,总部位于瑞士苏黎世,公司处于活跃运营状态。其团队规模较小,但在蓝牙技术领域具有较高的专业性和影响力。 ↩︎
英飞凌(英文名:Infineon,全称:英飞凌科技股份公司)是一家全球领先的半导体公司。前身是德国西门子集团的半导体部门,1995 年正式进入中国市场,1996 年在无锡市建立第一家企业。1999 年 4 月 1 日,英飞凌在德国慕尼黑正式成立,并于 2000 年上市(法兰克福证券交易所股票代码:IFX,美国柜台交易市场股票代码:IFNNY)。2002 年后,其中文名称由亿恒科技更名为英飞凌科技。2006 年,英飞凌内存部门独立成为全资子公司奇梦达。2019 年,英飞凌宣布收购美国赛普拉斯公司,2020 年 4 月完成收购,收购完成后成为全球十大半导体制造商之一,跃居成为全球第一的车用半导体供应商。 ↩︎