/* 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 */ /* paged FLASH: 0x8000 TO 0xBFFF; addressed through PPAGE */ //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 PAGE_FB = READ_ONLY DATA_FAR IBCC_FAR 0xFB8000 TO 0xFBBFFF; //16K 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 ROM_4000; //ÁÙʱÐÞ¸Ä DEFAULT_ROM INTO ROM_C000, 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 */ PAGED_RAM, /* there is no need for paged data accesses on this derivative */ DEFAULT_RAM /* all variables, the default RAM location */ INTO RAM; 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 0xFB74 MSCAN1_TX_ISR // relocated interrupt table to 0xFB00 in initial routine within main(); //VECTOR ADDRESS 0xFB76 MSCAN1_RX_ISR // relocated interrupt table to 0xFB00 in initial routine within main(); //VECTOR ADDRESS 0xFB78 MSCAN1_ERR_ISR // relocated interrupt table to 0xFB00 in initial routine within main(); //VECTOR ADDRESS 0xFB7A MSCAN1_WAKEUP_ISR // relocated interrupt table to 0xFB00 in initial routine within main(); //VECTOR ADDRESS 0xFB7C HI_TEMP_ISR // relocated interrupt table to 0xFB00 in initial routine within main(); 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 MSCAN0_ERR_ISR // relocated interrupt table to 0xFB00 in initial routine within main(); 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 0xFBE2 Timer0_ONPUT //VECTOR ADDRESS 0xFBD8 SPI_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();