MDK在SRAM中运行-STM32F103RCT6为例

RCT6的Flash:256KB [start:0x0800 0000 size:40000] SRAM:48KB [start:0x2000 0000 size:c000]

1、在SRAM划分ROM空间,根据自己的程序大小来定:

MDK在SRAM中运行-STM32F103RCT6为例

同时修改Utilities页面:

MDK在SRAM中运行-STM32F103RCT6为例

MDK在SRAM中运行-STM32F103RCT6为例

设置分散加载文件(位于linker页面):

MDK在SRAM中运行-STM32F103RCT6为例

至此如果你的内存分配没有问题,我们已经完成了在RAM运行的第一步,那就是程序已经可以正常下载到RAM中了。要想在RAM中调试,需要配置ini文件.

2、添加调试所必须的ini文件

MDK在SRAM中运行-STM32F103RCT6为例

ini文件的内容,参照安富莱:

FUNC void Setup (void) {

SP = _RDWORD(0x20000000);

PC = _RDWORD(0x20000004);

_WDWORD(0xE000ED08, 0x20000000);

}

LOAD outoutput.axf INCREMENTAL

Setup();

g, main

MDK在SRAM中运行-STM32F103RCT6为例

输出文件地址的设定:

MDK在SRAM中运行-STM32F103RCT6为例

3、中断向量表的配置

MDK在SRAM中运行-STM32F103RCT6为例

MDK在SRAM中运行-STM32F103RCT6为例

MDK在SRAM中运行-STM32F103RCT6为例

至此,操作无误在RAM中调试也没有问题了,需要提示的是ini文件错误检查方法:

在debug状态点开debug选项,打开第二个选项:

MDK在SRAM中运行-STM32F103RCT6为例

MDK在SRAM中运行-STM32F103RCT6为例