STM32有3种启动方式
1. 从Flash启动,将Flash地址0x0800 0000映射到0x00000000,这样启动以后就相当于从0x08000000开始的,这是我们最常用的模式;
2. 从SRAM启动,将SRAM地址0x20000000映射到0x00000000,这样启动以后就相当于从0x20000000开始的,用于调试,笔者基本没用过
3. 从系统存储器启动(System memory),将系统存储器地址0x1FFFF000映射到0x00000000,这样启动以后就相当于从0x1FFFF000开始执行的,值得注意的是这个系统存储器里面存储的其实是STM32自带的Bootloader代码,这其实是一个官方的IAP,它提供了可以通过UART1接口将用户的代码下载到Flash中的功能,然后将boot0置0,复位单片机,便可以Flash启动。
注:系统内存存储器我们没办法烧些,因为他是一个只读的ROM,我们只能读取,但是可以通过从系统存储器启动,通过串口UART1烧录代码。

芯片固件->烧录或跳转到用户程序-> 初始化执行环境 ->初始化c库和用户应用程序
(1)建立中断向量表; (1)加载程序运行地址

本文详细介绍了STM32的三种启动方式:Flash启动、SRAM启动和系统存储器启动,其中系统存储器启动包含官方Bootloader,可用于通过UART1接口下载代码。此外,还阐述了芯片启动后的初始化过程,包括中断向量表建立、存储器和堆栈初始化、全局变量和库函数的设置,最后进入main()函数执行。
最低0.47元/天 解锁文章
472

被折叠的 条评论
为什么被折叠?



