mbed library sources

Dependents:   Marvino mbot

Fork of mbed-src by mbed official

Committer:
bogdanm
Date:
Mon Aug 05 14:12:34 2013 +0300
Revision:
13:0645d8841f51
Update mbed sources to revision 64

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bogdanm 13:0645d8841f51 1 ;/* mbed Microcontroller Library - InterruptIn
bogdanm 13:0645d8841f51 2 ; * Copyright (c) 2006-2009 ARM Limited. All rights reserved.
bogdanm 13:0645d8841f51 3 ; */
bogdanm 13:0645d8841f51 4
bogdanm 13:0645d8841f51 5 #line 1 "vector_functions.s"
bogdanm 13:0645d8841f51 6 ;
bogdanm 13:0645d8841f51 7 ;
bogdanm 13:0645d8841f51 8 ;
bogdanm 13:0645d8841f51 9
bogdanm 13:0645d8841f51 10 #line 1 "vector_defns.h"
bogdanm 13:0645d8841f51 11
bogdanm 13:0645d8841f51 12
bogdanm 13:0645d8841f51 13
bogdanm 13:0645d8841f51 14
bogdanm 13:0645d8841f51 15
bogdanm 13:0645d8841f51 16
bogdanm 13:0645d8841f51 17
bogdanm 13:0645d8841f51 18
bogdanm 13:0645d8841f51 19
bogdanm 13:0645d8841f51 20 #line 21 "vector_defns.h"
bogdanm 13:0645d8841f51 21
bogdanm 13:0645d8841f51 22
bogdanm 13:0645d8841f51 23
bogdanm 13:0645d8841f51 24
bogdanm 13:0645d8841f51 25
bogdanm 13:0645d8841f51 26
bogdanm 13:0645d8841f51 27
bogdanm 13:0645d8841f51 28
bogdanm 13:0645d8841f51 29
bogdanm 13:0645d8841f51 30
bogdanm 13:0645d8841f51 31
bogdanm 13:0645d8841f51 32
bogdanm 13:0645d8841f51 33
bogdanm 13:0645d8841f51 34
bogdanm 13:0645d8841f51 35
bogdanm 13:0645d8841f51 36
bogdanm 13:0645d8841f51 37
bogdanm 13:0645d8841f51 38
bogdanm 13:0645d8841f51 39 #line 47 "vector_defns.h"
bogdanm 13:0645d8841f51 40
bogdanm 13:0645d8841f51 41
bogdanm 13:0645d8841f51 42 #line 58 "vector_defns.h"
bogdanm 13:0645d8841f51 43
bogdanm 13:0645d8841f51 44
bogdanm 13:0645d8841f51 45
bogdanm 13:0645d8841f51 46
bogdanm 13:0645d8841f51 47
bogdanm 13:0645d8841f51 48
bogdanm 13:0645d8841f51 49
bogdanm 13:0645d8841f51 50
bogdanm 13:0645d8841f51 51
bogdanm 13:0645d8841f51 52
bogdanm 13:0645d8841f51 53
bogdanm 13:0645d8841f51 54
bogdanm 13:0645d8841f51 55
bogdanm 13:0645d8841f51 56
bogdanm 13:0645d8841f51 57
bogdanm 13:0645d8841f51 58
bogdanm 13:0645d8841f51 59
bogdanm 13:0645d8841f51 60
bogdanm 13:0645d8841f51 61 #line 6 "vector_functions.s"
bogdanm 13:0645d8841f51 62
bogdanm 13:0645d8841f51 63
bogdanm 13:0645d8841f51 64 AREA VECFUNCS, CODE, READONLY
bogdanm 13:0645d8841f51 65 ARM
bogdanm 13:0645d8841f51 66 PRESERVE8
bogdanm 13:0645d8841f51 67
bogdanm 13:0645d8841f51 68
bogdanm 13:0645d8841f51 69
bogdanm 13:0645d8841f51 70
bogdanm 13:0645d8841f51 71
bogdanm 13:0645d8841f51 72 EXPORT __mbed_fiq [WEAK]
bogdanm 13:0645d8841f51 73 EXPORT __mbed_undef [WEAK]
bogdanm 13:0645d8841f51 74 EXPORT __mbed_prefetch_abort [WEAK]
bogdanm 13:0645d8841f51 75 EXPORT __mbed_data_abort [WEAK]
bogdanm 13:0645d8841f51 76 EXPORT __mbed_irq [WEAK]
bogdanm 13:0645d8841f51 77 EXPORT __mbed_swi [WEAK]
bogdanm 13:0645d8841f51 78 EXPORT __mbed_dcc_irq [WEAK]
bogdanm 13:0645d8841f51 79 EXPORT __mbed_reset [WEAK]
bogdanm 13:0645d8841f51 80 IMPORT __mbed_init_realmonitor
bogdanm 13:0645d8841f51 81
bogdanm 13:0645d8841f51 82 ;
bogdanm 13:0645d8841f51 83 ;
bogdanm 13:0645d8841f51 84 __mbed_fiq
bogdanm 13:0645d8841f51 85 B __mbed_fiq
bogdanm 13:0645d8841f51 86
bogdanm 13:0645d8841f51 87 ;
bogdanm 13:0645d8841f51 88 ;
bogdanm 13:0645d8841f51 89 __mbed_undef
bogdanm 13:0645d8841f51 90 LDR PC, =0x7fffffa0
bogdanm 13:0645d8841f51 91
bogdanm 13:0645d8841f51 92 ;
bogdanm 13:0645d8841f51 93 ;
bogdanm 13:0645d8841f51 94 __mbed_prefetch_abort
bogdanm 13:0645d8841f51 95 LDR PC, =0x7fffffb0
bogdanm 13:0645d8841f51 96
bogdanm 13:0645d8841f51 97 ;
bogdanm 13:0645d8841f51 98 ;
bogdanm 13:0645d8841f51 99 __mbed_data_abort
bogdanm 13:0645d8841f51 100 LDR PC, =0x7fffffc0
bogdanm 13:0645d8841f51 101
bogdanm 13:0645d8841f51 102 ;
bogdanm 13:0645d8841f51 103 ;
bogdanm 13:0645d8841f51 104 ;
bogdanm 13:0645d8841f51 105 ;
bogdanm 13:0645d8841f51 106 ;
bogdanm 13:0645d8841f51 107 ;
bogdanm 13:0645d8841f51 108 ;
bogdanm 13:0645d8841f51 109 ;
bogdanm 13:0645d8841f51 110 ;
bogdanm 13:0645d8841f51 111 __mbed_irq
bogdanm 13:0645d8841f51 112 ;
bogdanm 13:0645d8841f51 113 MSR CPSR_c, #0x1F:OR:0x80:OR:0x40
bogdanm 13:0645d8841f51 114
bogdanm 13:0645d8841f51 115 ;
bogdanm 13:0645d8841f51 116 STMDB sp!, {r0-r3,r12,lr}
bogdanm 13:0645d8841f51 117
bogdanm 13:0645d8841f51 118 ;
bogdanm 13:0645d8841f51 119 MOV r0, #0xFFFFFF00
bogdanm 13:0645d8841f51 120 LDR r0, [r0]
bogdanm 13:0645d8841f51 121
bogdanm 13:0645d8841f51 122 ;
bogdanm 13:0645d8841f51 123 MOV lr, pc
bogdanm 13:0645d8841f51 124 BX r0
bogdanm 13:0645d8841f51 125
bogdanm 13:0645d8841f51 126 ;
bogdanm 13:0645d8841f51 127 MOV r0, #0xFFFFFF00
bogdanm 13:0645d8841f51 128 STR r0, [r0] ;
bogdanm 13:0645d8841f51 129
bogdanm 13:0645d8841f51 130 ;
bogdanm 13:0645d8841f51 131 LDMFD sp!,{r0-r3,r12,lr}
bogdanm 13:0645d8841f51 132
bogdanm 13:0645d8841f51 133 ;
bogdanm 13:0645d8841f51 134 MSR CPSR_c, #0x12:OR:0x80:OR:0x40
bogdanm 13:0645d8841f51 135
bogdanm 13:0645d8841f51 136 ;
bogdanm 13:0645d8841f51 137 SUBS pc, lr, #4
bogdanm 13:0645d8841f51 138
bogdanm 13:0645d8841f51 139 ;
bogdanm 13:0645d8841f51 140 ;
bogdanm 13:0645d8841f51 141 ;
bogdanm 13:0645d8841f51 142 ;
bogdanm 13:0645d8841f51 143 __mbed_swi
bogdanm 13:0645d8841f51 144 ;
bogdanm 13:0645d8841f51 145 ;
bogdanm 13:0645d8841f51 146 STMFD sp!, {a4, r4, ip, lr}
bogdanm 13:0645d8841f51 147
bogdanm 13:0645d8841f51 148 ;
bogdanm 13:0645d8841f51 149 LDR r4, =0x40000040
bogdanm 13:0645d8841f51 150
bogdanm 13:0645d8841f51 151 ;
bogdanm 13:0645d8841f51 152 ;
bogdanm 13:0645d8841f51 153 LDR a4, =0x00940000
bogdanm 13:0645d8841f51 154 LDR PC, =0x7ffff820
bogdanm 13:0645d8841f51 155
bogdanm 13:0645d8841f51 156 ;
bogdanm 13:0645d8841f51 157 ;
bogdanm 13:0645d8841f51 158 ;
bogdanm 13:0645d8841f51 159 ;
bogdanm 13:0645d8841f51 160 __mbed_dcc_irq
bogdanm 13:0645d8841f51 161
bogdanm 13:0645d8841f51 162 ;
bogdanm 13:0645d8841f51 163
bogdanm 13:0645d8841f51 164 ;
bogdanm 13:0645d8841f51 165 LDMFD sp!,{r0-r3,r12,lr}
bogdanm 13:0645d8841f51 166
bogdanm 13:0645d8841f51 167 ;
bogdanm 13:0645d8841f51 168 MSR CPSR_c, #0x12:OR:0x80:OR:0x40
bogdanm 13:0645d8841f51 169
bogdanm 13:0645d8841f51 170 ;
bogdanm 13:0645d8841f51 171
bogdanm 13:0645d8841f51 172 ;
bogdanm 13:0645d8841f51 173 SUB lr, lr, #4 ;
bogdanm 13:0645d8841f51 174 STMFD sp!, {ip,lr} ;
bogdanm 13:0645d8841f51 175
bogdanm 13:0645d8841f51 176 ;
bogdanm 13:0645d8841f51 177 LDR LR, =0xfffff000
bogdanm 13:0645d8841f51 178 STR LR, [LR, #0xf00]
bogdanm 13:0645d8841f51 179
bogdanm 13:0645d8841f51 180 ;
bogdanm 13:0645d8841f51 181 ;
bogdanm 13:0645d8841f51 182 ;
bogdanm 13:0645d8841f51 183 ;
bogdanm 13:0645d8841f51 184 LDR PC, =0x7fffffe0
bogdanm 13:0645d8841f51 185
bogdanm 13:0645d8841f51 186 ;
bogdanm 13:0645d8841f51 187 ; __mbed_reset is called after reset
bogdanm 13:0645d8841f51 188 ; we setup the stacks and realmonitor, then call Reset_Handler like on M3
bogdanm 13:0645d8841f51 189
bogdanm 13:0645d8841f51 190 ; Reset Handler
bogdanm 13:0645d8841f51 191
bogdanm 13:0645d8841f51 192 Reset_Handler PROC
bogdanm 13:0645d8841f51 193 EXPORT Reset_Handler [WEAK]
bogdanm 13:0645d8841f51 194 IMPORT SystemInit
bogdanm 13:0645d8841f51 195 IMPORT __main
bogdanm 13:0645d8841f51 196 LDR R0, =SystemInit
bogdanm 13:0645d8841f51 197 MOV LR, PC
bogdanm 13:0645d8841f51 198 BX R0
bogdanm 13:0645d8841f51 199 LDR R0, =__main
bogdanm 13:0645d8841f51 200 BX R0
bogdanm 13:0645d8841f51 201 ENDP
bogdanm 13:0645d8841f51 202
bogdanm 13:0645d8841f51 203 __mbed_reset
bogdanm 13:0645d8841f51 204
bogdanm 13:0645d8841f51 205 ;
bogdanm 13:0645d8841f51 206
bogdanm 13:0645d8841f51 207 LDR R0, =(0x40000000 + 0x8000)
bogdanm 13:0645d8841f51 208
bogdanm 13:0645d8841f51 209 ;
bogdanm 13:0645d8841f51 210 MSR CPSR_c, #0x1B:OR:0x80:OR:0x40
bogdanm 13:0645d8841f51 211 MOV SP, R0
bogdanm 13:0645d8841f51 212 SUB R0, R0, #0x00000040
bogdanm 13:0645d8841f51 213
bogdanm 13:0645d8841f51 214 ;
bogdanm 13:0645d8841f51 215 MSR CPSR_c, #0x17:OR:0x80:OR:0x40
bogdanm 13:0645d8841f51 216 MOV SP, R0
bogdanm 13:0645d8841f51 217 SUB R0, R0, #0x00000040
bogdanm 13:0645d8841f51 218
bogdanm 13:0645d8841f51 219 ;
bogdanm 13:0645d8841f51 220 MSR CPSR_c, #0x11:OR:0x80:OR:0x40
bogdanm 13:0645d8841f51 221 MOV SP, R0
bogdanm 13:0645d8841f51 222 SUB R0, R0, #0x00000000
bogdanm 13:0645d8841f51 223
bogdanm 13:0645d8841f51 224 ;
bogdanm 13:0645d8841f51 225 MSR CPSR_c, #0x12:OR:0x80:OR:0x40
bogdanm 13:0645d8841f51 226 MOV SP, R0
bogdanm 13:0645d8841f51 227 SUB R0, R0, #0x00000040
bogdanm 13:0645d8841f51 228
bogdanm 13:0645d8841f51 229 ;
bogdanm 13:0645d8841f51 230 MSR CPSR_c, #0x13:OR:0x80:OR:0x40
bogdanm 13:0645d8841f51 231 MOV SP, R0
bogdanm 13:0645d8841f51 232 SUB R0, R0, #0x00000040
bogdanm 13:0645d8841f51 233
bogdanm 13:0645d8841f51 234 ;
bogdanm 13:0645d8841f51 235 MSR CPSR_c, #0x10
bogdanm 13:0645d8841f51 236 MOV SP, R0
bogdanm 13:0645d8841f51 237
bogdanm 13:0645d8841f51 238 ;
bogdanm 13:0645d8841f51 239 LDR R0, =__mbed_init_realmonitor
bogdanm 13:0645d8841f51 240 MOV LR, PC
bogdanm 13:0645d8841f51 241 BX R0
bogdanm 13:0645d8841f51 242
bogdanm 13:0645d8841f51 243 ;
bogdanm 13:0645d8841f51 244 LDR R0, =Reset_Handler
bogdanm 13:0645d8841f51 245 BX R0
bogdanm 13:0645d8841f51 246
bogdanm 13:0645d8841f51 247
bogdanm 13:0645d8841f51 248 END