STM32 SRAM调试:Keil MDK 3.5与Jlink V7设置指南

需积分: 36 0 下载量 42 浏览量 更新于2024-09-13 收藏 355KB PDF 举报
"STM32开发中,使用Keil MDK 3.5或UV4beta版本配合Jlink V7进行SRAM调试的方法" 在STM32开发过程中,特别是对于新手来说,频繁地擦写FLASH可能导致其寿命缩短。为了避免这个问题,并提供一个更友好的学习环境,可以采用SRAM调试的方法。本文以STM32F103RBT6为例,该芯片具有128KB的FLASH和20KB的SRAM,通过借鉴前人在ULINK下的调试策略,将内存分配一部分用于程序执行。 首先,你需要在Keil的安装目录下找到示例项目的RAM.ini文件,并将其复制到你的项目目录中。接着,打开你的工程文件(如GPIO_OUT.uvproj),在Keil中创建一个新的目标(Target),命名为SRAM。 接下来,选择SRAM作为调试目标,然后在项目中右键点击SRAM,选择“Options for Target “SRAM””,进入选项设置。在Target选项卡中,将IROM1的起始地址设为0x20000000,大小设为0x4000(16KB);IRAM1的起始地址设为0x20004000,大小设为0x1000(4KB),这样就将内存分成了16KB的FLASH区域和4KB的SRAM运行区域。 在Output选项卡中,勾选“Create HEX File”,确保编译后能生成HEX文件。在Debug选项中,选择Cortex-M3 J-LINK作为仿真器,并在Initialization File中选择之前复制的RAM.ini文件。同时,取消“Load Application at Startup”的选中状态,因为我们要在SRAM中运行程序,而不是从FLASH加载。 在仿真器设置中,确保Interface选择为USB,以便通过USB接口连接Jlink。在Flash Download部分,设置不要擦除(Donot Erase),并在RAM for Algorithm中,设置Start为0x20004000,Size为0x1000。最后,在Programming Algorithm中,配置STM32F10x Medium-density Flash的起始地址为0x20000000,大小为0x00004000。 如果Programming Algorithm中没有STM32F10x Medium-density Flash,可以通过Add按钮添加。完成以上步骤后,保存设置,就可以在SRAM中调试你的代码了,这样可以避免频繁擦写FLASH,延长MCU的使用寿命,并为初学者提供了一个更加安全的学习环境。 通过这种方法,你可以在不改变FLASH内容的情况下,直接在SRAM中运行和调试程序,如GPIO控制LED等基本功能,这对于快速迭代和测试代码非常有帮助。同时,这种调试方式也能帮助开发者更好地理解和掌握STM32的内存管理以及调试工具的使用。