/** ** c68.ld - from prototype linker command file for the 68k processor family ** Modified per Rich's notes -- 19970416:193048 CDT **/ /** CPU-32 mapping addresses: **/ let __EEPROMstart = 0x10000; /* address at which to map RAM */ let __EEPROMblksize = 3; /* CSBARx block size code for RAM */ let __SRAMstart = 0; /* address at which to map the SRAM array */ /***************** EEPROM Usage **************************/ /* ROM: * .text - Code * .const - User & Compiler-generated constants * .strings - Strings * .init - ROM copy of the initialized static & global data */ section .text text origin __EEPROMstart itemalign 2 = .text; section .const data itemalign 2 = .const; section .strings data = .strings; section .init; /***************** SRAM Usage ****************************/ /* ROM interrupt vector table. (copied to RAM...) */ section .bootvec origin 0 = .bootvec; section .vectors = .vectors; /* RAM: * .data - RAM copy of the initialized static & global data * .bss - Uninitialized static & global data. * .sstack - System stack * .ustack - User stack * .heap - Memory space for sbrk and malloc. */ section .data data itemalign 2 copiedfrom .init = .data; section .bss bss itemalign 2 = .bss; section .retm bss comm; section .sstack bss minsize 0x0100; /* 256 B */ section .ustack bss minsize 0x0100; /* 256 B */ section .heap bss minsize 0x0100; /* 256 B */ /* RAM interrupt re-vector table. On the 68000, this table * contains 6-byte islands containing JMP or JSR instructions. * On the CPUs with a VBR, this section isn't created. */ /* section .ramvec bss origin __SRAMstart = .ramvec; */ /* These symbols are used to access the beginning and end addresses * of several of the sections. */ set __sstackstart = startof(.sstack); set __sstackend = endof(.sstack); set __ustackstart = startof(.ustack); set __ustackend = endof(.ustack); set __datastart = startof(.data); set __dataend = endof(.data); set __initstart = startof(.init); set __initend = endof(.init); set __bssend = endof(.bss); set __bssstart = startof(.bss); set __heapend = endof(.heap); set __heapstart = startof(.heap); /* Now inlude the start up code, grab anything else from the command * line, and link in unresolved library references. */ -b 'start.o68' /* start-up code */ readline; /* read the command line */ -lc /* ANSI-C library */ -lgen /* code generator support library */