11#include "testf.h"
2- // #include <plat.h>
3- // #include <irq.h>
4- // #include <timer.h>
5- // #include <uart.h>
6- // #include <core.h>
72#include <core.h>
83#include <stdlib.h>
94#include <stdio.h>
@@ -24,34 +19,40 @@ volatile bool irq_en_timer = false;
2419volatile bool irq_en_uart = false;
2520
2621#define TIMER_INTERVAL (TIME_MS(100))
27- #define TEST_TIME_WAIT (TIME_MS(100 ))
28- #define TEST_TIMEOUT "200 "
22+ #define TEST_TIME_WAIT (TIME_MS(200 ))
23+ #define TEST_TIMEOUT "300 "
2924
30- BAO_TEST (IRQ_CHECK1 , TIMER )
25+ BAO_TEST (IRQ_CHECK , TIMER )
3126{
32- COMMAND_SEND_TIMEOUT (TEST_TIMEOUT );
33-
34- irq_set_handler (TIMER_IRQ_ID , test_interrupt_timer_callback );
35- timer_set (TIMER_INTERVAL );
36- irq_enable (TIMER_IRQ_ID );
37- irq_set_prio (TIMER_IRQ_ID , IRQ_MAX_PRIO );
38-
39- while (!irq_en_timer );
40- EXPECTED_TRUE (irq_en_timer );
27+ if (cpu_is_master ()) {
28+ COMMAND_SET_TIMEOUT (TEST_TIMEOUT );
29+
30+ irq_set_handler (TIMER_IRQ_ID , test_interrupt_timer_callback );
31+ timer_set (TIMER_INTERVAL );
32+ irq_enable (TIMER_IRQ_ID );
33+ irq_set_prio (TIMER_IRQ_ID , IRQ_MAX_PRIO );
34+
35+ while (!irq_en_timer );
36+ EXPECTED_TRUE (irq_en_timer );
37+ COMMAND_CLEAR_TIMEOUT ();
38+ }
4139}
4240
4341BAO_TEST (IRQ_CHECK , UART )
4442{
45- COMMAND_SEND_TIMEOUT (TEST_TIMEOUT );
46-
47- irq_set_handler (33 , uart_rx_handler );
48- uart_enable_rxirq ();
49- irq_enable (33 );
50- irq_set_prio (33 , IRQ_MAX_PRIO );
51- COMMAND_SEND_CHAR ("a" );
52-
53- timer_wait (TEST_TIME_WAIT );
54- EXPECTED_TRUE (irq_en_uart );
43+ if (cpu_is_master ()) {
44+ COMMAND_SET_TIMEOUT (TEST_TIMEOUT );
45+
46+ irq_set_handler (UART_IRQ_ID , uart_rx_handler );
47+ uart_enable_rxirq ();
48+ irq_enable (UART_IRQ_ID );
49+ irq_set_prio (UART_IRQ_ID , IRQ_MAX_PRIO );
50+ COMMAND_SEND_CHAR ("a" );
51+
52+ timer_wait (TEST_TIME_WAIT );
53+ EXPECTED_TRUE (irq_en_uart );
54+ COMMAND_CLEAR_TIMEOUT ();
55+ }
5556}
5657
5758void test_interrupt_timer_callback ()
0 commit comments