PLUG1:工程文件架构
一、基本工程文件结构
1. 寄存器开发

- startup_stm32f10x_md.s:F1系列中容量产品对应的启动文件
- core_cm3.c和core_cm3.h:ARM Cortex-M3内核寄存器描述文件
- stm32f10x.h:外设寄存器描述文件
- system_stm32f10x.c和system_stm32f10x.h:系统配置文件
2. 标准库开发

-
.\Library:标准库函数文件 -
stm32f10x_conf.h:用来配置库函数头文件的包含关系,其内包含了所有库函数头文件
在stm32f10x.h内有包含stm32f10x_conf.h的条件编译语句。因此,在使用库函数时,只需要包含stm32f10x.h即可
-
stm32f10x_it.c和stm32f10x_it.h文件:用来存放中断函数
三、STM32启动流程
Step1. STM32上电复位/按键复位
此时内核处于已知状态:
- PC = 0x0000 0000
- 所有寄存器为默认值,Flash 等待周期按出厂设定
1. 硬件复位序列(芯片自动完成)
Step2. 取第一个字:主堆栈顶(MSP)
内核从 0x0000 0000 读出 32 位数值(也就是4个字节),装入 MSP(该值实际存放在 Flash 0x0800 0000,通过地址别名映射到 0x0000 0000。)
Step3. 取第二个字:复位向量
从 0x0000 0004 读出 Reset_Handler (程序的入口)地址,跳转到该地址,开始执行用户代码
2. 运行启动文件

Step4. 调用SystemInit:初始化闪存接口、锁相环、更新系统内核的时钟变量
Step5. 调用main

其它中断在达到触发条件后就会自动执行
本文来自博客园,作者:LI,Yi-han,转载请注明原文链接:https://www.cnblogs.com/LiYi-han/p/19228188

浙公网安备 33010602011771号