1*10465441SEvalZero #include <rtthread.h> 2*10465441SEvalZero #include "tc_comm.h" 3*10465441SEvalZero 4*10465441SEvalZero /* 5*10465441SEvalZero * This is an example for delay thread 6*10465441SEvalZero */ 7*10465441SEvalZero static struct rt_thread thread; 8*10465441SEvalZero static char thread_stack[THREAD_STACK_SIZE]; thread_entry(void * parameter)9*10465441SEvalZerostatic void thread_entry(void* parameter) 10*10465441SEvalZero { 11*10465441SEvalZero rt_tick_t tick; 12*10465441SEvalZero rt_kprintf("thread inited ok\n"); 13*10465441SEvalZero 14*10465441SEvalZero rt_kprintf("thread delay 10 tick\n"); 15*10465441SEvalZero tick = rt_tick_get(); 16*10465441SEvalZero rt_thread_delay(10); 17*10465441SEvalZero if (rt_tick_get() - tick > 11) 18*10465441SEvalZero { 19*10465441SEvalZero tc_done(TC_STAT_FAILED); 20*10465441SEvalZero return; 21*10465441SEvalZero } 22*10465441SEvalZero 23*10465441SEvalZero rt_kprintf("thread delay 15 tick\n"); 24*10465441SEvalZero tick = rt_tick_get(); 25*10465441SEvalZero rt_thread_delay(15); 26*10465441SEvalZero if (rt_tick_get() - tick > 16) 27*10465441SEvalZero { 28*10465441SEvalZero tc_done(TC_STAT_FAILED); 29*10465441SEvalZero return; 30*10465441SEvalZero } 31*10465441SEvalZero 32*10465441SEvalZero rt_kprintf("thread exit\n"); 33*10465441SEvalZero 34*10465441SEvalZero tc_done(TC_STAT_PASSED); 35*10465441SEvalZero } 36*10465441SEvalZero thread_delay_init()37*10465441SEvalZerort_err_t thread_delay_init() 38*10465441SEvalZero { 39*10465441SEvalZero rt_err_t result; 40*10465441SEvalZero 41*10465441SEvalZero result = rt_thread_init(&thread, 42*10465441SEvalZero "test", 43*10465441SEvalZero thread_entry, RT_NULL, 44*10465441SEvalZero &thread_stack[0], sizeof(thread_stack), 45*10465441SEvalZero THREAD_PRIORITY, 10); 46*10465441SEvalZero 47*10465441SEvalZero if (result == RT_EOK) 48*10465441SEvalZero rt_thread_startup(&thread); 49*10465441SEvalZero else 50*10465441SEvalZero tc_stat(TC_STAT_END | TC_STAT_FAILED); 51*10465441SEvalZero 52*10465441SEvalZero return result; 53*10465441SEvalZero } 54*10465441SEvalZero 55*10465441SEvalZero #ifdef RT_USING_TC _tc_thread_delay()56*10465441SEvalZeroint _tc_thread_delay() 57*10465441SEvalZero { 58*10465441SEvalZero thread_delay_init(); 59*10465441SEvalZero 60*10465441SEvalZero return 30; 61*10465441SEvalZero } 62*10465441SEvalZero FINSH_FUNCTION_EXPORT(_tc_thread_delay, a thread delay test); 63*10465441SEvalZero #else rt_application_init()64*10465441SEvalZeroint rt_application_init() 65*10465441SEvalZero { 66*10465441SEvalZero thread_delay_init(); 67*10465441SEvalZero 68*10465441SEvalZero return 0; 69*10465441SEvalZero } 70*10465441SEvalZero #endif 71