]> git.sur5r.net Git - freertos/blobdiff - Demo/dsPIC_MPLAB/p33FJ256GP710.gld
Update the dsPIC MPLAB demo for use with the latest 3.25 version of the compiler.
[freertos] / Demo / dsPIC_MPLAB / p33FJ256GP710.gld
index c5e6cffae0570657747c7955cf8f593075265dbf..637c0995ce9e69d634c824fe8373a03d31e0ce89 100644 (file)
@@ -3,33 +3,48 @@
 */\r
 \r
 OUTPUT_ARCH("33FJ256GP710")\r
-EXTERN(__resetPRI)\r
-EXTERN(__resetALT)\r
+CRT0_STARTUP(crt0_standard.o)\r
+CRT1_STARTUP(crt1_standard.o)\r
 \r
+OPTIONAL(-lp33FJ256GP710)\r
 \r
 /*\r
 ** Memory Regions\r
 */\r
 MEMORY\r
 {\r
-  data  (a!xr) : ORIGIN = 0x800,         LENGTH = 0x7800\r
-  reset        : ORIGIN = 0x0,           LENGTH = 0x4\r
-  ivt          : ORIGIN = 0x4,           LENGTH = 0xFC\r
-  aivt         : ORIGIN = 0x104,         LENGTH = 0xFC\r
-  program (xr) : ORIGIN = 0x200,         LENGTH = 0x2AA00\r
-  FBS          : ORIGIN = 0xF80000,      LENGTH = 0x2\r
-  FSS          : ORIGIN = 0xF80002,      LENGTH = 0x2\r
-  FGS          : ORIGIN = 0xF80004,      LENGTH = 0x2\r
-  FOSCSEL      : ORIGIN = 0xF80006,      LENGTH = 0x2\r
-  FOSC         : ORIGIN = 0xF80008,      LENGTH = 0x2\r
-  FWDT         : ORIGIN = 0xF8000A,      LENGTH = 0x2\r
-  FPOR         : ORIGIN = 0xF8000C,      LENGTH = 0x2\r
-  CONFIG3      : ORIGIN = 0xF8000E,      LENGTH = 0x2\r
-  FUID0        : ORIGIN = 0xF80010,      LENGTH = 0x2\r
-  FUID1        : ORIGIN = 0xF80012,      LENGTH = 0x2\r
-  FUID2        : ORIGIN = 0xF80014,      LENGTH = 0x2\r
-  FUID3        : ORIGIN = 0xF80016,      LENGTH = 0x2\r
+  data  (a!xr)   : ORIGIN = 0x800,         LENGTH = 0x7800\r
+  reset          : ORIGIN = 0x0,           LENGTH = 0x4\r
+  ivt            : ORIGIN = 0x4,           LENGTH = 0xFC\r
+  aivt           : ORIGIN = 0x104,         LENGTH = 0xFC\r
+  program (xr)   : ORIGIN = 0x200,         LENGTH = 0x2AA00\r
+  FBS            : ORIGIN = 0xF80000,      LENGTH = 0x2\r
+  FSS            : ORIGIN = 0xF80002,      LENGTH = 0x2\r
+  FGS            : ORIGIN = 0xF80004,      LENGTH = 0x2\r
+  FOSCSEL        : ORIGIN = 0xF80006,      LENGTH = 0x2\r
+  FOSC           : ORIGIN = 0xF80008,      LENGTH = 0x2\r
+  FWDT           : ORIGIN = 0xF8000A,      LENGTH = 0x2\r
+  FPOR           : ORIGIN = 0xF8000C,      LENGTH = 0x2\r
+  FICD           : ORIGIN = 0xF8000E,      LENGTH = 0x2\r
+  FUID0          : ORIGIN = 0xF80010,      LENGTH = 0x2\r
+  FUID1          : ORIGIN = 0xF80012,      LENGTH = 0x2\r
+  FUID2          : ORIGIN = 0xF80014,      LENGTH = 0x2\r
+  FUID3          : ORIGIN = 0xF80016,      LENGTH = 0x2\r
 }\r
+\r
+__FBS = 0xF80000;\r
+__FSS = 0xF80002;\r
+__FGS = 0xF80004;\r
+__FOSCSEL = 0xF80006;\r
+__FOSC = 0xF80008;\r
+__FWDT = 0xF8000A;\r
+__FPOR = 0xF8000C;\r
+__FICD = 0xF8000E;\r
+__FUID0 = 0xF80010;\r
+__FUID1 = 0xF80012;\r
+__FUID2 = 0xF80014;\r
+__FUID3 = 0xF80016;\r
+\r
 __IVT_BASE  = 0x4;\r
 __AIVT_BASE = 0x104;\r
 __DATA_BASE = 0x800;\r
@@ -72,16 +87,65 @@ SECTIONS
 \r
   /*\r
   ** User Code and Library Code\r
+  **\r
+  ** This section must not be assigned to __CODE_BASE,\r
+  ** because CodeGuard(tm) sections may be located there.\r
+  **\r
+  ** Note that input sections *(.text) are not mapped here.\r
+  ** The best-fit allocator locates them, so that .text\r
+  ** may flow around PSV sections as needed.\r
   */\r
-  .text __CODE_BASE :\r
+  .text :\r
   {\r
+        *(.init);\r
+        *(.user_init);\r
         *(.handle);\r
         *(.libc) *(.libm) *(.libdsp);  /* keep together in this order */\r
         *(.lib*);\r
-        *(.text);\r
   } >program\r
 \r
 \r
+  /*\r
+  ** User-Defined Section in Program Memory\r
+  **\r
+  ** note: can specify an address using\r
+  **       the following syntax:\r
+  **\r
+  **       usercode 0x1234 :\r
+  **         {\r
+  **           *(usercode);\r
+  **         } >program\r
+  */\r
+  usercode :\r
+  {\r
+        *(usercode);\r
+  } >program\r
+\r
+\r
+  /*\r
+  ** User-Defined Constants in Program Memory\r
+  **\r
+  ** For PSV type sections, the Load Memory Address (LMA)\r
+  ** should be specified as follows:\r
+  **\r
+  **       userconst : AT(0x1234)\r
+  **         {\r
+  **           *(userconst);\r
+  **         } >program\r
+  **\r
+  ** Note that mapping PSV sections in linker scripts\r
+  ** is not generally recommended.\r
+  **\r
+  ** Because of page alignment restrictions, memory is\r
+  ** often used more efficiently when PSV sections\r
+  ** do not appear in the linker script.\r
+  **\r
+  ** For more information on memory allocation,\r
+  ** please refer to chapter 10, 'Linker Processing'\r
+  ** in the Assembler, Linker manual (DS51317).\r
+  */\r
+\r
+\r
   /*\r
   ** Configuration Words\r
   */\r
@@ -99,6 +163,8 @@ SECTIONS
   { *(__FWDT.sec)    } >FWDT\r
   __FPOR :\r
   { *(__FPOR.sec)    } >FPOR\r
+  __FICD :\r
+  { *(__FICD.sec)    } >FICD\r
   __FUID0 :\r
   { *(__FUID0.sec)    } >FUID0\r
   __FUID1 :\r
@@ -329,7 +395,7 @@ SECTIONS
          ABSOLUTE(__DefaultInterrupt));\r
     LONG( DEFINED(__U2ErrInterrupt)    ? ABSOLUTE(__U2ErrInterrupt)    :\r
          ABSOLUTE(__DefaultInterrupt));\r
-    LONG( DEFINED(__Interrupt68)    ? ABSOLUTE(__Interrupt68)    :\r
+    LONG( DEFINED(__Interrupt67)    ? ABSOLUTE(__Interrupt67)    :\r
          ABSOLUTE(__DefaultInterrupt));\r
     LONG( DEFINED(__DMA6Interrupt)    ? ABSOLUTE(__DMA6Interrupt)    :\r
          ABSOLUTE(__DefaultInterrupt));\r
@@ -665,8 +731,8 @@ SECTIONS
     LONG( DEFINED(__AltU2ErrInterrupt)    ? ABSOLUTE(__AltU2ErrInterrupt)    :\r
          (DEFINED(__U2ErrInterrupt)       ? ABSOLUTE(__U2ErrInterrupt)       :\r
          ABSOLUTE(__DefaultInterrupt)));\r
-    LONG( DEFINED(__AltInterrupt68)    ? ABSOLUTE(__AltInterrupt68)    :\r
-         (DEFINED(__Interrupt68)       ? ABSOLUTE(__Interrupt68)       :\r
+    LONG( DEFINED(__AltInterrupt67)    ? ABSOLUTE(__AltInterrupt67)    :\r
+         (DEFINED(__Interrupt67)       ? ABSOLUTE(__Interrupt67)       :\r
          ABSOLUTE(__DefaultInterrupt)));\r
     LONG( DEFINED(__AltDMA6Interrupt)    ? ABSOLUTE(__AltDMA6Interrupt)    :\r
          (DEFINED(__DMA6Interrupt)       ? ABSOLUTE(__DMA6Interrupt)       :\r
@@ -1188,18 +1254,28 @@ _OC8CON       = 0x1AE;
 _OC8CONbits   = 0x1AE;\r
  I2C1RCV      = 0x200;\r
 _I2C1RCV      = 0x200;\r
+ I2CRCV       = 0x200;\r
+_I2CRCV       = 0x200;\r
  I2C1TRN      = 0x202;\r
 _I2C1TRN      = 0x202;\r
+ I2CTRN       = 0x202;\r
+_I2CTRN       = 0x202;\r
  I2C1BRG      = 0x204;\r
 _I2C1BRG      = 0x204;\r
  I2C1CON      = 0x206;\r
 _I2C1CON      = 0x206;\r
 _I2C1CONbits  = 0x206;\r
+ I2CCON       = 0x206;\r
+_I2CCON       = 0x206;\r
  I2C1STAT     = 0x208;\r
 _I2C1STAT     = 0x208;\r
 _I2C1STATbits = 0x208;\r
+ I2CSTAT      = 0x208;\r
+_I2CSTAT      = 0x208;\r
  I2C1ADD      = 0x20A;\r
 _I2C1ADD      = 0x20A;\r
+ I2CADD       = 0x20A;\r
+_I2CADD       = 0x20A;\r
  I2C1MSK      = 0x20C;\r
 _I2C1MSK      = 0x20C;\r
  I2C2RCV      = 0x210;\r
@@ -1367,6 +1443,8 @@ _LATG         = 0x2E8;
 _LATGbits     = 0x2E8;\r
  ADC1BUF0     = 0x300;\r
 _ADC1BUF0     = 0x300;\r
+ ADCBUF0      = 0x300;\r
+_ADCBUF0      = 0x300;\r
  AD1CON1      = 0x320;\r
 _AD1CON1      = 0x320;\r
 _AD1CON1bits  = 0x320;\r
@@ -1388,6 +1466,8 @@ _AD1PCFGHbits = 0x32A;
  AD1PCFGL     = 0x32C;\r
 _AD1PCFGL     = 0x32C;\r
 _AD1PCFGLbits = 0x32C;\r
+ ADPCFG       = 0x32C;\r
+_ADPCFG       = 0x32C;\r
  AD1CSSH      = 0x32E;\r
 _AD1CSSH      = 0x32E;\r
 _AD1CSSHbits  = 0x32E;\r
@@ -1955,6 +2035,10 @@ _RCONbits     = 0x740;
  OSCCON       = 0x742;\r
 _OSCCON       = 0x742;\r
 _OSCCONbits   = 0x742;\r
+ OSCCONL      = 0x742;\r
+_OSCCONL      = 0x742;\r
+ OSCCONH      = 0x743;\r
+_OSCCONH      = 0x743;\r
  CLKDIV       = 0x744;\r
 _CLKDIV       = 0x744;\r
 _CLKDIVbits   = 0x744;\r
@@ -1984,3 +2068,47 @@ _PMD2bits     = 0x772;
  PMD3         = 0x774;\r
 _PMD3         = 0x774;\r
 _PMD3bits     = 0x774;\r
+/*\r
+** ======= Base Addresses for Various Peripherals ======\r
+*/\r
+\r
+ IC1          = 0x140;\r
+_IC1          = 0x140;\r
+ IC2          = 0x144;\r
+_IC2          = 0x144;\r
+ IC3          = 0x148;\r
+_IC3          = 0x148;\r
+ IC4          = 0x14C;\r
+_IC4          = 0x14C;\r
+ IC5          = 0x150;\r
+_IC5          = 0x150;\r
+ IC6          = 0x154;\r
+_IC6          = 0x154;\r
+ IC7          = 0x158;\r
+_IC7          = 0x158;\r
+ IC8          = 0x15C;\r
+_IC8          = 0x15C;\r
+ OC1          = 0x180;\r
+_OC1          = 0x180;\r
+ OC2          = 0x186;\r
+_OC2          = 0x186;\r
+ OC3          = 0x18C;\r
+_OC3          = 0x18C;\r
+ OC4          = 0x192;\r
+_OC4          = 0x192;\r
+ OC5          = 0x198;\r
+_OC5          = 0x198;\r
+ OC6          = 0x19E;\r
+_OC6          = 0x19E;\r
+ OC7          = 0x1A4;\r
+_OC7          = 0x1A4;\r
+ OC8          = 0x1AA;\r
+_OC8          = 0x1AA;\r
+ SPI1         = 0x240;\r
+_SPI1         = 0x240;\r
+ SPI2         = 0x260;\r
+_SPI2         = 0x260;\r
+ UART1        = 0x220;\r
+_UART1        = 0x220;\r
+ UART2        = 0x230;\r
+_UART2        = 0x230;\r