* src/SDCCmain.c: removed option -C since SDCC compiler doesn't know
[fw/sdcc] / src / pic16 / devices.inc
index 13f0b2c518f587c1a7254aad2560655a648c0ad7..f8e85e78c1be43e6a59b819b9308619f067c879a 100644 (file)
         { 0, 0 }, { 0, 0 }, { 0, 0 } }
     }
   },
+  {
+    {"p18f2331", "18f2331", "pic18f2331", "f2331"}, // also: 18f[24][34]31
+    0,                 /* always 0 */
+    0x300,             /* RAM in bytes */
+    0x60,              /* access bank split */
+    0,                 /* always 0 */
+    { 0xf60, 0xfff },  /* range of SFR's */
+    {
+    /* configuration words */
+      0x300001,                /* first address */
+      0x30000d,                /* last address */
+      { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ , 
+        { 0x3c, 0, 0xff } /* 4 */ , { 0x9b, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
+       {  -1 , 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
+       { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ ,  { 0x0f, 0, 0xff } /* c */ ,
+       { 0x40, 0, 0xff } /* d */ }
+    },
+    /* IDLOCs --- always 0 */
+    { 0x200000, 0x200007, 
+      { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, 
+        { 0, 0 }, { 0, 0 }, { 0, 0 } }
+    }
+  },
+  {
+    {"p18f2420", "18f2420", "pic18f2420", "f2420"},    // also: 18f[24][45]20
+    0,
+    0x300,     /* 768 */
+    0x80,
+    0,
+    { 0xf80, 0xfff },  /* PIC18F2420 range of SFR's */
+    {
+    /* PIC18F2420 configuration words */
+      0x300000,
+      0x30000d,
+      { { 0x3f, 0, 0xff } /* 0 */ , { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , 
+      { 0x1f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */  , { 0x87, 0, 0xff } /* 5 */ , 
+      { 0xc5, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */  , { 0x0f, 0, 0xff } /* 8 */ , 
+      { 0xc0, 0, 0xff } /* 9 */ , { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , 
+      { 0x0f, 0, 0xff } /* c */ , { 0x40, 0, 0xff } /* d */  }
+    },
+    { 0x200000, 0x200007, 
+      { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, 
+        { 0, 0 }, { 0, 0 }, { 0, 0 } }
+    }
+  },
+  {
+    {"p18f2431", "18f2431", "pic18f2431", "f2431"}, // also: 18f[24][34]31
+    0,                 /* always 0 */
+    0x300,             /* RAM in bytes */
+    0x60,              /* access bank split */
+    0,                 /* always 0 */
+    { 0xf60, 0xfff },  /* range of SFR's */
+    {
+    /* configuration words */
+      0x300001,                /* first address */
+      0x30000d,                /* last address */
+      { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ , 
+        { 0x3c, 0, 0xff } /* 4 */ , { 0x9b, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
+       {  -1 , 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
+       { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ ,  { 0x0f, 0, 0xff } /* c */ ,
+       { 0x40, 0, 0xff } /* d */ }
+    },
+    /* IDLOCs --- always 0 */
+    { 0x200000, 0x200007, 
+      { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, 
+        { 0, 0 }, { 0, 0 }, { 0, 0 } }
+    }
+  },
   {
     {"p18f2455", "18f2455", "pic18f2455", "f2455"},
     0,
         { 0, 0 }, { 0, 0 }, { 0, 0 } }
     }
   },
+  {
+    {"p18f24j10", "18f24j10", "pic18f24j10", "f24j10"},                /* also 18f[24][45]j10  */
+    0,
+    0x1000,    /* 4096 */
+    0x80,
+    0,
+    { 0xf80, 0xfff },  /* PIC18F24j10 range of SFR's */
+    {
+    /* PIC18F24j10 configuration words */
+      0x300000,
+      0x30000d,
+      { { 0xe1, 0, 0xff } /* 0 */ , { 0x07, 0, 0xff } /* 1 */ , { 0xc7, 0, 0xff } /* 2 */ , 
+      { 0x0f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */  , { 0x01, 0, 0xff } /* 5 */ , 
+      { -1, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */ , { -1, 0, 0xff } /* 8 */ , 
+      { -1, 0, 0xff } /* 9 */ , { -1, 0, 0xff } /* a */ , { -1, 0, 0xff } /* b */ , 
+      { -1, 0, 0xff } /* c */ , { -1, 0, 0xff } /* d */  }
+    },
+    { 0x200000, 0x200007, 
+      { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, 
+        { 0, 0 }, { 0, 0 }, { 0, 0 } }
+    }
+  },
+  {
+    {"p18f2520", "18f2520", "pic18f2520", "f2520"},    // also: 18f[24][45]20
+    0,
+    0x600,     /* 1536 */
+    0x80,
+    0,
+    { 0xf80, 0xfff },  /* PIC18F2520 range of SFR's */
+    {
+    /* PIC18F2520 configuration words */
+      0x300000,
+      0x30000d,
+      { { 0x3f, 0, 0xff } /* 0 */ , { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , 
+      { 0x1f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */  , { 0x87, 0, 0xff } /* 5 */ , 
+      { 0xc5, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */  , { 0x0f, 0, 0xff } /* 8 */ , 
+      { 0xc0, 0, 0xff } /* 9 */ , { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , 
+      { 0x0f, 0, 0xff } /* c */ , { 0x40, 0, 0xff } /* d */  }
+    },
+    { 0x200000, 0x200007, 
+      { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, 
+        { 0, 0 }, { 0, 0 }, { 0, 0 } }
+    }
+  },
   {
     {"p18f2525", "18f2525", "pic18f2525", "f2525"},
     0,
         { 0, 0 }, { 0, 0 }, { 0, 0 } }
     }
   },
+  {
+    {"p18f25j10", "18f25j10", "pic18f25j10", "f25j10"},                /* also 18f[24][45]j10  */
+    0,
+    0x1000,    /* 4096 */
+    0x80,
+    0,
+    { 0xf80, 0xfff },  /* PIC18F25j10 range of SFR's */
+    {
+    /* PIC18F25j10 configuration words */
+      0x300000,
+      0x30000d,
+      { { 0xe1, 0, 0xff } /* 0 */ , { 0x07, 0, 0xff } /* 1 */ , { 0xc7, 0, 0xff } /* 2 */ , 
+      { 0x0f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */  , { 0x01, 0, 0xff } /* 5 */ , 
+      { -1, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */ , { -1, 0, 0xff } /* 8 */ , 
+      { -1, 0, 0xff } /* 9 */ , { -1, 0, 0xff } /* a */ , { -1, 0, 0xff } /* b */ , 
+      { -1, 0, 0xff } /* c */ , { -1, 0, 0xff } /* d */  }
+    },
+    { 0x200000, 0x200007, 
+      { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, 
+        { 0, 0 }, { 0, 0 }, { 0, 0 } }
+    }
+  },
   {
     {"p18f2620", "18f2620", "pic18f2620", "f2620"},
     0,
     }
   },
   {
-    {"p18f4331", "18f4331", "pic18f4331", "f4331"},
+    {"p18f4331", "18f4331", "pic18f4331", "f4331"}, // also: 18f[24][34]31
+    0,                 /* always 0 */
+    0x300,             /* RAM in bytes */
+    0x60,              /* access bank split */
+    0,                 /* always 0 */
+    { 0xf60, 0xfff },  /* range of SFR's */
+    {
+    /* configuration words */
+      0x300001,                /* first address */
+      0x30000d,                /* last address */
+      { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ , 
+        { 0x3c, 0, 0xff } /* 4 */ , { 0x9b, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
+       {  -1 , 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
+       { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ ,  { 0x0f, 0, 0xff } /* c */ ,
+       { 0x40, 0, 0xff } /* d */ }
+    },
+    /* IDLOCs --- always 0 */
+    { 0x200000, 0x200007, 
+      { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, 
+        { 0, 0 }, { 0, 0 }, { 0, 0 } }
+    }
+  },
+  {
+    {"p18f4420", "18f4420", "pic18f4420", "f4420"},    // also: 18f[24][45]20
     0,
-    0x300,     /* 768 */
-    0x60,
+    0x300,     /* 4096 */
+    0x80,
     0,
-    { 0xf60, 0xfff },  /* PIC18F4331 range of SFR's */
+    { 0xf80, 0xfff },  /* PIC18F4420 range of SFR's */
     {
-    /* PIC18F4331 configuration words */
-      0x300001,
+    /* PIC18F4420 configuration words */
+      0x300000,
       0x30000d,
-      { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x3f, 0, 0xff } /* 3 */ , 
-      { 0x3c, 0, 0xff } /* 4 */ , { 0x9d, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ , 
-      { -1, 0, 0xff } /* 7 */  , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ , 
-      { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ , 
-      { 0x40, 0, 0xff } /* d */  }
+      { { 0x3f, 0, 0xff } /* 0 */ , { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , 
+      { 0x1f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */  , { 0x87, 0, 0xff } /* 5 */ , 
+      { 0xc5, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */  , { 0x0f, 0, 0xff } /* 8 */ , 
+      { 0xc0, 0, 0xff } /* 9 */ , { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , 
+      { 0x0f, 0, 0xff } /* c */ , { 0x40, 0, 0xff } /* d */  }
+    },
+    { 0x200000, 0x200007, 
+      { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, 
+        { 0, 0 }, { 0, 0 }, { 0, 0 } }
+    }
+  },
+  {
+    {"p18f4431", "18f4431", "pic18f4431", "f4431"}, // also: 18f[24][34]31
+    0,                 /* always 0 */
+    0x300,             /* RAM in bytes */
+    0x60,              /* access bank split */
+    0,                 /* always 0 */
+    { 0xf60, 0xfff },  /* range of SFR's */
+    {
+    /* configuration words */
+      0x300001,                /* first address */
+      0x30000d,                /* last address */
+      { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ , 
+        { 0x3c, 0, 0xff } /* 4 */ , { 0x9b, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
+       {  -1 , 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
+       { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ ,  { 0x0f, 0, 0xff } /* c */ ,
+       { 0x40, 0, 0xff } /* d */ }
     },
+    /* IDLOCs --- always 0 */
     { 0x200000, 0x200007, 
       { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, 
         { 0, 0 }, { 0, 0 }, { 0, 0 } }
     }
   },
   {
-    {"p18f4520", "18f4520", "pic18f4520", "f4520"},
+    {"p18f44j10", "18f44j10", "pic18f44j10", "f44j10"},                /* also 18f[24][45]j10  */
     0,
     0x1000,    /* 4096 */
     0x80,
     0,
+    { 0xf80, 0xfff },  /* PIC18F44j10 range of SFR's */
+    {
+    /* PIC18F44j10 configuration words */
+      0x300000,
+      0x30000d,
+      { { 0xe1, 0, 0xff } /* 0 */ , { 0x07, 0, 0xff } /* 1 */ , { 0xc7, 0, 0xff } /* 2 */ , 
+      { 0x0f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */  , { 0x01, 0, 0xff } /* 5 */ , 
+      { -1, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */ , { -1, 0, 0xff } /* 8 */ , 
+      { -1, 0, 0xff } /* 9 */ , { -1, 0, 0xff } /* a */ , { -1, 0, 0xff } /* b */ , 
+      { -1, 0, 0xff } /* c */ , { -1, 0, 0xff } /* d */  }
+    },
+    { 0x200000, 0x200007, 
+      { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, 
+        { 0, 0 }, { 0, 0 }, { 0, 0 } }
+    }
+  },
+  {
+    {"p18f4520", "18f4520", "pic18f4520", "f4520"},
+    0,
+    0x600,     /* 1536 */
+    0x80,
+    0,
     { 0xf80, 0xfff },  /* PIC18F4520 range of SFR's */
     {
     /* PIC18F4520 configuration words */
         { 0, 0 }, { 0, 0 }, { 0, 0 } }
     }
   },
+  {
+    {"p18f45j10", "18f45j10", "pic18f45j10", "f45j10"},                /* also 18f[24][45]j10  */
+    0,
+    0x1000,    /* 4096 */
+    0x80,
+    0,
+    { 0xf80, 0xfff },  /* PIC18F45j10 range of SFR's */
+    {
+    /* PIC18F45j10 configuration words */
+      0x300000,
+      0x30000d,
+      { { 0xe1, 0, 0xff } /* 0 */ , { 0x07, 0, 0xff } /* 1 */ , { 0xc7, 0, 0xff } /* 2 */ , 
+      { 0x0f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */  , { 0x01, 0, 0xff } /* 5 */ , 
+      { -1, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */ , { -1, 0, 0xff } /* 8 */ , 
+      { -1, 0, 0xff } /* 9 */ , { -1, 0, 0xff } /* a */ , { -1, 0, 0xff } /* b */ , 
+      { -1, 0, 0xff } /* c */ , { -1, 0, 0xff } /* d */  }
+    },
+    { 0x200000, 0x200007, 
+      { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, 
+        { 0, 0 }, { 0, 0 }, { 0, 0 } }
+    }
+  },
   {
     {"p18f4620", "18f4620", "pic18f4620", "f4620"},
     0,