knight_hu 发表于 2018-10-13 16:04:48

IMX RT1050系列ITCM使用和代码搬运的疑问

这几天读了NXP的AN12077这个note,提到可以通过将关键代码段比如中断限量表和中断处理程序放到ITCM空间以提高运行速度,这边就有疑问了,因为在构建用来部署的项目代码的时候,链接文件是将中断向量表放在spiflash空间的头部的0x60002000这个地方的,那我在启动阶段,怎么讲向量表和中断程序段搬运到0x00000000开头的ITCM去呢?搬运过去以后,执行的时候,程序是去找ITCM里面的中断程序还是SPIFLASH里面的中断程序呢?

lusson 发表于 2018-11-24 23:19:28

回答一下吧。
IAR的话在icf里创建一个section比如叫ITCM_Region,然后函数后面加上void function(void) @ "ITCM_Region"
则程序在初始化的时候会把这个函数搬运到对应的Region上去的,你可以看看链接后function地址是链接到ITCM_Region里的。。。至于搬运,类似于全局变量定义初始值一样...
建议找找相关资料看一下。

至于中断程序的话,你要重定向一下,具体见这个SDK里的这个函数:
InstallIRQHandler

这个就是用来重新定义中断向量入口的。。。
如果在icf中定义了中断向量到ITCM里的话,需要调用这个函数来生效,具体可以跟踪看看。
页: [1]
查看完整版本: IMX RT1050系列ITCM使用和代码搬运的疑问