4、stm32F103 启动文件
简介启动文件名为“ startup_stm32f10x_hd.s”的文件,它里边使用汇编语言写好了基本程序,当STM32 芯片上电启动的时候,首先会执行这里的汇编程序,从而建立起 C 语言的运行环境,所以我们把这个文件称为启动文件。startup_stm32f10x_hd.s 文件由官方提供,一般有需要也是在官方的基础上修改,不会自己完全重写。该文件从 ST 固件库里面找到,找到该文件后把启动..
简介
启动文件名为“ 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 的代码注释掉也可以。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)