STM32笔记(七)IAR平台,在内存中调试STM32

来源:本站
导读:目前正在解读《STM32笔记(七)IAR平台,在内存中调试STM32》的相关信息,《STM32笔记(七)IAR平台,在内存中调试STM32》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《STM32笔记(七)IAR平台,在内存中调试STM32》的详细说明。
简介:  我们玩ARM9,一般都是在内存里调试程序,速度飞快。STM32下也可以这样,虽说现在的flash寿命已经很长了,但flash中调试烧录程序还是一个很慢的过程,有时候程序上一个小小的改动要花上几倍的时间下载代码,这确实是不能忍受的。

我们玩ARM9,一般都是在内存里调试程序,速度飞快。STM32下也可以这样,虽说现在的flash寿命已经很长了,但flash中调试烧录程序还是一个很慢的过程,有时候程序上一个小小的改动要花上几倍的时间下载代码,这确实是不能忍受的。

我们也可以在开发STM32时,在内存中调试程序。

STM32这颗Cortex-M3控制器,与其他许多ARM一样,提供了BOOT0和BOOT1两个管脚用于启动选择。

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

BOOT1=0BOOT0=1从系统存储器启动,这种模式启动的程序功能由厂家设置。(用于串口ISP)

BOOT1=1BOOT0=1从内置SRAM启动,这种模式可以用于调试。

在芯片上电复位时,BOOT0和BOOT1两个管脚的状态将决定芯片从何处启动。

1.当BOOT0和BOOT1均设置为逻辑1时,系统将从内置SRAM中启动,这是代码内存调试的第一个条件。

经多次确认,BOOT0和BOOT1状态与内存中调试无直接联系

2.然后,我们需要在代码中设置正确的中断向量表位置。中断向量表通常被放置在用户程序的开始,所以flash中运行时,向量表位于0x08000000处,而当代码被放置在SRAM中运行时,他的位置就成了0x20000000。在初始化NVIC时,我们可以放置如下代码,定义向量表的位置

NVIC_SetVectorTable(0x20000000,0x0);

NVIC_SetVectorTable(0x08000000,0x0);

3.在编译器中,要进行正确的设置。这里以IAR5.4为例说明。

3.1.工程选项中Linker项,Config选项卡中,指定LinkerConfigurationFile为stm32f10x_ram.icf,该文件在FWLIB安装包中可以获得,IAR4和5分别有不同的配置文件。

3.2.同样是工程选项中Debug项,Download选项卡中,去掉所有钩子,不下载代码到flash

经过以上步骤,代码就可以在内存中调试,下载速度飞快,调试速度也比flash中快了不少!

提醒:《STM32笔记(七)IAR平台,在内存中调试STM32》最后刷新时间 2024-03-14 01:14:12,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《STM32笔记(七)IAR平台,在内存中调试STM32》该内容的真实性请自行鉴别。