;/*****************************************************************************
; * @file: startup_MPS_CM0.s
; * @purpose: CMSIS Cortex-M0 Core Device Startup File
; * for the ARM 'Microcontroller Prototyping System'
; * @version: V1.0
; * @date: 19. Aug. 2009
; *------- <<< Use Configuration Wizard in Context Menu >>> ------------------
; *
; * Copyright (C) 2008-2009 ARM Limited. All rights reserved.
; * ARM Limited (ARM) is supplying this software for use with Cortex-M0
; * processor based microcontrollers. This file can be freely distributed
; * within development tools that are supporting such ARM based processors.
; *
; * 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.
; * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
; * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
; *
; *****************************************************************************/
; <h> Stack Configuration
; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
;EQU 定义一个常量,这里指堆栈空间大小
Stack_Size EQU 0x00000200
;AREA伪指令定义一个数据断, NOINIT表示没有初始值,
;EADWRITE 表示可读写,ALIGN表示对齐方式(2的幂次方)
AREA STACK, NOINIT, READWRITE, ALIGN=3
;SPACE伪指令定义一片连续的存储单元并初始化为0
Stack_Mem SPACE Stack_Size
__initial_sp ;标号 代表栈的起始地址,后面有用,(M3中是满递减堆栈)
; <h> Heap Configuration
; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
Heap_Size EQU 0x00000000
AREA HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base ;标号,表示堆未底部的地址
Heap_Mem SPACE Heap_Size
__heap_limit ;标号,代表堆栈界限地址,后面有用
;指定当前文件堆栈8字节对齐,(preserve 英文意思为保持,保存)
;它设置pres8编译属性以通知链接器,链接器会检查要求堆栈8字节对齐的任何代码
;是否仅由保持堆栈8字节对齐的代码来直接或间接的引用
PRESERVE8
; * @file: startup_MPS_CM0.s
; * @purpose: CMSIS Cortex-M0 Core Device Startup File
; * for the ARM 'Microcontroller Prototyping System'
; * @version: V1.0
; * @date: 19. Aug. 2009
; *------- <<< Use Configuration Wizard in Context Menu >>> ------------------
; *
; * Copyright (C) 2008-2009 ARM Limited. All rights reserved.
; * ARM Limited (ARM) is supplying this software for use with Cortex-M0
; * processor based microcontrollers. This file can be freely distributed
; * within development tools that are supporting such ARM based processors.
; *
; * 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.
; * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
; * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
; *
; *****************************************************************************/
; <h> Stack Configuration
; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
;EQU 定义一个常量,这里指堆栈空间大小
Stack_Size EQU 0x00000200
;AREA伪指令定义一个数据断, NOINIT表示没有初始值,
;EADWRITE 表示可读写,ALIGN表示对齐方式(2的幂次方)
AREA STACK, NOINIT, READWRITE, ALIGN=3
;SPACE伪指令定义一片连续的存储单元并初始化为0
Stack_Mem SPACE Stack_Size
__initial_sp ;标号 代表栈的起始地址,后面有用,(M3中是满递减堆栈)
; <h> Heap Configuration
; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
Heap_Size EQU 0x00000000
AREA HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base ;标号,表示堆未底部的地址
Heap_Mem SPACE Heap_Size
__heap_limit ;标号,代表堆栈界限地址,后面有用
;指定当前文件堆栈8字节对齐,(preserve 英文意思为保持,保存)
;它设置pres8编译属性以通知链接器,链接器会检查要求堆栈8字节对齐的任何代码
;是否仅由保持堆栈8字节对齐的代码来直接或间接的引用
PRESERVE8