xref: /nrf52832-nimble/rt-thread/examples/kernel/thread_static.c (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero #include <rtthread.h>
2*10465441SEvalZero #include "tc_comm.h"
3*10465441SEvalZero 
4*10465441SEvalZero /*
5*10465441SEvalZero  * This is an example for static thread
6*10465441SEvalZero  */
7*10465441SEvalZero static struct rt_thread thread;
8*10465441SEvalZero static char thread_stack[THREAD_STACK_SIZE];
thread_entry(void * parameter)9*10465441SEvalZero static void thread_entry(void* parameter)
10*10465441SEvalZero {
11*10465441SEvalZero     rt_kprintf("thread staticly inited ok\n");
12*10465441SEvalZero     rt_thread_delay(10);
13*10465441SEvalZero     rt_kprintf("thread exit\n");
14*10465441SEvalZero 
15*10465441SEvalZero     tc_done(TC_STAT_PASSED);
16*10465441SEvalZero }
17*10465441SEvalZero 
thread_static_init()18*10465441SEvalZero rt_err_t thread_static_init()
19*10465441SEvalZero {
20*10465441SEvalZero     rt_err_t result;
21*10465441SEvalZero 
22*10465441SEvalZero     result = rt_thread_init(&thread,
23*10465441SEvalZero         "test",
24*10465441SEvalZero         thread_entry, RT_NULL,
25*10465441SEvalZero         &thread_stack[0], sizeof(thread_stack),
26*10465441SEvalZero         THREAD_PRIORITY, 10);
27*10465441SEvalZero 
28*10465441SEvalZero     if (result == RT_EOK)
29*10465441SEvalZero         rt_thread_startup(&thread);
30*10465441SEvalZero     else
31*10465441SEvalZero         tc_stat(TC_STAT_END | TC_STAT_FAILED);
32*10465441SEvalZero 
33*10465441SEvalZero     return result;
34*10465441SEvalZero }
35*10465441SEvalZero 
36*10465441SEvalZero #ifdef RT_USING_TC
_tc_thread_static()37*10465441SEvalZero int _tc_thread_static()
38*10465441SEvalZero {
39*10465441SEvalZero     thread_static_init();
40*10465441SEvalZero 
41*10465441SEvalZero     return 20;
42*10465441SEvalZero }
43*10465441SEvalZero FINSH_FUNCTION_EXPORT(_tc_thread_static, a static thread test);
44*10465441SEvalZero #else
rt_application_init()45*10465441SEvalZero int rt_application_init()
46*10465441SEvalZero {
47*10465441SEvalZero     thread_static_init();
48*10465441SEvalZero 
49*10465441SEvalZero     return 0;
50*10465441SEvalZero }
51*10465441SEvalZero #endif
52*10465441SEvalZero 
53