44use core:: sync:: atomic:: AtomicBool ;
55// use core::arch::asm;
66use ast1060_pac:: Peripherals ;
7- use aspeed_ddk:: { gpio :: { gpioa , Floating , GpioExt } , uart:: { Config , UartController } } ;
7+ use aspeed_ddk:: uart:: { Config , UartController } ;
88use ast1060_pac:: { Wdt , Wdt1 } ;
99use aspeed_ddk:: watchdog:: WdtController ;
1010
@@ -15,12 +15,13 @@ use aspeed_ddk::ecdsa::AspeedEcdsa;
1515use aspeed_ddk:: rsa:: AspeedRsa ;
1616
1717use aspeed_ddk:: tests:: functional:: hash_test:: run_hash_tests;
18+ use aspeed_ddk:: tests:: functional:: gpio_test;
1819use aspeed_ddk:: tests:: functional:: ecdsa_test:: run_ecdsa_tests;
1920use aspeed_ddk:: tests:: functional:: rsa_test:: run_rsa_tests;
2021use panic_halt as _;
2122
2223use cortex_m_rt:: entry;
23- use embedded_hal:: { delay:: DelayNs , digital :: { InputPin , OutputPin , StatefulOutputPin } } ;
24+ use embedded_hal:: delay:: DelayNs ;
2425
2526use embedded_io:: Write ;
2627use 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"\r GPIOA 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"\r GPIOA 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"\r GPIOA 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"\r GPIOA 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"\r GPIOA 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"\r GPIOA pin4 set high successfully\r \n " ) . unwrap ( ) ;
119- }
120- }
12186
12287#[ no_mangle]
12388pub 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 { }
0 commit comments