]> git.sur5r.net Git - freertos/blob - Demo/CORTEX_LM3S102_KEIL/init/Startup.s
Remove unused variable warning.
[freertos] / Demo / CORTEX_LM3S102_KEIL / init / Startup.s
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
12 \r
13 \r
14 ;/*\r
15 ; *  The STARTUP.S code is executed after CPU Reset. \r
16 ; */\r
17 \r
18 \r
19 ;// <h> Stack Configuration\r
20 ;//   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>\r
21 ;// </h>\r
22 \r
23 Stack_Size      EQU     51\r
24 \r
25                 AREA    STACK, NOINIT, READWRITE, ALIGN=3\r
26 Stack_Mem       SPACE   Stack_Size\r
27 \r
28 \r
29 ;// <h> Heap Configuration\r
30 ;//   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>\r
31 ;// </h>\r
32 \r
33 Heap_Size       EQU     0x00000000\r
34 \r
35                 AREA    HEAP, NOINIT, READWRITE, ALIGN=3\r
36 Heap_Mem        SPACE   Heap_Size\r
37 \r
38 \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
56 \r
57 \r
58                 PRESERVE8\r
59                 \r
60 \r
61 ; Area Definition and Entry Point\r
62 ;  Startup Code must be linked first at Address 0.\r
63 \r
64                 AREA    RESET, CODE, READONLY\r
65                 THUMB\r
66 \r
67                                 IMPORT  xPortPendSVHandler\r
68                                 IMPORT  xPortSysTickHandler\r
69                                 IMPORT  vUART_ISR\r
70                                 IMPORT  vPortSVCHandler\r
71 \r
72 ; Vector Table\r
73                                 EXPORT __Vectors\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
81                 DCD     0                       ; Reserved\r
82                 DCD     0                       ; Reserved\r
83                 DCD     0                       ; Reserved\r
84                 DCD     0                       ; Reserved\r
85                 DCD     vPortSVCHandler         ; SVCall Handler\r
86                 DCD     DefaultISR                      ; Debug Monitor Handler\r
87                 DCD     0                       ; Reserved\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
120 \r
121 ; Dummy Handlers are implemented as infinite loops which can be modified.\r
122 \r
123 NmiSR                   B       NmiSR\r
124 FaultISR                B               FaultISR\r
125                                 EXPORT FaultISR\r
126 DefaultISR              B       DefaultISR\r
127 \r
128 \r
129 ; Reset Handler\r
130 \r
131                 EXPORT  Reset_Handler\r
132 Reset_Handler   \r
133 \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
140 \r
141 ; Enter the C code\r
142 \r
143                 IMPORT  __main\r
144                 LDR     R0, =__main\r
145                 BX      R0\r
146 \r
147 \r
148 ; User Initial Stack & Heap\r
149                 AREA    |.text|, CODE, READONLY\r
150 \r
151                 IMPORT  __use_two_region_memory\r
152                 EXPORT  __user_initial_stackheap\r
153 __user_initial_stackheap\r
154 \r
155                 LDR     R0, =  Heap_Mem\r
156                 LDR     R1, =(Stack_Mem + Stack_Size)\r
157                 LDR     R2, = (Heap_Mem +  Heap_Size)\r
158                 LDR     R3, = Stack_Mem\r
159                 BX      LR\r
160 \r
161                 ALIGN\r
162 \r
163 \r
164                 END\r