RT-Thread论坛
直播中

姬盼希

7年用户 937经验值
擅长:控制/MCU
私信 关注

rt1052如何将整个中断程序搬到RAM中运行?

我想将rt1052整个中断程序都搬到itcm中运行,发现中断总有一小部分的汇编代码还是在norflash中运行。
如下图所示,:
1.png
(注意,startup_MIMXRT1052.S中的DMA2_DMA18_IRQHandler的链接地址为0x60017ba2,说明DMA2_DMA18_IRQHandler这几样汇编代码是在norflash中跑。DMA2_DMA18_DriverIRQHandler在ram中跑,这个没有问题,符合我预想)


如下图所示,我尝试重定位中断向量表地址到itcm地址为0的RAM,结果还是跟上图一样,中断部分汇编代码依然在norflash中执行。


2.png


另外,如果我在link.lds,增加以下脚本:


    .*startup_MIMXRT1052.o(.text .text.*)
让这部分代码链接到ram中去,然后查看map文件,确认中断函数确实链接到ram中去了,但程序跑起来崩了,见下图:


3.png


请问怎么弄,才能将整个中断,包括汇编的代码,都链接到ram中去?
谢谢!

回帖(1)

刘美隆

2024-3-5 16:06:33
在rt_board_init里做重定向
举报

更多回帖

发帖
×
20
完善资料,
赚取积分