You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+32-18Lines changed: 32 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,22 +1,26 @@
1
-
# Raspberry Pi RP2350 Pico SDK Examples - Early Access
1
+
# Raspberry Pi Pico SDK Examples
2
2
3
-
## RP2350 Instructions
3
+
## Getting started
4
4
5
-
Everything below this section is from the stock pico-examples, so ignore URLs etc., but generally instructions are the same.
5
+
See [Getting Started with the Raspberry Pi Pico](https://rptl.io/pico-get-started) and the README in the [pico-sdk](https://github.com/raspberrypi/pico-sdk) for information
6
+
on getting up and running.
6
7
7
-
The Pico SDK default continues to be to build for RP2040 (PICO_PLATFORM=rp2040), so to build for RP2350, you need to pass
8
-
`-DPICO_PLATFORM=rp2350` to CMake (or `-DPICO_PLATFORM=rp2350-riscv` for RISC-V).
8
+
##### Notes on different boards and platforms (RP2040 / RP2350)
9
9
10
-
Most, but not all examples, currently work on RP2350 however you should be able to do a full build with any of the above platforms (PICO_PLATFORM=host however currently fails on some examples)
10
+
The majority of examples are applicable to both RP2040 and RP2350 based boards,
11
+
however certain examples that use chip-specific functionality will only build on that platform.
12
+
Similarly, Wi-Fi and Bluetooth examples will only build on a board that includes Wi-Fi and Bluetooth support.
11
13
12
-
For RISC-V compilation, you should take a compiler from here: https://www.embecosm.com/resources/tool-chain-downloads/#riscv-stable
14
+
Platform and board information are passed to the CMake build via the `PICO_PLATFORM` and `PICO_BOARD` variables.
13
15
14
-
# Original pico-examples docs
16
+
By default, the Pico SDK targets builds for RP2040 (`PICO_PLATFORM=rp2040`). To build for RP2350 instead, pass
17
+
`-DPICO_PLATFORM=rp2350` to CMake (or `-DPICO_PLATFORM=rp2350-riscv` for RISC-V). Alternatively, in many cases, you can rely
18
+
on the board configuration to set the platform for you. For example, passing `-DPICO_BOARD=pico2` will automatically select `PICO_PLATFORM=rp2350`.
15
19
16
-
## Getting started
20
+
For more information see the "Platform and Board Configuration" chapter of
21
+
the [Raspberry Pi Pico-series C/C++ SDK](https://rptl.io/pico-c-sdk) book.
17
22
18
-
See [Getting Started with the Raspberry Pi Pico](https://rptl.io/pico-get-started) and the README in the [pico-sdk](https://github.com/raspberrypi/pico-sdk) for information
19
-
on getting up and running.
23
+
Information on which examples are not being built is displayed during the CMake configuration step.
20
24
21
25
### First Examples
22
26
@@ -47,7 +51,7 @@ App|Description
47
51
[blink_any](binary_info/blink_any) | Uses `bi_ptr` variables to create a configurable blink binary - see the separate [README](binary_info/README.md) for more details
48
52
[hello_anything](binary_info/hello_anything) | Uses `bi_ptr` variables to create a configurable hello_world binary - see the separate [README](binary_info/README.md) for more details
49
53
50
-
### Bootloaders (RP2350 Only)
54
+
### Bootloaders (RP235x Only)
51
55
App|Description
52
56
---|---
53
57
[enc_bootloader](bootloaders/encrypted) | A bootloader which decrypts binaries from flash into SRAM. See the separate [README](bootloaders/encrypted/README.md) for more information
@@ -67,7 +71,7 @@ App|Description
67
71
---|---
68
72
[build_variants](cmake/build_variants) | Builds two version of the same app with different configurations
69
73
70
-
### DCP
74
+
### DCP (RP235x Only)
71
75
72
76
App|Description
73
77
---|---
@@ -82,11 +86,11 @@ App|Description
82
86
[channel_irq](dma/channel_irq) | Use an IRQ handler to reconfigure a DMA channel, in order to continuously drive data through a PIO state machine.
83
87
[sniff_crc](dma/sniff_crc) | Use the DMA engine's 'sniff' capability to calculate a CRC32 on a data buffer.
84
88
85
-
### HSTX
89
+
### HSTX (RP235x Only)
86
90
87
91
App|Description
88
92
---|---
89
-
[dvi_out_hstx_encoder](dvi_out_hstx_encoder)`RP2350`| Use the HSTX to output a DVI signal with 3:3:2 RGB
93
+
[dvi_out_hstx_encoder](hstx/dvi_out_hstx_encoder) | Use the HSTX to output a DVI signal with 3:3:2 RGB
90
94
91
95
### Flash
92
96
@@ -157,11 +161,11 @@ App|Description
157
161
[multicore_runner](multicore/multicore_runner) | Set up the second core to accept, and run, any function pointer pushed into its mailbox FIFO. Push in a few pieces of code and get answers back.
158
162
[multicore_doorbell](multicore/multicore_doorbell) | Claims two doorbells for signaling between the cores. Counts how many doorbell IRQs occur on the second core and uses doorbells to coordinate exit.
159
163
160
-
### OTP
164
+
### OTP (RP235x Only)
161
165
162
166
App|Description
163
167
---|---
164
-
[hello_otp](otp/hello_otp) | Demonstrate reading and writing from the OTP on RP2350, along with some of the features of OTP (error correction and page locking).
168
+
[hello_otp](otp/hello_otp) | Demonstrate reading and writing from the OTP on RP235x, along with some of the features of OTP (error correction and page locking).
165
169
166
170
### Pico Board
167
171
@@ -191,6 +195,7 @@ App|Description
191
195
[picow_httpd](pico_w/wifi/httpd) | Runs a LWIP HTTP server test app
192
196
[picow_http_client](pico_w/wifi/http_client) | Demonstrates how to make http and https requests
193
197
[picow_http_client_verify](pico_w/wifi/http_client) | Demonstrates how to make a https request with server authentication
198
+
[picow_mqtt_client](pico_w/wifi/mqtt) | Demonstrates how to implement a MQTT client application
194
199
195
200
#### FreeRTOS examples
196
201
@@ -305,6 +310,7 @@ App|Description
305
310
[uart_tx](pio/uart_tx) | Implement the transmit component of a UART serial port, and print hello world.
306
311
[ws2812](pio/ws2812) | Examples of driving WS2812 addressable RGB LEDs.
307
312
[addition](pio/addition) | Add two integers together using PIO. Only around 8 billion times slower than Cortex-M0+.
313
+
[uart_pio_dma](pio/uart_pio_dma) | Send and receive data from a UART implemented using the PIO and DMA
308
314
309
315
### PWM
310
316
@@ -328,7 +334,7 @@ App|Description
328
334
[rtc_alarm](rtc/rtc_alarm) | Set an alarm on the RTC to trigger an interrupt at a date/time 5 seconds into the future.
329
335
[rtc_alarm_repeat](rtc/rtc_alarm_repeat) | Trigger an RTC interrupt once per minute.
330
336
331
-
### SHA-256
337
+
### SHA-256 (RP235x Only)
332
338
333
339
App|Description
334
340
---|---
@@ -430,6 +436,14 @@ App|Description
430
436
---|---
431
437
[dev_lowlevel](usb/device/dev_lowlevel) | A USB Bulk loopback implemented with direct access to the USB hardware (no TinyUSB)
432
438
439
+
#### Custom CDC with SDK stdio
440
+
441
+
This example demonstrates how to use the TinyUSB CDC device library to create two USB serial ports, and assign one of them to the SDK for stdio.
442
+
443
+
App|Description
444
+
---|---
445
+
[dev_multi_cdc](usb/device/dev_multi_cdc) | A USB CDC device example with two serial ports, one of which is used for stdio. The example exposes two serial ports over USB to the host. The first port is used for stdio, and the second port is used for a simple echo loopback. You can connect to the second port and send some characters, and they will be echoed back on the first port while you will receive a "OK\r\n" message on the second port indicating that the data was received.
446
+
433
447
### USB Host
434
448
435
449
All the USB host examples come directly from the TinyUSB host examples directory [here](https://github.com/hathach/tinyusb/tree/master/examples/host).
0 commit comments