微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > STM32启动过程相关代码分析

STM32启动过程相关代码分析

时间:11-11 来源:互联网 点击:
arm to thumb code */*(.glue_7t) /* glue thumb to arm code */KEEP (*(.init))KEEP (*(.fini)). = ALIGN(4); _etext = .; /* define a global symbols at end of code */ } >FLASH

可以看到startup_stm32f10x_md.s中定义的这个段.isr_vector确实放在了最开头的位置。下面其他的内容就不分析了可查看下面地址获取更多信息
(http://www.stf12.org/developers/freerots_ec-linker_script.html)。

但是我们前面说复位向量在0x0000 0004,现在其地址是在flash中,所以地址是0x0800 0004,这个怎么回事呢?原来,stm32可以通过boot0、boot1引脚的配置
将flash映射到0x0000 0000处。具体可参考stm32的用户手册2.4节:

从主闪存存储器启动(BOOT0 = 0,BOOT1 = X):主闪存存储器被映射到启动空间(0x0000 0000),但仍然能够在它原有的地址(0x0800 0000)访问它,即闪存存
储器的内容可以在两个地址区域访问,0x0000 0000或0x0800 0000。

至此,整个STM32的启动过程以及程序结构都可以比较清晰了。至于使用MDK-ARM 环境的情况,也差不多的。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top