• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32F030的BOOT和调试疑问

多啦Z梦 2018-07-26 浏览量:4646

一直用的是MSP430和STC51,才开始学习STM32

早就知道,STM32F103有BOOT0和BOOT1两个启动模式选择引脚,当BOOT0接低电平时,会从FLASH正常启动;而BOOT0为高时,会从BootLoader启动,并且BOOT1为低时可以通过串口烧写FLASH,而BOOT1接高电平时,则可烧写SRAM。这样可以把程序烧进RAM里来测试,不用消耗FLASH宝贵的寿命。

那么问题来了,都是关于2个BOOT脚都为1,也就是烧进SRAM的,而且问题有点多:

1、BootLoader烧进SRAM的程序,还能用JTAG来调试吗?比如跑个单步什么的?

2、STM32F030上没有物理的BOOT1引脚,需要配置寄存器,这个寄存器在哪里配置?如果要烧段程序进去才行配置的话,一复位重启,寄存器又恢复默认值了,怎么在上电前四个周期内置BOOT的值来进入SRAM的BootLoader模式呢?

3、如果我的模式还是正常启动,而把J-link烧写的地址从0x0800 0000(FLASH空间首地址)改成0x20000000(SRAM首地址),是不是就可以直接通过SWD或JTAG口往SRAM上烧程序测试,而不需要动BOOT模式了?

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 这个芯片是没有SRAM的,只能是在RAM中运行,这里是通过jlink进行配置的,与芯片中的BOOT程序进行通讯设置,官方有数据手册中有说明的。

    • 发布于 2018-08-24
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:5
  • 你都用  00就行了,只有ISP下载的时候才考虑这个
    • 发布于2018-07-26
    • 举报
    • 评论 3
    • 0
    • 0
多啦Z梦 回复了 涛涛涛涛涛 :那就是说,按我第3问上的方法,改下首地址,用Jlink,想在哪仿真就填谁就行了是吧? 回复
涛涛涛涛涛 回复了 多啦Z梦 :恩,差不多吧 回复
涛涛涛涛涛 回复了 多啦Z梦 :恩,差不多吧 回复

  • 烧进RAM的程序一样可以仿真。对于FLASH烧录寿命的问题不用担心,STM32的FLASH寿命多达数万次,等STM32淘汰的时候FLASH都还没坏。单纯改烧写地址不一定可以烧进去,因为BOOT引脚是解除烧录保护的。

    • 发布于2018-07-26
    • 举报
    • 评论 1
    • 0
    • 0
多啦Z梦 回复了 donatello :那如果想用Jlink烧到SRAM上仿真,完整的操作应该怎么做呢?除了改首地址,还需要做什么? 回复

  • 这个不需要去关心烧录的次数,你用默认的配置去烧录就可以了,flsah可以擦写十万次以上
    • 发布于2018-07-27
    • 举报
    • 评论 1
    • 0
    • 0
多啦Z梦 回复了 序缘阿斌 :话说我问的型号是F030,我记得F0的Value Line连FLASH寿命都是缩水的,要比别的系列短命得多。 回复

  • 程序在RAM里面一样可以仿真,此外,STM32的flash擦写次数声称可以达到1万次,所以无所谓的

    • 发布于2018-07-28
    • 举报
    • 评论 0
    • 0
    • 0

  • boot1是给ISP用的,jtag是专用下载调试口,两个通道都可以灌程序
    • 发布于2018-08-02
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32F030的BOOT和调试疑问