⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 startup.s

📁 基于 Luminary Micro 公司的 Cortex-M3 (ARM)内核使用之 uC/OS-II 作业系统,此例程是移植于 LM3S310 上的应用,于 Keil MDK 工程编译,而 uC/O
💻 S
字号:
;/****************************************Copyright (c)**************************************************
;**                               Guangzou ZLG-MCU Development Co.,LTD.
;**                                      graduate school
;**                                 http://www.zlgmcu.com
;**
;**--------------File Info-------------------------------------------------------------------------------
;** File name: 			 Startup.s
;** Last modified Date:   2007-01-18
;** Last Version: 		 1.0
;** Descriptions: 		 Startup code of LM3S MCU 
;**------------------------------------------------------------------------------------------------------
;** Created By:           Steven Zhou 周绍刚
;** Created date:   	    2007-01-18
;** Version:			    1.0
;** Descriptions: 	    The original version
;**
;**------------------------------------------------------------------------------------------------------
;** Modified by: 	
;** Modified date:		
;** Version:			
;** Descriptions: 		
;**
;********************************************************************************************************


;********************************************************************************************************
;*                               Byte number of Main Stack  主堆栈的字节数                              *              
;********************************************************************************************************
Stack   EQU     256


;********************************************************************************************************
;*                                  Byte number of the Heap  堆的字节数                                 *              
;********************************************************************************************************
Heap    EQU     100


;********************************************************************************************************
;*                                Allocate space for Main Stack  主堆栈分配的空间                       *              
;********************************************************************************************************
        AREA    STACK, NOINIT, READWRITE, ALIGN=3
StackMem
        SPACE   Stack


;********************************************************************************************************
;*                                  Allocate space for the heap    栈分配的空间                         *              
;********************************************************************************************************
        AREA    HEAP, NOINIT, READWRITE, ALIGN=3
HeapMem
        SPACE   Heap


;********************************************************************************************************
;*           Declarations for the interrupt handlers that are used by the application.                  *              
;*                                本应用所用到的中断函数的声明                                          *
;********************************************************************************************************
        EXTERN	OSPendSV  
		EXTERN  Tmr_TickISR_Handler
	    
		EXTERN  Timer0A_ISR


;********************************************************************************************************
;*          Indicate that the code in this file preserves 8-byte alignment of the stack.                * 
;*                               本文件的代码对堆栈8字节对齐保护                                        *             
;********************************************************************************************************
        PRESERVE8


;********************************************************************************************************
;*                                       Reset code section.                                            * 
;*                                          复位代码                                                    *             
;********************************************************************************************************
        AREA    RESET, CODE, READONLY
        THUMB

;************************************************
;               The vector table.
;                   向量表
;************************************************
        EXPORT  __Vectors
__Vectors
        DCD     StackMem + Stack            ; Top of Stack
        DCD     Reset_Handler               ; Reset Handler
        DCD     NmiSR                       ; NMI Handler
        DCD     IntDefaultHandler           ; 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     OSPendSV                    ; PendSV Handler
	    DCD     Tmr_TickISR_Handler         ; SysTick Handler
        DCD     IntDefaultHandler           ; GPIO Port A
        DCD     IntDefaultHandler           ; GPIO Port B
        DCD     IntDefaultHandler           ; GPIO Port C
        DCD     IntDefaultHandler           ; GPIO Port D
        DCD     IntDefaultHandler           ; GPIO Port E
        DCD     IntDefaultHandler           ; 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     IntDefaultHandler           ; 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     Timer0A_ISR                 ; 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


;************************************************
;                  Reset entry
;                  复位入口点
;************************************************
        EXPORT  Reset_Handler
Reset_Handler
        IMPORT  __main
        LDR     R0, =__main
        BX      R0


;************************************************
;               NMI exception handler. 
;         It simply enters an infinite loop.
;       不可屏蔽异常处理程序。简单地进入死循环
;************************************************
NmiSR
        B       NmiSR


;************************************************
;               Fault interrupt handler. 
;         It simply enters an infinite loop.
;         错误中断处理程序。简单地进入死循环
;************************************************
FaultISR
        B       FaultISR


;************************************************
;           Unexpected interrupt handler. 
;        It simply enters an infinite loop.
;      无期待的中断处理程序。简单地进入死循环
;************************************************
IntDefaultHandler
        B       IntDefaultHandler


;************************************************
; Make sure the end of this section is aligned.
;            确保本段的末尾对齐
;************************************************
        ALIGN



;********************************************************************************************************
;*                      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.
;     C语言启动库调用本代码初始化堆和栈 
;************************************************
        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


;*********************************************************************************************************
;*                                      End Of File                                                      *
;*********************************************************************************************************
        END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -