77范文网 - 专业文章范例文档资料分享平台

startup - stm32f10x - hd.s解析

来源:网络收集 时间:2020-04-21 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

;******************** (C) COPYRIGHT 2009 STMicroelectronics ******************** ;* File Name : startup_stm32f10x_hd.s ;文件名 ;* Author : MCD Application Team ;* Version : V3.0.0 ;版本号 ;* Date : 04/06/2009

;* Description : STM32F10x High Density Devices vector table for RVMDK

;* toolchain. ;此文件为 STM32F10x高密度设备MDK工具链的启动文件

;* This module performs: ;该模块执行以下操作 ;* - Set the initial SP ;设置初始化堆栈指针(SP) ;* - Set the initial PC == Reset_Handler ;设置初始化程序计数器(PC)为复位向量,并在执行main函数前初始化系统时钟

;* - Set the vector table entries with the exceptions ISR address ;设置向量表入口为异常事件的入口地址

;* - Configure external SRAM mounted on STM3210E-EVAL board ;* to be used as data memory (optional, to be enabled by user) ;* - Branches to __main in the C library (which eventually ;* calls main()).

;* After Reset the CortexM3 processor is in Thread mode,

;* priority is Privileged, and the Stack is set to Main. ;复位之后处理器为线程模式,优先级为特权级,堆栈设置为MSP主堆栈 ;* <<< Use Configuration Wizard in Context Menu >>>

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

; THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS

; WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.

; AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,

; INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE

; CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING

; INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. ;*******************************************************************************

; Amount of memory (in bytes) allocated for Stack ; Tailor this value to your application needs ; Stack Configuration

; Stack Size (in Bytes) <0x0-0xFFFFFFFF:8> ;

Stack_Size EQU 0x00000200 ;定义堆栈大小

AREA STACK, NOINIT, READWRITE, ALIGN=3 ;堆栈段,未初始化,允许读写,8字节边界对齐 ;说明: Cortex-M3的指令地址要求是字边界对齐(4字节);但是代码段是8字节边界对齐的 Stack_Mem SPACE Stack_Size ;分配堆栈空间,把首地址赋值给Stack_Mem __initial_sp ;初始化堆栈指针,指向堆栈顶。

__initial_spTop EQU 0x20000400 ; stack used for SystemInit_ExtMemCtl

; always internal RAM used ; Heap Configuration

; Heap Size (in Bytes) <0x0-0xFFFFFFFF:8> ;

Heap_Size EQU 0x00000000 ;定义堆得大小

AREA HEAP, NOINIT, READWRITE, ALIGN=3 ;堆段,未初始化,允许读写,堆数据段8字节边界对齐 __heap_base

Heap_Mem SPACE Heap_Size ;分配栈的空间 __heap_limit ;与__heap_base配合限制堆栈的大小

PRESERVE8 ;命令指定当前文件保持栈的8字节对齐 THUMB ;指令集,THUMB 必须位于使用新语法的任何 Thumb代码之前

; EXPORT 命令声明一个符号,由于链接器用于解释各个目标和库文件中的符号引用,相当于声明全局变量。GLOBAL与EXPORT相同 ; Vector Table Mapped to Address 0 at Reset ;以下为向量表,在复位时被映射到FLASH的0地址

AREA RESET, DATA, READONLY ;复位段,只包含数据,只读 EXPORT __Vectors ;符号输出,中断向量表开始 EXPORT __Vectors_End ;中断向量表结束 EXPORT __Vectors_Size ;中断向量表大小

;DCD 命令分配一个或多个字的存储器,在四个字节的边界上对齐,并定义存储器的运行时初值。

__Vectors DCD __initial_spTop ; Top of Stack 栈顶指针,被放在向量表的开始,FLASH的0地址,复位后首先装载栈顶指针

DCD Reset_Handler ; Reset Handler 复位异常,装载完栈顶后,第一个执行的,并且不返回。

DCD NMI_Handler ; NMI Handler 不可屏蔽中断

DCD HardFault_Handler ; Hard Fault Handler 意见错误中断

DCD MemManage_Handler ; MPU Fault Handler 内存管理错误中断

DCD BusFault_Handler ; Bus Fault Handler 总线错误中断,一般发生在数据访问异常,比如fsmc访问不当

DCD UsageFault_Handler ; Usage Fault Handler 用法错误中断,一般是预取值,或者位置指令,数据处理等错误

DCD 0 ; Reserved 保留 DCD 0 ; Reserved DCD 0 ; Reserved DCD 0 ; Reserved

DCD SVC_Handler ; SVCall Handler 系统调用异常,主要是为了调用操作系统内核服务

DCD DebugMon_Handler ; Debug Monitor Handler 调试监视异常

DCD 0 ; Reserved DCD PendSV_Handler ; PendSV Handler 挂起异常,此处可以看见用作了uCOS-II的上下文切换异常,这是被推荐 ;使用的,因为Cortex-M3会在异常发生时自动保存R0-R3,R12,R13(堆栈指针SP), ;R14(链接地址,也叫返回地址LR,在异常返回时使用),R15(程序计数器PC,为当前 ;应用程序+4)和中断完成时自动回复,我们只需保存R4-R11,大大减少了中断响应和 ;上下文切换的时间。 ;说明:此处涉及到一个中断保存寄存器问题:因为在所有的运行模式下,未分组 ;寄存器都指向同一个物理寄存器,他们未被系统用作特殊的用途,因此,在中断或 ;者异常处理进行模式转换时,由于不同模式(此处为\线程\和\特权\)均使用相同 ;的物理寄存器,可能会造成寄存器中数据的破坏。这也是常说的\关键代码段\

;和\临界区\保护的原因。 DCD SysTick_Handler ; SysTick Handler 嘀嗒定时器,为操作系统内核时钟

; External Interrupts 以下为外部中断向量表 DCD WWDG_IRQHandler ; Window Watchdog

DCD PVD_IRQHandler ; PVD through EXTI Line detect DCD TAMPER_IRQHandler ; Tamper CAN1 TX

CAN1 RX0

Commutation

DCD RTC_IRQHandler ; RTC DCD FLASH_IRQHandler ; Flash DCD RCC_IRQHandler ; RCC

DCD EXTI0_IRQHandler ; EXTI Line 0 DCD EXTI1_IRQHandler ; EXTI Line 1 DCD EXTI2_IRQHandler ; EXTI Line 2 DCD EXTI3_IRQHandler ; EXTI Line 3 DCD EXTI4_IRQHandler ; EXTI Line 4

DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3 DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4 DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5 DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6 DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7 DCD ADC1_2_IRQHandler ; ADC1 & ADC2

DCD USB_HP_CAN1_TX_IRQHandler ; USB High Priority or DCD USB_LP_CAN1_RX0_IRQHandler ; USB Low Priority or DCD CAN1_RX1_IRQHandler ; CAN1 RX1 DCD CAN1_SCE_IRQHandler ; CAN1 SCE DCD EXTI9_5_IRQHandler ; EXTI Line 9..5 DCD TIM1_BRK_IRQHandler ; TIM1 Break DCD TIM1_UP_IRQHandler ; TIM1 Update

DCD TIM1_TRG_COM_IRQHandler ; TIM1 Trigger and DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare DCD TIM2_IRQHandler ; TIM2 DCD TIM3_IRQHandler ; TIM3 DCD TIM4_IRQHandler ; TIM4

DCD I2C1_EV_IRQHandler ; I2C1 Event DCD I2C1_ER_IRQHandler ; I2C1 Error DCD I2C2_EV_IRQHandler ; I2C2 Event DCD I2C2_ER_IRQHandler ; I2C2 Error

DCD SPI1_IRQHandler ; SPI1 DCD SPI2_IRQHandler ; SPI2

DCD USART1_IRQHandler ; USART1 DCD USART2_IRQHandler ; USART2 DCD USART3_IRQHandler ; USART3

DCD EXTI15_10_IRQHandler ; EXTI Line 15..10

DCD RTCAlarm_IRQHandler ; RTC Alarm through EXTI Line DCD USBWakeUp_IRQHandler ; USB Wakeup from suspend DCD TIM8_BRK_IRQHandler ; TIM8 Break DCD TIM8_UP_IRQHandler ; TIM8 Update

DCD TIM8_TRG_COM_IRQHandler ; TIM8 Trigger and Commutation

DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare DCD ADC3_IRQHandler ; ADC3 DCD FSMC_IRQHandler ; FSMC DCD SDIO_IRQHandler ; SDIO DCD TIM5_IRQHandler ; TIM5 DCD SPI3_IRQHandler ; SPI3 DCD UART4_IRQHandler ; UART4 DCD UART5_IRQHandler ; UART5 DCD TIM6_IRQHandler ; TIM6 DCD TIM7_IRQHandler ; TIM7

DCD DMA2_Channel1_IRQHandler ; DMA2 Channel1 DCD DMA2_Channel2_IRQHandler ; DMA2 Channel2 DCD DMA2_Channel3_IRQHandler ; DMA2 Channel3

DCD DMA2_Channel4_5_IRQHandler ; DMA2 Channel4 & Channel5 __Vectors_End ;向量表结束标志

__Vectors_Size EQU __Vectors_End - __Vectors ;计算向量表地址空间大小 ;|.text|用于表示由C编译程序产生的代码段,或用于以某种方式一C库关联的代码段。

AREA |.text|, CODE, READONLY ;定义C编译器源代码的代码段,只读

; Dummy SystemInit_ExtMemCtl function SystemInit_ExtMemCtl PROC

EXPORT SystemInit_ExtMemCtl [WEAK] BX LR ENDP ; Reset handler routine Reset_Handler PROC

EXPORT Reset_Handler [WEAK] ;此处[WEAK]表

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库startup - stm32f10x - hd.s解析在线全文阅读。

startup - stm32f10x - hd.s解析.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/1003295.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: