东莞网站优化公司推荐,建设网站网站建站,wordpress 导入工具插件下载,怎么做有趣的视频网站STM32在上电后#xff0c;从那里启动是由BOOT0和BOOT1引脚的电平决定的#xff0c;如下表#xff1a;
BOOT模式选引脚启动模式BOOT0BOOT1X0主Flash启动01系统存储器启动11内置SRAM启动
BOOT 引脚的值在重置后 SYSCLK 的第四个上升沿时被锁定。在重置后,由用户决定是如何设…STM32在上电后从那里启动是由BOOT0和BOOT1引脚的电平决定的如下表
BOOT模式选引脚启动模式BOOT0BOOT1X0主Flash启动01系统存储器启动11内置SRAM启动
BOOT 引脚的值在重置后 SYSCLK 的第四个上升沿时被锁定。在重置后,由用户决定是如何设置 BOOT1 和 BOOT0 引脚,来选择需要的启动模式。
1. 启动代码的位置
启动延迟过后CPU 从引导存储器中启动代码执行.启动代码位于存储器地址最底部的地址,起始 地址是 0x0000_0000。
2. STM32的启动模式
STM32支持多种启动模式主要由BOOT0和BOOT1这两个引脚的状态决定。常见的启动模式包括 主Flash启动这是最常用的启动模式。在此模式下STM32的主闪存存储器Flash Memory被映射到启动空间0x0000_0000但实际上Flash Memory的内容仍然可以在其原有的地址如0x0800_0000访问。这样当CPU从0x0000_0000开始执行时它实际上是在执行Flash Memory中的程序。系统存储器启动在这种模式下系统存储器System Memory被映射到启动空间0x0000_0000。系统存储器中通常存储了STM32自带的Bootloader程序该程序允许用户通过串行接口如UART将新的程序代码下载到Flash Memory中。值得注意的是系统存储器的物理地址如0x1FFF_F000在此时也被映射到了0x0000_0000。内置SRAM启动在这种模式下STM32的内部静态随机存取存储器SRAM被用作启动空间。然而SRAM的访问仅限于其原始地址如0x2000_0000开始并不会被映射到0x0000_0000。因此在SRAM启动模式下需要通过特殊的方式如修改中断向量表来确保CPU能够正确地找到并执行启动代码。 主Flash启动正常情况下使用
一般使用 JTAG或者 SWD接口下载程序固件时程序将被下载到这里芯片重启后也将直接从这里读取并启动程序
系统存储器启动非正常情况使用用来实现ISP下载
这种模式启动的程序功能是由芯片厂家设置的。这种启动方式一般情况不使用。系统存储器是芯片内部一块特定的区域STM32 出厂时由ST公司在这个区域内部预置了一段BootLoader 即我们常说的 ISP程序 这是一块ROM 出厂后无法修改。 我们选用这种启动模式时大多是为了使用 串口下载程序因为在厂家提供的BootLoader中提供了串口下载程序的固件可以通过这个BootLoader将程序下载到系统的 Flash 中。但是这个下载方式需要以下步骤 Step1将 BOOT0 设置为 1BOOT1 设置为 0然后按下复位键这样才能从系统存储器启动 BootLoader Step2最后在BootLoader的帮助下通过串口下载程序到Flash中 Step3程序下载完成后又有需要将BOOT0设置为GND手动复位这样STM32才可以从 Flash 中启动。所以使用串口下载程序较为 麻烦 需要频繁切换BOOT0与BOOT1。
内置 SRAM
内置SRAMSRAM没有程序存储的能力这个模式一般用于频繁的程序调试这样可以减少flash的擦写次数保护flash。 这种模式可以用于 程序调试。 假如只修改了代码中一个小小的地方然后就需要重新擦除整个Flash比较的费时可以考虑从这个模式启动代码也就是STM32的内存中用于快速的程序调试等程序调试完成后再将程序下载到SRAM中
主流用法
一般比较主流boot模式是主Flash启动使用ST-LINKkeil5 debug起来比较方便速度也比较快
3引脚配置 4ISP和IAP
ISP就是in-system programming在系统烧录在系统编程。
以前烧录bin/hex文件到单片机内部flash中是需要借助专用的烧录器的比较麻烦。随着时间推移衍生出来了一种不需要借助烧录器也不需要将单片机从板子上拆卸下来的烧录方法这种方法就是ISP。一般ISP都是PC通过串口把bin/hex文件ISP到单片机内部的flash。例如STM32从系统存储器启动模式就是在系统存储器中存储了一段可以接收串口数据的代码来实现将bin/hex文件烧录到主闪存存储器烧录完成后再将启动模式手动切换成主闪存存储器执行刚刚烧录的程序。
IAP就是in-application programming在应用编程在应用烧录在线升级。
IAP的核心是用户需要在自己的应用程序中去操作单片机内部flash的控制器的寄存器实现对内部flash的烧录功能。IAP的时候用户程序通过串口、usb、ethernet等来实现接收PC发送过来的bin/hex文件然后将之烧录到内部flash中去完成IAP完成后再次启动后就会从用户存储器区执行更新就会起效果。一般实现iAP需要人为的将用户存储器区分为2部分bootloaderapp。