当前位置:首页 > 单片机 > 单片机
[导读]一、STM32启动文件详细解析STM32启动文件详细解析(V3.5.0) 以:startup_stm32f10x_hd.s为例;********************(C)COPYRIGHT2011STMicroelectronics********************;*FileName:startup_stm32f10x_hd.s;*Auth

一、STM32启动文件详细解析

STM32启动文件详细解析(V3.5.0) 以:startup_stm32f10x_hd.s为例


;********************(C)COPYRIGHT2011STMicroelectronics********************

;*FileName:startup_stm32f10x_hd.s

;*Author:MCDApplicationTeam

;*Version:V3.5.0

;*Date:11-March-2011

;*Description:STM32F10xHighDensityDevicesvectortableforMDK-ARM

;*toolchain.

;*Thismoduleperforms:

;*-SettheinitialSP

;*-SettheinitialPC==Reset_Handler

;*-SetthevectortableentrieswiththeexceptionsISRaddress

;*-Configuretheclocksystemandalsoconfiguretheexternal

;*SRAMmountedonSTM3210E-EVALboardtobeusedasdata

;*memory(optional,tobeenabledbyuser)

;*-Branchesto__mainintheClibrary(whicheventually

;*callsmain()).

;*AfterResettheCortexM3processorisinThreadmode,

;*priorityisPrivileged,andtheStackissettoMain.

;*<<>>

;*******************************************************************************

;THEPRESENTFIRMWAREWHICHISFORGUIDANCEONLYAIMSATPROVIDINGCUSTOMERS

;WITHCODINGINFORMATIONREGARDINGTHEIRPRODUCTSINORDERFORTHEMTOSAVETIME.

;ASARESULT,STMICROELECTRONICSSHALLNOTBEHELDLIABLEFORANYDIRECT,

;INDIRECTORCONSEQUENTIALDAMAGESWITHRESPECTTOANYCLAIMSARISINGFROMTHE

;CONTENTOFSUCHFIRMWAREAND/ORTHEUSEMADEBYCUSTOMERSOFTHECODING

;INFORMATIONCONTAINEDHEREININCONNECTIONWITHTHEIRPRODUCTS.

;*******************************************************************************

;Amountofmemory(inbytes)allocatedforStack

;Tailorthisvaluetoyourapplicationneeds

;StackConfiguration;栈定义

;StackSize(inBytes)<0x0-0xFFFFFFFF:8>

;

Stack_SizeEQU0x00000400;EQU伪指令,作用是左边的符号名代表右边的表达式

AREASTACK,NOINIT,READWRITE,ALIGN=3;定义栈段:名称为STACK,未初始化,可读写,ELF的栈段按2^3=8对齐

Stack_MemSPACEStack_Size;分配一片连续的存储区域并初始化为0,栈空间:0x400个字节

__initial_sp;栈空间顶地址

;HeapConfiguration;堆定义

;HeapSize(inBytes)<0x0-0xFFFFFFFF:8>

;

Heap_SizeEQU0x00000200

AREAHEAP,NOINIT,READWRITE,ALIGN=3

__heap_base;堆空间起始地址

Heap_MemSPACEHeap_Size;堆空间:0x200个字节

__heap_limit;堆空间结束地址

PRESERVE8;PRESERVE8指令指定当前文件保持堆栈八字节对齐

THUMB;告诉汇编器下面是32位的Thumb指令,如果需要汇编器将插入位以保证对齐

;VectorTableMappedtoAddress0atReset;中断向量表定义

;实际上是在CODE区(假设STM32从FLASH启动,则此中断向量表起始地址即为0x8000000)

AREARESET,DATA,READONLY;定义一块数据段,只可读,段名字是RESET

EXPORT__Vectors;EXPORT:在程序中声明一个全局的标号__Vectors,该标号可在其他的文件中引用

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭