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

📄 linkcmds_rom

📁 RTEMS (Real-Time Executive for Multiprocessor Systems) is a free open source real-time operating sys
💻
字号:
/*  linkcmds * *  $Id: linkcmds_ROM,v 1.7 2003/01/20 20:19:42 joel Exp $ */OUTPUT_ARCH(m68k)STARTUP(except_vect_332_ROM.o)__DYNAMIC  =  0;/* * The memory map looks like this: * ROM: * +--------------------+ <- low memory * | .text              | * |        etext       | * |        ctor list   | the ctor and dtor lists are for * |        dtor list   | C++ support * |        _endtext    | * | temporary .data    | .data is moved to RAM by crt0 * |                    | * +--------------------+ <- high memory * * * RAM: * +--------------------+ <- low memory * |        _RamBase    | * | .data              | initialized data goes here * |        _sdata      | * |        _edata      | * +--------------------+ * | .bss               | * |        _clear_start| start of bss, cleared by crt0 * |        _end        | start of heap, used by sbrk() * +--------------------+ * |         _WorkspaceBase  * |    work space      | * |        heapStart   | * |    heap space      | * |        _RamEnd     | top of stack * +--------------------+ <- high memory *//* * Declare some sizes. */_RamBase = DEFINED(_RamBase) ? _RamBase : 0x80000;_RamSize = DEFINED(_RamSize) ? _RamSize : 0x40000;_RamEnd = _RamBase + _RamSize;_HeapSize = DEFINED(_HeapSize) ? _HeapSize : 0x10000;_StackSize = DEFINED(_StackSize) ? _StackSize : 0x1000;MEMORY{  rom     : ORIGIN = 0x00000, LENGTH = 256K  ram     : ORIGIN = 0x80000, LENGTH = 256K}_copy_data_from_rom = 1;/* *  */SECTIONS{	ram : {		. = .;	} >ram        /*         * 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*)                 . = ALIGN (16);                PROVIDE (_etext = .);        } >rom  .data :	AT ( ADDR(.text) + SIZEOF( .text ) )  {                PROVIDE (_copy_start = .);		*(.data)		*(.gnu.linkonce.d*)		*(.gcc_except_table)                . = 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 + -