Sort reference links
This commit is contained in:
parent
da449c4ca4
commit
dc702e1ff2
120
README.md
120
README.md
|
@ -1,20 +1,20 @@
|
|||
# Embassy RP Skeleton
|
||||
The **Embassy RP Skeleton** repository is a project template intended as a starting point for developing your own
|
||||
firmware for the [`rp2040`][1] based on the [`embassy`][2] asynchronous embedded development framework for [Rust][12].
|
||||
firmware for the [`rp2040`][1] based on the [`embassy`][2] asynchronous embedded development framework for [Rust][3].
|
||||
|
||||
It includes all of the [`knurling-rs`][3] tooling ([`defmt`][4], [`defmt-rtt`][4], [`panic-probe`][4], [`flip-link`][5],
|
||||
[`probe-run`][6]) to enhance the embedded development process.
|
||||
It includes all of the [`knurling-rs`][4] tooling ([`defmt`][5], [`defmt-rtt`][5], [`panic-probe`][5], [`flip-link`][6],
|
||||
[`probe-run`][7]) to enhance the embedded development process.
|
||||
|
||||
The default [`cargo`][7] runner is configured as [`probe-run`][6], so you can build, flash and run your firmware _with_
|
||||
The default [`cargo`][8] runner is configured as [`probe-run`][7], so you can build, flash and run your firmware _with_
|
||||
output from the device via a CMSIS-DAP compatible debug probe with the command:
|
||||
|
||||
```shell
|
||||
$ cargo run
|
||||
```
|
||||
|
||||
If you want to use a different runner with your debugger (e.g., [`cargo-embed`][8], [`probe-rs-debugger`][9], etc.) or
|
||||
if you _aren't_ using a debugger and want the runner to flash the firmware via USB (e.g., [`elf2uf2-rs`][10],
|
||||
[`picotool`][11], etc.) then see: [Alternative Runners][17]
|
||||
If you want to use a different runner with your debugger (e.g., [`cargo-embed`][9], [`probe-rs-debugger`][10], etc.) or
|
||||
if you _aren't_ using a debugger and want the runner to flash the firmware via USB (e.g., [`elf2uf2-rs`][11],
|
||||
[`picotool`][12], etc.) then see: [Alternative Runners][13]
|
||||
|
||||
## Table of Contents
|
||||
1. [Requirements](#requirements)
|
||||
|
@ -29,23 +29,23 @@ if you _aren't_ using a debugger and want the runner to flash the firmware via U
|
|||
* Ubuntu
|
||||
* Raspberry Pi Pico
|
||||
* CMSIS-DAP Debug Probe (*or* another Raspberry Pi Pico)
|
||||
* Rust Toolchain ([`cargo`][7], [`rustup`][13])
|
||||
* Rust Toolchain ([`cargo`][8], [`rustup`][14])
|
||||
|
||||
## Setup
|
||||
### System Setup
|
||||
1. Install [Rust][12] and [`cargo`][7] using [`rustup`][13]
|
||||
1. Install [Rust][3] and [`cargo`][8] using [`rustup`][14]
|
||||
```shell
|
||||
# Install `rustup` for Rust Toolchain
|
||||
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||
```
|
||||
|
||||
2. Install Cortex-M Target Toolchain Support for [`Rust`][12]
|
||||
2. Install Cortex-M Target Toolchain Support for [`Rust`][3]
|
||||
```shell
|
||||
# Install `thumbv6m-none-eabi` Target for `rp2040`
|
||||
$ rustup target add thumbv6m-none-eabi
|
||||
```
|
||||
|
||||
3. Install [`probe-run`][6]
|
||||
3. Install [`probe-run`][7]
|
||||
```shell
|
||||
# Install Linux Dependencies
|
||||
$ sudo apt install -y libusb-1.0-0-dev libudev-dev
|
||||
|
@ -62,7 +62,7 @@ $ sudo udevadm trigger
|
|||
$ sudo usermod -aG plugdev $USER
|
||||
```
|
||||
|
||||
4. Install [`flip-link`][5]
|
||||
4. Install [`flip-link`][6]
|
||||
```shell
|
||||
# Install `flip-link`
|
||||
$ $ cargo install flip-link
|
||||
|
@ -71,21 +71,21 @@ $ $ cargo install flip-link
|
|||
### Probe Setup
|
||||
You can use a Raspberry Pi Pico as a CMSIS-DAP compatible debug probe.
|
||||
|
||||
1. Download CMSIS-DAP debugger firmware [`DapperMime`][14] for the Raspberry Pi Pico
|
||||
1. Download CMSIS-DAP debugger firmware [`DapperMime`][15] for the Raspberry Pi Pico
|
||||
2. Boot the Raspberry Pi Pico in "Bootloader Mode" by holding the _BOOTSEL_ button while plugging it in
|
||||
3. Open the mounted Raspberry Pi Pico storage device
|
||||
4. Copy the `raspberry_pi_pico-DapperMime.uf2` onto the Raspberry Pi Pico
|
||||
5. Firmware will be flashed to the Raspberry Pi Pico and it will disconnect
|
||||
|
||||
Any CMSIS-DAP compatible debug probe can be used with [`probe-run`][6]. For a short list of alternative compatible debug
|
||||
probes see: [Alternative Debug Probes][15].
|
||||
Any CMSIS-DAP compatible debug probe can be used with [`probe-run`][7]. For a short list of alternative compatible debug
|
||||
probes see: [Alternative Debug Probes][16].
|
||||
|
||||
### Hardware Setup
|
||||
#### Connecting the Raspberry Pi Pico Debug Probe
|
||||
The diagram below shows the wiring loom between Raspberry Pi Pico A (left) and Raspberry Pi Pico B (right), configuring
|
||||
Raspberry Pi Pico A as a debug probe.
|
||||
|
||||
![Raspberry Pi Pico Debug Probe Wiring][18]
|
||||
![Raspberry Pi Pico Debug Probe Wiring][17]
|
||||
|
||||
The connections shown in the diagram above are listed below.
|
||||
|
||||
|
@ -99,7 +99,7 @@ Pico A VSYS -> Pico B VSYS
|
|||
```
|
||||
|
||||
For more information on the wiring loom and its connections, see:
|
||||
[Getting Started with Raspberry Pi Pico > Appendix A > Picoprobe Wiring][16]
|
||||
[Getting Started with Raspberry Pi Pico > Appendix A > Picoprobe Wiring][18]
|
||||
|
||||
#### Raspberry Pi Pico Dev Board
|
||||
Alternatively, a custom printed Raspberry Pi Pico Dev Board can be used to enhance development, which includes:
|
||||
|
@ -127,7 +127,7 @@ To run the firmware in release mode:
|
|||
$ cargo run --release
|
||||
```
|
||||
|
||||
To change the default [`defmt`][4] log level, see `.cargo/config.toml`:
|
||||
To change the default [`defmt`][5] log level, see `.cargo/config.toml`:
|
||||
```toml
|
||||
[env]
|
||||
DEFMT_LOG = "trace"
|
||||
|
@ -142,58 +142,58 @@ $ DEFMT_LOG=error cargo run --release
|
|||
## Appendix
|
||||
#### Documentation
|
||||
* [Raspberry Pi Pico][1]
|
||||
* [Rust][12]
|
||||
* [Cargo][7]
|
||||
* [Rustup][13]
|
||||
* [Rust][3]
|
||||
* [Cargo][8]
|
||||
* [Rustup][14]
|
||||
* [Embassy][2]
|
||||
* [Knurling-RS `defmt`][4]
|
||||
* [Knurling-RS `flip-link`][5]
|
||||
* [Knurling-RS `probe-run`][6]
|
||||
* [Probe-RS `cargo-embed`][8]
|
||||
* [Probe-RS `probe-rs-debugger`][9]
|
||||
* [Raspberry Pi Pico `elf2uf2`][10]
|
||||
* [Raspberry Pi Pico `picotool`][11]
|
||||
* [CMSIS-DAP Firmware `DapperMime`][14]
|
||||
* [Knurling-RS `defmt`][5]
|
||||
* [Knurling-RS `flip-link`][6]
|
||||
* [Knurling-RS `probe-run`][7]
|
||||
* [Probe-RS `cargo-embed`][9]
|
||||
* [Probe-RS `probe-rs-debugger`][10]
|
||||
* [Raspberry Pi Pico `elf2uf2`][11]
|
||||
* [Raspberry Pi Pico `picotool`][12]
|
||||
* [CMSIS-DAP Firmware `DapperMime`][15]
|
||||
|
||||
#### Resources
|
||||
* [Rust Embedded Book][25]
|
||||
* [Awesome Embedded Rust][21]
|
||||
* [Getting Started with Raspberry Pi Pico][27]
|
||||
* [Rust Embedded Book][21]
|
||||
* [Awesome Embedded Rust][22]
|
||||
* [Getting Started with Raspberry Pi Pico][23]
|
||||
* [Ferrous Systems Embedded Training][24]
|
||||
* [Ferrous Systems Embedded Teaching Material][26]
|
||||
* [RP-RS App Template][22]
|
||||
* [RP-RS Alternative Debug Probes][15]
|
||||
* [RP-RS Alternative Runners][17]
|
||||
* [Knurling-RS App Template][3]
|
||||
* [Ferrous Systems Embedded Teaching Material][25]
|
||||
* [RP-RS App Template][26]
|
||||
* [RP-RS Alternative Debug Probes][16]
|
||||
* [RP-RS Alternative Runners][13]
|
||||
* [Knurling-RS App Template][4]
|
||||
* [Raspberry Pi Pico Dev Board][20]
|
||||
* [Probe-RS Probe Setup][23]
|
||||
* [Probe-RS Probe Setup][27]
|
||||
|
||||
|
||||
<!-- Reference -->
|
||||
[1]: https://www.raspberrypi.com/documentation/microcontrollers/rp2040.html
|
||||
[2]: https://embassy.dev/dev/index.html
|
||||
[3]: https://github.com/knurling-rs/app-template
|
||||
[4]: https://github.com/knurling-rs/defmt
|
||||
[5]: https://github.com/knurling-rs/flip-link
|
||||
[6]: https://github.com/knurling-rs/probe-run
|
||||
[7]: https://doc.rust-lang.org/cargo/
|
||||
[8]: https://github.com/probe-rs/cargo-embed
|
||||
[9]: https://github.com/probe-rs/vscode
|
||||
[10]: https://github.com/JoNil/elf2uf2-rs
|
||||
[11]: https://github.com/raspberrypi/picotool
|
||||
[12]: https://www.rust-lang.org/
|
||||
[13]: https://rustup.rs/
|
||||
[14]: https://github.com/majbthrd/DapperMime
|
||||
[15]: https://github.com/rp-rs/rp2040-project-template/blob/main/debug_probes.md
|
||||
[16]: https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf#%5B%7B%22num%22%3A64%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C115%2C696.992%2Cnull%5D
|
||||
[17]: https://github.com/rp-rs/rp2040-project-template#alternative-runners
|
||||
[18]: https://user-images.githubusercontent.com/12226419/134785445-5f651d5a-eda9-4e94-8860-d2ef619dc27a.png
|
||||
[3]: https://www.rust-lang.org/
|
||||
[4]: https://github.com/knurling-rs/app-template
|
||||
[5]: https://github.com/knurling-rs/defmt
|
||||
[6]: https://github.com/knurling-rs/flip-link
|
||||
[7]: https://github.com/knurling-rs/probe-run
|
||||
[8]: https://doc.rust-lang.org/cargo/
|
||||
[9]: https://github.com/probe-rs/cargo-embed
|
||||
[10]: https://github.com/probe-rs/vscode
|
||||
[11]: https://github.com/JoNil/elf2uf2-rs
|
||||
[12]: https://github.com/raspberrypi/picotool
|
||||
[13]: https://github.com/rp-rs/rp2040-project-template#alternative-runners
|
||||
[14]: https://rustup.rs/
|
||||
[15]: https://github.com/majbthrd/DapperMime
|
||||
[16]: https://github.com/rp-rs/rp2040-project-template/blob/main/debug_probes.md
|
||||
[17]: https://user-images.githubusercontent.com/12226419/134785445-5f651d5a-eda9-4e94-8860-d2ef619dc27a.png
|
||||
[18]: https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf#%5B%7B%22num%22%3A64%2C%22gen%22%3A0%7D%2C%7B%22name%22%3A%22XYZ%22%7D%2C115%2C696.992%2Cnull%5D
|
||||
[19]: https://timsavage.github.io/rpi-pico-devboard/assets/images/devboard-debugging.jpg
|
||||
[20]: https://timsavage.github.io/rpi-pico-devboard/
|
||||
[21]: https://github.com/rust-embedded/awesome-embedded-rust
|
||||
[22]: https://github.com/rp-rs/rp2040-project-template
|
||||
[23]: https://probe.rs/docs/getting-started/probe-setup/
|
||||
[21]: https://docs.rust-embedded.org/book/
|
||||
[22]: https://github.com/rust-embedded/awesome-embedded-rust
|
||||
[23]: https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf
|
||||
[24]: https://embedded-trainings.ferrous-systems.com/
|
||||
[25]: https://docs.rust-embedded.org/book/
|
||||
[26]: https://github.com/ferrous-systems/teaching-material
|
||||
[27]: https://datasheets.raspberrypi.com/pico/getting-started-with-pico.pdf
|
||||
[25]: https://github.com/ferrous-systems/teaching-material
|
||||
[26]: https://github.com/rp-rs/rp2040-project-template
|
||||
[27]: https://probe.rs/docs/getting-started/probe-setup/
|
||||
|
|
Loading…
Reference in a new issue