从STM32F4的库函数分析如何实现点亮一个LED(代码存放位置)(一)

一.STM32F407的组成

STM32F407由一个Cortex-M4内核,片上flash,片上sram,以及片上外设(uart,I2C,SPI等)组成。

                                                   从STM32F4的库函数分析如何实现点亮一个LED(代码存放位置)(一)_第1张图片

内核通过I,S,D三条数据总线,与总线矩阵相连,对片上flash,片上sram,以及片上外设等进行操作,内核通过I总线获取指令,内核通过D总线进行立即数加载和调试访问,内核通过S总线访问SRAM中的数据,也可以通过该总线获得指令(效率低于I总线)。其结构示意图如下:

                 从STM32F4的库函数分析如何实现点亮一个LED(代码存放位置)(一)_第2张图片

并且从三个箭头可以看出I总线可以向片内flash,SARM,FSMC取址,而且,STM32F407有三种自举方式

                                     从STM32F4的库函数分析如何实现点亮一个LED(代码存放位置)(一)_第3张图片

也就是当BOOT1为任意和BOOT0为0时,程序从flash中0x0800 0000 开始自举启动,程序此时开始启动。                             

                                 从STM32F4的库函数分析如何实现点亮一个LED(代码存放位置)(一)_第4张图片

 下图中左下角就是将程序下载在片内flash,起始地址为0x0800 0000

从STM32F4的库函数分析如何实现点亮一个LED(代码存放位置)(一)_第5张图片

此时当开启电源,代码就开始运行。

接下来,将说说启动代码,再是使用库函数点亮LED的分析

ref:https://www.cnblogs.com/firege/p/5748333.html

 

系列文章导航:

从STM32F4的库函数分析如何实现点亮一个LED(代码存放位置)(一)

:https://blog.csdn.net/qq_33974167/article/details/89191926

 从STM32F4的库函数分析如何实现点亮一个LED(代码启动)(二) 

:https://blog.csdn.net/qq_33974167/article/details/89202764

从STM32F4的库函数分析如何实现点亮一个LED(点亮LED)(三) 

:https://blog.csdn.net/qq_33974167/article/details/89208357

你可能感兴趣的:(STM32)