📄 startup.lst
字号:
ARM Macro Assembler Page 1
1 00000000 ; <<< Use Configuration Wizard in Context Menu >>>
2 00000000 ;*******************************************************
***********************
3 00000000 ;
4 00000000 ; Startup.s - Startup code for Stellaris.
5 00000000 ;
6 00000000 ; Copyright (c) 2006-2007 Luminary Micro, Inc. All righ
ts reserved.
7 00000000 ;
8 00000000 ; Software License Agreement
9 00000000 ;
10 00000000 ; Luminary Micro, Inc. (LMI) is supplying this software
for use solely and
11 00000000 ; exclusively on LMI's microcontroller products.
12 00000000 ;
13 00000000 ; The software is owned by LMI and/or its suppliers, and
is protected under
14 00000000 ; applicable copyright laws. All rights are reserved.
Any use in violation
15 00000000 ; of the foregoing restrictions may subject the user to
criminal sanctions
16 00000000 ; under applicable laws, as well as to civil liability f
or the breach of the
17 00000000 ; terms and conditions of this license.
18 00000000 ;
19 00000000 ; THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHE
THER EXPRESS, IMPLIED
20 00000000 ; OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED W
ARRANTIES OF
21 00000000 ; MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE A
PPLY TO THIS SOFTWARE.
22 00000000 ; LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPE
CIAL, INCIDENTAL, OR
23 00000000 ; CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
24 00000000 ;
25 00000000 ; This is part of revision 1387 of the Stellaris Periphe
ral Driver Library.
26 00000000 ;
27 00000000 ;*******************************************************
***********************
28 00000000
29 00000000 ;*******************************************************
***********************
30 00000000 ;
31 00000000 ; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
32 00000000 ;
33 00000000 ;*******************************************************
***********************
34 00000000 00000400
Stack EQU 0x00000400
35 00000000
36 00000000 ;*******************************************************
***********************
37 00000000 ;
38 00000000 ; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
39 00000000 ;
40 00000000 ;*******************************************************
***********************
41 00000000 00000000
ARM Macro Assembler Page 2
Heap EQU 0x00000000
42 00000000
43 00000000 ;*******************************************************
***********************
44 00000000 ;
45 00000000 ; Allocate space for the stack.
46 00000000 ;
47 00000000 ;*******************************************************
***********************
48 00000000 AREA STACK, NOINIT, READWRITE, ALIGN
=3
49 00000000 StackMem
50 00000000 SPACE Stack
51 00000400 __initial_sp
52 00000400
53 00000400 ;*******************************************************
***********************
54 00000400 ;
55 00000400 ; Allocate space for the heap.
56 00000400 ;
57 00000400 ;*******************************************************
***********************
58 00000400 AREA HEAP, NOINIT, READWRITE, ALIGN=
3
59 00000000 __heap_base
60 00000000 HeapMem
61 00000000 SPACE Heap
62 00000000 __heap_limit
63 00000000
64 00000000 ;*******************************************************
***********************
65 00000000 ;
66 00000000 ; Indicate that the code in this file preserves 8-byte a
lignment of the stack.
67 00000000 ;
68 00000000 ;*******************************************************
***********************
69 00000000 PRESERVE8
70 00000000
71 00000000 ;*******************************************************
***********************
72 00000000 ;
73 00000000 ; Place code into the reset code section.
74 00000000 ;
75 00000000 ;*******************************************************
***********************
76 00000000 AREA RESET, CODE, READONLY
77 00000000 THUMB
78 00000000
79 00000000 ;*******************************************************
***********************
80 00000000 ;
81 00000000 ; The vector table.
82 00000000 ;
83 00000000 ;*******************************************************
***********************
84 00000000 EXPORT __Vectors
85 00000000 __Vectors
86 00000000 00000400 DCD StackMem + Stack ; Top of Stack
ARM Macro Assembler Page 3
87 00000004 00000000 DCD Reset_Handler ; Reset Handler
88 00000008 00000000 DCD NmiSR ; NMI Handler
89 0000000C 00000000 DCD FaultISR ; Hard Fault Handle
r
90 00000010 00000000 DCD IntDefaultHandler
; MPU Fault Handler
91 00000014 00000000 DCD IntDefaultHandler
; Bus Fault Handler
92 00000018 00000000 DCD IntDefaultHandler ; Usage Fault
Handler
93 0000001C 00000000 DCD 0 ; Reserved
94 00000020 00000000 DCD 0 ; Reserved
95 00000024 00000000 DCD 0 ; Reserved
96 00000028 00000000 DCD 0 ; Reserved
97 0000002C 00000000 DCD IntDefaultHandler
; SVCall Handler
98 00000030 00000000 DCD IntDefaultHandler ; Debug Monit
or Handler
99 00000034 00000000 DCD 0 ; Reserved
100 00000038 00000000 DCD IntDefaultHandler
; PendSV Handler
101 0000003C 00000000 DCD IntDefaultHandler
; SysTick Handler
102 00000040 00000000 DCD IntDefaultHandler ; GPIO Port A
103 00000044 00000000 DCD IntDefaultHandler ; GPIO Port B
104 00000048 00000000 DCD IntDefaultHandler ; GPIO Port C
105 0000004C 00000000 DCD IntDefaultHandler ; GPIO Port D
106 00000050 00000000 DCD IntDefaultHandler ; GPIO Port E
107 00000054 00000000 DCD IntDefaultHandler ; UART0
108 00000058 00000000 DCD IntDefaultHandler ; UART1
109 0000005C 00000000 DCD IntDefaultHandler ; SSI
110 00000060 00000000 DCD IntDefaultHandler ; I2C
111 00000064 00000000 DCD IntDefaultHandler ; PWM Fault
112 00000068 00000000 DCD IntDefaultHandler
; PWM Generator 0
113 0000006C 00000000 DCD IntDefaultHandler
; PWM Generator 1
114 00000070 00000000 DCD IntDefaultHandler
; PWM Generator 2
115 00000074 00000000 DCD IntDefaultHandler ; Quadrature
Encoder
116 00000078 00000000 DCD IntDefaultHandler
; ADC Sequence 0
117 0000007C 00000000 DCD IntDefaultHandler
; ADC Sequence 1
118 00000080 00000000 DCD IntDefaultHandler
; ADC Sequence 2
119 00000084 00000000 DCD IntDefaultHandler
; ADC Sequence 3
120 00000088 00000000 DCD IntDefaultHandler ; Watchdog
121 0000008C extern Timer0A_ISR
ARM Macro Assembler Page 4
122 0000008C 00000000 DCD Timer0A_ISR ; Timer 0A
123 00000090 00000000 DCD IntDefaultHandler ; Timer 0B
124 00000094 00000000 DCD IntDefaultHandler ; Timer 1A
125 00000098 00000000 DCD IntDefaultHandler ; Timer 1B
126 0000009C 00000000 DCD IntDefaultHandler ; Timer 2A
127 000000A0 00000000 DCD IntDefaultHandler ; Timer 2B
128 000000A4 00000000 DCD IntDefaultHandler ; Comp 0
129 000000A8 00000000 DCD IntDefaultHandler ; Comp 1
130 000000AC 00000000 DCD IntDefaultHandler ; Comp 2
131 000000B0 00000000 DCD IntDefaultHandler
; System Control
132 000000B4 00000000 DCD IntDefaultHandler
; Flash Control
133 000000B8 00000000 DCD IntDefaultHandler ; GPIO Port F
134 000000BC 00000000 DCD IntDefaultHandler ; GPIO Port G
135 000000C0 00000000 DCD IntDefaultHandler ; GPIO Port H
136 000000C4 00000000 DCD IntDefaultHandler
; UART2 Rx and Tx
137 000000C8 00000000 DCD IntDefaultHandler
; SSI1 Rx and Tx
138 000000CC 00000000 DCD IntDefaultHandler ; Timer 3 sub
timer A
139 000000D0 00000000 DCD IntDefaultHandler ; Timer 3 sub
timer B
140 000000D4 00000000 DCD IntDefaultHandler ; I2C1 Master
and Slave
141 000000D8 00000000 DCD IntDefaultHandler ; Quadrature
Encoder 1
142 000000DC 00000000 DCD IntDefaultHandler ; CAN0
143 000000E0 00000000 DCD IntDefaultHandler ; CAN1
144 000000E4 00000000 DCD 0 ; Reserved
145 000000E8 00000000 DCD IntDefaultHandler ; Ethernet
146 000000EC 00000000 DCD IntDefaultHandler ; Hibernate
147 000000F0
148 000000F0 ;*******************************************************
***********************
149 000000F0 ;
150 000000F0 ; This is the code that gets called when the processor f
irst starts execution
151 000000F0 ; following a reset event.
152 000000F0 ;
153 000000F0 ;*******************************************************
***********************
154 000000F0 EXPORT Reset_Handler
155 000000F0 Reset_Handler
156 000000F0 ;
157 000000F0 ; Call the C library enty point that handles startup. T
his will copy
158 000000F0 ; the .data section initializers from flash to SRAM and
zero fill the
159 000000F0 ; .bss section. It will then call __rt_entry, which wil
l be either the
160 000000F0 ; C library version or the one supplied here depending o
n the
161 000000F0 ; configured startup type.
162 000000F0 ;
ARM Macro Assembler Page 5
163 000000F0 IMPORT __main
164 000000F0 F7FF BFFE B __main
165 000000F4
166 000000F4 ;*******************************************************
***********************
167 000000F4 ;
168 000000F4 ; This is the code that gets called when the processor r
eceives a NMI. This
169 000000F4 ; simply enters an infinite loop, preserving the system
state for examination
170 000000F4 ; by a debugger.
171 000000F4 ;
172 000000F4 ;*******************************************************
***********************
173 000000F4 NmiSR
174 000000F4 E7FE B NmiSR
175 000000F6
176 000000F6 ;*******************************************************
***********************
177 000000F6 ;
178 000000F6 ; This is the code that gets called when the processor r
eceives a fault
179 000000F6 ; interrupt. This simply enters an infinite loop, prese
rving the system state
180 000000F6 ; for examination by a debugger.
181 000000F6 ;
182 000000F6 ;*******************************************************
***********************
183 000000F6 FaultISR
184 000000F6 E7FE B FaultISR
185 000000F8
186 000000F8 ;*******************************************************
***********************
187 000000F8 ;
188 000000F8 ; This is the code that gets called when the processor r
eceives an unexpected
189 000000F8 ; interrupt. This simply enters an infinite loop, prese
rving the system state
190 000000F8 ; for examination by a debugger.
191 000000F8 ;
192 000000F8 ;*******************************************************
***********************
193 000000F8 IntDefaultHandler
194 000000F8 E7FE B IntDefaultHandler
195 000000FA
196 000000FA ;*******************************************************
***********************
197 000000FA ;
198 000000FA ; Make sure the end of this section is aligned.
199 000000FA ;
200 000000FA ;*******************************************************
***********************
201 000000FA 00 00 ALIGN
202 000000FC
203 000000FC ;*******************************************************
***********************
204 000000FC ;
205 000000FC ; Some code in the normal code section for initializing
the heap and stack.
ARM Macro Assembler Page 6
206 000000FC ;
207 000000FC ;*******************************************************
***********************
208 000000FC AREA |.text|, CODE, READONLY
209 00000000
210 00000000 ;*******************************************************
***********************
211 00000000 ;
212 00000000 ; The function expected of the C library startup code fo
r defining the stack
213 00000000 ; and heap memory locations. For the C library version
of the startup code,
214 00000000 ; provide this function so that the C library initializa
tion code can find out
215 00000000 ; the location of the stack and heap.
216 00000000 ;
217 00000000 ;*******************************************************
***********************
218 00000000 IF :DEF: __MICROLIB
223 00000000 IMPORT __use_two_region_memory
224 00000000 EXPORT __user_initial_stackheap
225 00000000 __user_initial_stackheap
226 00000000 4802 LDR R0, =HeapMem
227 00000002 4903 LDR R1, =(StackMem + Stack)
228 00000004 4A01 LDR R2, =(HeapMem + Heap)
229 00000006 4B03 LDR R3, =StackMem
230 00000008 4770 BX LR
231 0000000A ENDIF
232 0000000A
233 0000000A ;*******************************************************
***********************
234 0000000A ;
235 0000000A ; Make sure the end of this section is aligned.
236 0000000A ;
237 0000000A ;*******************************************************
***********************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -