微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > STM32 中为什么需要选择启动文件?

STM32 中为什么需要选择启动文件?

时间:10-02 整理:3721RD 点击:
STM32 中为什么需要选择启动文件?
stm32启动文件ld md hd cl vl xl分析及选择——自问自答
在选择启动文件的时候有选择性区别!
STM32 中为什么需要选择启动文件?
4个文件夹arm gcc_ride7 iar TrueSTUDIO 到底选择哪个文件夹呢
怎么选择101xx 102xx 103xx是小容量、中容量还是大容量

1.建立中断服务入口地址,即把中断向量与中断服务函数链接起来。
我们知道在串口NVIC配置中我们只定义了个   NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn;
也就是中断服务向量,再然后我们在stm32f10x_it.c文件的void USART2_IRQHandler(void){} 函数里添加串口的服务程序。
     但是mcu怎么知道中断向量USART2_IRQn对应的是USART2_IRQHandler(){}呢,这个就是启动文件所起的作用。
在启动文件  .s  中 以   g_pfnVectors:  开头。
2.从systeminit()函数进入到main()函数.
对于stm32我们定义系统时钟的时候直接在system_stm3210x.c文件里修改宏定义即可,而事实上到底是从哪开始执行的呢?
system_stm3210x.c文件里有个SystemInit()函数,就是对时钟的设置。
而这个SystemInit()在哪调用的呢,就是启动文件先调用了,然后才进入到mian()函数。
在启动文件  .s  中有以下一段话可以解释。
/* Call
the clock system intitialization function.*/
  bl  SystemInit
/* Call static constructors */
  bl __libc_init_array
/* Call the application's entry point.*/
bl main
bx lr
3.有些启动文件定义了堆栈大小,可以在这里进行修改。(有些是在  .ld  进行定义的)

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

网站地图

Top