/* This is a linker parameter file for the MC9S12XHY128 */ /* This file is setup to use the HCS12X core only. If you plan to also use the XGATE in your project, best create a new project with the 'New Project Wizard' (File|New... menu in the CodeWarrior IDE) and choose the appropriate project parameters. */ NAMES /* CodeWarrior will pass all the needed files to the linker by command line. But here you may add your additional files */ END SEGMENTS /* here all RAM/ROM areas of the device are listed. Used in PLACEMENT below. All addresses are 'logical' */ /* Register space */ /* IO_SEG = PAGED 0x0000 TO 0x07FF; intentionally not defined */ /* non-paged RAM */ RAM = READ_WRITE DATA_NEAR 0x2000 TO 0x3FFF; /* non-banked FLASH */ ROM_4000 = READ_ONLY DATA_NEAR IBCC_NEAR 0x4000 TO 0x7FFF; //16K //ROM_C000 = READ_ONLY DATA_NEAR IBCC_NEAR 0xC000 TO 0xFEFF; //15.75K ROM_C000 = READ_ONLY DATA_NEAR IBCC_NEAR 0xC000 TO 0xFAFF; //14.75K //VECTORS = READ_ONLY 0xFF00 TO 0xFFFF; /*intentionally not defined: used for VECTOR commands below */ //OSVECTORS = READ_ONLY 0xFF10 TO 0xFFFF; /* OSEK interrupt vectors (use your vector.o) */ /* paged EEPROM 0x0800 TO 0x0BFF; addressed through EPAGE */ EEPROM_00 = READ_ONLY DATA_FAR IBCC_FAR 0x000800 TO 0x000BFF; //1K EEPROM_01 = READ_ONLY DATA_FAR IBCC_FAR 0x010800 TO 0x010BFF; //1K EEPROM_02 = READ_ONLY DATA_FAR IBCC_FAR 0x020800 TO 0x020BFF; //1K EEPROM_03 = READ_ONLY DATA_FAR IBCC_FAR 0x030800 TO 0x030BFF; //1K EEPROM_04 = READ_ONLY DATA_FAR IBCC_FAR 0x040800 TO 0x040BFF; //1K EEPROM_05 = READ_ONLY DATA_FAR IBCC_FAR 0x050800 TO 0x050BFF; //1K EEPROM_06 = READ_ONLY DATA_FAR IBCC_FAR 0x060800 TO 0x060BFF; //1K EEPROM_07 = READ_ONLY DATA_FAR IBCC_FAR 0x070800 TO 0x070BFF; //1K /* paged RAM: 0x1000 TO 0x1FFF; addressed through RPAGE */ /* RAM_FE = READ_WRITE 0xFE1000 TO 0xFE1FFF; intentionally not defined: equivalent to RAM: 0x2000..0x2FFF */ /* RAM_FF = READ_WRITE 0xFF1000 TO 0xFF1FFF; intentionally not defined: equivalent to RAM: 0x3000..0x3FFF */ RAM_FD = READ_WRITE DATA_FAR 0xFD1000 TO 0xFD1FFF; /* paged FLASH: 0x8000 TO 0xBFFF; addressed through PPAGE */ PAGE_F0 = READ_ONLY DATA_FAR IBCC_FAR 0xF08000 TO 0xF0BFFF; PAGE_F1 = READ_ONLY DATA_FAR IBCC_FAR 0xF18000 TO 0xF1BFFF; PAGE_F2 = READ_ONLY DATA_FAR IBCC_FAR 0xF28000 TO 0xF2BFFF; PAGE_F3 = READ_ONLY DATA_FAR IBCC_FAR 0xF38000 TO 0xF3BFFF; PAGE_F4 = READ_ONLY DATA_FAR IBCC_FAR 0xF48000 TO 0xF4BFFF; PAGE_F5 = READ_ONLY DATA_FAR IBCC_FAR 0xF58000 TO 0xF5BFFF; PAGE_F6 = READ_ONLY DATA_FAR IBCC_FAR 0xF68000 TO 0xF6BFFF; PAGE_F7 = READ_ONLY DATA_FAR IBCC_FAR 0xF78000 TO 0xF7BFFF; //PAGE_F8 = READ_ONLY DATA_FAR IBCC_FAR 0xF88000 TO 0xF8BFFF; //16K PAGE_F8 = READ_ONLY DATA_FAR IBCC_FAR 0xF88000 TO 0xF89FFF; //8K //BOOT_PAGE_F8 = READ_ONLY DATA_FAR IBCC_FAR 0xF8A000 TO 0xF8BFFF; //8K (Resvered for Bootloader) PAGE_F9 = READ_ONLY DATA_FAR IBCC_FAR 0xF98000 TO 0xF9BFFF; //16K PAGE_FA = READ_ONLY DATA_FAR IBCC_FAR 0xFA8000 TO 0xFABFFF; //16K // GLOBOL_40K = READ_ONLY 0x7E4000'G TO 0x7EDFFF'G; /* 40 kByte global address range covering PAGE_F9..PAGE_FB */ PAGE_FB = READ_ONLY DATA_FAR IBCC_FAR 0xFBA000 TO 0xFBBFFF; //8K PAGE_FC = READ_ONLY DATA_FAR IBCC_FAR 0xFC8000 TO 0xFCBFFF; //16K /* PAGE_FD = READ_ONLY 0xFD8000 TO 0xFDBFFF; intentionally not defined: equivalent to ROM_4000 */ PAGE_FE = READ_ONLY DATA_FAR IBCC_FAR 0xFE8000 TO 0xFEBFFF; //16K /* PAGE_FF = READ_ONLY 0xFF8000 TO 0xFFBFFF; intentionally not defined: equivalent to ROM_C000 */ END PLACEMENT /* here all predefined and user segments are placed into the SEGMENTS defined above. */ _PRESTART, /* Used in HIWARE format: jump to _Startup at the code start */ STARTUP, /* startup data structures */ ROM_VAR, /* constant variables */ STRINGS, /* string literals */ VIRTUAL_TABLE_SEGMENT, /* C++ virtual table segment */ //.ostext, /* eventually OSEK code */ NON_BANKED, /* runtime routines which must not be banked */ COPY /* copy down information: how to initialize variables */ /* in case you want to use ROM_4000 here as well, make sure that all files (incl. library files) are compiled with the option: -OnB=b */ INTO ROM_C000, ROM_4000; // MAPDATA_ROM INTO GLOBOL_40K; DEFAULT_ROM INTO PAGE_FE, PAGE_FC, PAGE_FB , PAGE_FA, PAGE_F9 ; //.stackstart, /* eventually used for OSEK kernel awareness: Main-Stack Start */ SSTACK, /* allocate stack first to avoid overwriting variables on overflow */ //.stackend, /* eventually used for OSEK kernel awareness: Main-Stack End */ DEFAULT_RAM /* all variables, the default RAM location */ INTO RAM;//RAM_FD; PAGED_RAM INTO /* when using banked addressing for variable data, make sure to specify the option -D__FAR_DATA on the compiler command line */ RAM_FD; DISTRIBUTE DISTRIBUTE_INTO ROM_4000, PAGE_FE, PAGE_FC, PAGE_FB , PAGE_FA, PAGE_F9 ; CONST_DISTRIBUTE DISTRIBUTE_INTO ROM_4000, PAGE_FE, PAGE_FC, PAGE_FB , PAGE_FA, PAGE_F9 ; DATA_DISTRIBUTE DISTRIBUTE_INTO RAM; //.vectors INTO OSVECTORS; /* OSEK vector table */ END ENTRIES /* keep the following unreferenced variables */ /* OSEK: always allocate the vector table and all dependent objects */ //_vectab OsBuildNumber _OsOrtiStackStart _OsOrtiStart END STACKSIZE 0x200 /* 0x100 size of the stack (will be allocated in DEFAULT_RAM) */ /* use these definitions in plane of the vector table ('vectors') above */ VECTOR 0 _Startup /* reset vector: this is the default entry point for a C/C++ application. */ VECTOR 1 _Startup /* COP reset entry*/ VECTOR 2 _Startup /* COP reset entry*/ VECTOR 3 _Startup /* COP reset entry*/ //VECTOR 0 Entry /* reset vector: this is the default entry point for an Assembly application. */ //INIT Entry /* for assembly applications: that this is as well the initialization entry point */ VECTOR ADDRESS 0xFB78 NONUSE1_ISR VECTOR ADDRESS 0xFB7A NONUSE2_ISR VECTOR ADDRESS 0xFB7C NONUSE3_ISR VECTOR ADDRESS 0xFB7E API_ISR // relocated interrupt table to 0xFB00 in initial routine within main(); VECTOR ADDRESS 0xFBB0 MSCAN0_TX_ISR // relocated interrupt table to 0xFB00 in initial routine within main(); VECTOR ADDRESS 0xFBB2 MSCAN0_RX_ISR // relocated interrupt table to 0xFB00 in initial routine within main(); //VECTOR ADDRESS 0xFBB4 NONUSE5_ISR VECTOR ADDRESS 0xFBB6 MSCAN0_WAKEUP_ISR // relocated interrupt table to 0xFB00 in initial routine within main(); //VECTOR ADDRESS 0xFBD4 SCI1_ISR // relocated interrupt table to 0xFB00 in initial routine within main(); VECTOR ADDRESS 0xFBD6 SCI0_ISR // relocated interrupt table to 0xFB00 in initial routine within main(); VECTOR ADDRESS 0xFBF0 RTI_ISR // relocated interrupt table to 0xFB00 in initial routine within main(); //VECTOR ADDRESS 0xFBA0 Timer0_ONPUT