把代码和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中。