1 /** @file sys_startup.c
\r
2 * @brief Startup Source File
\r
3 * @date 05.November.2010
\r
6 * This file contains:
\r
9 * - External Functions
\r
13 * which are relevant for the Starup.
\r
16 /* (c) Texas Instruments 2010, All rights reserved. */
\r
20 #include "sys_types.h"
\r
21 #include "sys_common.h"
\r
22 #include "sys_system.h"
\r
23 #include "sys_vim.h"
\r
24 #include "sys_core.h"
\r
25 #include "sys_memory.h"
\r
28 /* External Functions */
\r
30 extern void __TI_auto_init(void);
\r
31 extern void main(void);
\r
32 extern void exit(int);
\r
34 /* Vim Ram Definition */
\r
36 * @brief Vim Ram Definition
\r
38 * This type is used to access the Vim Ram.
\r
41 static const t_isrFuncPTR s_vim_init[] =
\r
44 esmHighLevelInterrupt,
\r
46 vPortPreemptiveTick, /* RTI */
\r
65 vPortYeildWithinAPI, /* software interrupt */
\r
143 /* Startup Routine */
\r
145 #pragma INTERRUPT(_c_int00, RESET)
\r
149 /* Enable VFP Unit */
\r
152 /* Initialize Core Registers */
\r
153 _coreInitRegisters();
\r
155 /* Initialize Stack Pointers */
\r
156 _coreInitStackPointer();
\r
158 /* Enable IRQ offset via Vic controller */
\r
159 _coreEnableIrqVicOffset();
\r
161 /* Initialize System */
\r
164 /* Initialize VIM table */
\r
168 for (i = 0; i < 96U; i++)
\r
170 vimRAM->ISR[i] = s_vim_init[i];
\r
174 /* set IRQ/FIQ priorities */
\r
175 vimREG->FIRQPR0 = SYS_FIQ
\r
206 | (SYS_IRQ << 31U);
\r
208 vimREG->FIRQPR1 = SYS_IRQ
\r
238 | (SYS_IRQ << 30U);
\r
240 /* enable interrupts */
\r
241 vimREG->REQMASKSET0 = 1U
\r
243 | (1U << 2) /* RTI */
\r
262 | (1U << 21) /* Software Interrupt */
\r
274 vimREG->REQMASKSET1 = 0U
\r
307 /* initalise global variable and constructors */
\r
310 /* call the application */
\r