当前位置:首页 > 单片机 > 单片机
[导读]概况:STM32库版本:V3.5.0startup_stm32f10x_hd.s文件模块功能:设置初始堆栈指针;用ISR异常处理程序地址来设置向量表条目;配置系统时钟,配置安装在STM3210E-EVAL板子上被用作数据内存外部sram;设置初始PC程序计

概况:

STM32库版本:V3.5.0

startup_stm32f10x_hd.s文件模块功能:


设置初始堆栈指针;

用ISR异常处理程序地址来设置向量表条目;

配置系统时钟,配置安装在STM3210E-EVAL板子上被用作数据内存外部sram;

设置初始PC程序计数器 指向__iar_program_start代码段地址。

在这个文件中的模块被包含在libs库中,可能被替换通过任何用户定义的模块--被PUBLIC定义的_program_start或者用户定义的一个开始标识;

为了覆盖在库中定义的cstartup,只需添加被修改版本到 工作台项目;

矢量表通常是位于地址0;

当在RAM中调试时,矢量表位于ram中,至少对齐2^6;

对于C-SPY来说,“__vector_table”有特殊的意义;

堆栈指针SP能够在__vector_table中找到,如果NVIC(嵌套中断向量控制器) vectortable register (VTOR)的地址不为0,则初始化到这块地址。

启动代码解析:

为简单 明朗些,分成几部分展示:

关于IAR指令,参见《EWARM_AssemblerReference.ENU.pdf》文档。

.icf内存配置文件,与这个启动文件也是有大大的关系。

关于.icf 结构、功能分析,参见--stm32存储器结构、 IAR 开发环境下的.icf 文件、.map文件 解析
1、


;;格式:PROGRAMsymbol---其中symbol为分配模块的名字;;开始一个模块;PROGRAM和NAME指令的别名

MODULE?cstartup;汇编模块开始

;;Forwarddeclarationofsections.前置段声明

;;格式:SECTIONsection:type[flag][(align)]

;;NOROOT表示如果这个段里的标号(如CSTACK/.intvec等)没引用,则被linker舍弃;ROOT则是一定不舍弃。

;;(1)表示字节对齐数,为2的幂,(2)表示4字节对齐,(3)表示8字节对齐

;;定义各种模式STACK,具体大小、位置是由linker文件(IAR中.icf)决定的,这些STACK都定义在内部RAM中

SECTIONCSTACK:DATA:NOROOT(3);CSTACK数据段

;;通常INTVEC段被连接到flash闪存的开始地址,应该在.icf文件中有定义,如stmf10X系列闪存起始地址:0x08000000

SECTION.intvec:CODE:NOROOT(2);.intvec代码段

EXTERN__iar_program_start;;外部变量声明

EXTERNSystemInit;SystemInit声明,于外部定义

PUBLIC__vector_table;;外部可调用;向其他模块输出符号。


2、


DATA

;;中断向量表

__vector_table;;格式:DCDexpr[,expr]…;Generates32-bitconstants.生成32bit常数

DCDsfe(CSTACK);;格式:SFE(section[{+|-}offset])返回section段结束地址,SFB(section)返回section段开始地址;

DCDReset_Handler;ResetHandler

DCDNMI_Handler;NMIHandler

DCDHardFault_Handler;HardFaultHandler

DCDMemManage_Handler;MPUFaultHandler

DCDBusFault_Handler;BusFaultHandler

DCDUsageFault_Handler;UsageFaultHandler

DCD0;Reserved

DCD0;Reserved

DCD0;Reserved

DCD0;Reserved

DCDSVC_Handler;SVCallHandler

DCDDebugMon_Handler;DebugMonitorHandler

DCD0;Reserved

DCDPendSV_Handler;PendSVHandler

DCDSysTick_Handler;SysTickHandler

;ExternalInterrupts

DCDWWDG_IRQHandler;WindowWatchdog

DCDPVD_IRQHandler;PVDthroughEXTILinedetect

DCDTAMPER_IRQHandler;Tamper

DCDRTC_IRQHandler;RTC

DCDFLASH_IRQHandler;Flash

DCDRCC_IRQHandler;RCC

DCDEXTI0_IRQHandler;EXTILine0

DCDEXTI1_IRQHandler;EXTILine1

DCDEXTI2_IRQHandler;EXTILine2

DCDEXTI3_IRQHandler;EXTILine3

DCDEXTI4_IRQHandler;EXTILine4

DCDDMA1_Channel1_IRQHandler;DMA1Channel1

DCDDMA1_Channel2_IRQHandler;DMA1Channel2

DCDDMA1_Channel3_IRQHandler;DMA1Channel3

DCD DMA1_Cha

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

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭