一.STM32F407的组成
STM32F407由一个Cortex-M4内核,片上flash,片上sram,以及片上外设(uart,I2C,SPI等)组成。
内核通过I,S,D三条数据总线,与总线矩阵相连,对片上flash,片上sram,以及片上外设等进行操作,内核通过I总线获取指令,内核通过D总线进行立即数加载和调试访问,内核通过S总线访问SRAM中的数据,也可以通过该总线获得指令(效率低于I总线)。其结构示意图如下:
并且从三个箭头可以看出I总线可以向片内flash,SARM,FSMC取址,而且,STM32F407有三种自举方式
也就是当BOOT1为任意和BOOT0为0时,程序从flash中0x0800 0000 开始自举启动,程序此时开始启动。
下图中左下角就是将程序下载在片内flash,起始地址为0x0800 0000
此时当开启电源,代码就开始运行。
接下来,将说说启动代码,再是使用库函数点亮LED的分析
ref:https://www.cnblogs.com/firege/p/5748333.html
系列文章导航:
从STM32F4的库函数分析如何实现点亮一个LED(代码存放位置)(一)
:https://blog.youkuaiyun.com/qq_33974167/article/details/89191926
从STM32F4的库函数分析如何实现点亮一个LED(代码启动)(二)
:https://blog.youkuaiyun.com/qq_33974167/article/details/89202764
从STM32F4的库函数分析如何实现点亮一个LED(点亮LED)(三)
:https://blog.youkuaiyun.com/qq_33974167/article/details/89208357