- STM32F10x_StdPeriph_Lib_V3.5.0
- _htmtesc
- Libraries
- CMSIS 启动文件
-
CM3
- CoreSupport CMSIS核心文件,提供进入M3的内核接口。
- core_cm3.c
- core_cm3.h
- DeviceSupport启动文件、基础的寄存器定义、中断向量文件
- ST
- STM32F10x
- system_stm32f10x.c设置系统及总线时钟
- system_stm32f10x.h设置系统及总线时钟
- SystemInit()函数系统启动调用,设置整个系统的时钟系统
- stm32f10x.h系统寄存器定义申明,及包装内存操作《MDK 中寄存器地址名称映射分析》
- startup启动文件夹
- arm8个startup 开头的.s 文件,不同容量的芯片启动文件不一样,103 系列主要是用其中3 个启动文件:
- startup_stm32f10x_cl.s
- startup_stm32f10x_hd.s:适用于大容量产品256K≤FLASH_103系列
- startup_stm32f10x_hd_vl.s
- startup_stm32f10x_ld.s:适用于小容量产品FLASH≤32K_103系列
- startup_stm32f10x_ld_v1.s
- startup_stm32f10x_md.s :适用于中等容量 产品64K≤FLASH≤128K_103系列
- startup_stm32f10x_md.s_vl.s
- startup_stm32f10x_xl.s
- arm8个startup 开头的.s 文件,不同容量的芯片启动文件不一样,103 系列主要是用其中3 个启动文件:
- STM32F10x
- ST
- CoreSupport CMSIS核心文件,提供进入M3的内核接口。
-
Documentation
-
- STM32F10x_StdPeriph_Driver固件库源码文件,c与h对应
- inc .h头文件
- src .c格式固件库源码文件
- CMSIS 启动文件
- Project
- STM32F10x_StdPeriph_ExamplesST 官方固件实例源码
- STM32F10x_StdPeriph_Template工程模板
- Utilities官方评估板的一些对应源码,这个可以忽略不看
- STM32_EVAL
- stm32f10x_stdperiph_lib_um.chm 英文固件库帮助文档,非常有用
备注1:启动文件到底什么作用?
- 启动文件主要是进行堆栈之类的初始化,中断向量表以及中断函数定义。
- 启动文件要引导进入main 函数。
- Reset_Handler中断函数是唯一实现了的中断处理函数,其他的中断函数基本都是死循环.
- Reset_handler 在我们系统启动的时候会调用。
备注2:程序引导
- 下面程序是引导进入main 函数。
- 在进入main 函数之前,首先要调用SystemInit 系统初始化函数。
- 再调用stm32f10x_it.c
stm32f10x_it.h
stm32f10x_conf.h 等文件- stm32f10x_it.c 里面是用来编写中断服务函数,中断服务函数也可以随意编写在工程里面的任意一个文件里面,个人觉得这个文件没太大意义。
- stm32f10x_conf.h 文件打开可以看到一堆的#include,这里你建立工程的时候,可以注释掉一些你不用的外设头文件。
汇编语言没学过,看的不是很懂!有大佬明白的请留言!
; Reset handler
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT __main
IMPORT SystemInit
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP