STM32的BOOT概述

发布者:美好梦想最新更新时间:2016-08-05 来源: eefocus关键字:STM32  BOOT 手机看文章 扫描二维码
随时随地手机看文章
STM32三种启动模式对应的存储介质均是芯片内置的,它们是:

1)用户闪存 = 芯片内置的Flash。
2)SRAM = 芯片内置的RAM区,就是内存啦。
3)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区
域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区。

 

在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执
行程序,见下表:

BOOT1=x   BOOT0=0   从用户闪存启动,这是正常的工作模式。

BOOT1=0   BOOT0=1   从系统存储器启动,这种模式启动的程序功能由厂家设置。
       BOOT1=1   BOOT0=1   从内置SRAM启动,这种模式可以用于调试。

在系统上电的时候,cpu首先根据这两个脚来确定是哪种模式的启动,然后就是把相应模式的起始地址映射到0地址处,并从0地址处开始执行。
 
在芯片出厂时,st烧写了一个bootloader到rom中,也就是system memory。这个bootloader的主要任务就是通过uart1下载程序到内置flash中去。工作流程如下:
【转】STM32的BOOT概述 - 小枣年糕 - 小枣年糕
 
system memory boot模式,在执行完成它的任务之后是必须要退出的。这个退出方式是通过一次硬件reset来实现的。在reset的时候,必须要配置BOOT[1:0]这两个脚以使cpu在重启之后进入适当的模式。
 

        要注意的是,一般不使用内置SRAM启动(BOOT1=1 BOOT0=1),因为SRAM掉电后数据就丢失。多数情况下SRAM只是在调试时使用,也可以做其他一些用途。如做故障的局部诊断,写一段小程序加载到SRAM中诊断板上的其他电路,或用此方法读写板上的Flash或EEPROM等。还可以通过这种方法解除内部Flash的读写保护,当然解除读写保护的同时Flash的内容也被自动清除,以防止恶意的软件拷贝。

一般BOOT0和BOOT1跳线都跳到0

关键字:STM32  BOOT 引用地址:STM32的BOOT概述

上一篇:STM32 Printf函数实现方法
下一篇:stm32F407之USART6的DMA工作方式

推荐阅读最新更新时间:2024-03-16 15:03

STM32之中断与事件---中断与事件的区别
这张图是一条外部中断线或外部事件线的示意图,图中信号线上划有一条斜线,旁边标志19字样的注释,表示这样的线路共有19套.图中的蓝色虚线箭头,标出了外部中断信号的传输路径,首先外部信号从编号1的芯片管脚进入,经过编号2的边沿检测电路,通过编号3的或门进入中断挂起请求寄存器,最后经过编号4的与门输出到NVIC中断检测电路,这个边沿检测电路受上升沿或下降沿选择寄存器控制,用户可以使用这两个寄存器控制需要哪一个边沿产生中断,因为选择上升沿或下降沿是分别受2个平行的寄存器控制,所以用户可以同时选择上升沿或下降沿,而如果只有一个寄存器控制,那么只能选择一个边沿了. 按下来是编号3的或门,这个或门的另一个输入是软件中断/事件寄存器,从这
[单片机]
<font color='red'>STM32</font>之中断与事件---中断与事件的区别
STM32 TIMER2的使用
配置定时100us的配置如下: TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE); TIM_DeInit(TIM2); TIM_TimeBaseStructure.TIM_Period = 1;//59999;//1199;//9999; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DI
[单片机]
Keil5配置GCC编译器编译STM32工程
Keil一般使用ARMCC编译MCU工程代码。偶然听说Keil也是支持内嵌GCC编译器的。于是尝试了网上博客所述的一些方法,最终找到了一篇博客 http://blog.csdn.net/lan120576664/article/details/46806991 按照文中所述,发现仍存在一些其他错误,后来又查找了其他相关资料,在这作以总结 一、下载GCC编译器 https://launchpad.net/gcc-arm-embedded/ 二、安装GCC GCC解压到keil的安装目录下面。如下图 三、配置Keil 如下图所示进行相关设置: Prefix:arm-none-eabi- Folder:D:k
[单片机]
Keil5配置GCC编译器编译<font color='red'>STM32</font>工程
STM32片上Flash内存映射、页面大小、寄存器映射
摘要: 本文以STM32F103RBT6为例介绍了片上Flash(Embedded Flash)若干问题,包括Flash大小(内存映射)、块大小、页面大小、寄存器。这些知识,有利于写Flash驱动。 一、怎么看Flash大小 1.1 通过型号 型号会印在MCU表面,可以通过观察获得,我的是STM32F103RBT6(以下分析基于这个型号),对照下图的STM32产品命名,可知STM32F103RBT6的Flash是128KB。 () 图1 Ordering information scheme 1.2 通过数据手册(内存映射) 也可以通过数据手册得到Flash大小,首先根据型号从官网下得对应的数据手册D
[单片机]
<font color='red'>STM32</font>片上Flash内存映射、页面大小、寄存器映射
STM32系统定时器(SysTick)笔记
一、简介 SysTick:系统定时器,由四个寄存器控制,存在于内核,嵌套在NVIC中,所有的Cortex-M3内核的单片机都具有这个定时器。 二、相应寄存器(这里介绍常用的几个寄存器) ①SysTick控制及状态寄存器(地址:0xE000_E010) 只有上面红色线框柱的位有效,其他位都是保留。 ②SysTick重装载数值寄存器(地址:0xE000_E014) ③SysTick当前数值寄存器(地址:0xE000_E018) 三、结合框图 图中STK_CLK对应的上面的CLKSOURCE,结合RCC时钟树: 当CLKSOURCE位为0时,时钟是AHB
[单片机]
<font color='red'>STM32</font>系统定时器(SysTick)笔记
STM32学习笔记(八)---通讯基本知识
通讯的基本知识 一、通讯的分类 按数据传送的方式分 a. 串行通讯:按数据位形式一位一位地传输数据 b. 并行通讯:使用8、16、32及64根或更多的数据线进行传输 按数据通讯的方向分 a. 全双工:同一时刻,两个设备之间可以同时收发数据 b. 半双工:同一时刻,两个设备之间不能同时收发数据 c. 单工:任何时刻,只能进行单一方向通讯 按数据同步的方式分 a. 同步通讯:收发双方会使用同一时钟信号线,在时钟信号的驱动下双方进行协调,同步数据 b. 异步通讯:不使用时钟信号同步。 二、通讯速率 通信速率:通常以比特率(bitrate)表示,即每秒钟传输的二进制位数,单位为比特每秒(bit/s)
[单片机]
STM32定时器BURST模式
STM32 Burst模式可以方便的设置定时器的预分频值TIMx_PSC寄存器、自动重载值TIMx_ARR寄存器、定时器重复计数寄存器TIMx_RCR寄存器、定时器输出比较寄存器TIMx_CCR寄存器。这样就很容易使用DMA的性能改变定时器的频率、占空比。注意地址值的对应。
[单片机]
<font color='red'>STM32</font>定时器BURST模式
STM32驱动W5100实现udp通信
环境: 主机:WIN7 开发环境:MDK4.72 MCU:STM32F103ZE 源代码: 驱动层代码: drv_w5100.h span style= font-size:18px; /********************************************************************* * w5100驱动层头文件 * (c)copyright 2013,jdh * All Right Reserved *文件名:drv_w5100.h *程序员:jdh *修改日
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved