📄 startup_rvmdk.s
字号:
; <<< Use Configuration Wizard in Context Menu >>>;******************************************************************************;; startup_rvmdk.S - Startup code for Stellaris.;; Copyright (c) 2006 Luminary Micro, Inc. All rights reserved.;; Software License Agreement;; Luminary Micro, Inc. (LMI) is supplying this software for use solely and; exclusively on LMI's microcontroller products.;; The software is owned by LMI and/or its suppliers, and is protected under; applicable copyright laws. All rights are reserved. Any use in violation of; the foregoing restrictions may subject the user to criminal sanctions under; applicable laws, as well as to civil liability for the breach of the terms; and conditions of this license.;; THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED; OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF; MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.; LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR; CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.;; This is part of revision 196 of an01238.;;******************************************************************************;******************************************************************************;; <h> Stack Configuration; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>; </h>;;******************************************************************************Stack EQU 0x00000100;******************************************************************************;; <h> Heap Configuration; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>; </h>;;******************************************************************************Heap EQU 0x00000000;******************************************************************************;; Allocate space for the stack.;;****************************************************************************** AREA STACK, NOINIT, READWRITE, ALIGN=3StackMem SPACE Stack;******************************************************************************;; Allocate space for the heap.;;****************************************************************************** AREA HEAP, NOINIT, READWRITE, ALIGN=3HeapMem SPACE Heap;******************************************************************************;; Declarations for the interrupt handlers that are used by the application.;;****************************************************************************** EXTERN HardFault EXTERN GPIOIntHandler EXTERN EdgeIntHandler EXTERN UIRxCallback EXTERN QEIIntHandler;******************************************************************************;; Indicate that the code in this file preserves 8-byte alignment of the stack.;;****************************************************************************** PRESERVE8;******************************************************************************;; Place code into the reset code section.;;****************************************************************************** AREA RESET, CODE, READONLY THUMB;******************************************************************************;; The vector table.;;******************************************************************************Vectors DCD StackMem + Stack ; Top of Stack DCD Reset_Handler ; Reset Handler DCD NmiSR ; NMI Handler DCD HardFault ; Hard Fault Handler DCD IntDefaultHandler ; MPU Fault Handler DCD IntDefaultHandler ; Bus Fault Handler DCD IntDefaultHandler ; Usage Fault Handler DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved DCD IntDefaultHandler ; SVCall Handler DCD IntDefaultHandler ; Debug Monitor Handler DCD 0 ; Reserved DCD IntDefaultHandler ; PendSV Handler DCD IntDefaultHandler ; SysTick Handler DCD IntDefaultHandler ; GPIO Port A DCD GPIOIntHandler ; GPIO Port B DCD EdgeIntHandler ; GPIO Port C DCD IntDefaultHandler ; GPIO Port D DCD IntDefaultHandler ; GPIO Port E DCD UIRxCallback ; UART0 DCD IntDefaultHandler ; UART1 DCD IntDefaultHandler ; SSI DCD IntDefaultHandler ; I2C DCD IntDefaultHandler ; PWM Fault DCD IntDefaultHandler ; PWM Generator 0 DCD IntDefaultHandler ; PWM Generator 1 DCD IntDefaultHandler ; PWM Generator 2 DCD QEIIntHandler ; Quadrature Encoder DCD IntDefaultHandler ; ADC Sequence 0 DCD IntDefaultHandler ; ADC Sequence 1 DCD IntDefaultHandler ; ADC Sequence 2 DCD IntDefaultHandler ; ADC Sequence 3 DCD IntDefaultHandler ; Watchdog DCD QEIIntHandler ; Timer 0A DCD IntDefaultHandler ; Timer 0B DCD IntDefaultHandler ; Timer 1A DCD IntDefaultHandler ; Timer 1B DCD IntDefaultHandler ; Timer 2A DCD IntDefaultHandler ; Timer 2B DCD IntDefaultHandler ; Comp 0 DCD IntDefaultHandler ; Comp 1 DCD IntDefaultHandler ; Comp 2 DCD IntDefaultHandler ; System Control DCD IntDefaultHandler ; Flash Control;******************************************************************************;; This is the code that gets called when the processor first starts execution; following a reset event.;;****************************************************************************** EXPORT Reset_HandlerReset_Handler ; ; Call __main() in the C library, which will call the application ; supplied main(). ; IMPORT __main LDR R0, =__main BX R0;******************************************************************************;; This is the code that gets called when the processor receives a NMI. This; simply enters an infinite loop, preserving the system state for examination; by a debugger.;;******************************************************************************NmiSR B NmiSR;******************************************************************************;; This is the code that gets called when the processor receives an unexpected; interrupt. This simply enters an infinite loop, preserving the system state; for examination by a debugger.;;******************************************************************************IntDefaultHandler B IntDefaultHandler;******************************************************************************;; Make sure the end of this section is aligned.;;****************************************************************************** ALIGN;******************************************************************************;; Some code in the normal code section for initializing the heap and stack.;;****************************************************************************** AREA |.text|, CODE, READONLY;******************************************************************************;; The function expected of the C library startup code for defining the stack; and heap memory locations.;;****************************************************************************** IMPORT __use_two_region_memory EXPORT __user_initial_stackheap__user_initial_stackheap LDR R0, =HeapMem LDR R1, =(StackMem + Stack) LDR R2, =(HeapMem + Heap) LDR R3, =StackMem BX LR;******************************************************************************;; Make sure the end of this section is aligned.;;****************************************************************************** ALIGN;******************************************************************************;; Tell the assembler that we're done.;;****************************************************************************** END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -