Skip to content

Commit 05e6c78

Browse files
committed
Prefer RP235x Family over RP2350, unless you're talking about a specific chip
1 parent eea550b commit 05e6c78

File tree

5 files changed

+26
-22
lines changed

5 files changed

+26
-22
lines changed

README.md

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
<p align="center">
1111
Rust support for the Raspberry Pi family of microcontrollers
1212
<br />
13-
<strong>Explore the API docs for <a href="https://docs.rs/rp2040-hal">RP2040</a> or <a href="https://docs.rs/rp235x-hal">RP2350</a></strong>
13+
<strong>Explore the API docs for <a href="https://docs.rs/rp2040-hal">RP2040</a> or <a href="https://docs.rs/rp235x-hal">RP235x</a></strong>
1414
<br />
1515
<br />
1616
<a href="https://github.com/rp-rs/rp-hal-boards/tree/main/boards/rp-pico/examples">View Demos</a>
@@ -44,11 +44,11 @@ So, you want to program your new Raspberry Pi microcontroller, using the
4444
Rust programming language. You've come to the right place!
4545

4646
This repository is `rp-hal` - a collection of high-level drivers for the
47-
Raspberry Pi RP2040 and RP2350 microcontrollers.
47+
Raspberry Pi RP2040 and RP235x microcontrollers.
4848

4949
If you want to write an application for the RP2040, check out our [RP2040
5050
Project Template](https://github.com/rp-rs/rp2040-project-template). If you
51-
want to use the RP2350 family, check out the [RP2350 Project
51+
want to use the RP235x family, check out the [RP235x Project
5252
Template](https://github.com/rp-rs/rp235x-project-template) instead.
5353

5454
If you want to write code that uses the Raspberry Pi PIO State Machines,
@@ -89,7 +89,7 @@ binary][picotool-releases] for your system.
8989
## Packages
9090

9191
There is one _Hardware Abstraction Layer_ (or HAL) crate for the RP2040, and
92-
another for the RP2350. We also have a common HAL, and various examples.
92+
another for the RP235x. We also have a common HAL, and various examples.
9393

9494
### [rp2040-hal] - The HAL for the [Raspberry Pi RP2040]
9595

@@ -120,15 +120,15 @@ RP2040. We have examples for the following (plus many more):
120120
* Using PIO
121121
* Sleeping and waiting on the RTC
122122

123-
### [rp235x-hal] - The HAL for the [Raspberry Pi RP2350]
123+
### [rp235x-hal] - The HAL for the [Raspberry Pi RP235x]
124124

125125
You should include this crate in your project if you want to write a driver or
126-
library that runs on the [Raspberry Pi RP2350], or if you are writing a Board
126+
library that runs on the [Raspberry Pi RP235x], or if you are writing a Board
127127
Support Package (see later on). We call it the 'rp235x-hal' because it
128-
supports the RP2350A, the RP2350B and variants which include on-board Flash
128+
supports the RP2350A, the RP2350B, and variants which include on-board Flash
129129
such as the RP2354A and RP2354B.
130130

131-
The crate provides high-level drivers for the RP2350's internal peripherals,
131+
The crate provides high-level drivers for the RP235x's internal peripherals,
132132
such as the SPI Controller and the I²C Controller. It doesn't know anything
133133
about how your particular board is wired up (such as what each IO pin of the
134134
RP2350 is connected to).
@@ -138,7 +138,10 @@ There are examples in this crate to show how to use various peripherals
138138
particular board.
139139

140140
This HAL fully supports the RP2350A, and has partial support for the extra
141-
pins on the RP2350B.
141+
pins on the RP2350B. The versions with on-board flash (like the RP2354A)
142+
are programmatically exactly the same as the ones without flash - the flash
143+
is in-package, but electrically connected just like an external QSPI flash
144+
chip - and so no additional support is required.
142145

143146
### [rp235x-hal-examples] - Examples for using [rp235x-hal]
144147

@@ -181,7 +184,7 @@ because there were so many of them.
181184
[rp-binary-info]: https://github.com/rp-rs/rp-hal/tree/main/rp-binary-info
182185
[rp-hal-common]: https://github.com/rp-rs/rp-hal/tree/main/rp-hal-common
183186
[Raspberry Pi RP2040]: https://www.raspberrypi.org/products/rp2040/
184-
[Raspberry Pi RP2350]: https://www.raspberrypi.org/products/rp2350/
187+
[Raspberry Pi RP235x]: https://www.raspberrypi.org/products/rp2350/
185188
[BSPs]: https://github.com/rp-rs/rp-hal-boards/
186189

187190
<!-- PROGRAMMING -->
@@ -212,7 +215,7 @@ Each core in the RP2350 can optionally be swapped out at run-time for a RISC-V
212215
Hazard3 processor core. Any Rust code for the RP2350 in RISC-V mode should be
213216
compiled with the target *`riscv32imac-unknown-none-elf`*.
214217

215-
More details can be found in the [RP2040 Project Template] and the [RP2350
218+
More details can be found in the [RP2040 Project Template] and the [RP235x
216219
Project Template].
217220

218221
### Linker flags
@@ -231,7 +234,7 @@ More detailed information on how the linker flags work can be found in
231234
[the `cortex-m-rt` docs](https://docs.rs/cortex-m-rt/latest/cortex_m_rt/).
232235

233236
In most cases, it should be sufficient to use the example files from the
234-
[RP2040 Project Template] or [RP2350 Project Template].
237+
[RP2040 Project Template] or [RP235x Project Template].
235238

236239
### Loading over USB with picotool
237240

@@ -322,7 +325,7 @@ connected to the RP2040.
322325
cargo run --release --example pwm_blink
323326
```
324327
[RP2040 Project Template]: https://github.com/rp-rs/rp2040-project-template
325-
[RP2350 Project Template]: https://github.com/rp-rs/rp235x-project-template
328+
[RP235x Project Template]: https://github.com/rp-rs/rp235x-project-template
326329

327330
<!-- ROADMAP -->
328331
## Roadmap

on-target-tests/memory_rp235x.x

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MEMORY {
22
/*
3-
* The RP2350 has either external or internal flash.
3+
* The RP235x has either external or internal flash.
44
*
55
* 2 MiB is a safe default here, although a Pico 2 has 4 MiB.
66
*/

rp-hal-common/src/lib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
//! Common HAL code
22
//!
3-
//! This library contains types and functions which are shared between the
4-
//! RP2040 HAL and the RP235x HAL.
3+
//! This library contains types and functions which are shared between
4+
//! rp2040-hal and the rp235x-hal.
55
//!
66
//! You shouldn't include anything here which requires either the `cortex-m`
77
//! crate, or a PAC.

rp235x-hal/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
authors = ["The rp-rs Developers"]
33
categories = ["embedded", "hardware-support", "no-std", "no-std::no-alloc"]
4-
description = "A Rust Embeded-HAL impl for the RP2350 microcontroller"
4+
description = "A Rust Embedded-HAL impl for the RP235x microcontroller family"
55
edition = "2021"
66
homepage = "https://github.com/rp-rs/rp-hal"
77
keywords = ["embedded", "hal", "raspberry-pi", "rp2350", "embedded-hal"]

rp235x-hal/README.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<h3 align="center">rp-hal</h3>
99

1010
<p align="center">
11-
High-level Rust drivers for the Raspberry Pi RP2350 Microcontroller
11+
High-level Rust drivers for the Raspberry Pi RP235x Microcontroller Family
1212
<br />
1313
<a href="https://docs.rs/rp235x-hal"><strong>Explore the API docs »</strong></a>
1414
<br />
@@ -41,10 +41,11 @@
4141
## Introduction
4242

4343
This is the `rp235x-hal` package - a library crate of high-level Rust drivers
44-
for the Raspberry Pi RP2350 microcontroller, along with a collection of
45-
non-board specific example programs for you to study. You should use this crate
46-
in your application if you want to write code for the RP2350 microcontroller.
47-
The *HAL* in the name standards for *Hardware Abstraction Layer*, and comes from
44+
for the Raspberry Pi RP235x microcontroller family, along with a collection of
45+
non-board specific example programs for you to study. You should use this
46+
crate in your application if you want to write code for an RP235x
47+
microcontroller (including the RP2350A, RP2350B, RP2354A and RP2354B). The
48+
*HAL* in the name standards for *Hardware Abstraction Layer*, and comes from
4849
the fact that many of the drivers included implement the generic
4950
hardware-abstraction interfaces defined in the Rust Embedded Working Group's
5051
[embedded-hal](https://github.com/rust-embedded/embedded-hal) crate.

0 commit comments

Comments
 (0)