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

📄 s12xep100 flash.prm

📁 freescale 协处理器应用相关实例
💻 PRM
字号:
/* This is a linker parameter file for the MC9S12XEP100 */
/* Default Flash Build */

/* If XGATE code is <16K and placed by the start up code in start12.c then assign it
directly into a READ_WRITE RAM segment and the appropriate copy down info will get
created. 
If it is >16K then it is probably easiest to place it into flash segment(s) and get
the linker to patch up address references for execution from RAM using RELOCATE. The
code then needs to copied explicitly in the application or by modifying start12.c. */

/******************************************************************************
     *******************************************************************
     * File created by: Freescale East Kilbride MCD Applications Group *
     *******************************************************************

                                                                          
******************************************************************************/
/*===========================================================================*/
/* Freescale reserves the right to make changes without further notice to any*/
/* product herein to improve reliability, function, or design. Freescale does*/
/* not assume any  liability arising  out  of the  application or use of any */
/* product,  circuit, or software described herein;  neither  does it convey */
/* any license under its patent rights  nor the  rights of others.  Freescale*/
/* products are not designed, intended,  or authorized for use as components */
/* in  systems  intended  for  surgical  implant  into  the  body, or  other */
/* applications intended to support life, or  for any  other application  in */
/* which the failure of the Freescale product  could create a situation where*/
/* personal injury or death may occur. Should Buyer purchase or use Freescale*/
/* products for any such intended  or unauthorized  application, Buyer shall */
/* indemnify and  hold  Freescale  and its officers, employees, subsidiaries,*/
/* affiliates,  and distributors harmless against all claims costs, damages, */
/* and expenses, and reasonable  attorney  fees arising  out of, directly or */
/* indirectly,  any claim of personal injury  or death  associated with such */
/* unintended or unauthorized use, even if such claim alleges that  Freescale*/
/* was negligent regarding the  design  or manufacture of the part. Freescale*/
/* and the Freescale logo* are registered trademarks of Freescale Ltd.       */
/*****************************************************************************/

NAMES END /* CodeWarrior will pass all the needed files to the linker by command line. But here you may add your own files too. */

ENTRIES sys_params.c.o:* END 

SEGMENTS /* here all RAM/ROM areas of the device are listed. Used in PLACEMENT below. */
      /* Register space  */
      /* IO_SEG      = PAGED            0x0000 TO   0x07FF; */

      /* paged RAM - 64k = 16 x 4K pages. XGATE can access from page F8 to FF */
      RAM_F0          = READ_WRITE    0xF01000 TO 0xF01FFF;
      RAM_F1          = READ_WRITE    0xF11000 TO 0xF11FFF;
      RAM_F2          = READ_WRITE    0xF21000 TO 0xF21FFF;
      RAM_F3          = READ_WRITE    0xF31000 TO 0xF31FFF;
      RAM_F4          = READ_WRITE    0xF41000 TO 0xF41FFF;
      RAM_F5          = READ_WRITE    0xF51000 TO 0xF51FFF;
      RAM_F6          = READ_WRITE    0xF61000 TO 0xF61FFF;
      RAM_F7          = READ_WRITE    0xF71000 TO 0xF71FFF;
      RAM_F8          = READ_WRITE    0xF81000 TO 0xF81FFF;
      RAM_F9          = READ_WRITE    0xF91000 TO 0xF91FFF;
      RAM_FA          = READ_WRITE    0xFA1000 TO 0xFA1FFF;
//      RAM_FB          = READ_WRITE    0xFB1000 TO 0xFB1FFF;
//      RAM_FC          = READ_WRITE    0xFC1000 TO 0xFC1FFF;
//      RAM_FD          = READ_WRITE    0xFD1000 TO 0xFD1FFF;
      XGATE_ROM1     = READ_WRITE    0xFB1000 TO 0xFB1FFF ALIGN 2[1:1];
      XGATE_ROM2     = READ_WRITE    0xFC1000 TO 0xFC1FFF ALIGN 2[1:1];
      XGATE_RAM       = READ_WRITE    0xFD1000 TO 0xFD1FFF ALIGN 2[1:1];
/*    RAM_FE          = READ_WRITE    0xFE1000 TO 0xFE1FFF; intentionally not defined: equivalent to RAM */
/*    RAM_FF          = READ_WRITE    0xFF1000 TO 0xFF1FFF; intentionally not defined: equivalent to RAM */

      /* nonpaged RAM - 8K */
      SHARED_RAM    = READ_WRITE   	  0x2000 TO   0x27FF ALIGN 2[1:1];
      CPU_RAM       = READ_WRITE      0x2800 TO   0x3FFF;

      /* nonpaged EEE_RAM */
      BUF_RAM1      = NO_INIT         0x0C00 TO   0x0EFF;      /* user buffer RAM */
      EEE1          = NO_INIT         0x0F00 TO   0x0FFF;      /* 256 bytes EEE */

      /* paged EEE_RAM - 1K pages*/
      BUF_RAM_FC   = NO_INIT         0xFC0800 TO 0xFC0BFF;     /* buffer RAM */
      BUF_RAM_FD   = NO_INIT         0xFD0800 TO 0xFD0BFF;
      BUF_RAM_FE   = NO_INIT         0xFE0800 TO 0xFE0BFF;
/*    BUF_RAM_FF   = NO_INIT         0xFF0800 TO 0xFF0BFF; intentionally not defined: equivalent to non paged EEE/BUF_RAM */

//      USER_D_FLASH = READ_ONLY       0x100000'G TO 0x107FFF'G;    /* for no EEE - modify if EEE is formated */
      USER_D_FLASH = READ_ONLY       0x100000'G TO 0x1073FF'G;    /* 116 x 256bytes = 29K D-Flash */
      EEE_D_FLASH  = READ_ONLY       0x107400'G TO 0x107FFF'G;    /* 12  x 256bytes = 3K reserved for EEE use */


      /* unbanked FLASH */
      ROM_4000        = READ_ONLY     0x4000 TO   0x7FFF;
      ROM_C000        = READ_ONLY     0xC000 TO   0xFEFF;
      ROM_FF00        = READ_ONLY     0xFF00 TO   0xFFFF; /* intentionally not defined: used for S12 vectors. */

      /* paged FLASH - 16K pages */       
		/* Block 3 */
      PAGE_C0         = READ_ONLY     0xC08000 TO 0xC0BFFF;
      PAGE_C1         = READ_ONLY     0xC18000 TO 0xC1BFFF;
      PAGE_C2         = READ_ONLY     0xC28000 TO 0xC2BFFF;
      PAGE_C3         = READ_ONLY     0xC38000 TO 0xC3BFFF;
      PAGE_C4         = READ_ONLY     0xC48000 TO 0xC4BFFF;
      PAGE_C5         = READ_ONLY     0xC58000 TO 0xC5BFFF;
      PAGE_C6         = READ_ONLY     0xC68000 TO 0xC6BFFF;
      PAGE_C7         = READ_ONLY     0xC78000 TO 0xC7BFFF;
      PAGE_C8         = READ_ONLY     0xC88000 TO 0xC8BFFF;
      PAGE_C9         = READ_ONLY     0xC98000 TO 0xC9BFFF;
      PAGE_CA         = READ_ONLY     0xCA8000 TO 0xCABFFF;
      PAGE_CB         = READ_ONLY     0xCB8000 TO 0xCBBFFF;
      PAGE_CC         = READ_ONLY     0xCC8000 TO 0xCCBFFF;
      PAGE_CD         = READ_ONLY     0xCD8000 TO 0xCDBFFF; 
		PAGE_CE 			 = READ_ONLY     0xCE8000 TO 0xCEBFFF;
      PAGE_CF         = READ_ONLY     0xCF8000 TO 0xCFBFFF; 

		/* Block 2 */
      PAGE_D0         = READ_ONLY     0xD08000 TO 0xD0BFFF;
      PAGE_D1         = READ_ONLY     0xD18000 TO 0xD1BFFF;
      PAGE_D2         = READ_ONLY     0xD28000 TO 0xD2BFFF;
      PAGE_D3         = READ_ONLY     0xD38000 TO 0xD3BFFF;
      PAGE_D4         = READ_ONLY     0xD48000 TO 0xD4BFFF;
      PAGE_D5         = READ_ONLY     0xD58000 TO 0xD5BFFF;
      PAGE_D6         = READ_ONLY     0xD68000 TO 0xD6BFFF;
      PAGE_D7         = READ_ONLY     0xD78000 TO 0xD7BFFF;
      PAGE_D8         = READ_ONLY     0xD88000 TO 0xD8BFFF;
      PAGE_D9         = READ_ONLY     0xD98000 TO 0xD9BFFF;
      PAGE_DA         = READ_ONLY     0xDA8000 TO 0xDABFFF;
      PAGE_DB         = READ_ONLY     0xDB8000 TO 0xDBBFFF;
      PAGE_DC         = READ_ONLY     0xDC8000 TO 0xDCBFFF;
      PAGE_DD         = READ_ONLY     0xDD8000 TO 0xDDBFFF; 
		PAGE_DE 			 = READ_ONLY     0xDE8000 TO 0xDEBFFF;
      PAGE_DF         = READ_ONLY     0xDF8000 TO 0xDFBFFF; 

		/* Block 1S */
      PAGE_E0         = READ_ONLY     0xE08000 TO 0xE087FF;
      FLASH_XGATE_E0  = READ_ONLY     0xE08800 TO 0xE0BFFF ALIGN 2[1:1]; /* 16K flash accessible by XGATE */
      FLASH_XGATE_E1  = READ_ONLY     0xE18000 TO 0xE1BFFF ALIGN 2[1:1]; /* 14K flash accessible by XGATE */
//      XGATE_ROM_COPY0  = READ_ONLY     0xE28000 TO 0xE2BFFF RELOCATE_TO 0xF91000 ALIGN 2[1:1];						   //	= 0x78_8000'g - 0x78_9FFF'g
//      XGATE_ROM_COPY1  = READ_ONLY     0xE38000 TO 0xE3BFFF RELOCATE_TO 0xFA1000 ALIGN 2[1:1];						   //	= 0x78_8000'g - 0x78_9FFF'g
      PAGE_E2         = READ_ONLY     0xE28000 TO 0xE2BFFF;
      PAGE_E3         = READ_ONLY     0xE38000 TO 0xE3BFFF;
      PAGE_E4         = READ_ONLY     0xE48000 TO 0xE4BFFF;
      PAGE_E5         = READ_ONLY     0xE58000 TO 0xE5BFFF;
      PAGE_E6         = READ_ONLY     0xE68000 TO 0xE6BFFF;
      PAGE_E7         = READ_ONLY     0xE78000 TO 0xE7BFFF;

  		/* Block 1N */
      PAGE_E8         = READ_ONLY     0xE88000 TO 0xE8BFFF;
      PAGE_E9         = READ_ONLY     0xE98000 TO 0xE9BFFF;
      PAGE_EA         = READ_ONLY     0xEA8000 TO 0xEABFFF;
      PAGE_EB         = READ_ONLY     0xEB8000 TO 0xEBBFFF;
      PAGE_EC         = READ_ONLY     0xEC8000 TO 0xECBFFF;
      PAGE_ED         = READ_ONLY     0xED8000 TO 0xEDBFFF;
      PAGE_EE         = READ_ONLY     0xEE8000 TO 0xEEBFFF;
      PAGE_EF         = READ_ONLY     0xEF8000 TO 0xEFBFFF;

		/* Block 0 */
      PAGE_F0         = READ_ONLY     0xF08000 TO 0xF0BFFF;
      PAGE_F1         = READ_ONLY     0xF18000 TO 0xF1BFFF;
      PAGE_F2         = READ_ONLY     0xF28000 TO 0xF2BFFF;
      PAGE_F3         = READ_ONLY     0xF38000 TO 0xF3BFFF;
      PAGE_F4         = READ_ONLY     0xF48000 TO 0xF4BFFF;
      PAGE_F5         = READ_ONLY     0xF58000 TO 0xF5BFFF;
      PAGE_F6         = READ_ONLY     0xF68000 TO 0xF6BFFF;
      PAGE_F7         = READ_ONLY     0xF78000 TO 0xF7BFFF;
      PAGE_F8         = READ_ONLY     0xF88000 TO 0xF8BFFF;
      PAGE_F9         = READ_ONLY     0xF98000 TO 0xF9BFFF;
      PAGE_FA         = READ_ONLY     0xFA8000 TO 0xFABFFF;
      PAGE_FB         = READ_ONLY     0xFB8000 TO 0xFBBFFF;
      PAGE_FC         = READ_ONLY     0xFC8000 TO 0xFCBFFF;
/*    PAGE_FD         = READ_ONLY     0xFD8000 TO 0xFDBFFF; intentionally not defined: equivalent to ROM_4000 */
		PAGE_FE 			 = READ_ONLY     0xFE8000 TO 0xFEBFFF;
/*    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. */
    
    S12_VEC_TABLE 					INTO ROM_FF00;
    
    _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 */
    DEFAULT_ROM, 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; */
    OTHER_ROM                    INTO  PAGE_F8, PAGE_F9, PAGE_FA, PAGE_FB, PAGE_FC, PAGE_FE,
                                       PAGE_F0, PAGE_F1, PAGE_F2, PAGE_F3, PAGE_F4, PAGE_F5, PAGE_F6, PAGE_F7,
                                       PAGE_E8, PAGE_E9, PAGE_EA, PAGE_EB, PAGE_EC, PAGE_ED, PAGE_EE, PAGE_EF,
			                              PAGE_D0, PAGE_D1, PAGE_D2, PAGE_D3, PAGE_D4, PAGE_D5, PAGE_D6, PAGE_D7,
                                       PAGE_D8, PAGE_D9, PAGE_DA, PAGE_DB, PAGE_DC, PAGE_DD, PAGE_DE, PAGE_DF,
                                       PAGE_C0, PAGE_C1, PAGE_C2, PAGE_C3, PAGE_C4, PAGE_C5, PAGE_C6, PAGE_C7,
                                       PAGE_C8, PAGE_C9, PAGE_CA, PAGE_CB, PAGE_CC, PAGE_CD, PAGE_CE, PAGE_CF;
    IN_XGATE_FLASH_BLOCK			INTO  PAGE_E0, PAGE_E3, PAGE_E4, PAGE_E5, PAGE_E6, PAGE_E7;



    DEFAULT_RAM                  INTO  CPU_RAM;	/* all variables, the default RAM location */
    XGATE_STRING_RAM,                  /* XGATE strings that should always go into RAM */
    XGATE_CONST_RAM,                   /* XGATE constants what should always go into RAM */
    XGATE_CODE_RAM,                    /* XGATE code that should always run out of RAM */
    XGATE_DATA,                        /* data that are accessed by XGATE only */
    XGATE_STACKS                         
                                INTO  XGATE_RAM;

    XGATE_VECTORS,                     /* XGATE vector table - could be placed into RAM */
    XGATE_STRING,                      /* XGATE string literals - could be placed into RAM */
    XGATE_CONST,                       /* XGATE constants  - could be placed into RAM */
    XGATE_STRING_FLASH,                /* XGATE strings that should always go into flash */
    XGATE_CONST_FLASH,                 /* XGATE constants that should always go into flash */
    XGATE_CODE_FLASH                    /* XGATE code that should always run out of flash */
                                INTO  FLASH_XGATE_E0, FLASH_XGATE_E1;

    XGATE_CODE                  INTO  XGATE_ROM1, XGATE_ROM2;      /* XGATE functions loaded by start up*/
	 PAGED_RAM                   INTO  RAM_F8, RAM_F9, RAM_FA, 
	                                   RAM_F0, RAM_F1, RAM_F2, RAM_F3, RAM_F4, RAM_F5, RAM_F6, RAM_F7;
	 SHARED_DATA                 INTO  SHARED_RAM;
    EEPROM_DATA                 INTO  EEE1;
    SYSTEM_DATA_NVM             INTO  USER_D_FLASH;
    SYSTEM_DATA                 INTO  BUF_RAM1; 
END

DEPENDENCY
	ROOT _vectab END
END

STACKSIZE 0x100

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -