+++ /dev/null
-/*
- * This is an ARM Cortex-M3 startup file for the NXP LPC1768.
- *
- * TODO: Add vendor (NXP) specific interrupt vectors.
- *
- * See also: http://bitbucket.org/jpc/lpc1768/
- *
- * Copyright (c) 2010 LoEE - Jakub Piotr Cłapa
- * This program is released under the new BSD license.
- */
-#include "CMSIS/LPC17xx.h"
-
-// Dummy handler.
-void Default_Handler (void) { while (1); }
-
-// Weakly bind all interrupt vectors to the dummy handler.
-void __attribute__((weak)) Reset_Handler(void);
-void __attribute__((weak)) NMI_Handler(void);
-void __attribute__((weak)) HardFault_Handler(void);
-void __attribute__((weak)) MemManage_Handler(void);
-void __attribute__((weak)) BusFault_Handler(void);
-void __attribute__((weak)) UsageFault_Handler(void);
-void __attribute__((weak)) SVC_Handler(void);
-void __attribute__((weak)) DebugMon_Handler(void);
-void __attribute__((weak)) PendSV_Handler(void);
-void __attribute__((weak)) SysTick_Handler(void);
-#pragma weak NMI_Handler = Default_Handler
-#pragma weak HardFault_Handler = Default_Handler
-#pragma weak MemManage_Handler = Default_Handler
-#pragma weak BusFault_Handler = Default_Handler
-#pragma weak UsageFault_Handler = Default_Handler
-#pragma weak SVC_Handler = Default_Handler
-#pragma weak DebugMon_Handler = Default_Handler
-#pragma weak PendSV_Handler = Default_Handler
-#pragma weak SysTick_Handler = Default_Handler
-
-// Start of the stack (last RAM address; exported in the linker script)
-extern void _sstack;
-
-// The signature of Cortex-M3 interrupt handlers.
-typedef void (* const Interrupt_Handler_P)(void);
-
-// Interrupt vectors table
-__attribute__ ((section(".cs3.interrupt_vector")))
-Interrupt_Handler_P interrupt_vectors[] = {
- &_sstack, // the first word contains the initial
- // stack pointer the hardware loads it
- // to the SP register before the first
- // instruction
- // Standard Cortex-M3 interrupts:
- Reset_Handler,
- NMI_Handler,
- HardFault_Handler,
- MemManage_Handler,
- BusFault_Handler,
- UsageFault_Handler,
- 0xefff7d26,
- 0,
- 0,
- 0,
- SVC_Handler,
- DebugMon_Handler,
- 0,
- PendSV_Handler,
- SysTick_Handler,
- // Vendor specific interrupts for LPC1768:
-};
-
-extern int main (void);
-
-extern uint32_t _etext, _sdata, _edata, _sbss, _ebss;
-
-void
-Reset_Handler(void)
-{
- // Initialize clocks
- SystemInit ();
-
- uint32_t *s, *d;
- // Copy initialization data to RAM (.data section)
- s = &_etext;
- d = &_sdata;
- while (d < &_edata) *d++ = *s++;
- // Zero the remaining allocated RAM (.bss section)
- d = &_sbss;
- while (d < &_ebss) *d++ = 0;
-
- // Everything is ready. Run the user program.
- main();
- while (1);
-}