1 ;/*****************************************************************************/
\r
2 ;/* STARTUP.S: Startup file for Luminary Micro LM3Sxxx */
\r
3 ;/*****************************************************************************/
\r
4 ;/* <<< Use Configuration Wizard in Context Menu >>> */
\r
5 ;/*****************************************************************************/
\r
6 ;/* This file is part of the uVision/ARM development tools. */
\r
7 ;/* Copyright (c) 2005-2006 Keil Software. All rights reserved. */
\r
8 ;/* This software may only be used under the terms of a valid, current, */
\r
9 ;/* end user licence from KEIL for a compatible version of KEIL software */
\r
10 ;/* development tools. Nothing else gives you the right to use this software. */
\r
11 ;/*****************************************************************************/
\r
15 ; * The STARTUP.S code is executed after CPU Reset.
\r
19 ;// <h> Stack Configuration
\r
20 ;// <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
\r
25 AREA STACK, NOINIT, READWRITE, ALIGN=3
\r
26 Stack_Mem SPACE Stack_Size
\r
29 ;// <h> Heap Configuration
\r
30 ;// <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
\r
33 Heap_Size EQU 0x00000000
\r
35 AREA HEAP, NOINIT, READWRITE, ALIGN=3
\r
36 Heap_Mem SPACE Heap_Size
\r
39 ; System Control Register Addresses
\r
40 SYSCTL_BASE EQU 0x400FE000 ; System Control Base Address
\r
41 PBORCTL_OFS EQU 0x0030 ; Power-On & Brown-Out Reset Control
\r
42 LDOPC_OFS EQU 0x0034 ; LDO Power
\r
43 SRCR0_OFS EQU 0x0040 ; Software Reset Control 0
\r
44 SRCR1_OFS EQU 0x0044 ; Software Reset Control 1
\r
45 SRCR2_OFS EQU 0x0048 ; Software Reset Control 2
\r
46 RCC_OFS EQU 0x0060 ; Run-Mode Clock Control
\r
47 RCGC0_OFS EQU 0x0100 ; Run-Mode Clock Gating Control 0
\r
48 RCGC1_OFS EQU 0x0104 ; Run-Mode Clock Gating Control 1
\r
49 RCGC2_OFS EQU 0x0108 ; Run-Mode Clock Gating Control 2
\r
50 SCGC0_OFS EQU 0x0110 ; Sleep-Mode Clock Gating Control 0
\r
51 SCGC1_OFS EQU 0x0114 ; Sleep-Mode Clock Gating Control 1
\r
52 SCGC2_OFS EQU 0x0118 ; Sleep-Mode Clock Gating Control 2
\r
53 DCGC0_OFS EQU 0x0120 ; Deep-Sleep-Mode Clock Gating Control 0
\r
54 DCGC1_OFS EQU 0x0124 ; Deep-Sleep-Mode Clock Gating Control 1
\r
55 DCGC2_OFS EQU 0x0128 ; Deep-Sleep-Mode Clock Gating Control 2
\r
61 ; Area Definition and Entry Point
\r
62 ; Startup Code must be linked first at Address 0.
\r
64 AREA RESET, CODE, READONLY
\r
67 IMPORT xPortPendSVHandler
\r
68 IMPORT xPortSysTickHandler
\r
70 IMPORT vPortSVCHandler
\r
74 __Vectors DCD Stack_Mem + Stack_Size ; Top of Stack
\r
75 DCD Reset_Handler ; Reset Handler
\r
76 DCD NmiSR ; NMI Handler
\r
77 DCD DefaultISR ; Hard Fault Handler
\r
78 DCD DefaultISR ; MPU Fault Handler
\r
79 DCD DefaultISR ; Bus Fault Handler
\r
80 DCD DefaultISR ; Usage Fault Handler
\r
85 DCD vPortSVCHandler ; SVCall Handler
\r
86 DCD DefaultISR ; Debug Monitor Handler
\r
88 DCD xPortPendSVHandler ; PendSV Handler
\r
89 DCD xPortSysTickHandler ; SysTick Handler
\r
90 DCD DefaultISR ; GPIO Port A Handler
\r
91 DCD DefaultISR ; GPIO Port B Handler
\r
92 DCD DefaultISR ; GPIO Port C Handler
\r
93 DCD DefaultISR ; GPIO Port D Handler
\r
94 DCD DefaultISR ; GPIO Port E Handler
\r
95 DCD vUART_ISR ; UART0 Rx/Tx Handler
\r
96 DCD DefaultISR ; UART1 Rx/Tx Handler
\r
97 DCD DefaultISR ; SSI Rx/Tx Handler
\r
98 DCD DefaultISR ; I2C Master/Slave Handler
\r
99 DCD DefaultISR ; PWM Fault Handler
\r
100 DCD DefaultISR ; PWM Generator 0 Handler
\r
101 DCD DefaultISR ; PWM Generator 1 Handler
\r
102 DCD DefaultISR ; PWM Generator 2 Handler
\r
103 DCD DefaultISR ; Quadrature Encoder Handler
\r
104 DCD DefaultISR ; ADC Sequence 0 Handler
\r
105 DCD DefaultISR ; ADC Sequence 1 Handler
\r
106 DCD DefaultISR ; ADC Sequence 2 Handler
\r
107 DCD DefaultISR ; ADC Sequence 3 Handler
\r
108 DCD DefaultISR ; Watchdog Timer Handler
\r
109 DCD DefaultISR ; Timer 0 Subtimer A Handler
\r
110 DCD DefaultISR ; Timer 0 Subtimer B Handler
\r
111 DCD DefaultISR ; Timer 1 Subtimer A Handler
\r
112 DCD DefaultISR ; Timer 1 Subtimer B Handler
\r
113 DCD DefaultISR ; Timer 2 Subtimer A Handler
\r
114 DCD DefaultISR ; Timer 2 Subtimer B Handler
\r
115 DCD DefaultISR ; Analog Comparator 0 Handler
\r
116 DCD DefaultISR ; Analog Comparator 1 Handler
\r
117 DCD DefaultISR ; Analog Comparator 2 Handler
\r
118 DCD DefaultISR ; System Control Handler
\r
119 DCD DefaultISR ; Flash Control Handler
\r
121 ; Dummy Handlers are implemented as infinite loops which can be modified.
\r
124 FaultISR B FaultISR
\r
126 DefaultISR B DefaultISR
\r
131 EXPORT Reset_Handler
\r
134 ; Enable Clock Gating for Peripherals
\r
135 ; LDR R0, =SYSCTL_BASE ; System Control Base Address
\r
136 ; MVN R1, #0 ; Value 0xFFFFFFFF
\r
137 ; STR R1, [R0,#RCGC0_OFS] ; Run-Mode Clock Gating Ctrl 0
\r
138 ; STR R1, [R0,#RCGC1_OFS] ; Run-Mode Clock Gating Ctrl 1
\r
139 ; STR R1, [R0,#RCGC2_OFS] ; Run-Mode Clock Gating Ctrl 2
\r
148 ; User Initial Stack & Heap
\r
149 AREA |.text|, CODE, READONLY
\r
151 IMPORT __use_two_region_memory
\r
152 EXPORT __user_initial_stackheap
\r
153 __user_initial_stackheap
\r
156 LDR R1, =(Stack_Mem + Stack_Size)
\r
157 LDR R2, = (Heap_Mem + Heap_Size)
\r
158 LDR R3, = Stack_Mem
\r