nios2elf_PE1.l

ソースコードを見る。

関数

 PROVIDE (_hardware_init_hook=0)
 PROVIDE (_software_init_hook=0)
 PROVIDE (software_term_hook=0)
 OUTPUT_FORMAT ("elf32-littlenios2","elf32-littlenios2","elf32-littlenios2") SECTIONS
 PROVIDE (__alt_stack_pointer=__alt_data_end)
 PROVIDE (__alt_stack_limit=_end)
 PROVIDE (__alt_heap_start=end)

変数

 __alt_mem_ext_ram = 0x07000000
 __alt_mem_sdram = 0x05000000
 __alt_mem_onchip_ram_1 = 0x01100000
 __alt_mem_onchip_ram_2 = 0x02100000
 __alt_mem_onchip_ram_3 = 0x03100000
 __alt_mem_onchip_ram_4 = 0x04100000
 __alt_data_end = 0x06000000


関数

OUTPUT_FORMAT "elf32-littlenios2"  ,
"elf32-littlenios2"  ,
"elf32-littlenios2" 
 

nios2elf_PE1.l26 行で定義されています。

参照先 entryexceptionsgpPROVIDE().

00037 {
00038     .entry :
00039     {
00040         KEEP (*(.entry))
00041     } > reset
00042 
00043     .exceptions :
00044     {
00045         PROVIDE (__ram_exceptions_start = ABSOLUTE(.));
00046         . = ALIGN(0x20);
00047         *(.irq)
00048         KEEP (*(.exceptions.entry.label));
00049         KEEP (*(.exceptions.entry.user));
00050         KEEP (*(.exceptions.entry));
00051         KEEP (*(.exceptions.irqtest.user));
00052         KEEP (*(.exceptions.irqtest));
00053         KEEP (*(.exceptions.irqhandler.user));
00054         KEEP (*(.exceptions.irqhandler));
00055         KEEP (*(.exceptions.irqreturn.user));
00056         KEEP (*(.exceptions.irqreturn));
00057         KEEP (*(.exceptions.notirq.label));
00058         KEEP (*(.exceptions.notirq.user));
00059         KEEP (*(.exceptions.notirq));
00060         KEEP (*(.exceptions.soft.user));
00061         KEEP (*(.exceptions.soft));
00062         KEEP (*(.exceptions.unknown.user));
00063         KEEP (*(.exceptions.unknown));
00064         KEEP (*(.exceptions.exit.label));
00065         KEEP (*(.exceptions.exit.user));
00066         KEEP (*(.exceptions.exit));
00067         KEEP (*(.exceptions));
00068         PROVIDE (__ram_exceptions_end = ABSOLUTE(.));
00069     } > onchip_ram_1
00070 
00071     PROVIDE (__flash_exceptions_start = LOADADDR(.exceptions));
00072 
00073     .text :
00074     {
00075         /*
00076          * All code sections are merged into the text output section, along with
00077          * the read only data sections.
00078          *
00079          */
00080 
00081         PROVIDE (stext = ABSOLUTE(.));
00082 
00083         *(.interp)
00084         *(.hash)
00085         *(.dynsym)
00086         *(.dynstr)
00087         *(.gnu.version)
00088         *(.gnu.version_d)
00089         *(.gnu.version_r)
00090         *(.rel.init)
00091         *(.rela.init)
00092         *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*)
00093         *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*)
00094         *(.rel.fini)
00095         *(.rela.fini)
00096         *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*)
00097         *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*)
00098         *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*)
00099         *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*)
00100         *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*)
00101         *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*)
00102         *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*)
00103         *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*)
00104         *(.rel.ctors)
00105         *(.rela.ctors)
00106         *(.rel.dtors)
00107         *(.rela.dtors)
00108         *(.rel.got)
00109         *(.rela.got)
00110         *(.rel.sdata .rel.sdata.* .rel.gnu.linkonce.s.*)
00111         *(.rela.sdata .rela.sdata.* .rela.gnu.linkonce.s.*)
00112         *(.rel.sbss .rel.sbss.* .rel.gnu.linkonce.sb.*)
00113         *(.rela.sbss .rela.sbss.* .rela.gnu.linkonce.sb.*)
00114         *(.rel.sdata2 .rel.sdata2.* .rel.gnu.linkonce.s2.*)
00115         *(.rela.sdata2 .rela.sdata2.* .rela.gnu.linkonce.s2.*)
00116         *(.rel.sbss2 .rel.sbss2.* .rel.gnu.linkonce.sb2.*)
00117         *(.rela.sbss2 .rela.sbss2.* .rela.gnu.linkonce.sb2.*)
00118         *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*)
00119         *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*)
00120         *(.rel.plt)
00121         *(.rela.plt)
00122 
00123         KEEP (*(.init))
00124         *(.plt)
00125         *(.text .stub .text.* .gnu.linkonce.t.*)
00126 
00127         /* .gnu.warning sections are handled specially by elf32.em.  */
00128 
00129         *(.gnu.warning.*)
00130         KEEP (*(.fini))
00131         PROVIDE (__etext = ABSOLUTE(.));
00132         PROVIDE (_etext = ABSOLUTE(.));
00133         PROVIDE (etext = ABSOLUTE(.));
00134 
00135         *(.eh_frame_hdr)
00136         /* Ensure the __preinit_array_start label is properly aligned.  We
00137            could instead move the label definition inside the section, but
00138            the linker would then create the section even if it turns out to
00139            be empty, which isn't pretty.  */
00140         . = ALIGN(32 / 8);
00141         PROVIDE (__preinit_array_start = ABSOLUTE(.));
00142         *(.preinit_array)
00143         PROVIDE (__preinit_array_end = ABSOLUTE(.));
00144         PROVIDE (__init_array_start = ABSOLUTE(.));
00145         *(.init_array)
00146         PROVIDE (__init_array_end = ABSOLUTE(.));
00147         PROVIDE (__fini_array_start = ABSOLUTE(.));
00148         *(.fini_array)
00149         PROVIDE (__fini_array_end = ABSOLUTE(.));
00150         SORT(CONSTRUCTORS)
00151         KEEP (*(.eh_frame))
00152         *(.gcc_except_table)
00153         *(.dynamic)
00154         PROVIDE (__CTOR_LIST__ = ABSOLUTE(.));
00155         KEEP (*(.ctors))
00156         KEEP (*(SORT(.ctors.*)))
00157         PROVIDE (__CTOR_END__ = ABSOLUTE(.));
00158         PROVIDE (__DTOR_LIST__ = ABSOLUTE(.));
00159         KEEP (*(.dtors))
00160         KEEP (*(SORT(.dtors.*)))
00161         PROVIDE (__DTOR_END__ = ABSOLUTE(.));
00162         KEEP (*(.jcr))
00163         . = ALIGN(32 / 8);
00164     } >  onchip_ram_1
00165 
00166     .rodata :
00167     {
00168         PROVIDE (__ram_rodata_start = ABSOLUTE(.));
00169         . = ALIGN(32 / 8);
00170         *(.rodata .rodata.* .gnu.linkonce.r.*)
00171         *(.rodata1)
00172         . = ALIGN(32 / 8);
00173         PROVIDE (__ram_rodata_end = ABSOLUTE(.));
00174     } > onchip_ram_1
00175 
00176     PROVIDE (__flash_rodata_start = LOADADDR(.rodata));
00177 
00178     .rwdata  :
00179     {
00180         PROVIDE (__ram_rwdata_start = ABSOLUTE(.));
00181         . = ALIGN(32 / 8);
00182         *(.got.plt) *(.got)
00183         *(.data1)
00184         *(.data .data.* .gnu.linkonce.d.*)
00185 
00186         _gp = ABSOLUTE(. + 0x8000);
00187         PROVIDE(gp = _gp);
00188 
00189         *(.sdata .sdata.* .gnu.linkonce.s.*)
00190         *(.sdata2 .sdata2.* .gnu.linkonce.s2.*)
00191 
00192         . = ALIGN(32 / 8);
00193         _edata = ABSOLUTE(.);
00194         PROVIDE (edata = ABSOLUTE(.));
00195         PROVIDE (__ram_rwdata_end = ABSOLUTE(.));
00196     } > onchip_ram_1
00197 
00198     PROVIDE (__flash_rwdata_start = LOADADDR(.rwdata));
00199 
00200     .bss :
00201     {
00202         __bss_start = ABSOLUTE(.);
00203         PROVIDE (__sbss_start = ABSOLUTE(.));
00204         PROVIDE (___sbss_start = ABSOLUTE(.));
00205 
00206         *(.dynsbss)
00207         *(.sbss .sbss.* .gnu.linkonce.sb.*)
00208         *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
00209         *(.scommon)
00210 
00211         PROVIDE (__sbss_end = ABSOLUTE(.));
00212         PROVIDE (___sbss_end = ABSOLUTE(.));
00213 
00214         *(.dynbss)
00215         *(.bss .bss.* .gnu.linkonce.b.*)
00216         *(COMMON)
00217 
00218         . = ALIGN(32 / 8);
00219         __bss_end = ABSOLUTE(.);
00220     } > onchip_ram_1
00221 
00222     .shared :
00223     {
00224         *(.shared_memory)
00225     } > ext_ram
00226 
00227     /*
00228      * One output section for each of the available partitions. These are not
00229      * used by default, but can be used by users applications using the .section
00230      * directive.
00231      *
00232      * The memory partition used for the heap is treated in  special way, i.e. a
00233      * symbol is added to point to the heap start.
00234      *
00235      * Note that when running from flash, these sections are not loaded by the
00236      * HAL.
00237      *
00238      */
00239 
00240     .ext_flash :
00241     {
00242         PROVIDE (_alt_partition_ext_flash_start = ABSOLUTE(.));
00243         *(.ext_flash .ext_flash.*)
00244         . = ALIGN(32 / 8);
00245         PROVIDE (_alt_partition_ext_flash_end = ABSOLUTE(.));
00246     } > ext_flash
00247 
00248     PROVIDE (_alt_partition_ext_flash_load_addr = LOADADDR(.ext_flash));
00249 
00250     .ext_ram :
00251     {
00252         PROVIDE (_alt_partition_ext_ram_start = ABSOLUTE(.));
00253         *(.ext_ram .ext_ram.*)
00254         . = ALIGN(32 / 8);
00255         PROVIDE (_alt_partition_ext_ram_end = ABSOLUTE(.));
00256     } > ext_ram
00257 
00258     PROVIDE (_alt_partition_ext_ram_load_addr = LOADADDR(.ext_ram));
00259 
00260     .sdram :
00261     {
00262         PROVIDE (_alt_partition_sdram_start = ABSOLUTE(.));
00263         *(.sdram .sdram.*)
00264         . = ALIGN(32 / 8);
00265         PROVIDE (_alt_partition_sdram_end = ABSOLUTE(.));
00266         _end = ABSOLUTE(.);
00267         end = ABSOLUTE(.);
00268     } > sdram
00269 
00270     PROVIDE (_alt_partition_sdram_load_addr = LOADADDR(.sdram));
00271 
00272     .onchip_ram_1 :
00273     {
00274         PROVIDE (_alt_partition_onchip_ram_1_start = ABSOLUTE(.));
00275         *(.onchip_ram_1 .onchip_ram_1.*)
00276         . = ALIGN(32 / 8);
00277         PROVIDE (_alt_partition_onchip_ram_1_end = ABSOLUTE(.));
00278     } > onchip_ram_1
00279 
00280     PROVIDE (_alt_partition_onchip_ram_1_load_addr = LOADADDR(.onchip_ram_1));
00281 
00282     .onchip_ram_2 :
00283     {
00284         PROVIDE (_alt_partition_onchip_ram_2_start = ABSOLUTE(.));
00285         *(.onchip_ram_2 .onchip_ram_2.*)
00286         . = ALIGN(32 / 8);
00287         PROVIDE (_alt_partition_onchip_ram_2_end = ABSOLUTE(.));
00288     } > onchip_ram_2
00289 
00290     PROVIDE (_alt_partition_onchip_ram_2_load_addr = LOADADDR(.onchip_ram_2));
00291 
00292     .onchip_ram_3 :
00293     {
00294         PROVIDE (_alt_partition_onchip_ram_3_start = ABSOLUTE(.));
00295         *(.onchip_ram_3 .onchip_ram_3.*)
00296         . = ALIGN(32 / 8);
00297         PROVIDE (_alt_partition_onchip_ram_3_end = ABSOLUTE(.));
00298     } > onchip_ram_3
00299 
00300     PROVIDE (_alt_partition_onchip_ram_3_load_addr = LOADADDR(.onchip_ram_3));
00301 
00302     .onchip_ram_4 :
00303     {
00304         PROVIDE (_alt_partition_onchip_ram_4_start = ABSOLUTE(.));
00305         *(.onchip_ram_4 .onchip_ram_4.*)
00306         . = ALIGN(32 / 8);
00307         PROVIDE (_alt_partition_onchip_ram_4_end = ABSOLUTE(.));
00308     } > onchip_ram_4
00309 
00310     PROVIDE (_alt_partition_onchip_ram_4_load_addr = LOADADDR(.onchip_ram_4));
00311 
00312     /*
00313      * Stabs debugging sections.
00314      *
00315      */
00316 
00317     .stab          0 : { *(.stab) }
00318     .stabstr       0 : { *(.stabstr) }
00319     .stab.excl     0 : { *(.stab.excl) }
00320     .stab.exclstr  0 : { *(.stab.exclstr) }
00321     .stab.index    0 : { *(.stab.index) }
00322     .stab.indexstr 0 : { *(.stab.indexstr) }
00323     .comment       0 : { *(.comment) }
00324     /* DWARF debug sections.
00325        Symbols in the DWARF debugging sections are relative to the beginning
00326        of the section so we begin them at 0.  */
00327     /* DWARF 1 */
00328     .debug          0 : { *(.debug) }
00329     .line           0 : { *(.line) }
00330     /* GNU DWARF 1 extensions */
00331     .debug_srcinfo  0 : { *(.debug_srcinfo) }
00332     .debug_sfnames  0 : { *(.debug_sfnames) }
00333     /* DWARF 1.1 and DWARF 2 */
00334     .debug_aranges  0 : { *(.debug_aranges) }
00335     .debug_pubnames 0 : { *(.debug_pubnames) }
00336     /* DWARF 2 */
00337     .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
00338     .debug_abbrev   0 : { *(.debug_abbrev) }
00339     .debug_line     0 : { *(.debug_line) }
00340     .debug_frame    0 : { *(.debug_frame) }
00341     .debug_str      0 : { *(.debug_str) }
00342     .debug_loc      0 : { *(.debug_loc) }
00343     .debug_macinfo  0 : { *(.debug_macinfo) }
00344     /* SGI/MIPS DWARF 2 extensions */
00345     .debug_weaknames 0 : { *(.debug_weaknames) }
00346     .debug_funcnames 0 : { *(.debug_funcnames) }
00347     .debug_typenames 0 : { *(.debug_typenames) }
00348     .debug_varnames  0 : { *(.debug_varnames) }
00349 
00350     /* Altera debug extensions */
00351     .debug_alt_sim_info 0 : { *(.debug_alt_sim_info) }
00352 }

関数の呼び出しグラフ:

PROVIDE __alt_heap_start  = end  ) 
 

PROVIDE __alt_stack_limit  = _end  ) 
 

PROVIDE __alt_stack_pointer  = __alt_data_end  ) 
 

PROVIDE software_term_hook  = 0  ) 
 

PROVIDE _software_init_hook  = 0  ) 
 

PROVIDE _hardware_init_hook  = 0  ) 
 

参照元 OUTPUT_FORMAT().


変数

__alt_data_end = 0x06000000
 

nios2elf_PE1.l358 行で定義されています。

__alt_mem_ext_ram = 0x07000000
 

nios2elf_PE1.l15 行で定義されています。

__alt_mem_onchip_ram_1 = 0x01100000
 

nios2elf_PE1.l17 行で定義されています。

__alt_mem_onchip_ram_2 = 0x02100000
 

nios2elf_PE1.l18 行で定義されています。

__alt_mem_onchip_ram_3 = 0x03100000
 

nios2elf_PE1.l19 行で定義されています。

__alt_mem_onchip_ram_4 = 0x04100000
 

nios2elf_PE1.l20 行で定義されています。

__alt_mem_sdram = 0x05000000
 

nios2elf_PE1.l16 行で定義されています。


Copyright © 2006 by TAKAGI Nobuhisa.
このページは Mon Apr 3 23:49:17 2006 に Doxygen によって生成されました。