Skip to content

Commit 2d2f7d1

Browse files
committed
Move gpio test code out of main.rs
1 parent 6321cd8 commit 2d2f7d1

File tree

3 files changed

+49
-39
lines changed

3 files changed

+49
-39
lines changed

src/main.rs

Lines changed: 4 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
use core::sync::atomic::AtomicBool;
55
// use core::arch::asm;
66
use ast1060_pac::Peripherals;
7-
use aspeed_ddk::{gpio::{gpioa, Floating, GpioExt}, uart::{Config, UartController}};
7+
use aspeed_ddk::uart::{Config, UartController};
88
use ast1060_pac::{Wdt, Wdt1};
99
use aspeed_ddk::watchdog::WdtController;
1010

@@ -15,12 +15,13 @@ use aspeed_ddk::ecdsa::AspeedEcdsa;
1515
use aspeed_ddk::rsa::AspeedRsa;
1616

1717
use aspeed_ddk::tests::functional::hash_test::run_hash_tests;
18+
use aspeed_ddk::tests::functional::gpio_test;
1819
use aspeed_ddk::tests::functional::ecdsa_test::run_ecdsa_tests;
1920
use aspeed_ddk::tests::functional::rsa_test::run_rsa_tests;
2021
use panic_halt as _;
2122

2223
use cortex_m_rt::entry;
23-
use embedded_hal::{delay::DelayNs, digital::{InputPin, OutputPin, StatefulOutputPin}};
24+
use embedded_hal::delay::DelayNs;
2425

2526
use embedded_io::Write;
2627
use cortex_m_rt::pre_init;
@@ -82,42 +83,6 @@ fn test_wdt( uart:&mut UartController<'_>) {
8283
}
8384
}
8485
}
85-
fn test_gpio(uart:&mut UartController<'_>) {
86-
let _peripherals = unsafe { Peripherals::steal() };
87-
let gpio = _peripherals.gpio;
88-
89-
let gpioa = gpioa::GPIOA::new(gpio).split();
90-
uart.write_all(b"\r\n####### GPIO test #######\r\n").unwrap();
91-
// input test
92-
let mut pa0 = gpioa.pa0.into_pull_down_input();
93-
if pa0.is_low().unwrap() {
94-
uart.write_all(b"\rGPIOA pin0 is low\r\n").unwrap();
95-
}
96-
let mut pa1 = gpioa.pa1.into_pull_up_input();
97-
if pa1.is_high().unwrap() {
98-
uart.write_all(b"\rGPIOA pin1 is high\r\n").unwrap();
99-
}
100-
// output test
101-
let mut pa3 = gpioa.pa3.into_open_drain_output::<Floating>();
102-
pa3.set_low().unwrap();
103-
if pa3.is_set_low().unwrap() {
104-
uart.write_all(b"\rGPIOA pin3 set low successfully\r\n").unwrap();
105-
}
106-
pa3.set_high().unwrap();
107-
if pa3.is_set_high().unwrap() {
108-
uart.write_all(b"\rGPIOA pin3 set high successfully\r\n").unwrap();
109-
}
110-
111-
let mut pa4 = gpioa.pa4.into_push_pull_output();
112-
pa4.set_low().unwrap();
113-
if pa4.is_set_low().unwrap() {
114-
uart.write_all(b"\rGPIOA pin4 set low successfully\r\n").unwrap();
115-
}
116-
pa4.set_high().unwrap();
117-
if pa4.is_set_high().unwrap() {
118-
uart.write_all(b"\rGPIOA pin4 set high successfully\r\n").unwrap();
119-
}
120-
}
12186

12287
#[no_mangle]
12388
pub static HALT: AtomicBool = AtomicBool::new(true);
@@ -183,7 +148,7 @@ fn main() -> ! {
183148

184149
let mut rsa = AspeedRsa::new(&secure, delay);
185150
run_rsa_tests(&mut uart_controller, &mut rsa);
186-
test_gpio(&mut uart_controller);
151+
gpio_test::test_gpioa(&mut uart_controller);
187152
test_wdt(&mut uart_controller);
188153
// Initialize the peripherals here if needed
189154
loop {}

src/tests/functional/gpio_test.rs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
use ast1060_pac::Peripherals;
2+
use embedded_hal::digital::{InputPin, OutputPin, StatefulOutputPin};
3+
use embedded_io::Write;
4+
5+
use crate::uart::UartController;
6+
use crate::gpio::{gpioa, Floating, GpioExt};
7+
8+
9+
pub fn test_gpioa(uart:&mut UartController<'_>) {
10+
let _peripherals = unsafe { Peripherals::steal() };
11+
let gpio = _peripherals.gpio;
12+
13+
let gpioa = gpioa::GPIOA::new(gpio).split();
14+
uart.write_all(b"\r\n####### GPIO test #######\r\n").unwrap();
15+
// input test
16+
let mut pa0 = gpioa.pa0.into_pull_down_input();
17+
if pa0.is_low().unwrap() {
18+
uart.write_all(b"\rGPIOA pin0 is low\r\n").unwrap();
19+
}
20+
let mut pa1 = gpioa.pa1.into_pull_up_input();
21+
if pa1.is_high().unwrap() {
22+
uart.write_all(b"\rGPIOA pin1 is high\r\n").unwrap();
23+
}
24+
// output test
25+
let mut pa3 = gpioa.pa3.into_open_drain_output::<Floating>();
26+
pa3.set_low().unwrap();
27+
if pa3.is_set_low().unwrap() {
28+
uart.write_all(b"\rGPIOA pin3 set low successfully\r\n").unwrap();
29+
}
30+
pa3.set_high().unwrap();
31+
if pa3.is_set_high().unwrap() {
32+
uart.write_all(b"\rGPIOA pin3 set high successfully\r\n").unwrap();
33+
}
34+
35+
let mut pa4 = gpioa.pa4.into_push_pull_output();
36+
pa4.set_low().unwrap();
37+
if pa4.is_set_low().unwrap() {
38+
uart.write_all(b"\rGPIOA pin4 set low successfully\r\n").unwrap();
39+
}
40+
pa4.set_high().unwrap();
41+
if pa4.is_set_high().unwrap() {
42+
uart.write_all(b"\rGPIOA pin4 set high successfully\r\n").unwrap();
43+
}
44+
}

src/tests/functional/mod.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@ pub mod hash_test;
22
pub mod ecdsa_test;
33
pub mod rsa_test;
44
pub mod rsa_test_vec;
5+
pub mod gpio_test;

0 commit comments

Comments
 (0)