0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

BOOT1和BOOT0引脚的状态

STM32嵌入式开发 来源:STM32嵌入式开发 作者:STM32嵌入式开发 2022-07-06 16:32 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

三种BOOT模式

所谓启动,一般来说就是指我们下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式,相关文章:详解STM32启动文件。

012e3cc8-ec8c-11ec-ba43-dac502259ad0.png

Main Flash memory

是STM32内置的Flash,一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序。

System memory

从系统存储器启动,这种模式启动的程序功能是由厂家设置的。一般来说,这种启动方式用的比较少。系统存储器是芯片内部一块特定的区域,STM32在出厂时,由ST在这个区域内部预置了一段BootLoader, 也就是我们常说的ISP程序, 这是一块ROM

出厂后无法修改。一般来说,我们选用这种启动模式时,是为了从串口下载程序,因为在厂家提供的BootLoader中,提供了串口下载程序的固件,可以通过这个BootLoader将程序下载到系统的Flash中。但是这个下载方式需要以下步骤:

Step1:将BOOT0设置为1,BOOT1设置为0,然后按下复位键,这样才能从系统存储器启动BootLoader

Step2:最后在BootLoader的帮助下,通过串口下载程序到Flash中

Step3:程序下载完成后,又有需要将BOOT0设置为GND,手动复位,这样,STM32才可以从Flash中启动可以看到, 利用串口下载程序还是比较的麻烦, 需要跳帽跳来跳去的,非常的不注重用户体验。

Embedded Memory

内置SRAM,既然是SRAM,自然也就没有程序存储的能力了,这个模式一般用于程序调试。假如我只修改了代码中一个小小的地方,然后就需要重新擦除整个Flash,比较的费时,可以考虑从这个模式启动代码(也就是STM32的内存中),用于快速的程序调试,等程序调试完成后,在将程序下载到SRAM中。

开发BOOT模式选择

通常使用程序代码存储在主闪存存储器,配置方式:BOOT0=0,BOOT1=X。

Flash锁死解决办法

开发调试过程中,由于某种原因导致内部Flash锁死,无法连接SWD以及Jtag调试,无法读到设备,可以通过修改BOOT模式重新刷写代码。相关文章:STM32的Flash写了保护怎么办?

修改为BOOT0=1,BOOT1=0即可从系统存储器启动,ST出厂时自带Bootloader程序,SWD以及JTAG调试接口都是专用的。重新烧写程序后,可将BOOT模式重新更换到BOOT0=0,BOOT1=X即可正常使用。

原文标题:STM32的启动模式配置与应用

文章出处:【微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    39

    文章

    7758

    浏览量

    172249
  • STM32
    +关注

    关注

    2313

    文章

    11195

    浏览量

    374718
  • 程序
    +关注

    关注

    117

    文章

    3849

    浏览量

    85486
  • Boot
    +关注

    关注

    0

    文章

    154

    浏览量

    37922

原文标题:STM32的启动模式配置与应用

文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    解析Rockchip平台U-Boot核心文件:boot_rkimg.c到底做了什么?

    在嵌入式开发中,U-Boot 作为引导程序的 “中流砥柱”,负责初始化硬件、加载内核并启动系统。对于 Rockchip 平台的设备(如常见的开发板、智能终端),boot_rkimg.c 是 U-Boot 中专门处理启动流程的核心
    的头像 发表于 02-03 15:29 985次阅读
    解析Rockchip平台U-<b class='flag-5'>Boot</b>核心文件:<b class='flag-5'>boot</b>_rkimg.c到底做了什么?

    CW32F003 有没有BOOT引脚

    CW32F003 有没有BOOT引脚,是不是和STM32F0 不一样
    发表于 12-26 06:39

    嵌入式开发踩坑记: AG32硬件设计指南(二)

    拉。内部上下拉电阻的阻值大小一般在 40k 左右。 9. BOOT模式 •用户模式:BOOT0=0, BOOT1=X •UART0启动
    发表于 12-22 14:21

    松下6mm方形中行程2引脚SMD触觉开关产品解读

    松下6mm方形中行程2引脚SMD触觉开关产品解读 作为电子工程师,在硬件设计中,开关的选择至关重要。今天来为大家详细介绍松下推出的6mm方形中行程2引脚SMD触觉开关,包括其产品特点、规格参数
    的头像 发表于 12-22 10:30 438次阅读

    嵌入式开发踩坑记: AG32硬件设计指南(一)

    下载 仅支持UART0,不可重映射。需设置BOOT0(高)、BOOT1(低)。 6. BOOT0配置 建议通过电阻接地,避免直接接地。调试时若烧录错误导致系统异常,可尝试将
    发表于 12-12 14:25

    深入理解 RK3506 U-Boot 重定位:从代码到原理

    在嵌入式系统中,U-Boot 作为引导加载程序,其启动流程的核心环节之一就是 重定位(Relocation) 。对于 RK3506 这类基于 ARM Cortex-A 架构的芯片,重定位的本质是将
    的头像 发表于 11-28 07:05 1018次阅读
    深入理解 RK3506 U-<b class='flag-5'>Boot</b> 重定位:从代码到原理

    【Nordic随笔】nRF5340引脚分配问题

    【Nordic随笔】nRF5340引脚问题 本文章主要说明一下nRF5340引脚问题,因为nRF5340是双核架构,所以有部分引脚是被分配到网络核的,以及有部分特殊引脚的分配 为什么发
    的头像 发表于 11-27 11:19 854次阅读
    【Nordic随笔】nRF5340<b class='flag-5'>引脚</b>分配问题

    将JTAG引脚用作普通IO

    ,GPIO_InitStruct); } 完全禁用SWD后,将无法通过调试器更新程序 建议保留SWD功能(AFIO_MAPR_SWJ_CFG_JTAGDISABLE) 若必须禁用所有调试接口,需保留BOOT0引脚用于ISP编程
    发表于 11-13 06:39

    GD32VF103 RV-START单板,ISP下载程序失败怎么解决?

    按照手册,使用的板载调试器,通过ISP下载代码到单板,BOOT0选择高电平,BOOT1选择低电平。GigaDevice MCU ISP Programmer.exe软件点击next始终没办法进入
    发表于 11-11 06:29

    RT-Thread启动异常的原因?

    BOOT0BOOT1引脚,发现两个引脚都是接的GND,应该是从flash启动(使用的是正点原子的量产开发板,应该不会有硬件上的问题吧) 但是这个现象是偶发的,有时候进入Debug,P
    发表于 09-10 08:12

    请问为什么M0519引脚的某些部分在配置为GPIO功能后无法将输出控制到高电平或低电平状态

    为什么M0519引脚的某些部分在配置为GPIO功能后无法将输出控制到高电平或低电平状态
    发表于 08-27 15:00

    为什么Config0/1 中的 Boot Select 设置在 Keil ICE 调试模式下无效呢?

    在 ICE 调试模式下,代码将在 Flash Select 字段(APROM 或 LDROM)选择的区域中进行编程,并从该区域启动,而不是从 Config0/1 中的 Boot Select 设置
    发表于 08-20 06:27

    fn_u-boot-spl.bin和u-boot-spl.bin区别是什么?请问如何从u-boot-spl.bin生成fn_u-boot-spl.bin?

    uboot) = fn_u-boot-spl.bin add_firmHeadu-boot-spl.bin#add_firmHeadxxx.bin\"-n\"#output fn_$1
    发表于 07-11 07:58

    STM32H747的BOOT1是哪个管脚?

    STM32H747 datasheet里面没有BOOT1,只有BOOT0。请问boot1是哪个管脚?还是就是没有,没有的话 BOOT0 上下拉分别什么启动配置?
    发表于 07-11 07:44

    飞凌嵌入式ElfBoard ELF 1板卡-uboot编译u-boot/u-boot.bin/u-boot.imx

    u-boot文件就是编译流程章节讲的,链接器将链接各.o文件之后生成的.elf文件,该文件中包含了大量的调试信息、地址信息和注释信息,不能被直接执行,需要转换成为可执行的u-boot.bin文件,而
    发表于 05-22 11:24