把代码和vector 放到ram的方法有很多种。参考了网上的资料和自己实际应用中的情况。先做出总结:
平台以 stm32f103ZET为例子:
一、vector 放到ram中。
(1)第一步需要修改:.sct文件,重新规划ram和rom。根据 rtt官网提供的 sct文件。进行修改:
RTT官网提供的源文件:

修改后的sct文件:

(2)、编写代码,复制rom的vector 到 ram中,并重新更改 vector 映射。

二、code放到 ram中。
(1)、修改sct文件,并添加 对应的 section。

(2)、把指定 代码放到ram中。以#pragma arm section code = “RAMCODE” 开头,以#pragma arm section结尾。

(3)察看下结果:察看对应的.map文件。

对比下:没有放到ram中的情况:

明显看到
RW_IRAM1这个ram中不存在任何东西。
(4)运行结果:代码运行在 ram中。

本文介绍了如何将STM32F103ZET平台的中断向量和代码段放到RAM中运行。首先,通过修改.sct文件重新规划RAM和ROM。然后,编写代码将中断向量从ROM复制到RAM,并更新映射。对于代码部分,使用#pragma指令将特定代码段放入RAM。最终,通过检查.map文件验证操作结果,确保代码成功在RAM中运行。
https://www.cnblogs.com/wuhh123/p/14308954.html
3164





