]> rtime.felk.cvut.cz Git - arc.git/blob - examples/switch_node/config/Os_Cfg.c
Initial commit.
[arc.git] / examples / switch_node / config / Os_Cfg.c
1 /* -------------------------------- Arctic Core ------------------------------
2  * Arctic Core - the open source AUTOSAR platform http://arccore.com
3  *
4  * Copyright (C) 2009  ArcCore AB <contact@arccore.com>
5  *
6  * This source code is free software; you can redistribute it and/or modify it
7  * under the terms of the GNU General Public License version 2 as published by the
8  * Free Software Foundation; See <http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt>.
9  *
10  * This program is distributed in the hope that it will be useful, but
11  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
13  * for more details.
14  * -------------------------------- Arctic Core ------------------------------*/
15
16
17
18
19
20
21
22
23 /*
24 * Module vendor:  Autocore
25 * Module version: 1.0.0
26 * Specification: Autosar v3.0.1, Final
27 *
28 */
29
30 \r
31 // File generated on Tue Aug 18 13:49:03 CEST 2009\r
32 \r
33 #include <stdlib.h>\r
34 #include <stdint.h>\r
35 #include "os_config_macros.h"\r
36 #include "Platform_Types.h"\r
37 #include "Os.h"                         // includes Os_Cfg.h\r
38 #include "Kernel.h"\r
39 #include "Kernel_Offset.h"\r
40 #include "alist_i.h"\r
41 #include "Mcu.h"\r
42 \r
43 // ##################################    DEBUG     #################################\r
44 // All output on as standard\r
45 uint32 os_dbg_mask = 0;\r
46 //      D_MASTER_PRINT ;\r
47 //      D_ISR_MASTER_PRINT |\r
48 //      D_STDOUT |\r
49 //      D_ISR_STDOUT | D_TASK | D_ALARM;\r
50 \r
51 // ###############################    APPLICATION     ##############################\r
52 // A single, non-configurable application for now\r
53 rom_app_t rom_app_list[] = {\r
54         {\r
55                 .application_id = APPLICATION_ID_application_1,\r
56                 .name = "application_1",\r
57                 .trusted = true,\r
58                 .StartupHook = NULL,\r
59                 .ShutdownHook = NULL,\r
60                 .ErrorHook = NULL,\r
61                 .isr_mask = 0,\r
62                 .scheduletable_mask  = 0,\r
63                 .alarm_mask  = 0,\r
64                 .counter_mask  = 0,\r
65                 .resource_mask  = 0,\r
66                 .message_mask  = 0,\r
67         }\r
68 };\r
69 \r
70 \r
71 // #################################    COUNTERS     ###############################\r
72 counter_obj_t counter_list[] = {\r
73         {\r
74                 .name = "OsTick",\r
75                 .type = COUNTER_TYPE_HARD,\r
76                 .unit = COUNTER_UNIT_NANO,\r
77                 .alarm_base.maxallowedvalue = 65535,\r
78                 .alarm_base.tickperbase = 1,\r
79                 .alarm_base.mincycle = 0,\r
80         },\r
81 };\r
82 \r
83 // ##################################    ALARMS     ################################\r
84 alarm_obj_t alarm_list[] = {\r
85         {\r
86                 .name = "ComAlarm",\r
87                 .counter = &counter_list[COUNTER_ID_OsTick],\r
88                 .counter_id = COUNTER_ID_OsTick,\r
89                 .autostart = {\r
90                         .active = TRUE,\r
91                         .alarmtime = 5,\r
92                         .cycletime = 20,\r
93                         .appmode_mask = APPLICATION_ID_application_1, //___ARCTICSTUDIO_GENERATOR_TODO___,\r
94                 },\r
95                 .action = {\r
96                         .type = ALARM_ACTION_ACTIVATETASK,\r
97                         .task_id = TASK_ID_ComTask,\r
98                 },\r
99         },\r
100         {\r
101                 .name = "ReadSwAlarm",\r
102                 .counter = &counter_list[COUNTER_ID_OsTick],\r
103                 .counter_id = COUNTER_ID_OsTick,\r
104                 .autostart = {\r
105                         .active = TRUE,\r
106                         .alarmtime = 10,\r
107                         .cycletime = 30,\r
108                         .appmode_mask = APPLICATION_ID_application_1, //___ARCTICSTUDIO_GENERATOR_TODO___,\r
109                 },\r
110                 .action = {\r
111                         .type = ALARM_ACTION_ACTIVATETASK,\r
112                         .task_id = TASK_ID_ReadSwitches,\r
113                 },\r
114         },\r
115 };\r
116 \r
117 \r
118 // ################################    RESOURCES     ###############################\r
119 resource_obj_t resource_list[] = {\r
120         {\r
121                 .nr = RES_SCHEDULER,\r
122                 .type = RESOURCE_TYPE_STANDARD,\r
123                 .ceiling_priority = 0,\r
124                 .application_owner_id = 0,\r
125                 .task_mask = 0,\r
126                 .owner = (-1),\r
127         },\r
128 };\r
129 \r
130 // ##############################    STACKS (TASKS)     ############################\r
131 uint8_t stack_ComTask[PRIO_STACK_SIZE];\r
132 uint8_t stack_OsIdle[PRIO_STACK_SIZE];\r
133 uint8_t stack_ReadSwitches[PRIO_STACK_SIZE];\r
134 uint8_t stack_StartupTask[PRIO_STACK_SIZE];\r
135 \r
136 // #####################    TIMING PROTECTIONS (TASKS, ISRS)     ###################\r
137 timing_protection_t timing_protection_list[] = {\r
138 };\r
139 \r
140 rom_pcb_t rom_pcb_list[] = {\r
141 // ##################################    TASKS     #################################\r
142         {\r
143                 .pid = TASK_ID_ComTask,\r
144                 .name = "ComTask",\r
145                 .entry = ComTask,\r
146                 .prio = 20,\r
147                 .proc_type = PROC_BASIC,\r
148                 .stack.size = sizeof stack_ComTask,\r
149                 .stack.top = stack_ComTask,\r
150                 .autostart = false,\r
151                 .application_id = APPLICATION_ID_application_1,\r
152         },\r
153         {\r
154                 .pid = TASK_ID_OsIdle,\r
155                 .name = "OsIdle",\r
156                 .entry = OsIdle,\r
157                 .prio = 1,\r
158                 .proc_type = PROC_EXTENDED,\r
159                 .stack.size = sizeof stack_OsIdle,\r
160                 .stack.top = stack_OsIdle,\r
161                 .autostart = true,\r
162                 .application_id = APPLICATION_ID_application_1,\r
163         },\r
164         {\r
165                 .pid = TASK_ID_ReadSwitches,\r
166                 .name = "ReadSwitches",\r
167                 .entry = ReadSwitches,\r
168                 .prio = 10,\r
169                 .proc_type = PROC_BASIC,\r
170                 .stack.size = sizeof stack_ReadSwitches,\r
171                 .stack.top = stack_ReadSwitches,\r
172                 .autostart = false,\r
173                 .application_id = APPLICATION_ID_application_1,\r
174         },\r
175         {\r
176                 .pid = TASK_ID_StartupTask,\r
177                 .name = "StartupTask",\r
178                 .entry = StartupTask,\r
179                 .prio = 100,\r
180                 .proc_type = PROC_BASIC,\r
181                 .stack.size = sizeof stack_StartupTask,\r
182                 .stack.top = stack_StartupTask,\r
183                 .autostart = true,\r
184                 .application_id = APPLICATION_ID_application_1,\r
185         },\r
186 };\r
187 \r
188 uint8_t pcb_list[PCB_T_SIZE*ARRAY_SIZE(rom_pcb_list)];\r
189 \r
190 uint8_t os_interrupt_stack[OS_INTERRUPT_STACK_SIZE] __attribute__ ((aligned (0x10)));\r
191 \r
192 // The vector table\r
193 void * intc_vector_tbl[NUMBER_OF_INTERRUPTS_AND_EXCEPTIONS] __attribute__ ((aligned (0x1000),section(".data")))= {\r
194 };\r
195 \r
196 // The type of vector\r
197 uint8 intc_type_tbl[NUMBER_OF_INTERRUPTS_AND_EXCEPTIONS] = {\r
198 };\r
199 \r
200 \r
201 // ##################################    HOOKS    ##################################\r
202 struct os_conf_global_hooks_s os_conf_global_hooks = {\r
203                 .StartupHook = StartupHook,\r
204                 .ProtectionHook = ProtectionHook,\r
205                 .ShutdownHook = ShutdownHook,\r
206                 .ErrorHook = ErrorHook,\r
207                 .PreTaskHook = PreTaskHook,\r
208                 .PostTaskHook = PostTaskHook,\r
209 };\r
210 \r
211 #include "os_config_funcs.h"