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
第二步:从链接器