xref: /nrf52832-nimble/rt-thread/examples/kernel/thread_dynamic.c (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero #include <rtthread.h>
2*10465441SEvalZero #include "tc_comm.h"
3*10465441SEvalZero 
thread_entry(void * parameter)4*10465441SEvalZero static void thread_entry(void* parameter)
5*10465441SEvalZero {
6*10465441SEvalZero     rt_kprintf("thread dynamicly created ok\n");
7*10465441SEvalZero     rt_thread_delay(10);
8*10465441SEvalZero     rt_kprintf("thread exit\n");
9*10465441SEvalZero 
10*10465441SEvalZero     tc_done(TC_STAT_PASSED);
11*10465441SEvalZero }
12*10465441SEvalZero 
thread_dynamic_init()13*10465441SEvalZero int thread_dynamic_init()
14*10465441SEvalZero {
15*10465441SEvalZero     rt_thread_t tid;
16*10465441SEvalZero 
17*10465441SEvalZero     tid = rt_thread_create("test",
18*10465441SEvalZero         thread_entry, RT_NULL,
19*10465441SEvalZero         THREAD_STACK_SIZE, THREAD_PRIORITY, THREAD_TIMESLICE);
20*10465441SEvalZero     if (tid != RT_NULL)
21*10465441SEvalZero         rt_thread_startup(tid);
22*10465441SEvalZero     else
23*10465441SEvalZero         tc_stat(TC_STAT_END | TC_STAT_FAILED);
24*10465441SEvalZero 
25*10465441SEvalZero     return 0;
26*10465441SEvalZero }
27*10465441SEvalZero 
28*10465441SEvalZero #ifdef RT_USING_TC
_tc_thread_dynamic()29*10465441SEvalZero int _tc_thread_dynamic()
30*10465441SEvalZero {
31*10465441SEvalZero     thread_dynamic_init();
32*10465441SEvalZero 
33*10465441SEvalZero     return 20;
34*10465441SEvalZero }
35*10465441SEvalZero FINSH_FUNCTION_EXPORT(_tc_thread_dynamic, a dynamic thread test);
36*10465441SEvalZero #else
rt_application_init()37*10465441SEvalZero int rt_application_init()
38*10465441SEvalZero {
39*10465441SEvalZero     thread_dynamic_init();
40*10465441SEvalZero 
41*10465441SEvalZero     return 0;
42*10465441SEvalZero }
43*10465441SEvalZero #endif
44*10465441SEvalZero 
45