aboutsummaryrefslogtreecommitdiff
path: root/tests/nrf/src/bin
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2024-10-24 13:31:53 +0200
committerDario Nieuwenhuis <[email protected]>2024-11-04 00:47:31 +0100
commit51f6b813e1a4311ffb4adf2e66ed3effb990d246 (patch)
tree66a175cc893b00dcd56bcaff0e6b90b4d0753732 /tests/nrf/src/bin
parent650f97924ab540d3232b187cbde73d7a0104f734 (diff)
nrf: port to chiptool-based `nrf-pac`.
Diffstat (limited to 'tests/nrf/src/bin')
-rw-r--r--tests/nrf/src/bin/buffered_uart_spam.rs12
-rw-r--r--tests/nrf/src/bin/gpio.rs2
-rw-r--r--tests/nrf/src/bin/spim.rs42
3 files changed, 50 insertions, 6 deletions
diff --git a/tests/nrf/src/bin/buffered_uart_spam.rs b/tests/nrf/src/bin/buffered_uart_spam.rs
index 45daaae0c..cf9ca50d2 100644
--- a/tests/nrf/src/bin/buffered_uart_spam.rs
+++ b/tests/nrf/src/bin/buffered_uart_spam.rs
@@ -50,15 +50,15 @@ async fn main(_spawner: Spawner) {
50 const NSPAM: usize = 17; 50 const NSPAM: usize = 17;
51 static mut TX_BUF: [u8; NSPAM] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]; 51 static mut TX_BUF: [u8; NSPAM] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
52 let _spam = UarteTx::new(peri!(p, UART1), irqs!(UART1), peri!(p, PIN_A), config.clone()); 52 let _spam = UarteTx::new(peri!(p, UART1), irqs!(UART1), peri!(p, PIN_A), config.clone());
53 let spam_peri: pac::UARTE1 = unsafe { mem::transmute(()) }; 53 let spam_peri = pac::UARTE1;
54 let event = unsafe { Event::new_unchecked(NonNull::new_unchecked(&spam_peri.events_endtx as *const _ as _)) }; 54 let event = unsafe { Event::new_unchecked(NonNull::new_unchecked(spam_peri.events_endtx().as_ptr())) };
55 let task = unsafe { Task::new_unchecked(NonNull::new_unchecked(&spam_peri.tasks_starttx as *const _ as _)) }; 55 let task = unsafe { Task::new_unchecked(NonNull::new_unchecked(spam_peri.tasks_starttx().as_ptr())) };
56 let mut spam_ppi = Ppi::new_one_to_one(p.PPI_CH2, event, task); 56 let mut spam_ppi = Ppi::new_one_to_one(p.PPI_CH2, event, task);
57 spam_ppi.enable(); 57 spam_ppi.enable();
58 let p = (&raw mut TX_BUF) as *mut u8; 58 let p = (&raw mut TX_BUF) as *mut u8;
59 spam_peri.txd.ptr.write(|w| unsafe { w.ptr().bits(p as u32) }); 59 spam_peri.txd().ptr().write_value(p as u32);
60 spam_peri.txd.maxcnt.write(|w| unsafe { w.maxcnt().bits(NSPAM as _) }); 60 spam_peri.txd().maxcnt().write(|w| w.set_maxcnt(NSPAM as _));
61 spam_peri.tasks_starttx.write(|w| unsafe { w.bits(1) }); 61 spam_peri.tasks_starttx().write_value(1);
62 62
63 let mut i = 0; 63 let mut i = 0;
64 let mut total = 0; 64 let mut total = 0;
diff --git a/tests/nrf/src/bin/gpio.rs b/tests/nrf/src/bin/gpio.rs
index 9e809a694..4995d244c 100644
--- a/tests/nrf/src/bin/gpio.rs
+++ b/tests/nrf/src/bin/gpio.rs
@@ -17,10 +17,12 @@ async fn main(_spawner: Spawner) {
17 let mut output = Output::new(peri!(p, PIN_B), Level::Low, OutputDrive::Standard); 17 let mut output = Output::new(peri!(p, PIN_B), Level::Low, OutputDrive::Standard);
18 18
19 output.set_low(); 19 output.set_low();
20 assert!(output.is_set_low());
20 Timer::after_millis(10).await; 21 Timer::after_millis(10).await;
21 assert!(input.is_low()); 22 assert!(input.is_low());
22 23
23 output.set_high(); 24 output.set_high();
25 assert!(output.is_set_high());
24 Timer::after_millis(10).await; 26 Timer::after_millis(10).await;
25 assert!(input.is_high()); 27 assert!(input.is_high());
26 28
diff --git a/tests/nrf/src/bin/spim.rs b/tests/nrf/src/bin/spim.rs
new file mode 100644
index 000000000..c2ec90b88
--- /dev/null
+++ b/tests/nrf/src/bin/spim.rs
@@ -0,0 +1,42 @@
1// required-features: easydma
2#![no_std]
3#![no_main]
4
5#[path = "../common.rs"]
6mod common;
7
8use defmt::{assert_eq, *};
9use embassy_executor::Spawner;
10use embassy_nrf::spim::Spim;
11use embassy_nrf::{peripherals, spim};
12use {defmt_rtt as _, panic_probe as _};
13
14#[embassy_executor::main]
15async fn main(_spawner: Spawner) {
16 let mut p = embassy_nrf::init(Default::default());
17 let mut config = spim::Config::default();
18 config.frequency = spim::Frequency::M1;
19 let mut spim = Spim::new(
20 &mut peri!(p, SPIM0),
21 irqs!(SPIM0),
22 &mut peri!(p, PIN_X),
23 &mut peri!(p, PIN_A), // MISO
24 &mut peri!(p, PIN_B), // MOSI
25 config.clone(),
26 );
27 let data = [
28 0x42, 0x43, 0x44, 0x45, 0x66, 0x12, 0x23, 0x34, 0x45, 0x19, 0x91, 0xaa, 0xff, 0xa5, 0x5a, 0x77,
29 ];
30 let mut buf = [0u8; 16];
31
32 buf.fill(0);
33 spim.blocking_transfer(&mut buf, &data).unwrap();
34 assert_eq!(data, buf);
35
36 buf.fill(0);
37 spim.transfer(&mut buf, &data).await.unwrap();
38 assert_eq!(data, buf);
39
40 info!("Test OK");
41 cortex_m::asm::bkpt();
42}