📄 idpgdb.ld
字号:
STARTUP(crt0.o)OUTPUT_ARCH(m68k)/* Uncomment this if you want srecords. This is needed for a.out * if you plan to use GDB.OUTPUT_FORMAT(srec) */SEARCH_DIR(.)GROUP(-lidpgdb -lc -lgcc)__DYNAMIC = 0;/* * Setup the memory map of the MC68ec0x0 Board (IDP) * stack grows down from high memory. This works for * both the rom68k and the mon68k monitors. * * The memory map look like this: * +--------------------+ <- low memory * | .text | * | _etext | * | ctor list | the ctor and dtor lists are for * | dtor list | C++ support * +--------------------+ * | .data | initialized data goes here * | _edata | * +--------------------+ * | .bss | * | __bss_start | start of bss, cleared by crt0 * | _end | start of heap, used by sbrk() * +--------------------+ * . . * . . * . . * | __stack | top of stack * +--------------------+ *//* * When the IDP is not remapped (see rom68k's MP command in the * "M68EC0x0IDP Users Manual", the first 64K bytes are reserved; * Otherwise the first 256K bytes are reserved. * * The following memory map describes a unmapped IDP w/2MB RAM. */MEMORY{ ram (rwx) : ORIGIN = 0x00010000, LENGTH = 2M-64K rom0 : ORIGIN = 0x00800000, LENGTH = 1M rom1 : ORIGIN = 0x00900000, LENGTH = 1M}/* * allocate the stack to be at the top of memory, since the stack * grows down */PROVIDE (__stack = 2M - 8);/* * Initalize some symbols to be zero so we can reference them in the * crt0 without core dumping. These functions are all optional, but * we do this so we can have our crt0 always use them if they exist. * This is so BSPs work better when using the crt0 installed with gcc. * We have to initalize them twice, so we cover a.out (which prepends * an underscore) and coff object file formats. */PROVIDE (hardware_init_hook = 0);PROVIDE (_hardware_init_hook = 0);PROVIDE (software_init_hook = 0);PROVIDE (_software_init_hook = 0);/* * stick everything in ram (of course) */SECTIONS{ .text : { CREATE_OBJECT_SYMBOLS *(.text) . = ALIGN(0x4); /* These are for running static constructors and destructors under ELF. */ KEEP (*crtbegin.o(.ctors)) KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) KEEP (*crtbegin.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) *(.rodata) . = ALIGN(0x4); *(.gcc_except_table) . = ALIGN(0x4); *(.eh_frame) . = ALIGN(0x4); __INIT_SECTION__ = . ; LONG (0x4e560000) /* linkw %fp,#0 */ *(.init) SHORT (0x4e5e) /* unlk %fp */ SHORT (0x4e75) /* rts */ . = ALIGN(0x4); __FINI_SECTION__ = . ; LONG (0x4e560000) /* linkw %fp,#0 */ *(.fini) SHORT (0x4e5e) /* unlk %fp */ SHORT (0x4e75) /* rts */ _etext = .; *(.lit) } > ram .data : { *(.shdata) *(.data) _edata = .; } > ram .bss : { . = ALIGN(0x4); __bss_start = . ; *(.shbss) *(.bss) *(COMMON) _end = ALIGN (0x8); __end = _end; } > ram .stab 0 (NOLOAD) : { *(.stab) } .stabstr 0 (NOLOAD) : { *(.stabstr) }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -