1{$goto on} 2unit lm4f120; 3 4interface 5 6const 7 Flash_Base = $00000000; 8 ROM_Base = $01000000; 9 SRAM_Base = $20000000; 10 Bitband_Base = $22000000; 11 12 // FiRM Peripherals 13 Watchdog0_Base = $40000000; 14 Watchdog1_Base = $40001000; 15 GPIOA_Base = $40004000; 16 GPIOB_Base = $40005000; 17 GPIOC_Base = $40006000; 18 GPIOD_Base = $40007000; 19 SSI0_Base = $40008000; 20 SSI1_Base = $40009000; 21 SSI2_Base = $4000A000; 22 SSI3_Base = $4000B000; 23 UART0_Base = $4000C000; 24 UART1_Base = $4000D000; 25 UART2_Base = $4000E000; 26 UART3_Base = $4000F000; 27 UART4_Base = $40010000; 28 UART5_Base = $40011000; 29 UART6_Base = $40012000; 30 UART7_Base = $40013000; 31 32 // Peripherals 33 I2C0_Base = $40020000; 34 I2C1_Base = $40021000; 35 I2C2_Base = $40022000; 36 I2C3_Base = $40023000; 37 GPIOE_Base = $40024000; 38 GPIOF_Base = $40025000; 39 Timer0_1632_Base = $40030000; 40 Timer1_1632_Base = $40031000; 41 Timer2_1632_Base = $40032000; 42 Timer3_1632_Base = $40033000; 43 Timer4_1632_Base = $40034000; 44 Timer5_1632_Base = $40035000; 45 Timer0_3264_Base = $40036000; 46 Timer1_3264_Base = $40037000; 47 ADC0_Base = $40038000; 48 ADC1_Base = $40039000; 49 AnalogComp_Base = $4003C000; 50 CAN0_Base = $40040000; 51 Timer2_3264_Base = $4004C000; 52 Timer3_3264_Base = $4004D000; 53 Timer4_3264_Base = $4004E000; 54 Timer5_3264_Base = $4004F000; 55 USB_Base = $40050000; 56 GPIOA_AHB_Base = $40058000; 57 GPIOB_AHB_Base = $40059000; 58 GPIOC_AHB_Base = $4005A000; 59 GPIOD_AHB_Base = $4005B000; 60 GPIOE_AHB_Base = $4005C000; 61 GPIOF_AHB_Base = $4005D000; 62 EEPROMKeyLocker_Base = $400AF000; 63 SystemException_Base = $400F9000; 64 Hibernation_Base = $400FC000; 65 FlashControl_Base = $400FD000; 66 SystemControl_Base = $400FE000; 67 uDMA_Base = $400FF000; 68 PeriphBitband_Base = $42000000; 69// Private Peripheral Bus 70 ITM_Base = $E0000000; 71 DWT_Base = $E0001000; 72 FPB_Base = $E0002000; 73 CortexM4F_Base = $E000E000; 74 TPIU_Base = $E0040000; 75 ETM_Base = $E0041000; 76 77implementation 78 79procedure NMI_interrupt; external name 'NMI_interrupt'; 80procedure Hardfault_interrupt; external name 'Hardfault_interrupt'; 81procedure MemManage_interrupt; external name 'MemManage_interrupt'; 82procedure BusFault_interrupt; external name 'BusFault_interrupt'; 83procedure UsageFault_interrupt; external name 'UsageFault_interrupt'; 84procedure SWI_interrupt; external name 'SWI_interrupt'; 85procedure DebugMonitor_interrupt; external name 'DebugMonitor_interrupt'; 86procedure PendingSV_interrupt; external name 'PendingSV_interrupt'; 87procedure SysTick_interrupt; external name 'SysTick_interrupt'; 88 89procedure GPIO_Port_A_interrupt; external name 'GPIO_Port_A_interrupt'; 90procedure GPIO_Port_B_interrupt; external name 'GPIO_Port_B_interrupt'; 91procedure GPIO_Port_C_interrupt; external name 'GPIO_Port_C_interrupt'; 92procedure GPIO_Port_D_interrupt; external name 'GPIO_Port_D_interrupt'; 93procedure GPIO_Port_E_interrupt; external name 'GPIO_Port_E_interrupt'; 94procedure UART0_interrupt; external name 'UART0_interrupt'; 95procedure UART1_interrupt; external name 'UART1_interrupt'; 96procedure SSI0_interrupt; external name 'SSI0_interrupt'; 97procedure I2C0_interrupt; external name 'I2C0_interrupt'; 98procedure ADC0_Seq_0_interrupt; external name 'ADC0_Seq_0_interrupt'; 99procedure ADC0_Seq_1_interrupt; external name 'ADC0_Seq_1_interrupt'; 100procedure ADC0_Seq_2_interrupt; external name 'ADC0_Seq_2_interrupt'; 101procedure ADC0_Seq_3_interrupt; external name 'ADC0_Seq_3_interrupt'; 102procedure Watchdog_0_and_1_interrupt; external name 'Watchdog_0_and_1_interrupt'; 103procedure Timer_1632_0A_interrupt; external name 'Timer_1632_0A_interrupt'; 104procedure Timer_1632_0B_interrupt; external name 'Timer_1632_0B_interrupt'; 105procedure Timer_1632_1A_interrupt; external name 'Timer_1632_1A_interrupt'; 106procedure Timer_1632_1B_interrupt; external name 'Timer_1632_1B_interrupt'; 107procedure Timer_1632_2A_interrupt; external name 'Timer_1632_2A_interrupt'; 108procedure Timer_1632_2B_interrupt; external name 'Timer_1632_2B_interrupt'; 109procedure Analog_Comp_0_interrupt; external name 'Analog_Comp_0_interrupt'; 110procedure Analog_Comp_1_interrupt; external name 'Analog_Comp_1_interrupt'; 111procedure System_Control_interrupt; external name 'System_Control_interrupt'; 112procedure Flash_and_EEPROM_interrupt; external name 'Flash_and_EEPROM_interrupt'; 113procedure GPIO_Port_F_interrupt; external name 'GPIO_Port_F_interrupt'; 114procedure UART2_interrupt; external name 'UART2_interrupt'; 115procedure SSI1_interrupt; external name 'SSI1_interrupt'; 116procedure Timer_1632_3A_interrupt; external name 'Timer_1632_3A_interrupt'; 117procedure Timer_1632_3B_interrupt; external name 'Timer_1632_3B_interrupt'; 118procedure I2C1_interrupt; external name 'I2C1_interrupt'; 119procedure CAN0_interrupt; external name 'CAN0_interrupt'; 120procedure Hibernation_interrupt; external name 'Hibernation_interrupt'; 121procedure USB_interrupt; external name 'USB_interrupt'; 122procedure uDMA_Software_interrupt; external name 'uDMA_Software_interrupt'; 123procedure uDMA_Error_interrupt; external name 'uDMA_Error_interrupt'; 124procedure ADC1_Seq_0_interrupt; external name 'ADC1_Seq_0_interrupt'; 125procedure ADC1_Seq_1_interrupt; external name 'ADC1_Seq_1_interrupt'; 126procedure ADC1_Seq_2_interrupt; external name 'ADC1_Seq_2_interrupt'; 127procedure ADC1_Seq_3_interrupt; external name 'ADC1_Seq_3_interrupt'; 128procedure SSI2_interrupt; external name 'SSI2_interrupt'; 129procedure SSI3_interrupt; external name 'SSI3_interrupt'; 130procedure UART3_interrupt; external name 'UART3_interrupt'; 131procedure UART4_interrupt; external name 'UART4_interrupt'; 132procedure UART5_interrupt; external name 'UART5_interrupt'; 133procedure UART6_interrupt; external name 'UART6_interrupt'; 134procedure UART7_interrupt; external name 'UART7_interrupt'; 135procedure I2C2_interrupt; external name 'I2C2_interrupt'; 136procedure I2C3_interrupt; external name 'I2C3_interrupt'; 137procedure Timer_1632_4A_interrupt; external name 'Timer_1632_4A_interrupt'; 138procedure Timer_1632_4B_interrupt; external name 'Timer_1632_4B_interrupt'; 139procedure Timer_1632_5A_interrupt; external name 'Timer_1632_5A_interrupt'; 140procedure Timer_1632_5B_interrupt; external name 'Timer_1632_5B_interrupt'; 141procedure Timer_3264_0A_interrupt; external name 'Timer_3264_0A_interrupt'; 142procedure Timer_3264_0B_interrupt; external name 'Timer_3264_0B_interrupt'; 143procedure Timer_3264_1A_interrupt; external name 'Timer_3264_1A_interrupt'; 144procedure Timer_3264_1B_interrupt; external name 'Timer_3264_1B_interrupt'; 145procedure Timer_3264_2A_interrupt; external name 'Timer_3264_2A_interrupt'; 146procedure Timer_3264_2B_interrupt; external name 'Timer_3264_2B_interrupt'; 147procedure Timer_3264_3A_interrupt; external name 'Timer_3264_3A_interrupt'; 148procedure Timer_3264_3B_interrupt; external name 'Timer_3264_3B_interrupt'; 149procedure Timer_3264_4A_interrupt; external name 'Timer_3264_4A_interrupt'; 150procedure Timer_3264_4B_interrupt; external name 'Timer_3264_4B_interrupt'; 151procedure Timer_3264_5A_interrupt; external name 'Timer_3264_5A_interrupt'; 152procedure Timer_3264_5B_interrupt; external name 'Timer_3264_5B_interrupt'; 153procedure System_Exception_imprecise_interrupt; external name 'System_Exception_imprecise_interrupt'; 154 155{$i cortexm4f_start.inc} 156 157procedure Vectors; assembler; nostackframe; 158label interrupt_vectors; 159asm 160 .section ".init.interrupt_vectors" 161interrupt_vectors: 162 .long _stack_top 163 .long Startup 164 .long NMI_interrupt 165 .long Hardfault_interrupt 166 .long MemManage_interrupt 167 .long BusFault_interrupt 168 .long UsageFault_interrupt 169 .long 0 170 .long 0 171 .long 0 172 .long 0 173 .long SWI_interrupt 174 .long DebugMonitor_interrupt 175 .long 0 176 .long PendingSV_interrupt 177 .long SysTick_interrupt 178 179 .long GPIO_Port_A_interrupt 180 .long GPIO_Port_B_interrupt 181 .long GPIO_Port_C_interrupt 182 .long GPIO_Port_D_interrupt 183 .long GPIO_Port_E_interrupt 184 .long UART0_interrupt 185 .long UART1_interrupt 186 .long SSI0_interrupt 187 .long I2C0_interrupt 188 .long 0 189 .long 0 190 .long 0 191 .long 0 192 .long 0 193 .long ADC0_Seq_0_interrupt 194 .long ADC0_Seq_1_interrupt 195 .long ADC0_Seq_2_interrupt 196 .long ADC0_Seq_3_interrupt 197 .long Watchdog_0_and_1_interrupt 198 .long Timer_1632_0A_interrupt 199 .long Timer_1632_0B_interrupt 200 .long Timer_1632_1A_interrupt 201 .long Timer_1632_1B_interrupt 202 .long Timer_1632_2A_interrupt 203 .long Timer_1632_2B_interrupt 204 .long Analog_Comp_0_interrupt 205 .long 0 206 .long Analog_Comp_1_interrupt 207 .long System_Control_interrupt 208 .long Flash_and_EEPROM_interrupt 209 .long GPIO_Port_F_interrupt 210 .long 0 211 .long 0 212 .long UART2_interrupt 213 .long SSI1_interrupt 214 .long Timer_1632_3A_interrupt 215 .long Timer_1632_3B_interrupt 216 .long I2C1_interrupt 217 .long 0 218 .long CAN0_interrupt 219 .long 0 220 .long 0 221 .long 0 222 .long Hibernation_interrupt 223 .long USB_interrupt 224 .long 0 225 .long uDMA_Software_interrupt 226 .long uDMA_Error_interrupt 227 .long ADC1_Seq_0_interrupt 228 .long ADC1_Seq_1_interrupt 229 .long ADC1_Seq_2_interrupt 230 .long ADC1_Seq_3_interrupt 231 .long 0 232 .long 0 233 .long 0 234 .long 0 235 .long 0 236 .long SSI2_interrupt 237 .long SSI3_interrupt 238 .long UART3_interrupt 239 .long UART4_interrupt 240 .long UART5_interrupt 241 .long UART6_interrupt 242 .long UART7_interrupt 243 .long 0 244 .long 0 245 .long 0 246 .long 0 247 .long I2C2_interrupt 248 .long I2C3_interrupt 249 .long Timer_1632_4A_interrupt 250 .long Timer_1632_4B_interrupt 251 .long 0 252 .long 0 253 .long 0 254 .long 0 255 .long 0 256 .long 0 257 .long 0 258 .long 0 259 .long 0 260 .long 0 261 .long 0 262 .long 0 263 .long 0 264 .long 0 265 .long 0 266 .long 0 267 .long 0 268 .long 0 269 .long 0 270 .long 0 271 .long Timer_1632_5A_interrupt 272 .long Timer_1632_5B_interrupt 273 .long Timer_3264_0A_interrupt 274 .long Timer_3264_0B_interrupt 275 .long Timer_3264_1A_interrupt 276 .long Timer_3264_1B_interrupt 277 .long Timer_3264_2A_interrupt 278 .long Timer_3264_2B_interrupt 279 .long Timer_3264_3A_interrupt 280 .long Timer_3264_3B_interrupt 281 .long Timer_3264_4A_interrupt 282 .long Timer_3264_4B_interrupt 283 .long Timer_3264_5A_interrupt 284 .long Timer_3264_5B_interrupt 285 .long System_Exception_imprecise_interrupt 286 287 .weak NMI_interrupt 288 .weak Hardfault_interrupt 289 .weak MemManage_interrupt 290 .weak BusFault_interrupt 291 .weak UsageFault_interrupt 292 .weak SWI_interrupt 293 .weak DebugMonitor_interrupt 294 .weak PendingSV_interrupt 295 .weak SysTick_interrupt 296 297 .weak GPIO_Port_A_interrupt 298 .weak GPIO_Port_B_interrupt 299 .weak GPIO_Port_C_interrupt 300 .weak GPIO_Port_D_interrupt 301 .weak GPIO_Port_E_interrupt 302 .weak UART0_interrupt 303 .weak UART1_interrupt 304 .weak SSI0_interrupt 305 .weak I2C0_interrupt 306 .weak ADC0_Seq_0_interrupt 307 .weak ADC0_Seq_1_interrupt 308 .weak ADC0_Seq_2_interrupt 309 .weak ADC0_Seq_3_interrupt 310 .weak Watchdog_0_and_1_interrupt 311 .weak Timer_1632_0A_interrupt 312 .weak Timer_1632_0B_interrupt 313 .weak Timer_1632_1A_interrupt 314 .weak Timer_1632_1B_interrupt 315 .weak Timer_1632_2A_interrupt 316 .weak Timer_1632_2B_interrupt 317 .weak Analog_Comp_0_interrupt 318 .weak Analog_Comp_1_interrupt 319 .weak System_Control_interrupt 320 .weak Flash_and_EEPROM_interrupt 321 .weak GPIO_Port_F_interrupt 322 .weak UART2_interrupt 323 .weak SSI1_interrupt 324 .weak Timer_1632_3A_interrupt 325 .weak Timer_1632_3B_interrupt 326 .weak I2C1_interrupt 327 .weak CAN0_interrupt 328 .weak Hibernation_interrupt 329 .weak USB_interrupt 330 .weak uDMA_Software_interrupt 331 .weak uDMA_Error_interrupt 332 .weak ADC1_Seq_0_interrupt 333 .weak ADC1_Seq_1_interrupt 334 .weak ADC1_Seq_2_interrupt 335 .weak ADC1_Seq_3_interrupt 336 .weak SSI2_interrupt 337 .weak SSI3_interrupt 338 .weak UART3_interrupt 339 .weak UART4_interrupt 340 .weak UART5_interrupt 341 .weak UART6_interrupt 342 .weak UART7_interrupt 343 .weak I2C2_interrupt 344 .weak I2C3_interrupt 345 .weak Timer_1632_4A_interrupt 346 .weak Timer_1632_4B_interrupt 347 .weak Timer_1632_5A_interrupt 348 .weak Timer_1632_5B_interrupt 349 .weak Timer_3264_0A_interrupt 350 .weak Timer_3264_0B_interrupt 351 .weak Timer_3264_1A_interrupt 352 .weak Timer_3264_1B_interrupt 353 .weak Timer_3264_2A_interrupt 354 .weak Timer_3264_2B_interrupt 355 .weak Timer_3264_3A_interrupt 356 .weak Timer_3264_3B_interrupt 357 .weak Timer_3264_4A_interrupt 358 .weak Timer_3264_4B_interrupt 359 .weak Timer_3264_5A_interrupt 360 .weak Timer_3264_5B_interrupt 361 .weak System_Exception_imprecise_interrupt 362 363 .set NMI_interrupt, HaltProc 364 .set Hardfault_interrupt, HaltProc 365 .set MemManage_interrupt, HaltProc 366 .set BusFault_interrupt, HaltProc 367 .set UsageFault_interrupt, HaltProc 368 .set SWI_interrupt, HaltProc 369 .set DebugMonitor_interrupt, HaltProc 370 .set PendingSV_interrupt, HaltProc 371 .set SysTick_interrupt, HaltProc 372 373 .set GPIO_Port_A_interrupt, HaltProc 374 .set GPIO_Port_B_interrupt, HaltProc 375 .set GPIO_Port_C_interrupt, HaltProc 376 .set GPIO_Port_D_interrupt, HaltProc 377 .set GPIO_Port_E_interrupt, HaltProc 378 .set UART0_interrupt, HaltProc 379 .set UART1_interrupt, HaltProc 380 .set SSI0_interrupt, HaltProc 381 .set I2C0_interrupt, HaltProc 382 .set ADC0_Seq_0_interrupt, HaltProc 383 .set ADC0_Seq_1_interrupt, HaltProc 384 .set ADC0_Seq_2_interrupt, HaltProc 385 .set ADC0_Seq_3_interrupt, HaltProc 386 .set Watchdog_0_and_1_interrupt, HaltProc 387 .set Timer_1632_0A_interrupt, HaltProc 388 .set Timer_1632_0B_interrupt, HaltProc 389 .set Timer_1632_1A_interrupt, HaltProc 390 .set Timer_1632_1B_interrupt, HaltProc 391 .set Timer_1632_2A_interrupt, HaltProc 392 .set Timer_1632_2B_interrupt, HaltProc 393 .set Analog_Comp_0_interrupt, HaltProc 394 .set Analog_Comp_1_interrupt, HaltProc 395 .set System_Control_interrupt, HaltProc 396 .set Flash_and_EEPROM_interrupt, HaltProc 397 .set GPIO_Port_F_interrupt, HaltProc 398 .set UART2_interrupt, HaltProc 399 .set SSI1_interrupt, HaltProc 400 .set Timer_1632_3A_interrupt, HaltProc 401 .set Timer_1632_3B_interrupt, HaltProc 402 .set I2C1_interrupt, HaltProc 403 .set CAN0_interrupt, HaltProc 404 .set Hibernation_interrupt, HaltProc 405 .set USB_interrupt, HaltProc 406 .set uDMA_Software_interrupt, HaltProc 407 .set uDMA_Error_interrupt, HaltProc 408 .set ADC1_Seq_0_interrupt, HaltProc 409 .set ADC1_Seq_1_interrupt, HaltProc 410 .set ADC1_Seq_2_interrupt, HaltProc 411 .set ADC1_Seq_3_interrupt, HaltProc 412 .set SSI2_interrupt, HaltProc 413 .set SSI3_interrupt, HaltProc 414 .set UART3_interrupt, HaltProc 415 .set UART4_interrupt, HaltProc 416 .set UART5_interrupt, HaltProc 417 .set UART6_interrupt, HaltProc 418 .set UART7_interrupt, HaltProc 419 .set I2C2_interrupt, HaltProc 420 .set I2C3_interrupt, HaltProc 421 .set Timer_1632_4A_interrupt, HaltProc 422 .set Timer_1632_4B_interrupt, HaltProc 423 .set Timer_1632_5A_interrupt, HaltProc 424 .set Timer_1632_5B_interrupt, HaltProc 425 .set Timer_3264_0A_interrupt, HaltProc 426 .set Timer_3264_0B_interrupt, HaltProc 427 .set Timer_3264_1A_interrupt, HaltProc 428 .set Timer_3264_1B_interrupt, HaltProc 429 .set Timer_3264_2A_interrupt, HaltProc 430 .set Timer_3264_2B_interrupt, HaltProc 431 .set Timer_3264_3A_interrupt, HaltProc 432 .set Timer_3264_3B_interrupt, HaltProc 433 .set Timer_3264_4A_interrupt, HaltProc 434 .set Timer_3264_4B_interrupt, HaltProc 435 .set Timer_3264_5A_interrupt, HaltProc 436 .set Timer_3264_5B_interrupt, HaltProc 437 .set System_Exception_imprecise_interrupt, HaltProc 438 439 .text 440end; 441 442end. 443 444