mirror of
https://github.com/hathach/tinyusb.git
synced 2025-01-17 05:32:55 +08:00
197 lines
6.7 KiB
ArmAsm
197 lines
6.7 KiB
ArmAsm
/**************************************************
|
|
*
|
|
* Part one of the system initialization code, contains low-level
|
|
* initialization, plain thumb variant.
|
|
*
|
|
* Copyright 2009 IAR Systems. All rights reserved.
|
|
*
|
|
* $Revision: 47021 $
|
|
*
|
|
**************************************************/
|
|
|
|
;
|
|
; The modules in this file are included in the libraries, and may be replaced
|
|
; by any user-defined modules that define the PUBLIC symbol _program_start or
|
|
; a user defined start symbol.
|
|
; To override the cstartup defined in the library, simply add your modified
|
|
; version to the workbench project.
|
|
;
|
|
; The vector table is normally located at address 0.
|
|
; When debugging in RAM, it can be located in RAM, aligned to at least 2^6.
|
|
; The name "__vector_table" has special meaning for C-SPY:
|
|
; it is where the SP start value is found, and the NVIC vector
|
|
; table register (VTOR) is initialized to this address if != 0.
|
|
;
|
|
; Cortex-M version
|
|
;
|
|
|
|
MODULE ?cstartup
|
|
|
|
;; Forward declaration of sections.
|
|
SECTION CSTACK:DATA:NOROOT(3)
|
|
|
|
SECTION .intvec:CODE:NOROOT(2)
|
|
|
|
EXTERN __iar_program_start
|
|
|
|
PUBLIC __vector_table
|
|
PUBLIC __vector_table_0x1c
|
|
DATA
|
|
__vector_table
|
|
DCD sfe(CSTACK) ; Top of Stack
|
|
DCD __iar_program_start ; Reset Handler
|
|
DCD NMI_Handler ; NMI Handler
|
|
DCD HardFault_Handler ; Hard Fault Handler
|
|
DCD MemManage_Handler ; MPU Fault Handler
|
|
DCD BusFault_Handler ; Bus Fault Handler
|
|
DCD UsageFault_Handler ; Usage Fault Handler
|
|
__vector_table_0x1c
|
|
DCD 0 ; Reserved
|
|
DCD 0 ; Reserved
|
|
DCD 0 ; Reserved
|
|
DCD 0 ; Reserved
|
|
DCD SVC_Handler ; SVCall Handler
|
|
DCD DebugMon_Handler ; Debug Monitor Handler
|
|
DCD 0 ; Reserved
|
|
DCD PendSV_Handler ; PendSV Ha dler
|
|
DCD SysTick_Handler ; SysTick Handler
|
|
; External Interrupts
|
|
DCD FLEX_INT0_IRQHandler ; All GPIO pin can be routed to FLEX_INTx
|
|
DCD FLEX_INT1_IRQHandler
|
|
DCD FLEX_INT2_IRQHandler
|
|
DCD FLEX_INT3_IRQHandler
|
|
DCD FLEX_INT4_IRQHandler
|
|
DCD FLEX_INT5_IRQHandler
|
|
DCD FLEX_INT6_IRQHandler
|
|
DCD FLEX_INT7_IRQHandler
|
|
DCD GINT0_IRQHandler
|
|
DCD GINT1_IRQHandler ; PIO0 (0:7)
|
|
DCD Reserved_IRQHandler ; Reserved
|
|
DCD Reserved_IRQHandler
|
|
DCD Reserved_IRQHandler
|
|
DCD Reserved_IRQHandler
|
|
DCD SSP1_IRQHandler ; SSP1
|
|
DCD I2C_IRQHandler ; I2C
|
|
DCD TIMER16_0_IRQHandler ; 16-bit Timer0
|
|
DCD TIMER16_1_IRQHandler ; 16-bit Timer1
|
|
DCD TIMER32_0_IRQHandler ; 32-bit Timer0
|
|
DCD TIMER32_1_IRQHandler ; 32-bit Timer1
|
|
DCD SSP0_IRQHandler ; SSP0
|
|
DCD UART_IRQHandler ; UART
|
|
DCD USB_IRQHandler ; USB IRQ
|
|
DCD USB_FIQHandler ; USB FIQ
|
|
DCD ADC_IRQHandler ; A/D Converter
|
|
DCD WDT_IRQHandler ; Watchdog timer
|
|
DCD BOD_IRQHandler ; Brown Out Detect
|
|
DCD FMC_IRQHandler ; IP2111 Flash Memory Controller
|
|
DCD Reserved_IRQHandler ; Reserved
|
|
DCD Reserved_IRQHandler ; Reserved
|
|
DCD USBWakeup_IRQHandler ; USB wake up
|
|
DCD Reserved_IRQHandler ; Reserved
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
;;
|
|
;; Default interrupt handlers.
|
|
;;
|
|
THUMB
|
|
SECTION .text:CODE:REORDER:NOROOT(1)
|
|
PUBWEAK NMI_Handler
|
|
PUBWEAK HardFault_Handler
|
|
PUBWEAK MemManage_Handler
|
|
PUBWEAK BusFault_Handler
|
|
PUBWEAK UsageFault_Handler
|
|
PUBWEAK SVC_Handler
|
|
PUBWEAK DebugMon_Handler
|
|
PUBWEAK PendSV_Handler
|
|
PUBWEAK SysTick_Handler
|
|
PUBWEAK FLEX_INT0_IRQHandler
|
|
PUBWEAK FLEX_INT1_IRQHandler
|
|
PUBWEAK FLEX_INT2_IRQHandler
|
|
PUBWEAK FLEX_INT3_IRQHandler
|
|
PUBWEAK FLEX_INT4_IRQHandler
|
|
PUBWEAK FLEX_INT5_IRQHandler
|
|
PUBWEAK FLEX_INT6_IRQHandler
|
|
PUBWEAK FLEX_INT7_IRQHandler
|
|
PUBWEAK GINT0_IRQHandler
|
|
PUBWEAK GINT1_IRQHandler
|
|
PUBWEAK SSP1_IRQHandler
|
|
PUBWEAK I2C_IRQHandler
|
|
PUBWEAK TIMER16_0_IRQHandler
|
|
PUBWEAK TIMER16_1_IRQHandler
|
|
PUBWEAK TIMER32_0_IRQHandler
|
|
PUBWEAK TIMER32_1_IRQHandler
|
|
PUBWEAK SSP0_IRQHandler
|
|
PUBWEAK UART_IRQHandler
|
|
PUBWEAK USB_IRQHandler
|
|
PUBWEAK USB_FIQHandler
|
|
PUBWEAK ADC_IRQHandler
|
|
PUBWEAK WDT_IRQHandler
|
|
PUBWEAK BOD_IRQHandler
|
|
PUBWEAK FMC_IRQHandler
|
|
PUBWEAK USBWakeup_IRQHandler
|
|
PUBWEAK Reserved_IRQHandler
|
|
|
|
NMI_Handler
|
|
HardFault_Handler
|
|
MemManage_Handler
|
|
BusFault_Handler
|
|
UsageFault_Handler
|
|
SVC_Handler
|
|
DebugMon_Handler
|
|
PendSV_Handler
|
|
SysTick_Handler
|
|
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
|
|
I2C_IRQHandler
|
|
TIMER16_0_IRQHandler
|
|
TIMER16_1_IRQHandler
|
|
TIMER32_0_IRQHandler
|
|
TIMER32_1_IRQHandler
|
|
SSP0_IRQHandler
|
|
UART_IRQHandler
|
|
USB_IRQHandler
|
|
USB_FIQHandler
|
|
ADC_IRQHandler
|
|
WDT_IRQHandler
|
|
BOD_IRQHandler
|
|
FMC_IRQHandler
|
|
USBWakeup_IRQHandler
|
|
Reserved_IRQHandler
|
|
Default_Handler:
|
|
B Default_Handler
|
|
|
|
SECTION .crp:CODE:ROOT(2)
|
|
DATA
|
|
/* Code Read Protection
|
|
NO_ISP 0x4E697370 - Prevents sampling of pin PIO0_1 for entering ISP mode
|
|
CRP1 0x12345678 - Write to RAM command cannot access RAM below 0x10000300.
|
|
- Copy RAM to flash command can not write to Sector 0.
|
|
- Erase command can erase Sector 0 only when all sectors
|
|
are selected for erase.
|
|
- Compare command is disabled.
|
|
- Read Memory command is disabled.
|
|
CRP2 0x87654321 - Read Memory is disabled.
|
|
- Write to RAM is disabled.
|
|
- "Go" command is disabled.
|
|
- Copy RAM to flash is disabled.
|
|
- Compare is disabled.
|
|
CRP3 0x43218765 - Access to chip via the SWD pins is disabled. ISP entry
|
|
by pulling PIO0_1 LOW is disabled if a valid user code is
|
|
present in flash sector 0.
|
|
Caution: If CRP3 is selected, no future factory testing can be
|
|
performed on the device.
|
|
*/
|
|
DCD 0xFFFFFFFF
|
|
|
|
END
|