flash代码(STM32在SRAM、FLASH中调试代码的配置方法)

flash代码(STM32在SRAM、FLASH中调试代码的配置方法)

flash代码(STM32调试代码在SRAM和FLASH中的配置方法)

因为STM32的FLASH是有次数限制的(大约10000次),为了延长FLASH的使用时间,平时可以选择在SRAM中调试硬件。另外SRAM存储器的写入速度比内置FLASH快很多,所以下载程序到SRAM更快。

因此,我们有必要建立两个版本的工程配置。在SRAM中调试完程序后,将代码下载到FLASH中。本笔记主要分享在keil5中配置FLASH调试和SRAM调试的详细配置方法以及如何切换两种配置。

本笔记以STM32F103ZET6为例。闪存大小为512KB,SRAM大小为64KB。FLASH基址是0x08000000,SRAM基址是0x20000000。在STM32F10XXX中,BOOT1和BOOT0引脚可以选择三种不同的模式:

如果要调试FLASH或RAM中的硬件,需要设置这两个boot引脚的对应设置和程序下载的地址。

FLASH中的硬件仿真调试

1.硬件设置

0配置为0,BOOT0随意设置。

2.keil设置

本文以keil5为例。步骤如下:

(1)点击以下按钮修改目标名称:

target的名字可以随意更改,所以我们这里改成FLASH。

(2)单击项目->目标Flash的选项...(也可以点击魔棒图标)进行配置。首先,设置目标选项卡:

将IROM1的起始地址设置为0x8000000,大小设置为0x80000,这是FLASH的基址和大小。将IRAM1设置为0x20000000,将大小设置为0x10000,这是SRAM的基址和大小。

(3)调试选项设置:

根据调试器的实际选择,我们这里使用的调试器是ULINK2。其他可以默认设置,然后点击设置:

(4)编译,然后按Ctrl+F5进入调试界面:

然后单击全速运行:

在反汇编窗口中,可以看到地址是0x0800xxxx,也就是说代码被烧录到FLASH中了。这时候你可以中断点,像用其他C语言IDE调试C语言程序一样,一步到位运行我们的STM32程序。

SRAM中的硬件仿真调试

SRAM中的仿真调试配置比FLASH中的配置麻烦一点,配置的时候我遇到了很多问题~

1.硬件设置

0配置为1,BOOT0配置为1。

2.keil设置

(1)创建一个新目标,并将其名称改为SRAM:

(2)切换到SRAM目标:

(3)单击项目->目标SRAM的选项...(您也可以单击魔棒图标)目标选项卡设置:

以上就是由优质生活领域创作者 嘉文社百科网小编 整理编辑的,如果觉得有帮助欢迎收藏转发~