-
Notifications
You must be signed in to change notification settings - Fork 0
/
Main.c
132 lines (106 loc) · 4.54 KB
/
Main.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/*
*=====*=====*=====*=====*=====*=====*=====*=====*=====*=====*=====*=====*=====*
* *
* M A I N *
* *
*=====*=====*=====*=====*=====*=====*=====*=====*=====*=====*=====*=====*=====*
*/
/*===========================================================================*/
/* INCLUDE FILE */
/*---------------------------------------------------------------------------*/
#include "Boss.h"
/*===========================================================================*/
/* DEFINITIONS & TYPEDEFS & MACROS */
/*---------------------------------------------------------------------------*/
/*===========================================================================*/
/* GLOBAL VARIABLES */
/*---------------------------------------------------------------------------*/
/*===========================================================================*/
/* FUNCTION PROTOTYPES */
/*---------------------------------------------------------------------------*/
void Boss_device_init(void);
/*===========================================================================
[ A A _ T A S K ]
---------------------------------------------------------------------------*/
boss_tcb_t aa_tcb;
boss_mem_align_t aa_stk[ 512 / sizeof(boss_mem_align_t) ]; /* 512 bytes */
/*===============================================
A A _ M A I N
-----------------------------------------------*/
void aa_main(void *p_arg)
{
int aa_count = 0;
PRINTF("[%s TASK] Init \n", Boss_self()->name);
for(;;)
{
Boss_sleep(500); /* 500ms */
PRINTF(" AA_TASK count = %d \n", ++aa_count);
}
}
/*===========================================================================
[ B B _ T A S K ]
---------------------------------------------------------------------------*/
boss_tcb_t bb_tcb;
boss_mem_align_t bb_stk[ 512 / sizeof(boss_mem_align_t) ]; /* 512 bytes */
/*===============================================
B B _ M A I N
-----------------------------------------------*/
void bb_main(void *p_arg)
{
int bb_count = 0;
PRINTF("[%s TASK] Init \n", Boss_self()->name);
for(;;)
{
Boss_sleep(10 * 1000); /* 10 Sec */
PRINTF("BB_TASK count = %d \n", ++bb_count);
#ifdef _BOSS_SPY_
Boss_spy_report();
#endif
#ifdef _BOSS_MEM_INFO_
Boss_mem_info_report();
#endif
}
}
/*
*=====*=====*=====*=====*=====*=====*=====*=====*=====*=====*=====*=====*=====*
* RT-BOSS ( IDLE TASK ) *
*=====*=====*=====*=====*=====*=====*=====*=====*=====*=====*=====*=====*=====*
*/
boss_tcb_t idle_tcb;
boss_mem_align_t idle_stack[ 128 / sizeof(boss_mem_align_t) ]; /* 128 bytes */
/*===========================================================================
I D L E _ M A I N
---------------------------------------------------------------------------*/
void idle_main(void *p_arg)
{
for(;;)
{
}
}
/*===========================================================================
M A I N
---------------------------------------------------------------------------*/
int main(void)
{
Boss_device_init();
Boss_init(idle_main, &idle_tcb, (boss_stk_t *)idle_stack, sizeof(idle_stack));
Boss_task_create( aa_main, /* Task Entry Point */
_BOSS_NULL, /* Task Argument */
&aa_tcb, /* TCB(Task Control Block)*/
AA_PRIO_1, /* Priority */
(boss_stk_t *)aa_stk, /* Stack Point (Base) */
sizeof(aa_stk), /* Stack Size (Bytes) */
"AA"
);
Boss_task_create( bb_main,
_BOSS_NULL,
&bb_tcb,
BB_PRIO_2,
(boss_stk_t *)bb_stk,
sizeof(bb_stk),
"BB"
);
Boss_start(); /* Boss Scheduling Start */
BOSS_ASSERT(_BOSS_FALSE); /* Invalid */
return 0;
}