×
单片机 > 单片机程序设计 > 详情

在内存中调试STM32 - IAR平台

发布时间:2020-05-26 发布时间:
|

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

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

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

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

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

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

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

    NVIC_SetVectorTable(0x20000000 , 0x0); 

或 

    NVIC_SetVectorTable(0x08000000 , 0x0); 

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

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

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

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


关键字:内存  调试STM32  IAR平台

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机CO2检测显示程序解析