source: rtos_arduino/trunk/lib/r2ca_lib.h@ 260

Last change on this file since 260 was 260, checked in by ertl-honda, 8 years ago

マクロ名を更新.
実行モデルを変更.

File size: 3.3 KB
Line 
1#include "r2ca_app.h"
2
3/*
4 * Max number of task
5 */
6#define R2CA_NUM_TASK_MAX 5
7
8/*
9 * Check number of task
10 */
11#if R2CA_NUM_TASK > R2CA_NUM_TASK_MAX
12#error The number of Task is over!
13#endif /* R2CA_NUM_TASK > R2CA_NUM_TASK_MAX */
14
15/*
16 * Idle task loop count per 10ms at idle state
17 */
18#define IDLE_TASK_IDLE_LOOP_10MS 42178
19
20/*
21 * Default Macro
22 */
23
24/*
25 * Priotiry
26 */
27#ifndef R2CA_MAINTASK_PRI
28#define R2CA_MAINTASK_PRI 5
29#endif /* R2CA_MAINTASK_SETUP_PRI */
30
31#ifndef R2CA_TASK1_PRI
32#define R2CA_TASK1_PRI 5
33#endif /* R2CA_TASK1_SETUP_PRI */
34
35#ifndef R2CA_TASK2_PRI
36#define R2CA_TASK2_PRI 5
37#endif /* R2CA_TASK2_SETUP_PRI */
38
39#ifndef R2CA_TASK3_PRI
40#define R2CA_TASK3_PRI 5
41#endif /* R2CA_TASK3_SETUP_PRI */
42
43#ifndef R2CA_TASK4_PRI
44#define R2CA_TASK4_PRI 5
45#endif /* R2CA_TASK4_SETUP_PRI */
46
47#ifndef R2CA_TASK5_PRI
48#define R2CA_TASK5_PRI 5
49#endif /* R2CA_TASK3_SETUP_PRI */
50
51/*
52 * Stack Size
53 */
54#ifndef R2CA_MAINTASK_STACK_SIZE
55#define R2CA_MAINTASK_STACK_SIZE 2048
56#endif /* R2CA_MAINTASK_STACK_SIZE */
57
58#ifndef R2CA_TASK1_STACK_SIZE
59#define R2CA_TASK1_STACK_SIZE 1024
60#endif /* R2CA_TASK1_STACK_SIZE */
61
62#ifndef R2CA_TASK2_STACK_SIZE
63#define R2CA_TASK2_STACK_SIZE 1024
64#endif /* R2CA_TASK2_STACK_SIZE */
65
66#ifndef R2CA_TASK3_STACK_SIZE
67#define R2CA_TASK3_STACK_SIZE 1024
68#endif /* R2CA_TASK3_STACK_SIZE */
69
70#ifndef R2CA_TASK4_STACK_SIZE
71#define R2CA_TASK4_STACK_SIZE 1024
72#endif /* R2CA_TASK4_STACK_SIZE */
73
74#ifndef R2CA_TASK5_STACK_SIZE
75#define R2CA_TASK5_STACK_SIZE 1024
76#endif /* R2CA_TASK5_STACK_SIZE */
77
78
79/*
80 * Round Robin Scheduling cycle
81 */
82#ifndef R2CA_RR_SCHEDULE_CYCLE
83#define R2CA_RR_SCHEDULE_CYCLE 1
84#endif /* R2CA_RR_SCHEDULE_CYCLE */
85
86#ifndef R2CA_RR_SCHEDULE_PRI
87#define R2CA_RR_SCHEDULE_PRI 0x0000
88#endif /* R2CA_RR_SCHEDULE_PRI */
89
90#ifdef __cplusplus
91extern "C" {
92#endif
93
94extern void r2ca_init(intptr_t exinf);
95extern void r2ca_maintask(intptr_t exinf);
96extern void r2ca_task1(intptr_t exinf);
97extern void r2ca_task2(intptr_t exinf);
98extern void r2ca_task3(intptr_t exinf);
99extern void r2ca_task4(intptr_t exinf);
100extern void r2ca_task5(intptr_t exinf);
101extern void r2ca_CycHandler(intptr_t exinf);
102
103extern void r2ca_USB_Handler(void);
104extern void r2ca_SERCOM0_Handler(void);
105extern void r2ca_SERCOM2_Handler(void);
106extern void r2ca_SERCOM3_Handler(void);
107extern void r2ca_SERCOM4_Handler(void);
108extern void r2ca_SERCOM5_Handler(void);
109extern void r2ca_EIC_Handler(void);
110extern void r2ca_TC5_Handler(void);
111extern void r2ca_RTC_Handler(void);
112
113#ifdef R2CA_ENABLE_PROFILING
114extern void r2ca_idle_task(intptr_t exinf);
115extern volatile uint32_t r2ca_idle_result;
116extern volatile uint32_t r2ca_isr_result;
117extern volatile uint32_t r2ca_dispatch_result;
118extern volatile uint32_t r2ca_timer_isr_result;
119extern volatile uint32_t r2ca_usb_isr_result;
120extern volatile uint32_t r2ca_sercom0_isr_result;
121extern volatile uint32_t r2ca_sercom4_isr_result;
122extern volatile uint32_t r2ca_sercom5_isr_result;
123extern volatile uint32_t r2ca_eic_isr_result;
124extern volatile uint32_t r2ca_tc5_isr_result;
125extern volatile uint32_t r2ca_rtc_isr_result;
126
127#ifdef R2CA_USE_SERIAL3
128extern volatile uint32_t r2ca_sercom3_isr_result;
129#endif /* R2CA_USE_SERIAL3 */
130
131#endif /* R2CA_ENABLE_PROFILING */
132
133#define WIRE_ENTER_CRITICAL wai_sem(WIRE_SEM);
134#define WIRE_LEAVE_CRITICAL sig_sem(WIRE_SEM);
135
136#ifdef __cplusplus
137}
138#endif
Note: See TracBrowser for help on using the repository browser.