⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 linkcmds

📁 RTEMS (Real-Time Executive for Multiprocessor Systems) is a free open source real-time operating sys
💻
字号:
/* *  This file contains directives for the GNU linker which are specific *  to the Motorola MVME167 board. This linker script produces ELF *  executables. * *  Copyright (c) 1999, National Research Council of Canada. *  Some of this material was copied from binutils-2.9.4 linker scripts, *  and is therefore likely to be copyrighted by the Free Software *  Foundation, even though explicit copyright notices did not appear in *  those files. * *  The license and distribution terms for this file may be *  found in the file LICENSE in this distribution or at *  http://www.rtems.com/license/LICENSE. * *  $Id: linkcmds,v 1.9.2.1 2003/09/04 18:44:42 joel Exp $ *//* These are not really needed here */OUTPUT_FORMAT("elf32-m68k")OUTPUT_ARCH(m68k)ENTRY(_start)/* * Declare some sizes. Heap is sized at whatever ram space is left. */_RamBase = DEFINED(_RamBase) ? _RamBase : 0x00800000;_RamSize = DEFINED(_RamSize) ? _RamSize : 4M;_HeapSize = DEFINED(_HeapSize) ? _HeapSize : 0;_StackSize = DEFINED(_StackSize) ? _StackSize : 0x1000;MEMORY{  /*  The location of RAM is the address space is configurable.      This is where we put one board. The base address should be      passed as a parameter when building multiprocessor images      where each board resides at a different address. */  ram  : org = 0x00800000, l = 4M  rom  : org = 0xFF800000, l = 4M  sram : org = 0xFFE00000, l = 128K}SECTIONS{ /*  * Text, data and bss segments  */  .text : {    *(.text)    /*     * C++ constructors/destructors     */    *(.gnu.linkonce.t.*)    /*     * Initialization and finalization code.     *     * Various files can provide initialization and finalization     * functions.  crtbegin.o and crtend.o are two instances. The     * body of these functions are in .init and .fini sections. We     * accumulate the bodies here, and prepend function prologues     * from crti.o and function epilogues from crtn.o. crti.o must     * be linked first; crtn.o must be linked last.  Because these     * are wildcards, it doesn't matter if the user does not     * actually link against crti.o and crtn.o; the linker won't     * look for a file to match a wildcard.  The wildcard also     * means that it doesn't matter which directory crti.o and     * crtn.o are in.      */    PROVIDE (_init = .);    *crti.o(.init)    *(.init)    *crtn.o(.init)        PROVIDE (_fini = .);    *crti.o(.fini)    *(.fini)    *crtn.o(.fini)    /*     * Special FreeBSD sysctl sections.     */    . = ALIGN (16);    __start_set_sysctl_set = .;    *(set_sysctl_*);    __stop_set_sysctl_set = ABSOLUTE(.);    *(set_domain_*);    *(set_pseudo_*);    /*     * C++ constructors/destructors     *     * gcc uses crtbegin.o to find the start of the constructors     * and destructors so we make sure it is first.  Because this     * is a wildcard, it doesn't matter if the user does not     * actually link against crtbegin.o; the linker won't look for     * a file to match a wildcard.  The wildcard also means that     * it doesn't matter which directory crtbegin.o is in. The     * constructor and destructor list are terminated in     * crtend.o.  The same comments apply to it.     */    . = ALIGN (16);    *crtbegin.o(.ctors)    *(.ctors)    *crtend.o(.ctors)        *crtbegin.o(.dtors)    *(.dtors)    *crtend.o(.dtors)    /*     * Exception frame info     */    . = ALIGN (16);    *(.eh_frame)    /*     * Read-only data     */    . = ALIGN (16);    _rodata_start = .;    *(.rodata*)    *(.gnu.linkonce.r*)    PROVIDE(_erodata = . );    . = ALIGN (16);    PROVIDE (_etext = .);  } >ram    .data : {    PROVIDE (_copy_start = .);    *(.data)    *(.gnu.linkonce.d*)    *(.gcc_except_table)    *(.jcr)    . = ALIGN (16);    PROVIDE (_edata = .);    PROVIDE (_copy_end = .);  } >ram   .bss : {    _clear_start = .;    *(.bss)    *(COMMON)    . = ALIGN (16);    PROVIDE (end = .);    . += _StackSize;    . = ALIGN (16);    _stack_init = .;    _clear_end = .;    _WorkspaceBase = .;  } >ram  /* Stabs debugging sections.  */  .stab 0 : { *(.stab) }  .stabstr 0 : { *(.stabstr) }  .stab.excl 0 : { *(.stab.excl) }  .stab.exclstr 0 : { *(.stab.exclstr) }  .stab.index 0 : { *(.stab.index) }  .stab.indexstr 0 : { *(.stab.indexstr) }  .comment 0 : { *(.comment) }    /* 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 */  .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) }    /* 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) }  /* These must appear regardless of  .  */}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -