4、stm32F103 启动文件

简介

启动文件名为“ startup_stm32f10x_hd.s”的文件,它里边使用汇编语言写好了基本程序,当STM32 芯片上电启动的时候,首先会执行这里的汇编程序,从而建立起 C 语言的运行环境,所以我们把这个文件称为启动文件。

startup_stm32f10x_hd.s 文件由官方提供,一般有需要也是在官方的基础上修改,不会自己完全重写。该文件从 ST 固件库里面找到,找到该文件后把启动文件添加到工程里面即可。不同型号的芯片以及不同编译环境下使用的汇编文件是不一样的,但功能相同。

STM32标准外设库可以到ST公司的官方网站下载,需要验证邮箱。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1、_htmresc文件夹内是官方Logo图片,可以忽略。

2、Libraries 文件夹下面有 CMSIS 和 STM32F4xx_StdPeriph_Driver 两个目录,这两个目录包
含固件库核心的所有子文件夹和文件,是代码移植的重头戏。CMSIS 文件夹存放的是符合 CMSIS 规范的一些文件, Driver 文件夹下是STM32F4 标准外设固件库源码文件和对应的头文件,说白了就是将寄存器封装好的函数接口。

3、Project 文件夹下面有STM32F4xx_StdPeriph_Examples 和STM32F4xx_StdPeriph_Template 两个文件夹,Examples文件夹下是固件示例源码,Template文件夹下是工程模板。这些源码的学习对以后的开发学习非常重要。

4、Utilities 文件夹下就是官方评估板的一些对应源码,可以忽略不看。

5、根目录中还有一个固件库的帮助文档 stm32f4xx_dsp_stdperiph_lib_um.chm 文件。
启动文件位置:
Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm
在这里插入图片描述
根据FLASH的大小选择启动文件

  • ld.s 适用于小容量 产品
  • md.s 适用于中等容量产品
  • hd 适用于大容量产品;
  • xl适用于超大容量产品;

这里的容量是指 FLASH 的大小。判断方法如下:
小容量: 16~32K
中容量: 64~128K
大容量: 256~512K
超大容量:512~1024K
我们开发板使用的是 STM32F103ZET6, FLASH 容量为 512KB,属于大容量产品,所以我们选择 startup_stm32f10x_hd.s 作为我们的启动文件。

添加启动文件

在没有启动文件的情况下编译可以看到,会出现错误,所以启动文件必不可少!
在这里插入图片描述
点击编译
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
打开Keil软件,跟添加main.c方式一样,双击“Source Group 1”,出现如下对话框,并没有看到启动文件,这是因为显示的文件类型都是.c。点击箭头所指。
在这里插入图片描述
选择“All files”,此时可以看到启动文件。添加即可。
在这里插入图片描述
// 函数为空,目的是为了骗过编译器不报错
void SystemInit(void)
{
}

还有一个方法就是在启动文件中把有关SystemInit 的代码注释掉也可以。
在这里插入图片描述

发布了240 篇原创文章 · 获赞 85 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/imxlw00/article/details/104279438