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/rp2350 -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,14 +44,14 @@ So, you want to program your new Raspberry Pi microcontroller, using the
4444Rust programming language. You've come to the right place!
4545
4646This 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
4949If you want to write an application for the RP2040, check out our [ RP2040
5050Project 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
5252Template] ( https://github.com/rp-rs/rp235x-project-template ) instead.
5353
54- If you want to write code that uses the Raspberry Silicon PIO State Machines,
54+ If you want to write code that uses the Raspberry Pi PIO State Machines,
5555check out [ pio-rs] ( https://github.com/rp-rs/pio-rs ) . You can even compile PIO
5656programs at run-time, on the MCU itself!
5757
@@ -89,7 +89,7 @@ binary][picotool-releases] for your system.
8989## Packages
9090
9191There 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
125125You 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
127127Support 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
129129such 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,
132132such as the SPI Controller and the I²C Controller. It doesn't know anything
133133about how your particular board is wired up (such as what each IO pin of the
134134RP2350 is connected to).
@@ -138,7 +138,10 @@ There are examples in this crate to show how to use various peripherals
138138particular board.
139139
140140This 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,17 +184,17 @@ 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 -->
188191## Programming
189192
190- Rust generates standard Arm ELF files, which you can load onto your Raspberry Pi
191- Silicon device with your favourite Arm flashing/debugging tool. In addition, the
192- RP2040 contains a ROM bootloader which appears as a Mass Storage Device over USB
193- that accepts UF2 format images. You can use picotool to flash your device over
194- USB, or convert the Arm ELF file to a UF2 format image.
193+ Rust generates standard Arm ELF files, which you can load onto your Raspberry
194+ Pi microcontroller device with your favourite Arm flashing/debugging tool. In
195+ addition, the RP2040 contains a ROM bootloader which appears as a Mass Storage
196+ Device over USB that accepts UF2 format images. You can use picotool to flash
197+ your device over USB, or convert the Arm ELF file to a UF2 format image.
195198
196199The RP2040 contains two Cortex-M0+ processors, which execute Thumb-2 encoded
197200Armv6-M instructions. There are no operating-specific features in the binaries
@@ -212,7 +215,7 @@ Each core in the RP2350 can optionally be swapped out at run-time for a RISC-V
212215Hazard3 processor core. Any Rust code for the RP2350 in RISC-V mode should be
213216compiled 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
216219Project 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
233236In 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.
322325cargo 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
0 commit comments