/*****************************************************************************/ /* startup_LPC17xx.s: Startup file for LPC17xx device series */ /*****************************************************************************/ /* Version: CodeSourcery Sourcery G++ Lite (with CS3) */ /*****************************************************************************/ /* //*** <<< Use Configuration Wizard in Context Menu >>> *** */ /* // Stack Configuration // Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> // */ .equ Stack_Size, 0x00000100 .section ".stack", "w" .align 3 .globl __cs3_stack_mem .globl __cs3_stack_size __cs3_stack_mem: .if Stack_Size .space Stack_Size .endif .size __cs3_stack_mem, . - __cs3_stack_mem .set __cs3_stack_size, . - __cs3_stack_mem /* // Heap Configuration // Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> // */ .equ Heap_Size, 0x00001000 .section ".heap", "w" .align 3 .globl __cs3_heap_start .globl __cs3_heap_end __cs3_heap_start: .if Heap_Size .space Heap_Size .endif __cs3_heap_end: /* Vector Table */ .section ".cs3.interrupt_vector" .globl __cs3_interrupt_vector_cortex_m .type __cs3_interrupt_vector_cortex_m, %object __cs3_interrupt_vector_cortex_m: .long __cs3_stack /* Top of Stack */ .long __cs3_reset /* Reset Handler */ .long NMI_Handler /* NMI Handler */ .long HardFault_Handler /* Hard Fault Handler */ .long MemManage_Handler /* MPU Fault Handler */ .long BusFault_Handler /* Bus Fault Handler */ .long UsageFault_Handler /* Usage Fault Handler */ .long 0 /* Reserved */ .long 0 /* Reserved */ .long 0 /* Reserved */ .long 0 /* Reserved */ .long SVC_Handler /* SVCall Handler */ .long DebugMon_Handler /* Debug Monitor Handler */ .long 0 /* Reserved */ .long PendSV_Handler /* PendSV Handler */ .long SysTick_Handler /* SysTick Handler */ /* External Interrupts */ .long WDT_IRQHandler /* 16: Watchdog Timer */ .long TIMER0_IRQHandler /* 17: Timer0 */ .long TIMER1_IRQHandler /* 18: Timer1 */ .long TIMER2_IRQHandler /* 19: Timer2 */ .long TIMER3_IRQHandler /* 20: Timer3 */ .long UART0_IRQHandler /* 21: UART0 */ .long UART1_IRQHandler /* 22: UART1 */ .long UART2_IRQHandler /* 23: UART2 */ .long UART3_IRQHandler /* 24: UART3 */ .long PWM1_IRQHandler /* 25: PWM1 */ .long I2C0_IRQHandler /* 26: I2C0 */ .long I2C1_IRQHandler /* 27: I2C1 */ .long I2C2_IRQHandler /* 28: I2C2 */ .long SPI_IRQHandler /* 29: SPI */ .long SSP0_IRQHandler /* 30: SSP0 */ .long SSP1_IRQHandler /* 31: SSP1 */ .long PLL0_IRQHandler /* 32: PLL0 Lock (Main PLL) */ .long RTC_IRQHandler /* 33: Real Time Clock */ .long EINT0_IRQHandler /* 34: External Interrupt 0 */ .long EINT1_IRQHandler /* 35: External Interrupt 1 */ .long EINT2_IRQHandler /* 36: External Interrupt 2 */ .long EINT3_IRQHandler /* 37: External Interrupt 3 */ .long ADC_IRQHandler /* 38: A/D Converter */ .long BOD_IRQHandler /* 39: Brown-Out Detect */ .long USB_IRQHandler /* 40: USB */ .long CAN_IRQHandler /* 41: CAN */ .long DMA_IRQHandler /* 42: General Purpose DMA */ .long I2S_IRQHandler /* 43: I2S */ .long ENET_IRQHandler /* 44: Ethernet */ .long RIT_IRQHandler /* 45: Repetitive Interrupt Timer */ .long MCPWM_IRQHandler /* 46: Motor Control PWM */ .long QEI_IRQHandler /* 47: Quadrature Encoder Interface */ .long PLL1_IRQHandler /* 48: PLL1 Lock (USB PLL) */ .long USBActivity_IRQHandler /* 49: USB Activity */ .long CANActivity_IRQHandler /* 50: CAN Activity */ .size __cs3_interrupt_vector_cortex_m, . - __cs3_interrupt_vector_cortex_m .thumb /* Reset Handler */ .section .cs3.reset,"x",%progbits .thumb_func .globl __cs3_reset_cortex_m .type __cs3_reset_cortex_m, %function __cs3_reset_cortex_m: .fnstart LDR R0, =SystemInit BLX R0 .if (RAM_MODE) LDR R0,=main BX R0 .else LDR R0,=_start BX R0 .endif .pool .cantunwind .fnend .size __cs3_reset_cortex_m,.-__cs3_reset_cortex_m .section ".text" /* Exception Handlers */ .weak NMI_Handler .type NMI_Handler, %function NMI_Handler: B . .size NMI_Handler, . - NMI_Handler .weak HardFault_Handler .type HardFault_Handler, %function HardFault_Handler: B . .size HardFault_Handler, . - HardFault_Handler .weak MemManage_Handler .type MemManage_Handler, %function MemManage_Handler: B . .size MemManage_Handler, . - MemManage_Handler .weak BusFault_Handler .type BusFault_Handler, %function BusFault_Handler: B . .size BusFault_Handler, . - BusFault_Handler .weak UsageFault_Handler .type UsageFault_Handler, %function UsageFault_Handler: B . .size UsageFault_Handler, . - UsageFault_Handler .weak SVC_Handler .type SVC_Handler, %function SVC_Handler: B . .size SVC_Handler, . - SVC_Handler .weak DebugMon_Handler .type DebugMon_Handler, %function DebugMon_Handler: B . .size DebugMon_Handler, . - DebugMon_Handler .weak PendSV_Handler .type PendSV_Handler, %function PendSV_Handler: B . .size PendSV_Handler, . - PendSV_Handler .weak SysTick_Handler .type SysTick_Handler, %function SysTick_Handler: B . .size SysTick_Handler, . - SysTick_Handler /* IRQ Handlers */ .globl Default_Handler .type Default_Handler, %function Default_Handler: B . .size Default_Handler, . - Default_Handler .macro IRQ handler .weak \handler .set \handler, Default_Handler .endm IRQ WDT_IRQHandler IRQ TIMER0_IRQHandler IRQ TIMER1_IRQHandler IRQ TIMER2_IRQHandler IRQ TIMER3_IRQHandler IRQ UART0_IRQHandler IRQ UART1_IRQHandler IRQ UART2_IRQHandler IRQ UART3_IRQHandler IRQ PWM1_IRQHandler IRQ I2C0_IRQHandler IRQ I2C1_IRQHandler IRQ I2C2_IRQHandler IRQ SPI_IRQHandler IRQ SSP0_IRQHandler IRQ SSP1_IRQHandler IRQ PLL0_IRQHandler IRQ RTC_IRQHandler IRQ EINT0_IRQHandler IRQ EINT1_IRQHandler IRQ EINT2_IRQHandler IRQ EINT3_IRQHandler IRQ ADC_IRQHandler IRQ BOD_IRQHandler IRQ USB_IRQHandler IRQ CAN_IRQHandler IRQ DMA_IRQHandler IRQ I2S_IRQHandler IRQ ENET_IRQHandler IRQ RIT_IRQHandler IRQ MCPWM_IRQHandler IRQ QEI_IRQHandler IRQ PLL1_IRQHandler IRQ USBActivity_IRQHandler IRQ CANActivity_IRQHandler .end