mirror of https://github.com/ARMmbed/mbed-os.git
parent
8c2ede6f4f
commit
a9f0d9a3f7
|
@ -1,59 +1,46 @@
|
||||||
;/**************************************************************************//**
|
;/*****************************************************************************
|
||||||
; * @file startup_LPC11xx.s
|
; * @file: startup_LPC11xx.s
|
||||||
; * @brief CMSIS Cortex-M0 Core Device Startup File
|
; * @purpose: CMSIS Cortex-M0 Core Device Startup File
|
||||||
; * for the NXP LPC11xx/LPC11Cxx Device Series
|
; * for the NXP LPC11xx Device Series
|
||||||
; * @version V1.10
|
; * @version: V1.0
|
||||||
; * @date 24. November 2010
|
; * @date: 25. Nov. 2008
|
||||||
; *------- <<< Use Configuration Wizard in Context Menu >>> ------------------
|
; *------- <<< Use Configuration Wizard in Context Menu >>> ------------------
|
||||||
; *
|
; *
|
||||||
; * @note
|
; * Copyright (C) 2008 ARM Limited. All rights reserved.
|
||||||
; * Copyright (C) 2009-2010 ARM Limited. All rights reserved.
|
; * ARM Limited (ARM) is supplying this software for use with Cortex-M0
|
||||||
; *
|
|
||||||
; * @par
|
|
||||||
; * ARM Limited (ARM) is supplying this software for use with Cortex-M
|
|
||||||
; * processor based microcontrollers. This file can be freely distributed
|
; * processor based microcontrollers. This file can be freely distributed
|
||||||
; * within development tools that are supporting such ARM based processors.
|
; * within development tools that are supporting such ARM based processors.
|
||||||
; *
|
; *
|
||||||
; * @par
|
|
||||||
; * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
|
; * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
|
||||||
; * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
|
; * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
|
||||||
; * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
|
; * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
|
||||||
; * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
|
; * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
|
||||||
; * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
|
; * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
|
||||||
; *
|
; *
|
||||||
; ******************************************************************************/
|
; *****************************************************************************/
|
||||||
|
|
||||||
|
Stack_Size EQU 0x00000400
|
||||||
; <h> Stack Configuration
|
|
||||||
; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
|
|
||||||
; </h>
|
|
||||||
|
|
||||||
Stack_Size EQU 0x00000200
|
|
||||||
|
|
||||||
AREA STACK, NOINIT, READWRITE, ALIGN=3
|
AREA STACK, NOINIT, READWRITE, ALIGN=3
|
||||||
EXPORT __initial_sp
|
EXPORT __initial_sp
|
||||||
|
|
||||||
Stack_Mem SPACE Stack_Size
|
Stack_Mem SPACE Stack_Size
|
||||||
__initial_sp EQU 0x10001000 ; Top of RAM from LPC1114
|
__initial_sp EQU 0x10001000 ; Top of RAM from LPC1114
|
||||||
|
|
||||||
|
|
||||||
; <h> Heap Configuration
|
|
||||||
; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
|
|
||||||
; </h>
|
|
||||||
|
|
||||||
Heap_Size EQU 0x00000000
|
Heap_Size EQU 0x00000000
|
||||||
|
|
||||||
AREA HEAP, NOINIT, READWRITE, ALIGN=3
|
AREA HEAP, NOINIT, READWRITE, ALIGN=3
|
||||||
EXPORT __heap_base
|
EXPORT __heap_base
|
||||||
EXPORT __heap_limit
|
EXPORT __heap_limit
|
||||||
|
|
||||||
__heap_base
|
__heap_base
|
||||||
Heap_Mem SPACE Heap_Size
|
Heap_Mem SPACE Heap_Size
|
||||||
__heap_limit
|
__heap_limit
|
||||||
|
|
||||||
|
|
||||||
PRESERVE8
|
PRESERVE8
|
||||||
THUMB
|
THUMB
|
||||||
|
|
||||||
|
|
||||||
; Vector Table Mapped to Address 0 at Reset
|
; Vector Table Mapped to Address 0 at Reset
|
||||||
|
|
||||||
AREA RESET, DATA, READONLY
|
AREA RESET, DATA, READONLY
|
||||||
|
@ -76,41 +63,129 @@ __Vectors DCD __initial_sp ; Top of Stack
|
||||||
DCD PendSV_Handler ; PendSV Handler
|
DCD PendSV_Handler ; PendSV Handler
|
||||||
DCD SysTick_Handler ; SysTick Handler
|
DCD SysTick_Handler ; SysTick Handler
|
||||||
|
|
||||||
; External Interrupts
|
DCD FLEX_INT0_IRQHandler ; All GPIO pin can be routed to FLEX_INTx
|
||||||
DCD WAKEUP_IRQHandler ; 16+ 0: Wakeup PIO0.0
|
DCD FLEX_INT1_IRQHandler ;
|
||||||
DCD WAKEUP_IRQHandler ; 16+ 1: Wakeup PIO0.1
|
DCD FLEX_INT2_IRQHandler ;
|
||||||
DCD WAKEUP_IRQHandler ; 16+ 2: Wakeup PIO0.2
|
DCD FLEX_INT3_IRQHandler ;
|
||||||
DCD WAKEUP_IRQHandler ; 16+ 3: Wakeup PIO0.3
|
DCD FLEX_INT4_IRQHandler ;
|
||||||
DCD WAKEUP_IRQHandler ; 16+ 4: Wakeup PIO0.4
|
DCD FLEX_INT5_IRQHandler ;
|
||||||
DCD WAKEUP_IRQHandler ; 16+ 5: Wakeup PIO0.5
|
DCD FLEX_INT6_IRQHandler ;
|
||||||
DCD WAKEUP_IRQHandler ; 16+ 6: Wakeup PIO0.6
|
DCD FLEX_INT7_IRQHandler ;
|
||||||
DCD WAKEUP_IRQHandler ; 16+ 7: Wakeup PIO0.7
|
DCD GINT0_IRQHandler ;
|
||||||
DCD WAKEUP_IRQHandler ; 16+ 8: Wakeup PIO0.8
|
DCD GINT1_IRQHandler ; PIO0 (0:7)
|
||||||
DCD WAKEUP_IRQHandler ; 16+ 9: Wakeup PIO0.9
|
DCD Reserved_IRQHandler ; Reserved
|
||||||
DCD WAKEUP_IRQHandler ; 16+10: Wakeup PIO0.10
|
DCD Reserved_IRQHandler ;
|
||||||
DCD WAKEUP_IRQHandler ; 16+11: Wakeup PIO0.11
|
DCD Reserved_IRQHandler ;
|
||||||
DCD WAKEUP_IRQHandler ; 16+12: Wakeup PIO1.0
|
DCD Reserved_IRQHandler ;
|
||||||
DCD CAN_IRQHandler ; 16+13: CAN
|
DCD SSP1_IRQHandler ; SSP1
|
||||||
DCD SSP1_IRQHandler ; 16+14: SSP1
|
DCD I2C_IRQHandler ; I2C
|
||||||
DCD I2C_IRQHandler ; 16+15: I2C
|
DCD TIMER16_0_IRQHandler ; 16-bit Timer0
|
||||||
DCD TIMER16_0_IRQHandler ; 16+16: 16-bit Counter-Timer 0
|
DCD TIMER16_1_IRQHandler ; 16-bit Timer1
|
||||||
DCD TIMER16_1_IRQHandler ; 16+17: 16-bit Counter-Timer 1
|
DCD TIMER32_0_IRQHandler ; 32-bit Timer0
|
||||||
DCD TIMER32_0_IRQHandler ; 16+18: 32-bit Counter-Timer 0
|
DCD TIMER32_1_IRQHandler ; 32-bit Timer1
|
||||||
DCD TIMER32_1_IRQHandler ; 16+19: 32-bit Counter-Timer 1
|
DCD SSP0_IRQHandler ; SSP0
|
||||||
DCD SSP0_IRQHandler ; 16+20: SSP0
|
DCD UART_IRQHandler ; UART
|
||||||
DCD UART_IRQHandler ; 16+21: UART
|
DCD USB_IRQHandler ; USB IRQ
|
||||||
DCD USB_IRQHandler ; 16+22: USB IRQ
|
DCD USB_FIQHandler ; USB FIQ
|
||||||
DCD USB_FIQHandler ; 16+24: USB FIQ
|
DCD ADC_IRQHandler ; A/D Converter
|
||||||
DCD ADC_IRQHandler ; 16+24: A/D Converter
|
DCD WDT_IRQHandler ; Watchdog timer
|
||||||
DCD WDT_IRQHandler ; 16+25: Watchdog Timer
|
DCD BOD_IRQHandler ; Brown Out Detect
|
||||||
DCD BOD_IRQHandler ; 16+26: Brown Out Detect
|
DCD FMC_IRQHandler ; IP2111 Flash Memory Controller
|
||||||
DCD FMC_IRQHandler ; 16+27: IP2111 Flash Memory Controller
|
DCD Reserved_IRQHandler ; Reserved
|
||||||
DCD PIOINT3_IRQHandler ; 16+28: PIO INT3
|
DCD Reserved_IRQHandler ; Reserved
|
||||||
DCD PIOINT2_IRQHandler ; 16+29: PIO INT2
|
DCD Reserved_IRQHandler ; Reserved
|
||||||
DCD PIOINT1_IRQHandler ; 16+30: PIO INT1
|
DCD Reserved_IRQHandler ; Reserved
|
||||||
DCD PIOINT0_IRQHandler ; 16+31: PIO INT0
|
|
||||||
|
;; 48 vector entries. We pad to 128 to fill the 0x0 - 0x1FF REMAP address space
|
||||||
|
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
DCD 0xFFFFFFFF ; Datafill
|
||||||
|
|
||||||
IF :LNOT::DEF:NO_CRP
|
IF :LNOT::DEF:NO_CRP
|
||||||
AREA |.ARM.__at_0x02FC|, CODE, READONLY
|
AREA |.ARM.__at_0x02FC|, CODE, READONLY
|
||||||
CRP_Key DCD 0xFFFFFFFF
|
CRP_Key DCD 0xFFFFFFFF
|
||||||
|
@ -120,6 +195,7 @@ CRP_Key DCD 0xFFFFFFFF
|
||||||
AREA |.text|, CODE, READONLY
|
AREA |.text|, CODE, READONLY
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; Reset Handler
|
; Reset Handler
|
||||||
|
|
||||||
Reset_Handler PROC
|
Reset_Handler PROC
|
||||||
|
@ -132,13 +208,14 @@ Reset_Handler PROC
|
||||||
BX R0
|
BX R0
|
||||||
ENDP
|
ENDP
|
||||||
|
|
||||||
|
|
||||||
; Dummy Exception Handlers (infinite loops which can be modified)
|
; Dummy Exception Handlers (infinite loops which can be modified)
|
||||||
|
|
||||||
NMI_Handler PROC
|
; now, under COMMON NMI.c and NMI.h, a real NMI handler is created if NMI is enabled
|
||||||
EXPORT NMI_Handler [WEAK]
|
; for particular peripheral.
|
||||||
B .
|
;NMI_Handler PROC
|
||||||
ENDP
|
; EXPORT NMI_Handler [WEAK]
|
||||||
|
; B .
|
||||||
|
; ENDP
|
||||||
HardFault_Handler\
|
HardFault_Handler\
|
||||||
PROC
|
PROC
|
||||||
EXPORT HardFault_Handler [WEAK]
|
EXPORT HardFault_Handler [WEAK]
|
||||||
|
@ -156,11 +233,24 @@ SysTick_Handler PROC
|
||||||
EXPORT SysTick_Handler [WEAK]
|
EXPORT SysTick_Handler [WEAK]
|
||||||
B .
|
B .
|
||||||
ENDP
|
ENDP
|
||||||
|
Reserved_IRQHandler PROC
|
||||||
|
EXPORT Reserved_IRQHandler [WEAK]
|
||||||
|
B .
|
||||||
|
ENDP
|
||||||
|
|
||||||
Default_Handler PROC
|
Default_Handler PROC
|
||||||
|
; for LPC11Uxx (With USB)
|
||||||
EXPORT WAKEUP_IRQHandler [WEAK]
|
EXPORT NMI_Handler [WEAK]
|
||||||
EXPORT CAN_IRQHandler [WEAK]
|
EXPORT FLEX_INT0_IRQHandler [WEAK]
|
||||||
|
EXPORT FLEX_INT1_IRQHandler [WEAK]
|
||||||
|
EXPORT FLEX_INT2_IRQHandler [WEAK]
|
||||||
|
EXPORT FLEX_INT3_IRQHandler [WEAK]
|
||||||
|
EXPORT FLEX_INT4_IRQHandler [WEAK]
|
||||||
|
EXPORT FLEX_INT5_IRQHandler [WEAK]
|
||||||
|
EXPORT FLEX_INT6_IRQHandler [WEAK]
|
||||||
|
EXPORT FLEX_INT7_IRQHandler [WEAK]
|
||||||
|
EXPORT GINT0_IRQHandler [WEAK]
|
||||||
|
EXPORT GINT1_IRQHandler [WEAK]
|
||||||
EXPORT SSP1_IRQHandler [WEAK]
|
EXPORT SSP1_IRQHandler [WEAK]
|
||||||
EXPORT I2C_IRQHandler [WEAK]
|
EXPORT I2C_IRQHandler [WEAK]
|
||||||
EXPORT TIMER16_0_IRQHandler [WEAK]
|
EXPORT TIMER16_0_IRQHandler [WEAK]
|
||||||
|
@ -169,19 +259,26 @@ Default_Handler PROC
|
||||||
EXPORT TIMER32_1_IRQHandler [WEAK]
|
EXPORT TIMER32_1_IRQHandler [WEAK]
|
||||||
EXPORT SSP0_IRQHandler [WEAK]
|
EXPORT SSP0_IRQHandler [WEAK]
|
||||||
EXPORT UART_IRQHandler [WEAK]
|
EXPORT UART_IRQHandler [WEAK]
|
||||||
|
|
||||||
EXPORT USB_IRQHandler [WEAK]
|
EXPORT USB_IRQHandler [WEAK]
|
||||||
EXPORT USB_FIQHandler [WEAK]
|
EXPORT USB_FIQHandler [WEAK]
|
||||||
EXPORT ADC_IRQHandler [WEAK]
|
EXPORT ADC_IRQHandler [WEAK]
|
||||||
EXPORT WDT_IRQHandler [WEAK]
|
EXPORT WDT_IRQHandler [WEAK]
|
||||||
EXPORT BOD_IRQHandler [WEAK]
|
EXPORT BOD_IRQHandler [WEAK]
|
||||||
EXPORT FMC_IRQHandler [WEAK]
|
EXPORT FMC_IRQHandler [WEAK]
|
||||||
EXPORT PIOINT3_IRQHandler [WEAK]
|
EXPORT USBWakeup_IRQHandler [WEAK]
|
||||||
EXPORT PIOINT2_IRQHandler [WEAK]
|
|
||||||
EXPORT PIOINT1_IRQHandler [WEAK]
|
|
||||||
EXPORT PIOINT0_IRQHandler [WEAK]
|
|
||||||
|
|
||||||
WAKEUP_IRQHandler
|
NMI_Handler
|
||||||
CAN_IRQHandler
|
FLEX_INT0_IRQHandler
|
||||||
|
FLEX_INT1_IRQHandler
|
||||||
|
FLEX_INT2_IRQHandler
|
||||||
|
FLEX_INT3_IRQHandler
|
||||||
|
FLEX_INT4_IRQHandler
|
||||||
|
FLEX_INT5_IRQHandler
|
||||||
|
FLEX_INT6_IRQHandler
|
||||||
|
FLEX_INT7_IRQHandler
|
||||||
|
GINT0_IRQHandler
|
||||||
|
GINT1_IRQHandler
|
||||||
SSP1_IRQHandler
|
SSP1_IRQHandler
|
||||||
I2C_IRQHandler
|
I2C_IRQHandler
|
||||||
TIMER16_0_IRQHandler
|
TIMER16_0_IRQHandler
|
||||||
|
@ -196,19 +293,11 @@ ADC_IRQHandler
|
||||||
WDT_IRQHandler
|
WDT_IRQHandler
|
||||||
BOD_IRQHandler
|
BOD_IRQHandler
|
||||||
FMC_IRQHandler
|
FMC_IRQHandler
|
||||||
PIOINT3_IRQHandler
|
USBWakeup_IRQHandler
|
||||||
PIOINT2_IRQHandler
|
|
||||||
PIOINT1_IRQHandler
|
|
||||||
PIOINT0_IRQHandler
|
|
||||||
|
|
||||||
B .
|
B .
|
||||||
|
|
||||||
ENDP
|
ENDP
|
||||||
|
|
||||||
ALIGN
|
ALIGN
|
||||||
|
|
||||||
; @toyowata removed "User Initial Stack & Heap" block here,
|
|
||||||
; since arm.py script doesn't pass -D__MICROLIB definision to armasm.
|
|
||||||
; Now, required symbols (__initial_sp etc) were exported in this code.
|
|
||||||
|
|
||||||
END
|
END
|
||||||
|
|
Loading…
Reference in New Issue