diff options
| author | Dario Nieuwenhuis <[email protected]> | 2025-02-18 22:02:20 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-02-18 22:02:20 +0100 |
| commit | f3b98a8748ad5ef7761dccb2e935cecea9e1e707 (patch) | |
| tree | 69c559a4b4ecbab92e8b2963d8331546862d7de4 /tests | |
| parent | 1780f8479e8c8b5145e56861eb3cb4d57dd80185 (diff) | |
| parent | 52dfefb63242ad49fd126470042411f464fe624d (diff) | |
Merge pull request #3865 from embassy-rs/pio2
rp/pio: update pio-rs, reexport, move instr methods to SM.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/rp/Cargo.toml | 2 | ||||
| -rw-r--r-- | tests/rp/src/bin/pio_irq.rs | 3 | ||||
| -rw-r--r-- | tests/rp/src/bin/pio_multi_load.rs | 16 |
3 files changed, 10 insertions, 11 deletions
diff --git a/tests/rp/Cargo.toml b/tests/rp/Cargo.toml index 5a6a6c75a..3d6cd6ab8 100644 --- a/tests/rp/Cargo.toml +++ b/tests/rp/Cargo.toml | |||
| @@ -33,8 +33,6 @@ embedded-io-async = { version = "0.6.1" } | |||
| 33 | embedded-storage = { version = "0.3" } | 33 | embedded-storage = { version = "0.3" } |
| 34 | static_cell = "2" | 34 | static_cell = "2" |
| 35 | portable-atomic = { version = "1.5", features = ["critical-section"] } | 35 | portable-atomic = { version = "1.5", features = ["critical-section"] } |
| 36 | pio-proc = { git = "https://github.com/rp-rs/pio-rs", rev = "fa586448b0b223217eec8c92c19fe6823dd04cc4" } | ||
| 37 | pio = { git = "https://github.com/rp-rs/pio-rs", rev = "fa586448b0b223217eec8c92c19fe6823dd04cc4" } | ||
| 38 | rand = { version = "0.8.5", default-features = false } | 36 | rand = { version = "0.8.5", default-features = false } |
| 39 | 37 | ||
| 40 | [profile.dev] | 38 | [profile.dev] |
diff --git a/tests/rp/src/bin/pio_irq.rs b/tests/rp/src/bin/pio_irq.rs index 33cdaaac9..1fee6dc2f 100644 --- a/tests/rp/src/bin/pio_irq.rs +++ b/tests/rp/src/bin/pio_irq.rs | |||
| @@ -6,6 +6,7 @@ use defmt::info; | |||
| 6 | use embassy_executor::Spawner; | 6 | use embassy_executor::Spawner; |
| 7 | use embassy_rp::bind_interrupts; | 7 | use embassy_rp::bind_interrupts; |
| 8 | use embassy_rp::peripherals::PIO0; | 8 | use embassy_rp::peripherals::PIO0; |
| 9 | use embassy_rp::pio::program::pio_asm; | ||
| 9 | use embassy_rp::pio::{Config, InterruptHandler, Pio}; | 10 | use embassy_rp::pio::{Config, InterruptHandler, Pio}; |
| 10 | use {defmt_rtt as _, panic_probe as _}; | 11 | use {defmt_rtt as _, panic_probe as _}; |
| 11 | 12 | ||
| @@ -24,7 +25,7 @@ async fn main(_spawner: Spawner) { | |||
| 24 | .. | 25 | .. |
| 25 | } = Pio::new(pio, Irqs); | 26 | } = Pio::new(pio, Irqs); |
| 26 | 27 | ||
| 27 | let prg = pio_proc::pio_asm!( | 28 | let prg = pio_asm!( |
| 28 | "irq set 0", | 29 | "irq set 0", |
| 29 | "irq wait 0", | 30 | "irq wait 0", |
| 30 | "irq set 1", | 31 | "irq set 1", |
diff --git a/tests/rp/src/bin/pio_multi_load.rs b/tests/rp/src/bin/pio_multi_load.rs index cd28f99b6..71321015b 100644 --- a/tests/rp/src/bin/pio_multi_load.rs +++ b/tests/rp/src/bin/pio_multi_load.rs | |||
| @@ -6,6 +6,7 @@ use defmt::info; | |||
| 6 | use embassy_executor::Spawner; | 6 | use embassy_executor::Spawner; |
| 7 | use embassy_rp::bind_interrupts; | 7 | use embassy_rp::bind_interrupts; |
| 8 | use embassy_rp::peripherals::PIO0; | 8 | use embassy_rp::peripherals::PIO0; |
| 9 | use embassy_rp::pio::program::pio_asm; | ||
| 9 | use embassy_rp::pio::{Config, InterruptHandler, LoadError, Pio}; | 10 | use embassy_rp::pio::{Config, InterruptHandler, LoadError, Pio}; |
| 10 | use {defmt_rtt as _, panic_probe as _}; | 11 | use {defmt_rtt as _, panic_probe as _}; |
| 11 | 12 | ||
| @@ -27,7 +28,7 @@ async fn main(_spawner: Spawner) { | |||
| 27 | } = Pio::new(pio, Irqs); | 28 | } = Pio::new(pio, Irqs); |
| 28 | 29 | ||
| 29 | // load with explicit origin works | 30 | // load with explicit origin works |
| 30 | let prg1 = pio_proc::pio_asm!( | 31 | let prg1 = pio_asm!( |
| 31 | ".origin 4" | 32 | ".origin 4" |
| 32 | "nop", | 33 | "nop", |
| 33 | "nop", | 34 | "nop", |
| @@ -46,15 +47,14 @@ async fn main(_spawner: Spawner) { | |||
| 46 | assert_eq!(loaded1.wrap.target, 4); | 47 | assert_eq!(loaded1.wrap.target, 4); |
| 47 | 48 | ||
| 48 | // load without origin chooses a free space | 49 | // load without origin chooses a free space |
| 49 | let prg2 = pio_proc::pio_asm!("nop", "nop", "nop", "nop", "nop", "nop", "nop", "irq 1", "nop", "nop",); | 50 | let prg2 = pio_asm!("nop", "nop", "nop", "nop", "nop", "nop", "nop", "irq 1", "nop", "nop",); |
| 50 | let loaded2 = common.load_program(&prg2.program); | 51 | let loaded2 = common.load_program(&prg2.program); |
| 51 | assert_eq!(loaded2.origin, 14); | 52 | assert_eq!(loaded2.origin, 14); |
| 52 | assert_eq!(loaded2.wrap.source, 23); | 53 | assert_eq!(loaded2.wrap.source, 23); |
| 53 | assert_eq!(loaded2.wrap.target, 14); | 54 | assert_eq!(loaded2.wrap.target, 14); |
| 54 | 55 | ||
| 55 | // wrapping around the end of program space automatically works | 56 | // wrapping around the end of program space automatically works |
| 56 | let prg3 = | 57 | let prg3 = pio_asm!("nop", "nop", "nop", "nop", "nop", "nop", "nop", "nop", "nop", "nop", "nop", "irq 2",); |
| 57 | pio_proc::pio_asm!("nop", "nop", "nop", "nop", "nop", "nop", "nop", "nop", "nop", "nop", "nop", "irq 2",); | ||
| 58 | let loaded3 = common.load_program(&prg3.program); | 58 | let loaded3 = common.load_program(&prg3.program); |
| 59 | assert_eq!(loaded3.origin, 24); | 59 | assert_eq!(loaded3.origin, 24); |
| 60 | assert_eq!(loaded3.wrap.source, 3); | 60 | assert_eq!(loaded3.wrap.source, 3); |
| @@ -88,13 +88,13 @@ async fn main(_spawner: Spawner) { | |||
| 88 | 88 | ||
| 89 | // instruction memory is full now. all loads should fail. | 89 | // instruction memory is full now. all loads should fail. |
| 90 | { | 90 | { |
| 91 | let prg = pio_proc::pio_asm!(".origin 0", "nop"); | 91 | let prg = pio_asm!(".origin 0", "nop"); |
| 92 | match common.try_load_program(&prg.program) { | 92 | match common.try_load_program(&prg.program) { |
| 93 | Err(LoadError::AddressInUse(0)) => (), | 93 | Err(LoadError::AddressInUse(0)) => (), |
| 94 | _ => panic!("program loaded when it shouldn't"), | 94 | _ => panic!("program loaded when it shouldn't"), |
| 95 | }; | 95 | }; |
| 96 | 96 | ||
| 97 | let prg = pio_proc::pio_asm!("nop"); | 97 | let prg = pio_asm!("nop"); |
| 98 | match common.try_load_program(&prg.program) { | 98 | match common.try_load_program(&prg.program) { |
| 99 | Err(LoadError::InsufficientSpace) => (), | 99 | Err(LoadError::InsufficientSpace) => (), |
| 100 | _ => panic!("program loaded when it shouldn't"), | 100 | _ => panic!("program loaded when it shouldn't"), |
| @@ -106,13 +106,13 @@ async fn main(_spawner: Spawner) { | |||
| 106 | common.free_instr(loaded3.used_memory); | 106 | common.free_instr(loaded3.used_memory); |
| 107 | } | 107 | } |
| 108 | { | 108 | { |
| 109 | let prg = pio_proc::pio_asm!(".origin 0", "nop"); | 109 | let prg = pio_asm!(".origin 0", "nop"); |
| 110 | match common.try_load_program(&prg.program) { | 110 | match common.try_load_program(&prg.program) { |
| 111 | Ok(_) => (), | 111 | Ok(_) => (), |
| 112 | _ => panic!("program didn't loaded when it shouldn"), | 112 | _ => panic!("program didn't loaded when it shouldn"), |
| 113 | }; | 113 | }; |
| 114 | 114 | ||
| 115 | let prg = pio_proc::pio_asm!("nop"); | 115 | let prg = pio_asm!("nop"); |
| 116 | match common.try_load_program(&prg.program) { | 116 | match common.try_load_program(&prg.program) { |
| 117 | Ok(_) => (), | 117 | Ok(_) => (), |
| 118 | _ => panic!("program didn't loaded when it shouldn"), | 118 | _ => panic!("program didn't loaded when it shouldn"), |
