链接脚本(Linker Script)用法解析(一) 关键字SECTIONS与MEMORY

1.MEMORY关键字用于描述一个MCU ROM和RAM的内存地址分布(Memory Map),MEMORY中所做的内存描述主要用于SECTIONS中LMA和VMA的定义。

2.SECTIONS关键字用于定义output section(输出段)的相应input section(输入段)、LMA和VMA,是整个连接脚本中最为重要的部分。注:output section是实际存储在内存中的“段”,而input section是其构成成员,如.data为数据段,由所有全局变量构成(默认情况下);.text为代码段,由所有函数构成(默认情况下)...

3.下面我们首先来介绍MEMORY的语法,MEMORY的语法格式如下:

MEMORY
{
  <name> [(<attr>)] : ORIGIN = <origin>, LENGTH = <len>
  ...
}

其中<name>是所要定义的内存区域的名字,<origin>是其起始地址,<len>为内存区域的大小。另外,<attr>是可选的,并不重要,具体用法可参考GNU Linker的语法说明。

MEMORY的一个具体使用实例如下:

MEMORY
{
  rom (rx) : ORIGIN = 0, LENGTH = 256K  // MEMORY语法中可以使用如K、M和G这样的内存单位
  ram (!rx) : org = 0x40000000, l = 4M   // ORIGIN可以写为org,而LENGTH可以写为l
}

4.在介绍SECTIONS的用法之前,我们先对之前提到的LMA和VMA进行说明:每个output section都有一个LMA和一个VMA,LMA是其存储地址,而VMA是其运行时地址,例如将全局变量g_Data所在数据段.data的LMA设为0x80000020(属于ROM地址),VMA设为0xD0004000(属于RAM地址),那么g_Data的值将存储在ROM中的0x80000020处,而程序运行时,用到g_Data的程序会到RAM中的0xD0004000处寻找它。

6.现在我们可以开始介绍SECTIONS了,SECTIONS的语法如下:

SECTIONS
{
  <sections−command>
  <sections−command>
  ...
}

其中主要的部分是<sections−command>,而SECTIONS{ }属于框架。<sections−command>的语法如下:

<section> [<address>] [(<type>)] : [AT(<lma>)]
{
  <output−section−command>
  <var{output−section−command>
  ...
} [><region>] [AT><lma region>] [:<phdr> :<phdr> ...] [=<fillexp>]

我们从使用的角度来讲解其语法:(假设有一个全局变量myData,我们用#pragma section命令将其定义为.myData段(input section))

(1)我们首先可以定义output section的名字,随便什么都可以,比如.my_data;

(2)然后我们可以定义其构成成员,*(.myData);

(3)接下来我们就要指定.my_data的LMA和VMA了,有4种方法:

  a) [<address>] + [AT(<lma>)];

  b) [<address>] + [AT><lma region>];

  c) [><region>] + [AT><lma region>];

  d) [><region>] + [AT(<lma>)].

  但是要注意这些用法的不同:[<address>] 和 [AT(<lma>)]必须指定具体的地址,而 [><region>] 和 [AT><lma region>]只需指定内存空间,具体地址紧接着上一个output section的末尾地址。

  经过以上步骤,我们得出如下section定义:(这里只列出2种)

SECTIONS
{
  .my_data ( 0xD0004000 ) : AT ( 0x80000020 )
  {
    *(.myData)
  }
  ... }
SECTIONS
{
  .my_data :
  {
    *(.myData)
  } > ram AT> rom
  ...
}

  以上为了说明SECTION的语法,使用了全局变量这种LMA和VMA不同的例子。而对于代码段.text这种LMA与VMA相同的情况,由于默认情况下LMA=VMA,因此可以只定义VMA而不必指明LMA,例如:

.text :
{
    *(.text)
    *(.text.*)
    . = ALIGN(4);
} > pfls0

7.最后,我们有必要提及“.”这个符号(不是.text、.data中的".",而是如上例中.=ALIGN(4);中的"."),以下介绍来自于HighTec编译器手册

 

8.最后的最后,附上英飞凌TC2xx的Linker file,其中的语法和用法值得深入的去学习,可以极大地加深对链接脚本的理解。由于本篇博文着重介绍链接脚本中最重要的SECTIONS关键字的使用,大家可能在下面的链接脚本示例中碰到很多本文未提及的语法,不过这些都可以在参考手册第19章中找到。

/* Default linker script, for normal executables */
OUTPUT_FORMAT("elf32-tricore")
OUTPUT_ARCH(tricore)
ENTRY(_START)

__TRICORE_DERIVATE_MEMORY_MAP__ = 0x270;

LCF_CSA0_SIZE = 8k;
LCF_USTACK0_SIZE = 2k;
LCF_ISTACK0_SIZE = 1k;

LCF_CSA1_SIZE = 8k;
LCF_USTACK1_SIZE = 2k;
LCF_ISTACK1_SIZE = 1k;

LCF_CSA2_SIZE = 8k;
LCF_USTACK2_SIZE = 2k;
LCF_ISTACK2_SIZE = 1k;

LCF_HEAP_SIZE = 4k;

LCF_DSPR2_START = 0x50000000;
LCF_DSPR2_SIZE = 120k;

LCF_DSPR1_START = 0x60000000;
LCF_DSPR1_SIZE = 120k;

LCF_DSPR0_START = 0x70000000;
LCF_DSPR0_SIZE = 112k;

LCF_CSA2_OFFSET    =    (LCF_DSPR2_SIZE - 1k - LCF_CSA2_SIZE);
LCF_ISTACK2_OFFSET =    (LCF_CSA2_OFFSET - 256 - LCF_ISTACK2_SIZE);
LCF_USTACK2_OFFSET =    (LCF_ISTACK2_OFFSET - 256 - LCF_USTACK2_SIZE);

LCF_CSA1_OFFSET    =    (LCF_DSPR1_SIZE - 1k - LCF_CSA1_SIZE);
LCF_ISTACK1_OFFSET =    (LCF_CSA1_OFFSET - 256 - LCF_ISTACK1_SIZE);
LCF_USTACK1_OFFSET =    (LCF_ISTACK1_OFFSET - 256 - LCF_USTACK1_SIZE);

LCF_CSA0_OFFSET    =    (LCF_DSPR0_SIZE - 1k - LCF_CSA0_SIZE);
LCF_ISTACK0_OFFSET =    (LCF_CSA0_OFFSET - 256 - LCF_ISTACK0_SIZE);
LCF_USTACK0_OFFSET =    (LCF_ISTACK0_OFFSET - 256 - LCF_USTACK0_SIZE);

LCF_HEAP0_OFFSET =    (LCF_USTACK0_OFFSET - LCF_HEAP_SIZE);
LCF_HEAP1_OFFSET =    (LCF_USTACK1_OFFSET - LCF_HEAP_SIZE);
LCF_HEAP2_OFFSET =    (LCF_USTACK2_OFFSET - LCF_HEAP_SIZE);

LCF_INTVEC0_START = 0x801F4000;
LCF_TRAPVEC0_START = 0x80000100;
LCF_TRAPVEC1_START = 0x801F6800;
LCF_TRAPVEC2_START = 0x801F6000;

RESET = 0x80000020;

MEMORY
{
    dsram2_local (w!xp): org = 0xd0000000, len = 120K
    dsram2 (w!xp): org = 0x50000000, len = 120K
      psram2 (w!xp): org = 0x50100000, len = 24K

      
      dsram1_local (w!xp): org = 0xd0000000, len = 120K
      dsram1 (w!xp): org = 0x60000000, len = 120K
      psram1 (w!xp): org = 0x60100000, len = 24K

      
      dsram0_local (w!xp): org = 0xd0000000, len = 112K
      dsram0 (w!xp): org = 0x70000000, len = 112K
      psram0 (w!xp): org = 0x70100000, len = 24K

    psram_local (w!xp): org = 0xc0000000, len = 24K
      
    pfls0 (rx!p): org = 0x80000000, len = 2M
    pfls0_nc (rx!p): org = 0xa0000000, len = 2M
    
    pfls1 (rx!p): org = 0x80200000, len = 2M        /*Not used to allocate and sections*/
    pfls1_nc (rx!p): org = 0xa0200000, len = 2M     /*Not used to allocate and sections*/
    
    dfls0 (rx!p): org = 0xaf000000, len = 384K
    
    lmuram (w!xp): org = 0x90000000, len = 32K
    lmuram_nc (w!xp): org = 0xb0000000, len = 32K
    
    edmem (w!xp): org = 0x9f000000, len = 1M
    edmem_nc (w!xp): org = 0xbf000000, len = 1M
}    

/* map local memory address to a global address */ 
REGION_MAP( CPU0 , ORIGIN(dsram0_local), LENGTH(dsram0_local), ORIGIN(dsram0))
REGION_MAP( CPU1 , ORIGIN(dsram1_local), LENGTH(dsram1_local), ORIGIN(dsram1))
REGION_MAP( CPU2 , ORIGIN(dsram2_local), LENGTH(dsram2_local), ORIGIN(dsram2))

/*Un comment one of the below statements to enable CpuX DMI RAM to hold global variables*/
/*REGION_ALIAS( default_ram , dsram0)*/
REGION_ALIAS( default_ram , dsram1)
/*REGION_ALIAS( default_ram , dsram2)*/

CORE_ID = GLOBAL ;

SECTIONS
{
    /*This section is always required as Boot mode header 0 address absolutely restricted at address 0x80000000*/
    .bmhd_0 (0x80000000) : FLAGS(arl)
    {
        BootModeHeader0 = .;
        KEEP (*(.bmhd_0))
    } > pfls0
    
    /*This section is always required as Boot mode header 1 address absolutely restricted at address 0x80020000*/
    .bmhd_1 (0x80020000) : FLAGS(arl)
    {
        BootModeIndex = .;
        KEEP (*(.bmhd_1));
    } > pfls0
    
    /*This section is always required as user start address absolutely restricted at address 0x80000020*/
    .startup (0x80000020) : FLAGS(rxl)
    {
        BootModeIndex = .;
        . = ALIGN(4);
        KEEP (*(.start));
        . = ALIGN(4);
    } > pfls0 =0x800
 
     /*This section contains the data indirection pointers to interface external devices*/
    .interface_const (0x80000040) :
    {
        __IF_CONST = .;
        KEEP (*(.interface_const));
        . = ALIGN(4);
    } > pfls0
     
    .traptab_tc0 (LCF_TRAPVEC0_START) :
    {
        PROVIDE(__TRAPTAB_CPU0 = .);
        KEEP (*(.traptab_cpu0));
    } > pfls0

    .zrodata : FLAGS(arl)
    {
        *(.zrodata)
        *(.zrodata.*)    
    } > pfls0

    .sdata2 : FLAGS(arsl)
    {
        *(.srodata)
        *(.srodata.*)
    } > pfls0
    
    _SMALL_DATA2_ = SIZEOF(CORE_SEC(.sdata2)) ? ADDR(CORE_SEC(.sdata2)) + 32k : (ADDR(CORE_SEC(.sdata2)) & 0xF0000000) + 32k ;
    __A1_MEM = _SMALL_DATA2_;
          
       .rodata : FLAGS(arl)
    {
        *(.rodata)
        *(.rodata.*)
        *(.gnu.linkonce.r.*)    
        /*
          * Create the clear and copy tables that tell the startup code
          * which memory areas to clear and to copy, respectively.
          */
        . = ALIGN(4) ;
        PROVIDE(__clear_table = .) ;
        LONG(0 + ADDR(.CPU2.zbss));     LONG(SIZEOF(.CPU2.zbss));
        LONG(0 + ADDR(.CPU2.bss));    LONG(SIZEOF(.CPU2.bss));
        LONG(0 + ADDR(.CPU1.zbss));     LONG(SIZEOF(.CPU1.zbss));
        LONG(0 + ADDR(.CPU1.bss));    LONG(SIZEOF(.CPU1.bss));
        LONG(0 + ADDR(.CPU0.zbss));     LONG(SIZEOF(.CPU0.zbss));
        LONG(0 + ADDR(.CPU0.bss));    LONG(SIZEOF(.CPU0.bss));
        LONG(0 + ADDR(.zbss));     LONG(SIZEOF(.zbss));
        LONG(0 + ADDR(.sbss));     LONG(SIZEOF(.sbss));
        LONG(0 + ADDR(.bss));    LONG(SIZEOF(.bss));
        LONG(0 + ADDR(.sbss4));    LONG(SIZEOF(.sbss4));
        LONG(0 + ADDR(.bss_emem));    LONG(SIZEOF(.bss_emem));
        LONG(-1);                 LONG(-1);
        PROVIDE(__copy_table = .) ;
        LONG(LOADADDR(.CPU2.zdata));    LONG(0 + ADDR(.CPU2.zdata));    LONG(SIZEOF(.CPU2.zdata));
        LONG(LOADADDR(.CPU2.data));    LONG(0 + ADDR(.CPU2.data));    LONG(SIZEOF(.CPU2.data));
        LONG(LOADADDR(.CPU1.zdata));    LONG(0 + ADDR(.CPU1.zdata));    LONG(SIZEOF(.CPU1.zdata));
        LONG(LOADADDR(.CPU1.data));    LONG(0 + ADDR(.CPU1.data));    LONG(SIZEOF(.CPU1.data));
        LONG(LOADADDR(.CPU0.zdata));    LONG(0 + ADDR(.CPU0.zdata));    LONG(SIZEOF(.CPU0.zdata));
        LONG(LOADADDR(.CPU0.data));    LONG(0 + ADDR(.CPU0.data));    LONG(SIZEOF(.CPU0.data));
        LONG(LOADADDR(.zdata));    LONG(0 + ADDR(.zdata));    LONG(SIZEOF(.zdata));
        LONG(LOADADDR(.sdata));    LONG(0 + ADDR(.sdata));    LONG(SIZEOF(.sdata));
        LONG(LOADADDR(.data));    LONG(0 + ADDR(.data));    LONG(SIZEOF(.data));
        LONG(LOADADDR(.data_emem));    LONG(0 + ADDR(.data_emem));    LONG(SIZEOF(.data_emem));
        LONG(LOADADDR(.data_lmu));    LONG(0 + ADDR(.data_lmu));    LONG(SIZEOF(.data_lmu));
        LONG(LOADADDR(.sdata4));    LONG(0 + ADDR(.sdata4));    LONG(SIZEOF(.sdata4));
        LONG(LOADADDR(.CPU0.psram_text));    LONG(0 + ADDR(.CPU0.psram_text));    LONG(SIZEOF(.CPU0.psram_text));
        LONG(LOADADDR(.CPU1.psram_text));    LONG(0 + ADDR(.CPU1.psram_text));    LONG(SIZEOF(.CPU1.psram_text));
        LONG(LOADADDR(.CPU2.psram_text));    LONG(0 + ADDR(.CPU2.psram_text));    LONG(SIZEOF(.CPU2.psram_text));
        LONG(-1);                 LONG(-1);                 LONG(-1);
        . = ALIGN(8);
      } > pfls0
      
      .text  : FLAGS(axl)
    {
        *(.text)
        *(.text.*)
        *(.gnu.linkonce.t.*)
        *(.gnu.warning)        /* .gnu.warning sections are handled specially by elf32.em. */
        . = ALIGN(4);
    } > pfls0
    
    /*
     * C++ exception handling tables.  NOTE: gcc emits .eh_frame
     * sections when compiling C sources with debugging enabled (-g).
     * If you can be sure that your final application consists
     * exclusively of C objects (i.e., no C++ objects), you may use
     * the -R option of the "strip" and "objcopy" utilities to remove
     * the .eh_frame section from the executable.
     */
    .eh_frame  :
    {
        *(.gcc_except_table)
        __EH_FRAME_BEGIN__ = . ;
        KEEP (*(.eh_frame))
        __EH_FRAME_END__ = . ;
        . = ALIGN(8);
    } > pfls0
    
    /*
     * Constructors and destructors.
     */
    .ctors : FLAGS(ar)
    {
        __CTOR_LIST__ = . ;
        LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2);
        *(.ctors)
        LONG(0) ;
        __CTOR_END__ = . ;
        . = ALIGN(8);
    } > pfls0
    .dtors : FLAGS(ar)
    {
        __DTOR_LIST__ = . ;
        LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2);
        *(.dtors)
        LONG(0) ;
        __DTOR_END__ = . ;
        . = ALIGN(8);
    } > pfls0

    .traptab_tc2 (LCF_TRAPVEC2_START) :
    {
        PROVIDE(__TRAPTAB_CPU2 = .);
        KEEP (*(.traptab_cpu2));
    } > pfls0
    
    .traptab_tc1 (LCF_TRAPVEC1_START) :
    {
        PROVIDE(__TRAPTAB_CPU1 = .);
        KEEP (*(.traptab_cpu1));
    } > pfls0
}
    
/*Near data sections*/
    
CORE_ID = CPU2 ;

SECTIONS
{    
    CORE_SEC(.zdata) (LCF_DSPR2_START): FLAGS(awzl)
    {
        . = ALIGN(4) ;
        *(.zdata_cpu2)
        *(.zdata_cpu2.*)
    } > dsram2 AT> pfls0
    
    CORE_SEC(.zbss) (NOLOAD): FLAGS(awz)
    {
        . = ALIGN(4) ;
        *(.zbss_cpu2)
        *(.zbss_cpu2.*)
    } > dsram2

}

CORE_ID = CPU1;

SECTIONS
{    
    CORE_SEC(.zdata) (LCF_DSPR1_START): FLAGS(awzl)
    {
        . = ALIGN(4) ;
        *(.zdata_cpu1)
        *(.zdata_cpu1.*)
    } > dsram1 AT> pfls0
    
    CORE_SEC(.zbss): FLAGS(awz)
    {
        . = ALIGN(4) ;
        *(.zbss_cpu1)
        *(.zbss_cpu1.*)
    } > dsram1
}
    
CORE_ID = CPU0;
    
SECTIONS
{    
    CORE_SEC(.zdata) (LCF_DSPR0_START): FLAGS(awzl)
    {
        . = ALIGN(4) ;
        *(.zdata_cpu0)
        *(.zdata_cpu0.*)
    } > dsram0 AT> pfls0
    
    CORE_SEC(.zbss) (NOLOAD): FLAGS(awz)
    {
        . = ALIGN(4) ;
        *(.zbss_cpu0)
        *(.zbss_cpu0.*)
    } > dsram0
}
    
/*RAM sections without cpu sufix will go to default ram defined above with REGION_ALIAS*/
    
CORE_ID = GLOBAL;

SECTIONS
{    
    CORE_SEC(.zdata) : FLAGS(awzl)
    {
        . = ALIGN(4) ;
        *(.zdata)
        *(.zdata.*)
        *(.gnu.linkonce.z.*)     
    } > default_ram AT> pfls0
    
    CORE_SEC(.zbss) (NOLOAD) : FLAGS(awz)
    {
        . = ALIGN(4) ;
        *(.zbss)
        *(.zbss.*)
        *(.bbss)
        *(.bbss.*)
        *(.gnu.linkonce.zb.*)    
    } > default_ram

    CORE_SEC(.sdata) : FLAGS(awsl)
    {
        . = ALIGN(4) ;
        *(.sdata)
        *(.sdata.*)
    } > default_ram AT> pfls0
    _SMALL_DATA_ = SIZEOF(CORE_SEC(.sdata)) ? ADDR(CORE_SEC(.sdata)) + 32k : (ADDR(CORE_SEC(.sdata)) & 0xF0000000) + 32k ;
    __A0_MEM = _SMALL_DATA_;
    
    CORE_SEC(.sbss) (NOLOAD): FLAGS(aws)
    {
        . = ALIGN(4) ;
        *(.sbss)
        *(.sbss.*)
    } > default_ram
    
    CORE_SEC(.data) : FLAGS(awl)
    {
        . = ALIGN(4) ;
        *(.data)
        *(.data.*)
        *(.gnu.linkonce.d.*)     
    } > default_ram AT> pfls0
    
    CORE_SEC(.bss) (NOLOAD) : FLAGS(aw)
    {
        . = ALIGN(4) ;
        *(.bss)
        *(.bss.*)
        *(.gnu.linkonce.b.*)     
    } > default_ram
    
    .heap  : FLAGS(aw)
    {
        . = ALIGN(4);
        __HEAP = .;
        . += LCF_HEAP_SIZE;
        __HEAP_END = .;
    } > default_ram
}

CORE_ID = CPU2 ;

SECTIONS
{    
    CORE_SEC(.data) : FLAGS(awl)
    {
        . = ALIGN(4) ;
        *(.data_cpu2)
        *(.data_cpu2.*)
    } > dsram2 AT> pfls0
    
    CORE_SEC(.bss) (NOLOAD): FLAGS(aw)
    {
        . = ALIGN(4) ;
        *(.bss_cpu2)
        *(.bss_cpu2.*)
    } > dsram2
}

CORE_ID = CPU1;

SECTIONS
{    
    CORE_SEC(.data) : FLAGS(awl)
    {
        . = ALIGN(4) ;
        *(.data_cpu1)
        *(.data_cpu1.*)
    } > dsram1 AT> pfls0
    
    CORE_SEC(.bss) (NOLOAD): FLAGS(aw)
    {
        . = ALIGN(4) ;
        *(.bss_cpu1)
        *(.bss_cpu1.*)
    } > dsram1
}

CORE_ID = CPU0;
    
SECTIONS
{    
    CORE_SEC(.data) : FLAGS(awl)
    {
        . = ALIGN(4) ;
        *(.data_cpu0)
        *(.data_cpu0.*)
    } > dsram0 AT> pfls0
    
    CORE_SEC(.bss) (NOLOAD): FLAGS(aw)
    {
        . = ALIGN(4) ;
        *(.bss_cpu0)
        *(.bss_cpu0.*)
    } > dsram0
    
    CORE_SEC(.psram_text)  : FLAGS(awx)
    {
        . = ALIGN(2);
        *(.cpu0_psram)
    } > psram0 AT> pfls0
}

CORE_ID = CPU2 ;

SECTIONS
{    
    CORE_SEC(.ustack) (LCF_DSPR2_START + LCF_USTACK2_OFFSET):
    {
        PROVIDE(__USTACK2_END = .);
        . = . + LCF_USTACK2_SIZE;
        PROVIDE(__USTACK2 = .);
    } > dsram2
    
    CORE_SEC(.istack) (LCF_DSPR2_START + LCF_ISTACK2_OFFSET):
    {
        PROVIDE(__ISTACK2_END = .);
        . = . + LCF_ISTACK2_SIZE;
        PROVIDE(__ISTACK2 = .);
    } > dsram2
    
    CORE_SEC(.csa) (LCF_DSPR2_START + LCF_CSA2_OFFSET):
    {
        PROVIDE(__CSA2 = .);
        . = . + LCF_CSA2_SIZE;
        PROVIDE(__CSA2_END = .);
    } > dsram2
    
    CORE_SEC(.psram_text)  : FLAGS(awx)
    {
        . = ALIGN(2);
        *(.cpu2_psram)
    } > psram2 AT> pfls0
}

CORE_ID = CPU1;

SECTIONS
{
    CORE_SEC(.ustack) (LCF_DSPR1_START + LCF_USTACK1_OFFSET):
    {
        PROVIDE(__USTACK1_END = .);
        . = . + LCF_USTACK1_SIZE;
        PROVIDE(__USTACK1 = .);
    } > dsram1
    
    CORE_SEC(.istack) (LCF_DSPR1_START + LCF_ISTACK1_OFFSET):
    {
        PROVIDE(__ISTACK1_END = .);
        . = . + LCF_ISTACK1_SIZE;
        PROVIDE(__ISTACK1 = .);
    } > dsram1
    
    CORE_SEC(.csa) (LCF_DSPR1_START + LCF_CSA1_OFFSET):
    {
        PROVIDE(__CSA1 = .);
        . = . + LCF_CSA1_SIZE;
        PROVIDE(__CSA1_END = .);
    } > dsram1
    
    CORE_SEC(.psram_text)  : FLAGS(awx)
    {
        . = ALIGN(2);
        *(.cpu1_psram)
    } > psram1 AT> pfls0
}

CORE_ID = CPU0;
    
SECTIONS
{    
    CORE_SEC(.ustack) (LCF_DSPR0_START + LCF_USTACK0_OFFSET):
    {
        PROVIDE(__USTACK0_END = .);
        . = . + LCF_USTACK0_SIZE;
        PROVIDE(__USTACK0 = .);
    } > dsram0
    
    CORE_SEC(.istack) (LCF_DSPR0_START + LCF_ISTACK0_OFFSET):
    {
        PROVIDE(__ISTACK0_END = .);
        . = . + LCF_ISTACK0_SIZE;
        PROVIDE(__ISTACK0 = .);
    } > dsram0
    
    CORE_SEC(.csa) (LCF_DSPR0_START + LCF_CSA0_OFFSET):
    {
        PROVIDE(__CSA0 = .);
        . = . + LCF_CSA0_SIZE;
        PROVIDE(__CSA0_END = .);
    } > dsram0
}    

CORE_ID = GLOBAL;

SECTIONS
{        
       CORE_SEC(.sdata3) : FLAGS(arsl)
    {
        *(.rodata_a8)
            *(.rodata_a8.*)
    } > pfls0
    
    _SMALL_DATA3_ = SIZEOF(CORE_SEC(.sdata3)) ? ADDR(CORE_SEC(.sdata3)) + 32k : (ADDR(CORE_SEC(.sdata3)) & 0xF0000000) + 32k ;
    __A8_MEM = _SMALL_DATA3_;
    
    .data_lmu : FLAGS(awl)
    {
        *(.lmudata)
            *(.lmudata.*)
    } > lmuram AT> pfls0
    
    .bss_lmu (NOLOAD): FLAGS(aw)
    {
        *(.lmubss)
            *(.lmubss.*)
    } > lmuram
    
    .sdata4 : FLAGS(awsl)
    {
        *(.sdata_a9)
        *(.sdata_a9.*)
        *(.lmu_data)
            *(.lmu_data.*)
    } > lmuram AT> pfls0
    
    .sbss4 (NOLOAD): FLAGS(aws)
    {
        *(.sbss_a9)
        *(.sbss_a9.*)
        *(.lmu_bss)
            *(.lmu_bss.*)
    } > lmuram
    
    _SMALL_DATA4_ = SIZEOF(.sdata4) ? ADDR(.sdata4) + 32k : (ADDR(.sdata4) & 0xF0000000) + 32k ;
    __A9_MEM = _SMALL_DATA4_;
    
    .data_emem : FLAGS(awl)
    {
        . = ALIGN(4) ;
        *(.data_emem)
        *(.data_emem.*)
        *(.gnu.linkonce.d.*)     
    } > edmem_nc AT> pfls0
    
    .bss_emem (NOLOAD) : FLAGS(aw)
    {
        . = ALIGN(4) ;
        *(.bss_emem)
        *(.bss_emem.*)
        *(.gnu.linkonce.b.*)     
    } > edmem_nc
    
    .inttab_tc0_000 (LCF_INTVEC0_START + 0x0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_0)); } > pfls0
    .inttab_tc0_001 (LCF_INTVEC0_START + 0x20) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_1)); } > pfls0
    .inttab_tc0_002 (LCF_INTVEC0_START + 0x40) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_2)); } > pfls0
    .inttab_tc0_003 (LCF_INTVEC0_START + 0x60) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_3)); } > pfls0
    .inttab_tc0_004 (LCF_INTVEC0_START + 0x80) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_4)); } > pfls0
    .inttab_tc0_005 (LCF_INTVEC0_START + 0xA0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_5)); } > pfls0
    .inttab_tc0_006 (LCF_INTVEC0_START + 0xC0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_6)); } > pfls0
    .inttab_tc0_007 (LCF_INTVEC0_START + 0xE0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_7)); } > pfls0
    .inttab_tc0_008 (LCF_INTVEC0_START + 0x100) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_8)); } > pfls0
    .inttab_tc0_009 (LCF_INTVEC0_START + 0x120) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_9)); } > pfls0
    .inttab_tc0_00A (LCF_INTVEC0_START + 0x140) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_10)); } > pfls0
    .inttab_tc0_00B (LCF_INTVEC0_START + 0x160) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_11)); } > pfls0
    .inttab_tc0_00C (LCF_INTVEC0_START + 0x180) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_12)); } > pfls0
    .inttab_tc0_00D (LCF_INTVEC0_START + 0x1A0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_13)); } > pfls0
    .inttab_tc0_00E (LCF_INTVEC0_START + 0x1C0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_14)); } > pfls0
    .inttab_tc0_00F (LCF_INTVEC0_START + 0x1E0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_15)); } > pfls0
    .inttab_tc0_010 (LCF_INTVEC0_START + 0x200) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_16)); } > pfls0
    .inttab_tc0_011 (LCF_INTVEC0_START + 0x220) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_17)); } > pfls0
    .inttab_tc0_012 (LCF_INTVEC0_START + 0x240) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_18)); } > pfls0
    .inttab_tc0_013 (LCF_INTVEC0_START + 0x260) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_19)); } > pfls0
    .inttab_tc0_014 (LCF_INTVEC0_START + 0x280) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_20)); } > pfls0
    .inttab_tc0_015 (LCF_INTVEC0_START + 0x2A0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_21)); } > pfls0
    .inttab_tc0_016 (LCF_INTVEC0_START + 0x2C0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_22)); } > pfls0
    .inttab_tc0_017 (LCF_INTVEC0_START + 0x2E0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_23)); } > pfls0
    .inttab_tc0_018 (LCF_INTVEC0_START + 0x300) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_24)); } > pfls0
    .inttab_tc0_019 (LCF_INTVEC0_START + 0x320) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_25)); } > pfls0
    .inttab_tc0_01A (LCF_INTVEC0_START + 0x340) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_26)); } > pfls0
    .inttab_tc0_01B (LCF_INTVEC0_START + 0x360) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_27)); } > pfls0
    .inttab_tc0_01C (LCF_INTVEC0_START + 0x380) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_28)); } > pfls0
    .inttab_tc0_01D (LCF_INTVEC0_START + 0x3A0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_29)); } > pfls0
    .inttab_tc0_01E (LCF_INTVEC0_START + 0x3C0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_30)); } > pfls0
    .inttab_tc0_01F (LCF_INTVEC0_START + 0x3E0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_31)); } > pfls0
    .inttab_tc0_020 (LCF_INTVEC0_START + 0x400) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_32)); } > pfls0
    .inttab_tc0_021 (LCF_INTVEC0_START + 0x420) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_33)); } > pfls0
    .inttab_tc0_022 (LCF_INTVEC0_START + 0x440) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_34)); } > pfls0
    .inttab_tc0_023 (LCF_INTVEC0_START + 0x460) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_35)); } > pfls0
    .inttab_tc0_024 (LCF_INTVEC0_START + 0x480) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_36)); } > pfls0
    .inttab_tc0_025 (LCF_INTVEC0_START + 0x4A0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_37)); } > pfls0
    .inttab_tc0_026 (LCF_INTVEC0_START + 0x4C0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_38)); } > pfls0
    .inttab_tc0_027 (LCF_INTVEC0_START + 0x4E0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_39)); } > pfls0
    .inttab_tc0_028 (LCF_INTVEC0_START + 0x500) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_40)); } > pfls0
    .inttab_tc0_029 (LCF_INTVEC0_START + 0x520) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_41)); } > pfls0
    .inttab_tc0_02A (LCF_INTVEC0_START + 0x540) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_42)); } > pfls0
    .inttab_tc0_02B (LCF_INTVEC0_START + 0x560) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_43)); } > pfls0
    .inttab_tc0_02C (LCF_INTVEC0_START + 0x580) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_44)); } > pfls0
    .inttab_tc0_02D (LCF_INTVEC0_START + 0x5A0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_45)); } > pfls0
    .inttab_tc0_02E (LCF_INTVEC0_START + 0x5C0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_46)); } > pfls0
    .inttab_tc0_02F (LCF_INTVEC0_START + 0x5E0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_47)); } > pfls0
    .inttab_tc0_030 (LCF_INTVEC0_START + 0x600) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_48)); } > pfls0
    .inttab_tc0_031 (LCF_INTVEC0_START + 0x620) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_49)); } > pfls0
    .inttab_tc0_032 (LCF_INTVEC0_START + 0x640) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_50)); } > pfls0
    .inttab_tc0_033 (LCF_INTVEC0_START + 0x660) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_51)); } > pfls0
    .inttab_tc0_034 (LCF_INTVEC0_START + 0x680) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_52)); } > pfls0
    .inttab_tc0_035 (LCF_INTVEC0_START + 0x6A0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_53)); } > pfls0
    .inttab_tc0_036 (LCF_INTVEC0_START + 0x6C0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_54)); } > pfls0
    .inttab_tc0_037 (LCF_INTVEC0_START + 0x6E0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_55)); } > pfls0
    .inttab_tc0_038 (LCF_INTVEC0_START + 0x700) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_56)); } > pfls0
    .inttab_tc0_039 (LCF_INTVEC0_START + 0x720) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_57)); } > pfls0
    .inttab_tc0_03A (LCF_INTVEC0_START + 0x740) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_58)); } > pfls0
    .inttab_tc0_03B (LCF_INTVEC0_START + 0x760) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_59)); } > pfls0
    .inttab_tc0_03C (LCF_INTVEC0_START + 0x780) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_60)); } > pfls0
    .inttab_tc0_03D (LCF_INTVEC0_START + 0x7A0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_61)); } > pfls0
    .inttab_tc0_03E (LCF_INTVEC0_START + 0x7C0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_62)); } > pfls0
    .inttab_tc0_03F (LCF_INTVEC0_START + 0x7E0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_63)); } > pfls0
    .inttab_tc0_040 (LCF_INTVEC0_START + 0x800) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_64)); } > pfls0
    .inttab_tc0_041 (LCF_INTVEC0_START + 0x820) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_65)); } > pfls0
    .inttab_tc0_042 (LCF_INTVEC0_START + 0x840) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_66)); } > pfls0
    .inttab_tc0_043 (LCF_INTVEC0_START + 0x860) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_67)); } > pfls0
    .inttab_tc0_044 (LCF_INTVEC0_START + 0x880) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_68)); } > pfls0
    .inttab_tc0_045 (LCF_INTVEC0_START + 0x8A0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_69)); } > pfls0
    .inttab_tc0_046 (LCF_INTVEC0_START + 0x8C0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_70)); } > pfls0
    .inttab_tc0_047 (LCF_INTVEC0_START + 0x8E0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_71)); } > pfls0
    .inttab_tc0_048 (LCF_INTVEC0_START + 0x900) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_72)); } > pfls0
    .inttab_tc0_049 (LCF_INTVEC0_START + 0x920) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_73)); } > pfls0
    .inttab_tc0_04A (LCF_INTVEC0_START + 0x940) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_74)); } > pfls0
    .inttab_tc0_04B (LCF_INTVEC0_START + 0x960) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_75)); } > pfls0
    .inttab_tc0_04C (LCF_INTVEC0_START + 0x980) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_76)); } > pfls0
    .inttab_tc0_04D (LCF_INTVEC0_START + 0x9A0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_77)); } > pfls0
    .inttab_tc0_04E (LCF_INTVEC0_START + 0x9C0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_78)); } > pfls0
    .inttab_tc0_04F (LCF_INTVEC0_START + 0x9E0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_79)); } > pfls0
    .inttab_tc0_050 (LCF_INTVEC0_START + 0xA00) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_80)); } > pfls0
    .inttab_tc0_051 (LCF_INTVEC0_START + 0xA20) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_81)); } > pfls0
    .inttab_tc0_052 (LCF_INTVEC0_START + 0xA40) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_82)); } > pfls0
    .inttab_tc0_053 (LCF_INTVEC0_START + 0xA60) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_83)); } > pfls0
    .inttab_tc0_054 (LCF_INTVEC0_START + 0xA80) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_84)); } > pfls0
    .inttab_tc0_055 (LCF_INTVEC0_START + 0xAA0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_85)); } > pfls0
    .inttab_tc0_056 (LCF_INTVEC0_START + 0xAC0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_86)); } > pfls0
    .inttab_tc0_057 (LCF_INTVEC0_START + 0xAE0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_87)); } > pfls0
    .inttab_tc0_058 (LCF_INTVEC0_START + 0xB00) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_88)); } > pfls0
    .inttab_tc0_059 (LCF_INTVEC0_START + 0xB20) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_89)); } > pfls0
    .inttab_tc0_05A (LCF_INTVEC0_START + 0xB40) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_90)); } > pfls0
    .inttab_tc0_05B (LCF_INTVEC0_START + 0xB60) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_91)); } > pfls0
    .inttab_tc0_05C (LCF_INTVEC0_START + 0xB80) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_92)); } > pfls0
    .inttab_tc0_05D (LCF_INTVEC0_START + 0xBA0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_93)); } > pfls0
    .inttab_tc0_05E (LCF_INTVEC0_START + 0xBC0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_94)); } > pfls0
    .inttab_tc0_05F (LCF_INTVEC0_START + 0xBE0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_95)); } > pfls0
    .inttab_tc0_060 (LCF_INTVEC0_START + 0xC00) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_96)); } > pfls0
    .inttab_tc0_061 (LCF_INTVEC0_START + 0xC20) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_97)); } > pfls0
    .inttab_tc0_062 (LCF_INTVEC0_START + 0xC40) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_98)); } > pfls0
    .inttab_tc0_063 (LCF_INTVEC0_START + 0xC60) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_99)); } > pfls0
    .inttab_tc0_064 (LCF_INTVEC0_START + 0xC80) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_100)); } > pfls0
    .inttab_tc0_065 (LCF_INTVEC0_START + 0xCA0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_101)); } > pfls0
    .inttab_tc0_066 (LCF_INTVEC0_START + 0xCC0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_102)); } > pfls0
    .inttab_tc0_067 (LCF_INTVEC0_START + 0xCE0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_103)); } > pfls0
    .inttab_tc0_068 (LCF_INTVEC0_START + 0xD00) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_104)); } > pfls0
    .inttab_tc0_069 (LCF_INTVEC0_START + 0xD20) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_105)); } > pfls0
    .inttab_tc0_06A (LCF_INTVEC0_START + 0xD40) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_106)); } > pfls0
    .inttab_tc0_06B (LCF_INTVEC0_START + 0xD60) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_107)); } > pfls0
    .inttab_tc0_06C (LCF_INTVEC0_START + 0xD80) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_108)); } > pfls0
    .inttab_tc0_06D (LCF_INTVEC0_START + 0xDA0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_109)); } > pfls0
    .inttab_tc0_06E (LCF_INTVEC0_START + 0xDC0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_110)); } > pfls0
    .inttab_tc0_06F (LCF_INTVEC0_START + 0xDE0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_111)); } > pfls0
    .inttab_tc0_070 (LCF_INTVEC0_START + 0xE00) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_112)); } > pfls0
    .inttab_tc0_071 (LCF_INTVEC0_START + 0xE20) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_113)); } > pfls0
    .inttab_tc0_072 (LCF_INTVEC0_START + 0xE40) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_114)); } > pfls0
    .inttab_tc0_073 (LCF_INTVEC0_START + 0xE60) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_115)); } > pfls0
    .inttab_tc0_074 (LCF_INTVEC0_START + 0xE80) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_116)); } > pfls0
    .inttab_tc0_075 (LCF_INTVEC0_START + 0xEA0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_117)); } > pfls0
    .inttab_tc0_076 (LCF_INTVEC0_START + 0xEC0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_118)); } > pfls0
    .inttab_tc0_077 (LCF_INTVEC0_START + 0xEE0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_119)); } > pfls0
    .inttab_tc0_078 (LCF_INTVEC0_START + 0xF00) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_120)); } > pfls0
    .inttab_tc0_079 (LCF_INTVEC0_START + 0xF20) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_121)); } > pfls0
    .inttab_tc0_07A (LCF_INTVEC0_START + 0xF40) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_122)); } > pfls0
    .inttab_tc0_07B (LCF_INTVEC0_START + 0xF60) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_123)); } > pfls0
    .inttab_tc0_07C (LCF_INTVEC0_START + 0xF80) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_124)); } > pfls0
    .inttab_tc0_07D (LCF_INTVEC0_START + 0xFA0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_125)); } > pfls0
    .inttab_tc0_07E (LCF_INTVEC0_START + 0xFC0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_126)); } > pfls0
    .inttab_tc0_07F (LCF_INTVEC0_START + 0xFE0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_127)); } > pfls0
    .inttab_tc0_080 (LCF_INTVEC0_START + 0x1000) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_128)); } > pfls0
    .inttab_tc0_081 (LCF_INTVEC0_START + 0x1020) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_129)); } > pfls0
    .inttab_tc0_082 (LCF_INTVEC0_START + 0x1040) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_130)); } > pfls0
    .inttab_tc0_083 (LCF_INTVEC0_START + 0x1060) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_131)); } > pfls0
    .inttab_tc0_084 (LCF_INTVEC0_START + 0x1080) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_132)); } > pfls0
    .inttab_tc0_085 (LCF_INTVEC0_START + 0x10A0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_133)); } > pfls0
    .inttab_tc0_086 (LCF_INTVEC0_START + 0x10C0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_134)); } > pfls0
    .inttab_tc0_087 (LCF_INTVEC0_START + 0x10E0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_135)); } > pfls0
    .inttab_tc0_088 (LCF_INTVEC0_START + 0x1100) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_136)); } > pfls0
    .inttab_tc0_089 (LCF_INTVEC0_START + 0x1120) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_137)); } > pfls0
    .inttab_tc0_08A (LCF_INTVEC0_START + 0x1140) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_138)); } > pfls0
    .inttab_tc0_08B (LCF_INTVEC0_START + 0x1160) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_139)); } > pfls0
    .inttab_tc0_08C (LCF_INTVEC0_START + 0x1180) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_140)); } > pfls0
    .inttab_tc0_08D (LCF_INTVEC0_START + 0x11A0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_141)); } > pfls0
    .inttab_tc0_08E (LCF_INTVEC0_START + 0x11C0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_142)); } > pfls0
    .inttab_tc0_08F (LCF_INTVEC0_START + 0x11E0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_143)); } > pfls0
    .inttab_tc0_090 (LCF_INTVEC0_START + 0x1200) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_144)); } > pfls0
    .inttab_tc0_091 (LCF_INTVEC0_START + 0x1220) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_145)); } > pfls0
    .inttab_tc0_092 (LCF_INTVEC0_START + 0x1240) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_146)); } > pfls0
    .inttab_tc0_093 (LCF_INTVEC0_START + 0x1260) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_147)); } > pfls0
    .inttab_tc0_094 (LCF_INTVEC0_START + 0x1280) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_148)); } > pfls0
    .inttab_tc0_095 (LCF_INTVEC0_START + 0x12A0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_149)); } > pfls0
    .inttab_tc0_096 (LCF_INTVEC0_START + 0x12C0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_150)); } > pfls0
    .inttab_tc0_097 (LCF_INTVEC0_START + 0x12E0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_151)); } > pfls0
    .inttab_tc0_098 (LCF_INTVEC0_START + 0x1300) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_152)); } > pfls0
    .inttab_tc0_099 (LCF_INTVEC0_START + 0x1320) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_153)); } > pfls0
    .inttab_tc0_09A (LCF_INTVEC0_START + 0x1340) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_154)); } > pfls0
    .inttab_tc0_09B (LCF_INTVEC0_START + 0x1360) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_155)); } > pfls0
    .inttab_tc0_09C (LCF_INTVEC0_START + 0x1380) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_156)); } > pfls0
    .inttab_tc0_09D (LCF_INTVEC0_START + 0x13A0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_157)); } > pfls0
    .inttab_tc0_09E (LCF_INTVEC0_START + 0x13C0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_158)); } > pfls0
    .inttab_tc0_09F (LCF_INTVEC0_START + 0x13E0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_159)); } > pfls0
    .inttab_tc0_0A0 (LCF_INTVEC0_START + 0x1400) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_160)); } > pfls0
    .inttab_tc0_0A1 (LCF_INTVEC0_START + 0x1420) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_161)); } > pfls0
    .inttab_tc0_0A2 (LCF_INTVEC0_START + 0x1440) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_162)); } > pfls0
    .inttab_tc0_0A3 (LCF_INTVEC0_START + 0x1460) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_163)); } > pfls0
    .inttab_tc0_0A4 (LCF_INTVEC0_START + 0x1480) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_164)); } > pfls0
    .inttab_tc0_0A5 (LCF_INTVEC0_START + 0x14A0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_165)); } > pfls0
    .inttab_tc0_0A6 (LCF_INTVEC0_START + 0x14C0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_166)); } > pfls0
    .inttab_tc0_0A7 (LCF_INTVEC0_START + 0x14E0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_167)); } > pfls0
    .inttab_tc0_0A8 (LCF_INTVEC0_START + 0x1500) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_168)); } > pfls0
    .inttab_tc0_0A9 (LCF_INTVEC0_START + 0x1520) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_169)); } > pfls0
    .inttab_tc0_0AA (LCF_INTVEC0_START + 0x1540) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_170)); } > pfls0
    .inttab_tc0_0AB (LCF_INTVEC0_START + 0x1560) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_171)); } > pfls0
    .inttab_tc0_0AC (LCF_INTVEC0_START + 0x1580) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_172)); } > pfls0
    .inttab_tc0_0AD (LCF_INTVEC0_START + 0x15A0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_173)); } > pfls0
    .inttab_tc0_0AE (LCF_INTVEC0_START + 0x15C0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_174)); } > pfls0
    .inttab_tc0_0AF (LCF_INTVEC0_START + 0x15E0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_175)); } > pfls0
    .inttab_tc0_0B0 (LCF_INTVEC0_START + 0x1600) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_176)); } > pfls0
    .inttab_tc0_0B1 (LCF_INTVEC0_START + 0x1620) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_177)); } > pfls0
    .inttab_tc0_0B2 (LCF_INTVEC0_START + 0x1640) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_178)); } > pfls0
    .inttab_tc0_0B3 (LCF_INTVEC0_START + 0x1660) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_179)); } > pfls0
    .inttab_tc0_0B4 (LCF_INTVEC0_START + 0x1680) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_180)); } > pfls0
    .inttab_tc0_0B5 (LCF_INTVEC0_START + 0x16A0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_181)); } > pfls0
    .inttab_tc0_0B6 (LCF_INTVEC0_START + 0x16C0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_182)); } > pfls0
    .inttab_tc0_0B7 (LCF_INTVEC0_START + 0x16E0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_183)); } > pfls0
    .inttab_tc0_0B8 (LCF_INTVEC0_START + 0x1700) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_184)); } > pfls0
    .inttab_tc0_0B9 (LCF_INTVEC0_START + 0x1720) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_185)); } > pfls0
    .inttab_tc0_0BA (LCF_INTVEC0_START + 0x1740) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_186)); } > pfls0
    .inttab_tc0_0BB (LCF_INTVEC0_START + 0x1760) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_187)); } > pfls0
    .inttab_tc0_0BC (LCF_INTVEC0_START + 0x1780) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_188)); } > pfls0
    .inttab_tc0_0BD (LCF_INTVEC0_START + 0x17A0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_189)); } > pfls0
    .inttab_tc0_0BE (LCF_INTVEC0_START + 0x17C0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_190)); } > pfls0
    .inttab_tc0_0BF (LCF_INTVEC0_START + 0x17E0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_191)); } > pfls0
    .inttab_tc0_0C0 (LCF_INTVEC0_START + 0x1800) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_192)); } > pfls0
    .inttab_tc0_0C1 (LCF_INTVEC0_START + 0x1820) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_193)); } > pfls0
    .inttab_tc0_0C2 (LCF_INTVEC0_START + 0x1840) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_194)); } > pfls0
    .inttab_tc0_0C3 (LCF_INTVEC0_START + 0x1860) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_195)); } > pfls0
    .inttab_tc0_0C4 (LCF_INTVEC0_START + 0x1880) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_196)); } > pfls0
    .inttab_tc0_0C5 (LCF_INTVEC0_START + 0x18A0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_197)); } > pfls0
    .inttab_tc0_0C6 (LCF_INTVEC0_START + 0x18C0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_198)); } > pfls0
    .inttab_tc0_0C7 (LCF_INTVEC0_START + 0x18E0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_199)); } > pfls0
    .inttab_tc0_0C8 (LCF_INTVEC0_START + 0x1900) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_200)); } > pfls0
    .inttab_tc0_0C9 (LCF_INTVEC0_START + 0x1920) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_201)); } > pfls0
    .inttab_tc0_0CA (LCF_INTVEC0_START + 0x1940) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_202)); } > pfls0
    .inttab_tc0_0CB (LCF_INTVEC0_START + 0x1960) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_203)); } > pfls0
    .inttab_tc0_0CC (LCF_INTVEC0_START + 0x1980) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_204)); } > pfls0
    .inttab_tc0_0CD (LCF_INTVEC0_START + 0x19A0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_205)); } > pfls0
    .inttab_tc0_0CE (LCF_INTVEC0_START + 0x19C0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_206)); } > pfls0
    .inttab_tc0_0CF (LCF_INTVEC0_START + 0x19E0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_207)); } > pfls0
    .inttab_tc0_0D0 (LCF_INTVEC0_START + 0x1A00) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_208)); } > pfls0
    .inttab_tc0_0D1 (LCF_INTVEC0_START + 0x1A20) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_209)); } > pfls0
    .inttab_tc0_0D2 (LCF_INTVEC0_START + 0x1A40) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_210)); } > pfls0
    .inttab_tc0_0D3 (LCF_INTVEC0_START + 0x1A60) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_211)); } > pfls0
    .inttab_tc0_0D4 (LCF_INTVEC0_START + 0x1A80) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_212)); } > pfls0
    .inttab_tc0_0D5 (LCF_INTVEC0_START + 0x1AA0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_213)); } > pfls0
    .inttab_tc0_0D6 (LCF_INTVEC0_START + 0x1AC0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_214)); } > pfls0
    .inttab_tc0_0D7 (LCF_INTVEC0_START + 0x1AE0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_215)); } > pfls0
    .inttab_tc0_0D8 (LCF_INTVEC0_START + 0x1B00) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_216)); } > pfls0
    .inttab_tc0_0D9 (LCF_INTVEC0_START + 0x1B20) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_217)); } > pfls0
    .inttab_tc0_0DA (LCF_INTVEC0_START + 0x1B40) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_218)); } > pfls0
    .inttab_tc0_0DB (LCF_INTVEC0_START + 0x1B60) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_219)); } > pfls0
    .inttab_tc0_0DC (LCF_INTVEC0_START + 0x1B80) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_220)); } > pfls0
    .inttab_tc0_0DD (LCF_INTVEC0_START + 0x1BA0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_221)); } > pfls0
    .inttab_tc0_0DE (LCF_INTVEC0_START + 0x1BC0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_222)); } > pfls0
    .inttab_tc0_0DF (LCF_INTVEC0_START + 0x1BE0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_223)); } > pfls0
    .inttab_tc0_0E0 (LCF_INTVEC0_START + 0x1C00) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_224)); } > pfls0
    .inttab_tc0_0E1 (LCF_INTVEC0_START + 0x1C20) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_225)); } > pfls0
    .inttab_tc0_0E2 (LCF_INTVEC0_START + 0x1C40) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_226)); } > pfls0
    .inttab_tc0_0E3 (LCF_INTVEC0_START + 0x1C60) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_227)); } > pfls0
    .inttab_tc0_0E4 (LCF_INTVEC0_START + 0x1C80) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_228)); } > pfls0
    .inttab_tc0_0E5 (LCF_INTVEC0_START + 0x1CA0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_229)); } > pfls0
    .inttab_tc0_0E6 (LCF_INTVEC0_START + 0x1CC0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_230)); } > pfls0
    .inttab_tc0_0E7 (LCF_INTVEC0_START + 0x1CE0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_231)); } > pfls0
    .inttab_tc0_0E8 (LCF_INTVEC0_START + 0x1D00) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_232)); } > pfls0
    .inttab_tc0_0E9 (LCF_INTVEC0_START + 0x1D20) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_233)); } > pfls0
    .inttab_tc0_0EA (LCF_INTVEC0_START + 0x1D40) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_234)); } > pfls0
    .inttab_tc0_0EB (LCF_INTVEC0_START + 0x1D60) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_235)); } > pfls0
    .inttab_tc0_0EC (LCF_INTVEC0_START + 0x1D80) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_236)); } > pfls0
    .inttab_tc0_0ED (LCF_INTVEC0_START + 0x1DA0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_237)); } > pfls0
    .inttab_tc0_0EE (LCF_INTVEC0_START + 0x1DC0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_238)); } > pfls0
    .inttab_tc0_0EF (LCF_INTVEC0_START + 0x1DE0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_239)); } > pfls0
    .inttab_tc0_0F0 (LCF_INTVEC0_START + 0x1E00) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_240)); } > pfls0
    .inttab_tc0_0F1 (LCF_INTVEC0_START + 0x1E20) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_241)); } > pfls0
    .inttab_tc0_0F2 (LCF_INTVEC0_START + 0x1E40) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_242)); } > pfls0
    .inttab_tc0_0F3 (LCF_INTVEC0_START + 0x1E60) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_243)); } > pfls0
    .inttab_tc0_0F4 (LCF_INTVEC0_START + 0x1E80) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_244)); } > pfls0
    .inttab_tc0_0F5 (LCF_INTVEC0_START + 0x1EA0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_245)); } > pfls0
    .inttab_tc0_0F6 (LCF_INTVEC0_START + 0x1EC0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_246)); } > pfls0
    .inttab_tc0_0F7 (LCF_INTVEC0_START + 0x1EE0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_247)); } > pfls0
    .inttab_tc0_0F8 (LCF_INTVEC0_START + 0x1F00) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_248)); } > pfls0
    .inttab_tc0_0F9 (LCF_INTVEC0_START + 0x1F20) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_249)); } > pfls0
    .inttab_tc0_0FA (LCF_INTVEC0_START + 0x1F40) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_250)); } > pfls0
    .inttab_tc0_0FB (LCF_INTVEC0_START + 0x1F60) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_251)); } > pfls0
    .inttab_tc0_0FC (LCF_INTVEC0_START + 0x1F80) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_252)); } > pfls0
    .inttab_tc0_0FD (LCF_INTVEC0_START + 0x1FA0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_253)); } > pfls0
    .inttab_tc0_0FE (LCF_INTVEC0_START + 0x1FC0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_254)); } > pfls0
    .inttab_tc0_0FF (LCF_INTVEC0_START + 0x1FE0) : { . = ALIGN(8) ;  KEEP (*(.intvec_tc0_255)); } > pfls0
    __INTTAB_CPU0 = LCF_INTVEC0_START;
    __INTTAB_CPU1 = LCF_INTVEC0_START; /*Single interrupt table for all CPUs*/
    __INTTAB_CPU2 = LCF_INTVEC0_START; /*Single interrupt table for all CPUs*/

    
    /*
     * DWARF debug sections.
     * Symbols in the DWARF debugging sections are relative to the
     * beginning of the section, so we begin them at 0.
     */
    /*
     * DWARF 1
     */
    .comment         0 : { *(.comment) }
    .debug           0 : { *(.debug) }
    .line            0 : { *(.line) }
    /*
     * GNU DWARF 1 extensions
     */
    .debug_srcinfo   0 : { *(.debug_srcinfo) }
    .debug_sfnames   0 : { *(.debug_sfnames) }
    /*
     * DWARF 1.1 and DWARF 2
     */
    .debug_aranges   0 : { *(.debug_aranges) }
    .debug_pubnames  0 : { *(.debug_pubnames) }
    /*
     * DWARF 2
     */
    .debug_info      0 : { *(.debug_info) }
    .debug_abbrev    0 : { *(.debug_abbrev) }
    .debug_line      0 : { *(.debug_line) }
    .debug_frame     0 : { *(.debug_frame) }
    .debug_str       0 : { *(.debug_str) }
    .debug_loc       0 : { *(.debug_loc) }
    .debug_macinfo   0 : { *(.debug_macinfo) }
    .debug_ranges    0 : { *(.debug_ranges) }
    /*
     * SGI/MIPS DWARF 2 extensions
     */
    .debug_weaknames 0 : { *(.debug_weaknames) }
    .debug_funcnames 0 : { *(.debug_funcnames) }
    .debug_typenames 0 : { *(.debug_typenames) }
    .debug_varnames  0 : { *(.debug_varnames) }
    /*
     * Optional sections that may only appear when relocating.
     */
    /*
     * Optional sections that may appear regardless of relocating.
     */
    .version_info    0 : { *(.version_info) }
    .boffs           0 : { KEEP (*(.boffs)) }
}

 

posted @ 2019-09-15 12:02  凉风SK  阅读(11770)  评论(6编辑  收藏  举报