s32k312 之 Relocating code in ITCM

本文介绍了如何在s32k312单片机上利用ITCM(指令紧耦合内存)来提升CPU访问速度。首先,通过修改链接器文件定义ITCM段,然后获取从Flash到ITCM的数据拷贝地址,最后通过__attribute__ ((section(".itcm_code")))注解将函数定位到ITCM中,以实现代码的快速执行。
摘要由CSDN通过智能技术生成

ITCM(指令紧耦合内存)是零等待内存,即CPU访问的时间
ITCM将比访问闪存或SRAM更快。要使用ITCM内存,操作步骤如下:

第一步:在链接器文件中定义ITCM部分。因为默认的链接器文件已经定义了ITCM内存区域int_itcm,所以我们可以从section定义开始

__itcm_rom = __shareable_data_rom_end; /*obtain the LMA of .itcm section, the .itcm section 
is put after .shareable_bss section*/ 
.itcm : AT(__itcm_rom) 

 . = ALIGN(4); 
 __itcm_start = .; 
 *(.itcm_code) 
 . = ALIGN(4); 
 __itcm_end = .; 
} > int_itcm 
__itcm_rom_end = __itcm_rom + (__itcm_end - __itcm_start); 

默认的链接器文件不包括ARM EABI GNU保留的节位置,用户应该添加它们并将它们放置到Flash中,以避免TCM(itcm/dtcm)或数据节位置重叠。

.flash : 
 { 
 … 
 } > int_flash 
 
 ARM.exidx : 

 *(.ARM.exidx*) 
 *(.gnu.linkonce.armexidx.*) 
 *(.glue*) 
 *(.vfp11*) 
 *(.v4*) 
 *(.iplt*) 
 *(.rel*) 
} > int_flash 
第二步:从链接器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小蜗牛慢慢爬123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值