/** @file sys_startup.c
*   @brief Startup Source File
*   @date 05.November.2010
*   @version 1.01.001
*
*   This file contains:
*   - Include Files
*   - Type Definitions
*   - External Functions
*   - VIM RAM Setup
*   - Startup Routine
*   .
*   which are relevant for the Starup.
*/

/* (c) Texas Instruments 2010, All rights reserved. */

/* Include Files */

#include "sys_types.h"
#include "sys_common.h"
#include "sys_system.h"
#include "sys_vim.h"
#include "sys_core.h"
#include "sys_memory.h"
#include "FreeRTOS.h"


/* External Functions */

extern void __TI_auto_init(void);
extern void main(void);
extern void exit(int);

/* Vim Ram Definition */
/** @struct vimRam
*   @brief Vim Ram Definition
*
*   This type is used to access the Vim Ram.
*/

static const t_isrFuncPTR s_vim_init[] =
{
    phantomInterrupt,
    esmHighLevelInterrupt,
    phantomInterrupt,
	#if configUSE_PREEMPTION == 0
		vPortNonPreemptiveTick, /* RTI */
	#else
		vPortPreemptiveTick,	/* RTI */
	#endif
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    vPortYeildWithinAPI,    /* software interrupt */
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
    phantomInterrupt,
};


/* Startup Routine */

#pragma INTERRUPT(_c_int00, RESET)

void _c_int00()
{
    /* Enable VFP Unit */
	_coreEnableVfp();

    /* Initialize Core Registers */
    _coreInitRegisters();

    /* Initialize Stack Pointers */
    _coreInitStackPointer();

    /* Enable IRQ offset via Vic controller */
	_coreEnableIrqVicOffset();

    /* Initialize System */
    systemInit();

    /* Initialize VIM table */
    {
        unsigned i;

        for (i = 0; i < 96U; i++)
        {
            vimRAM->ISR[i] = s_vim_init[i];
        }
    }

    /* set IRQ/FIQ priorities */
    vimREG->FIRQPR0 =  SYS_FIQ
                    | (SYS_FIQ <<  1U)
                    | (SYS_IRQ <<  2U)
                    | (SYS_IRQ <<  3U)
                    | (SYS_IRQ <<  4U)
                    | (SYS_IRQ <<  5U)
                    | (SYS_IRQ <<  6U)
                    | (SYS_IRQ <<  7U)
                    | (SYS_IRQ <<  8U)
                    | (SYS_IRQ <<  9U)
                    | (SYS_IRQ << 10U)
                    | (SYS_IRQ << 11U)
                    | (SYS_IRQ << 12U)
                    | (SYS_IRQ << 13U)
                    | (SYS_IRQ << 14U)
                    | (SYS_IRQ << 15U)
                    | (SYS_IRQ << 16U)
                    | (SYS_IRQ << 17U)
                    | (SYS_IRQ << 18U)
                    | (SYS_IRQ << 19U)
                    | (SYS_IRQ << 20U)
                    | (SYS_IRQ << 21U)
                    | (SYS_IRQ << 22U)
                    | (SYS_IRQ << 23U)
                    | (SYS_IRQ << 24U)
                    | (SYS_IRQ << 25U)
                    | (SYS_IRQ << 26U)
                    | (SYS_IRQ << 27U)
                    | (SYS_IRQ << 28U)
                    | (SYS_IRQ << 29U)
                    | (SYS_IRQ << 30U)
                    | (SYS_IRQ << 31U);

    vimREG->FIRQPR1 =  SYS_IRQ
                    | (SYS_IRQ <<  1U)
                    | (SYS_IRQ <<  2U)
                    | (SYS_IRQ <<  3U)
                    | (SYS_IRQ <<  4U)
                    | (SYS_IRQ <<  5U)
                    | (SYS_IRQ <<  6U)
                    | (SYS_IRQ <<  7U)
                    | (SYS_IRQ <<  8U)
                    | (SYS_IRQ <<  9U)
                    | (SYS_IRQ << 10U)
                    | (SYS_IRQ << 11U)
                    | (SYS_IRQ << 12U)
                    | (SYS_IRQ << 13U)
                    | (SYS_IRQ << 14U)
                    | (SYS_IRQ << 15U)
                    | (SYS_IRQ << 16U)
                    | (SYS_IRQ << 17U)
                    | (SYS_IRQ << 18U)
                    | (SYS_IRQ << 19U)
                    | (SYS_IRQ << 20U)
                    | (SYS_IRQ << 21U)
                    | (SYS_IRQ << 22U)
                    | (SYS_IRQ << 23U)
                    | (SYS_IRQ << 24U)
                    | (SYS_IRQ << 25U)
                    | (SYS_IRQ << 26U)
                    | (SYS_IRQ << 27U)
                    | (SYS_IRQ << 28U)
                    | (SYS_IRQ << 29U)
                    | (SYS_IRQ << 30U);

    /* enable interrupts */
    vimREG->REQMASKSET0 = 1U
                        | (0U << 1)
                        | (1U << 2)	  /* RTI */
                        | (0U << 3)
                        | (0U << 4)
                        | (0U << 5)
                        | (0U << 6)
                        | (0U << 7)
                        | (0U << 8)
                        | (0U << 9)
                        | (0U << 10)
                        | (0U << 11)
                        | (0U << 12)
                        | (0U << 13)
                        | (0U << 14)
                        | (0U << 15)
                        | (0U << 16)
                        | (0U << 17)
                        | (0U << 18)
                        | (0U << 19)
                        | (0U << 20)
                        | (1U << 21)  /* Software Interrupt */
                        | (0U << 22)
                        | (0U << 23)
                        | (0U << 24)
                        | (0U << 25)
                        | (0U << 26)
                        | (0U << 27)
                        | (0U << 28)
                        | (0U << 29)
                        | (0U << 30)
                        | (0U << 31);

    vimREG->REQMASKSET1 = 0U
                        | (0U << 1)
                        | (0U << 2)
                        | (0U << 3)
                        | (0U << 4)
                        | (0U << 5)
                        | (0U << 6)
                        | (0U << 7)
                        | (0U << 8)
                        | (0U << 9)
                        | (0U << 10)
                        | (0U << 11)
                        | (0U << 12)
                        | (0U << 13)
                        | (0U << 14)
                        | (0U << 15)
                        | (0U << 16)
                        | (0U << 17)
                        | (0U << 18)
                        | (0U << 19)
                        | (0U << 20)
                        | (0U << 21)
                        | (0U << 22)
                        | (0U << 23)
                        | (0U << 24)
                        | (0U << 25)
                        | (0U << 26)
                        | (0U << 27)
                        | (0U << 28)
                        | (0U << 29)
                        | (0U << 30);


    /* initalise global variable and constructors */
	__TI_auto_init();

    /* call the application */
    main();
    exit(0);
}


