Skip to content

Commit e491bde

Browse files
committed
Move gpio test code out of main.rs
1 parent 50c27cf commit e491bde

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

@@ -13,10 +13,11 @@ use aspeed_ddk::hash::Controller;
1313
use aspeed_ddk::syscon::SysCon;
1414

1515
use aspeed_ddk::tests::functional::hash_test::run_hash_tests;
16+
use aspeed_ddk::tests::functional::gpio_test;
1617
use panic_halt as _;
1718

1819
use cortex_m_rt::entry;
19-
use embedded_hal::{delay::DelayNs, digital::{InputPin, OutputPin, StatefulOutputPin}};
20+
use embedded_hal::delay::DelayNs;
2021

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

11883
#[no_mangle]
11984
pub static HALT: AtomicBool = AtomicBool::new(true);
@@ -170,7 +135,7 @@ fn main() -> ! {
170135
let mut hace_controller = Controller::new(hace);
171136

172137
run_hash_tests(&mut uart_controller, &mut hace_controller);
173-
test_gpio(&mut uart_controller);
138+
gpio_test::test_gpioa(&mut uart_controller);
174139
test_wdt(&mut uart_controller);
175140
// Initialize the peripherals here if needed
176141
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
@@ -1 +1,2 @@
11
pub mod hash_test;
2+
pub mod gpio_test;

0 commit comments

Comments
 (0)