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

链接脚本(Linker Script)用法解析(一) 关键字SECTIONS与MEMORY的更多相关文章

  1. 脚本kafka-configs.sh用法解析

    引用博客来自李志涛:https://www.cnblogs.com/lizherui/p/12275193.html 前言介绍 网络上针对脚本kafka-configs.sh用法,也有一些各种文章,但 ...

  2. [转]Linux下的lds链接脚本详解

    转载自:http://linux.chinaunix.net/techdoc/beginner/2009/08/12/1129972.shtml     一. 概论 每一个链接过程都由链接脚本(lin ...

  3. Linux下的lds链接脚本简介

    转载:http://hubingforever.blog.163.com/blog/static/171040579201192472552886/   一. 概论 每一个链接过程都由链接脚本(lin ...

  4. [转]Linux下的链接脚本基础

    [转]http://linux.chinaunix.net/techdoc/beginner/2009/08/12/1129972.shtml 1. 前言 (1)每一个链接过程都由链接脚本(linke ...

  5. Linux下的lds链接脚本详解【转】

    转自:http://www.cnblogs.com/li-hao/p/4107964.html 转载自:http://linux.chinaunix.net/techdoc/beginner/2009 ...

  6. Linux下的lds链接脚本详解

    1. 概论2. 基本概念3. 脚本格式4. 简单例子5. 简单脚本命令6. 对符号的赋值7. SECTIONS命令8. MEMORY命令9. PHDRS命令10. VERSION命令11. 脚本内的表 ...

  7. Linux下的lds链接脚本基础

    转载:http://soft.chinabyte.com/os/104/12255104.shtml   今天在看uboot引导Linux部分,发现要对链接脚本深入了解,才能知道各个目标文件的内存分布 ...

  8. Linux下的lds链接脚本简介(一)

    转载自:http://linux.chinaunix.net/techdoc/beginner/2009/08/12/1129972.shtml 一. 概论 每一个链接过程都由链接脚本(linker ...

  9. 链接脚本(Linker Script)用法解析(二) clear_table & copy_table

    可执行文件中的.bss段和.data段分别存放未赋初值的全局变量和已赋初值的全局变量,两者的特点分别为: (1).bss段:①无初值,所以不占ROM空间:②运行时存储于RAM:③默认初值为0 (2). ...

随机推荐

  1. js的ajax请求

    1 js原生get请求 <script> window.onload = function(){ var oBtn = document.getElementById('btn'); oB ...

  2. js中的事件绑定的三种方式

    1 直接在html标签中绑定 <button onclick = "show()"></button> 注意当你引用的js代码是包裹在window.onlo ...

  3. fatal: Authentication failed for 'http://git

    git pull 出现 fatal: Authentication failed for 'http://git... git config --system --unset credential.h ...

  4. 如何学习python,个人的一些简单见解

    什么是重要的东西 思考学习是一个什么样的过程 我们每个人都学习过数学,肯定都知道数学的学习过程是什么,我们刚开始学习数学的时候会学习一些简单的公式和概念,比如加减乘除,随着学习的深入,我们发现在大学之 ...

  5. C++中对C的扩展学习新增语法——函数重载

    函数重载 1.函数重载语法 1.同一个作用域(全局作用域.命名空间作用域.类作用域) 2.参数个数不同 3.参数类型不同 4.参数顺序不同 代码实现: 当函数名字一样的时候,通过参数类型.参数个数.参 ...

  6. pat 1035 Password(20 分)

    1035 Password(20 分) To prepare for PAT, the judge sometimes has to generate random passwords for the ...

  7. Ocelot学习笔记

    最近因工作需要,开始学习Ocelot.首先简单介绍一下,Ocelot是一个基于.net core的开源webapi 服务网关项目,目前已经支持了IdentityServer认证.根据 作者介绍,Oce ...

  8. 【并发编程】synchronized的使用场景和原理简介

    1. synchronized使用 1.1 synchronized介绍 在多线程并发编程中synchronized一直是元老级角色,很多人都会称呼它为重量级锁.但是,随着Java SE 1.6对sy ...

  9. django 中 css文件的调用

    Django: 配置css文件 晚上搞了好久的css文件的调用,发现,我根本文件位置都放错了. 接下来要更改settings.py 和 urls.py 的设定. Settings.py 中应该: ur ...

  10. MAC系统下,Jmeter5.1.1 无法录制问题

    问题一: 点击[start]先出现一个检查证书信息的弹窗,确保删除旧的安装新的,并且需要信任证书 (一般证书只需要信任一下即可,每次启动都会有这个弹窗提醒) 问题二: MAC OS系统使用Jmeter ...