1 /*-------------------------------------------------------------------------
2 device.inc - pic16 device descriptions for inclusion into device.c
4 Written By - Scott Dattalo scott@dattalo.com
5 Ported to PIC16 By - Martin Dubuc m.dubuc@rogers.com
6 Moved from device.c - Raphael Neider <rneider AT web.de>
8 This program is free software; you can redistribute it and/or modify it
9 under the terms of the GNU General Public License as published by the
10 Free Software Foundation; either version 2, or (at your option) any
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
23 -------------------------------------------------------------------------*/
25 /* This file is included into device.c in order to populate the
26 * Pics16 array with the various device's descriptions.
27 * For a reference of the structure to be filled in here see
28 * PIC16_device in device.h.
30 * The list is scanned top-down, the first device entry matching the
31 * desired processor name will be used. Temporary overrides of faulty
32 * device descriptions can be specified be placing them near the top
37 // {"p18f242", "18f242", "pic18f242", "f242", "18F242"}, // aliases
41 // { 0xf80, 0xfff }, /* PIC18F242 range of SFR's */
43 // /* PIC18F242 configuration words */
46 // { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
47 // { -1, 0, 0xff } /* 4 */ , { 0x01, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
48 // { -1, 0, 0xff } /* 7 */ , { 0x03, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
49 // { 0x03, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x03, 0, 0xff } /* c */ ,
50 // { 0x40, 0, 0xff } /* d */ }
55 {"p18f242", "18f242", "pic18f242", "f242"},
60 { 0xf80, 0xfff }, /* PIC18F242 range of SFR's */
62 /* PIC18F242 configuration words */
65 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
66 { -1, 0, 0xff } /* 4 */ , { 0x01, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
67 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
68 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
69 { 0x40, 0, 0xff } /* d */ }
72 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
73 { 0, 0 }, { 0, 0 }, { 0, 0 } }
77 {"p18f248", "18f248", "pic18f248", "f248"},
82 { 0xf00, 0xfff }, /* PIC18F248 range of SFR's */
84 /* PIC18F248 configuration words */
87 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
88 { -1, 0, 0xff } /* 4 */ , { -1, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
89 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
90 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
91 { 0x40, 0, 0xff } /* d */ }
94 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
95 { 0, 0 }, { 0, 0 }, { 0, 0 } }
99 {"p18f252", "18f252", "pic18f252", "f252"},
104 { 0xf80, 0xfff }, /* PIC18F252 range of SFR's */
106 /* PIC18F252 configuration words */
109 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
110 { -1, 0, 0xff } /* 4 */ , { 0x01, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
111 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
112 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
113 { 0x40, 0, 0xff } /* d */ }
115 { 0x200000, 0x200007,
116 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
117 { 0, 0 }, { 0, 0 }, { 0, 0 } }
121 {"p18f258", "18f258", "pic18f258", "f258"},
126 { 0xf00, 0xfff }, /* PIC18F258 range of SFR's */
128 /* PIC18F258 configuration words */
131 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
132 { -1, 0, 0xff } /* 4 */ , { -1, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
133 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
134 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
135 { 0x40, 0, 0xff } /* d */ }
137 { 0x200000, 0x200007,
138 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
139 { 0, 0 }, { 0, 0 }, { 0, 0 } }
143 {"p18f442", "18f442", "pic18f442", "f442"},
148 { 0xf80, 0xfff }, /* PIC18F442 range of SFR's */
150 /* PIC18F442 configuration words */
153 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
154 { -1, 0, 0xff } /* 4 */ , { 0x01, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
155 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
156 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
157 { 0x40, 0, 0xff } /* d */ }
159 { 0x200000, 0x200007,
160 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
161 { 0, 0 }, { 0, 0 }, { 0, 0 } }
165 {"p18f448", "18f448", "pic18f448", "f448"},
170 { 0xf00, 0xfff }, /* PIC18F448 range of SFR's */
172 /* PIC18F448 configuration words */
175 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
176 { -1, 0, 0xff } /* 4 */ , { -1, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
177 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
178 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
179 { 0x40, 0, 0xff } /* d */ }
181 { 0x200000, 0x200007,
182 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
183 { 0, 0 }, { 0, 0 }, { 0, 0 } }
187 {"p18f452", "18f452", "pic18f452", "f452"},
192 { 0xf80, 0xfff }, /* PIC18F452 range of SFR's */
194 /* PIC18F452 configuration words */
197 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
198 { -1, 0, 0xff } /* 4 */ , { 0x01, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
199 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
200 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
201 { 0x40, 0, 0xff } /* d */ }
203 { 0x200000, 0x200007,
204 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
205 { 0, 0 }, { 0, 0 }, { 0, 0 } }
209 {"p18f458", "18f458", "pic18f458", "f458"},
214 { 0xf00, 0xfff }, /* PIC18F458 range of SFR's */
216 /* PIC18F458 configuration words */
219 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
220 { -1, 0, 0xff } /* 4 */ , { -1, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
221 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
222 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
223 { 0x40, 0, 0xff } /* d */ }
225 { 0x200000, 0x200007,
226 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
227 { 0, 0 }, { 0, 0 }, { 0, 0 } }
231 {"p18f1220", "18f1220", "pic18f1220", "f1220"},
236 { 0xf80, 0xfff }, /* PIC18F1220 range of SFR's */
238 /* PIC18F1220 configuration words */
241 { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
242 { -1, 0, 0xff } /* 4 */ , { 0x80, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
243 { -1, 0, 0xff } /* 7 */ , { 0x03, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
244 { 0x03, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x03, 0, 0xff } /* c */ ,
245 { 0x40, 0, 0xff } /* d */ }
247 { 0x200000, 0x200007,
248 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
249 { 0, 0 }, { 0, 0 }, { 0, 0 } }
253 {"p18f1320", "18f1320", "pic18f1320", "f1320"},
258 { 0xf80, 0xfff }, /* PIC18F1320 range of SFR's */
260 /* PIC18F1320 configuration words */
263 { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
264 { -1, 0, 0xff } /* 4 */ , { 0x80, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
265 { -1, 0, 0xff } /* 7 */ , { 0x03, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
266 { 0x03, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x03, 0, 0xff } /* c */ ,
267 { 0x40, 0, 0xff } /* d */ }
269 { 0x200000, 0x200007,
270 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
271 { 0, 0 }, { 0, 0 }, { 0, 0 } }
275 {"p18f2220", "18f2220", "pic18f2220", "f2220"},
280 { 0xf80, 0xfff }, /* PIC18F2220 range of SFR's */
282 /* PIC18F2220 configuration words */
285 { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
286 { -1, 0, 0xff } /* 4 */ , { 0x83, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
287 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
288 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
289 { 0x40, 0, 0xff } /* d */ }
291 { 0x200000, 0x200007,
292 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
293 { 0, 0 }, { 0, 0 }, { 0, 0 } }
297 {"p18f2221", "18f2221", "pic18f2221", "f2221"}, // also: 2321, 4221, 4321
299 0x200, /* RAM in bytes */
300 0x80, /* access bank split */
302 { 0xf80, 0xfff }, /* range of SFR's */
304 /* configuration words */
305 0x300001, /* first address */
306 0x30000d, /* last address */
307 { { 0xcf, 0, 0x37 } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
308 { -1 , 0, 0xff } /* 4 */ , { 0x87, 0, 0xfb } /* 5 */ , { 0xf5, 0, 0x8f } /* 6 */ ,
309 { -1 , 0, 0xff } /* 7 */ , { 0x03, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
310 { 0x03, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x03, 0, 0xff } /* c */ ,
311 { 0x40, 0, 0xff } /* d */ }
313 /* IDLOCs --- always 0 */
314 { 0x200000, 0x200007,
315 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
316 { 0, 0 }, { 0, 0 }, { 0, 0 } }
320 {"p18f2320", "18f2320", "pic18f2320", "f2320"},
325 { 0xf80, 0xfff }, /* PIC18F2320 range of SFR's */
327 /* PIC18F2320 configuration words */
330 { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
331 { -1, 0, 0xff } /* 4 */ , { 0x83, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
332 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
333 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
334 { 0x40, 0, 0xff } /* d */ }
336 { 0x200000, 0x200007,
337 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
338 { 0, 0 }, { 0, 0 }, { 0, 0 } }
342 {"p18f2321", "18f2321", "pic18f2321", "f2321"}, // also: 2221, 4221, 4321
344 0x200, /* RAM in bytes */
345 0x80, /* access bank split */
347 { 0xf80, 0xfff }, /* range of SFR's */
349 /* configuration words */
350 0x300001, /* first address */
351 0x30000d, /* last address */
352 { { 0xcf, 0, 0x37 } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
353 { -1 , 0, 0xff } /* 4 */ , { 0x87, 0, 0xfb } /* 5 */ , { 0xf5, 0, 0x8f } /* 6 */ ,
354 { -1 , 0, 0xff } /* 7 */ , { 0x03, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
355 { 0x03, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x03, 0, 0xff } /* c */ ,
356 { 0x40, 0, 0xff } /* d */ }
358 /* IDLOCs --- always 0 */
359 { 0x200000, 0x200007,
360 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
361 { 0, 0 }, { 0, 0 }, { 0, 0 } }
365 {"p18f2331", "18f2331", "pic18f2331", "f2331"}, // also: 18f[24][34]31
367 0x300, /* RAM in bytes */
368 0x60, /* access bank split */
370 { 0xf60, 0xfff }, /* range of SFR's */
372 /* configuration words */
373 0x300001, /* first address */
374 0x30000d, /* last address */
375 { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
376 { 0x3c, 0, 0xff } /* 4 */ , { 0x9b, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
377 { -1 , 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
378 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
379 { 0x40, 0, 0xff } /* d */ }
381 /* IDLOCs --- always 0 */
382 { 0x200000, 0x200007,
383 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
384 { 0, 0 }, { 0, 0 }, { 0, 0 } }
388 {"p18f2420", "18f2420", "pic18f2420", "f2420"}, // also: 18f[24][45]20
393 { 0xf80, 0xfff }, /* PIC18F2420 range of SFR's */
395 /* PIC18F2420 configuration words */
398 { { 0x3f, 0, 0xff } /* 0 */ , { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ ,
399 { 0x1f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */ , { 0x87, 0, 0xff } /* 5 */ ,
400 { 0xc5, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ ,
401 { 0xc0, 0, 0xff } /* 9 */ , { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ ,
402 { 0x0f, 0, 0xff } /* c */ , { 0x40, 0, 0xff } /* d */ }
404 { 0x200000, 0x200007,
405 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
406 { 0, 0 }, { 0, 0 }, { 0, 0 } }
410 {"p18f2423", "18f2423", "pic18f2423", "f2423"},
415 { 0xf80, 0xfff }, /* PIC18F2423 range of SFR's */
417 /* PIC18F2423 configuration words */
420 { { 0x3f, 0, 0xff } /* 0 */ , { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ ,
421 { 0x1f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */ , { 0x87, 0, 0xff } /* 5 */ ,
422 { 0xc5, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ ,
423 { 0xc0, 0, 0xff } /* 9 */ , { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ ,
424 { 0x0f, 0, 0xff } /* c */ , { 0x40, 0, 0xff } /* d */ }
426 { 0x200000, 0x200007,
427 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
428 { 0, 0 }, { 0, 0 }, { 0, 0 } }
432 {"p18f2431", "18f2431", "pic18f2431", "f2431"}, // also: 18f[24][34]31
434 0x300, /* RAM in bytes */
435 0x60, /* access bank split */
437 { 0xf60, 0xfff }, /* range of SFR's */
439 /* configuration words */
440 0x300001, /* first address */
441 0x30000d, /* last address */
442 { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
443 { 0x3c, 0, 0xff } /* 4 */ , { 0x9b, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
444 { -1 , 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
445 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
446 { 0x40, 0, 0xff } /* d */ }
448 /* IDLOCs --- always 0 */
449 { 0x200000, 0x200007,
450 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
451 { 0, 0 }, { 0, 0 }, { 0, 0 } }
455 {"p18f2455", "18f2455", "pic18f2455", "f2455"},
460 { 0xf62, 0xfff }, /* PIC18F2455 range of SFR's */
462 /* PIC18F2455 configuration words */
465 { { 0x3f, 0, 0xff } /* 0 */ , { 0xcf, 0, 0xff } /* 1 */ , { 0x3f, 0, 0xff } /* 2 */ ,
466 { 0x1f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */ , { 0x87, 0, 0xff } /* 5 */ ,
467 { 0xe5, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ ,
468 { 0xc0, 0, 0xff } /* 9 */ , { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ ,
469 { 0x0f, 0, 0xff } /* c */ , { 0x40, 0, 0xff } /* d */ }
471 { 0x200000, 0x200007,
472 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
473 { 0, 0 }, { 0, 0 }, { 0, 0 } }
477 {"p18f24j10", "18f24j10", "pic18f24j10", "f24j10"}, /* also 18f[24][45]j10 */
482 { 0xf80, 0xfff }, /* PIC18F24j10 range of SFR's */
484 /* PIC18F24j10 configuration words */
487 { { 0xe1, 0, 0xff } /* 0 */ , { 0x07, 0, 0xff } /* 1 */ , { 0xc7, 0, 0xff } /* 2 */ ,
488 { 0x0f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */ , { 0x01, 0, 0xff } /* 5 */ ,
489 { -1, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */ , { -1, 0, 0xff } /* 8 */ ,
490 { -1, 0, 0xff } /* 9 */ , { -1, 0, 0xff } /* a */ , { -1, 0, 0xff } /* b */ ,
491 { -1, 0, 0xff } /* c */ , { -1, 0, 0xff } /* d */ }
493 { 0x200000, 0x200007,
494 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
495 { 0, 0 }, { 0, 0 }, { 0, 0 } }
499 {"p18f2520", "18f2520", "pic18f2520", "f2520"}, // also: 18f[24][45]20
504 { 0xf80, 0xfff }, /* PIC18F2520 range of SFR's */
506 /* PIC18F2520 configuration words */
509 { { 0x3f, 0, 0xff } /* 0 */ , { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ ,
510 { 0x1f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */ , { 0x87, 0, 0xff } /* 5 */ ,
511 { 0xc5, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ ,
512 { 0xc0, 0, 0xff } /* 9 */ , { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ ,
513 { 0x0f, 0, 0xff } /* c */ , { 0x40, 0, 0xff } /* d */ }
515 { 0x200000, 0x200007,
516 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
517 { 0, 0 }, { 0, 0 }, { 0, 0 } }
521 {"p18f2523", "18f2523", "pic18f2523", "f2523"},
526 { 0xf80, 0xfff }, /* PIC18F2523 range of SFR's */
528 /* PIC18F2523 configuration words */
531 { { 0x3f, 0, 0xff } /* 0 */ , { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ ,
532 { 0x1f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */ , { 0x87, 0, 0xff } /* 5 */ ,
533 { 0xc5, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ ,
534 { 0xc0, 0, 0xff } /* 9 */ , { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ ,
535 { 0x0f, 0, 0xff } /* c */ , { 0x40, 0, 0xff } /* d */ }
537 { 0x200000, 0x200007,
538 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
539 { 0, 0 }, { 0, 0 }, { 0, 0 } }
543 {"p18f2525", "18f2525", "pic18f2525", "f2525"},
548 { 0xf80, 0xfff }, /* PIC18F4525,2525 range of SFR's */
550 /* PIC18F4525,2525 configuration words */
553 { { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
554 { -1, 0, 0xff } /* 4 */ , { 0x87, 0, 0xff } /* 5 */ , { 0xc5, 0, 0xff } /* 6 */ ,
555 { -1, 0, 0xff } /* 7 */ , { 0x07, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
556 { 0x07, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x07, 0, 0xff } /* c */ ,
557 { 0x40, 0, 0xff } /* d */ }
559 { 0x200000, 0x200007,
560 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
561 { 0, 0 }, { 0, 0 }, { 0, 0 } }
565 {"p18f2550", "18f2550", "pic18f2550", "f2550"},
570 { 0xf62, 0xfff }, /* PIC18F2550 range of SFR's */
572 /* PIC18F2550 configuration words */
575 { { 0x3f, 0, 0xff } /* 0 */ , { 0xcf, 0, 0xff } /* 1 */ , { 0x3f, 0, 0xff } /* 2 */ ,
576 { 0x1f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */ , { 0x87, 0, 0xff } /* 5 */ ,
577 { 0xe5, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ ,
578 { 0xc0, 0, 0xff } /* 9 */ , { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ ,
579 { 0x0f, 0, 0xff } /* c */ , { 0x40, 0, 0xff } /* d */ }
581 { 0x200000, 0x200007,
582 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
583 { 0, 0 }, { 0, 0 }, { 0, 0 } }
587 {"p18f2585", "18f2585", "pic18f2585", "f2585"},
592 { 0xd00, 0xfff }, /* PIC18F2585,2680,4585,4680 range of SFR's */
594 /* PIC18F2585,2680,4585,4680 configuration words */
597 { { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
598 { -1, 0, 0xff } /* 4 */ , { 0x86, 0, 0xff } /* 5 */ , { 0xf5, 0, 0xff } /* 6 */ ,
599 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
600 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
601 { 0x40, 0, 0xff } /* d */ }
603 { 0x200000, 0x200007,
604 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
605 { 0, 0 }, { 0, 0 }, { 0, 0 } }
609 {"p18f25j10", "18f25j10", "pic18f25j10", "f25j10"}, /* also 18f[24][45]j10 */
614 { 0xf80, 0xfff }, /* PIC18F25j10 range of SFR's */
616 /* PIC18F25j10 configuration words */
619 { { 0xe1, 0, 0xff } /* 0 */ , { 0x07, 0, 0xff } /* 1 */ , { 0xc7, 0, 0xff } /* 2 */ ,
620 { 0x0f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */ , { 0x01, 0, 0xff } /* 5 */ ,
621 { -1, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */ , { -1, 0, 0xff } /* 8 */ ,
622 { -1, 0, 0xff } /* 9 */ , { -1, 0, 0xff } /* a */ , { -1, 0, 0xff } /* b */ ,
623 { -1, 0, 0xff } /* c */ , { -1, 0, 0xff } /* d */ }
625 { 0x200000, 0x200007,
626 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
627 { 0, 0 }, { 0, 0 }, { 0, 0 } }
631 {"p18f2620", "18f2620", "pic18f2620", "f2620"},
636 { 0xf80, 0xfff }, /* PIC18F4620,2620 range of SFR's */
638 /* PIC18F4620,2620 configuration words */
641 { { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
642 { -1, 0, 0xff } /* 4 */ , { 0x87, 0, 0xff } /* 5 */ , { 0xc5, 0, 0xff } /* 6 */ ,
643 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
644 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
645 { 0x40, 0, 0xff } /* d */ }
647 { 0x200000, 0x200007,
648 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
649 { 0, 0 }, { 0, 0 }, { 0, 0 } }
653 {"p18f2680", "18f2680", "pic18f2680", "f2680"},
658 { 0xd00, 0xfff }, /* PIC18F2585,2680,4585,4680 range of SFR's */
660 /* PIC18F2585,2680,4585,4680 configuration words */
663 { { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
664 { -1, 0, 0xff } /* 4 */ , { 0x86, 0, 0xff } /* 5 */ , { 0xf5, 0, 0xff } /* 6 */ ,
665 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
666 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
667 { 0x40, 0, 0xff } /* d */ }
669 { 0x200000, 0x200007,
670 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
671 { 0, 0 }, { 0, 0 }, { 0, 0 } }
675 {"p18f2682", "18f2682", "pic18f2682", "f2682"},
680 { 0xd00, 0xfff }, /* PIC18F2682,2685,4682,4685 range of SFR's */
682 /* PIC18F2682,2685,4682,4685 configuration words */
685 { { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
686 { -1, 0, 0xff } /* 4 */ , { 0x86, 0, 0xff } /* 5 */ , { 0xf5, 0, 0xff } /* 6 */ ,
687 { -1, 0, 0xff } /* 7 */ , { 0x3f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
688 { 0x3f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x3f, 0, 0xff } /* c */ ,
689 { 0x40, 0, 0xff } /* d */ }
691 { 0x200000, 0x200007,
692 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
693 { 0, 0 }, { 0, 0 }, { 0, 0 } }
697 {"p18f2685", "18f2685", "pic18f2685", "f2685"},
702 { 0xd00, 0xfff }, /* PIC18F2682,2685,4682,4685 range of SFR's */
704 /* PIC18F2682,2685,4682,4685 configuration words */
707 { { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
708 { -1, 0, 0xff } /* 4 */ , { 0x86, 0, 0xff } /* 5 */ , { 0xf5, 0, 0xff } /* 6 */ ,
709 { -1, 0, 0xff } /* 7 */ , { 0x3f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
710 { 0x3f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x3f, 0, 0xff } /* c */ ,
711 { 0x40, 0, 0xff } /* d */ }
713 { 0x200000, 0x200007,
714 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
715 { 0, 0 }, { 0, 0 }, { 0, 0 } }
719 {"p18f4220", "18f4220", "pic18f4220", "f4220"},
724 { 0xf80, 0xfff }, /* PIC18F4220 range of SFR's */
726 /* PIC18F4220 configuration words */
729 { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
730 { -1, 0, 0xff } /* 4 */ , { 0x83, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
731 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
732 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
733 { 0x40, 0, 0xff } /* d */ }
735 { 0x200000, 0x200007,
736 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
737 { 0, 0 }, { 0, 0 }, { 0, 0 } }
741 {"p18f4221", "18f4221", "pic18f4221", "f4221"}, // also: 2221, 2321, 4321
743 0x200, /* RAM in bytes */
744 0x80, /* access bank split */
746 { 0xf80, 0xfff }, /* range of SFR's */
748 /* configuration words */
749 0x300001, /* first address */
750 0x30000d, /* last address */
751 { { 0xcf, 0, 0x37 } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
752 { -1 , 0, 0xff } /* 4 */ , { 0x87, 0, 0xfb } /* 5 */ , { 0xf5, 0, 0x8f } /* 6 */ ,
753 { -1 , 0, 0xff } /* 7 */ , { 0x03, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
754 { 0x03, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x03, 0, 0xff } /* c */ ,
755 { 0x40, 0, 0xff } /* d */ }
757 /* IDLOCs --- always 0 */
758 { 0x200000, 0x200007,
759 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
760 { 0, 0 }, { 0, 0 }, { 0, 0 } }
764 {"p18f4320", "18f4320", "pic18f4320", "f4320"},
769 { 0xf80, 0xfff }, /* PIC18F4320 range of SFR's */
771 /* PIC18F4320 configuration words */
774 { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
775 { -1, 0, 0xff } /* 4 */ , { 0x83, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
776 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
777 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
778 { 0x40, 0, 0xff } /* d */ }
780 { 0x200000, 0x200007,
781 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
782 { 0, 0 }, { 0, 0 }, { 0, 0 } }
786 {"p18f4321", "18f4321", "pic18f4321", "f4321"}, // also: 2221, 2321, 4221
788 0x200, /* RAM in bytes */
789 0x80, /* access bank split */
791 { 0xf80, 0xfff }, /* range of SFR's */
793 /* configuration words */
794 0x300001, /* first address */
795 0x30000d, /* last address */
796 { { 0xcf, 0, 0x37 } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
797 { -1 , 0, 0xff } /* 4 */ , { 0x87, 0, 0xfb } /* 5 */ , { 0xf5, 0, 0x8f } /* 6 */ ,
798 { -1 , 0, 0xff } /* 7 */ , { 0x03, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
799 { 0x03, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x03, 0, 0xff } /* c */ ,
800 { 0x40, 0, 0xff } /* d */ }
802 /* IDLOCs --- always 0 */
803 { 0x200000, 0x200007,
804 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
805 { 0, 0 }, { 0, 0 }, { 0, 0 } }
809 {"p18f4331", "18f4331", "pic18f4331", "f4331"}, // also: 18f[24][34]31
811 0x300, /* RAM in bytes */
812 0x60, /* access bank split */
814 { 0xf60, 0xfff }, /* range of SFR's */
816 /* configuration words */
817 0x300001, /* first address */
818 0x30000d, /* last address */
819 { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
820 { 0x3c, 0, 0xff } /* 4 */ , { 0x9b, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
821 { -1 , 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
822 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
823 { 0x40, 0, 0xff } /* d */ }
825 /* IDLOCs --- always 0 */
826 { 0x200000, 0x200007,
827 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
828 { 0, 0 }, { 0, 0 }, { 0, 0 } }
832 {"p18f4420", "18f4420", "pic18f4420", "f4420"}, // also: 18f[24][45]20
837 { 0xf80, 0xfff }, /* PIC18F4420 range of SFR's */
839 /* PIC18F4420 configuration words */
842 { { 0x3f, 0, 0xff } /* 0 */ , { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ ,
843 { 0x1f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */ , { 0x87, 0, 0xff } /* 5 */ ,
844 { 0xc5, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ ,
845 { 0xc0, 0, 0xff } /* 9 */ , { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ ,
846 { 0x0f, 0, 0xff } /* c */ , { 0x40, 0, 0xff } /* d */ }
848 { 0x200000, 0x200007,
849 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
850 { 0, 0 }, { 0, 0 }, { 0, 0 } }
854 {"p18f4431", "18f4431", "pic18f4431", "f4431"}, // also: 18f[24][34]31
856 0x300, /* RAM in bytes */
857 0x60, /* access bank split */
859 { 0xf60, 0xfff }, /* range of SFR's */
861 /* configuration words */
862 0x300001, /* first address */
863 0x30000d, /* last address */
864 { { 0xcf, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
865 { 0x3c, 0, 0xff } /* 4 */ , { 0x9b, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
866 { -1 , 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
867 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
868 { 0x40, 0, 0xff } /* d */ }
870 /* IDLOCs --- always 0 */
871 { 0x200000, 0x200007,
872 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
873 { 0, 0 }, { 0, 0 }, { 0, 0 } }
877 {"p18f4455", "18f4455", "pic18f4455", "f4455"},
882 { 0xf62, 0xfff }, /* PIC18F4455 range of SFR's */
884 /* PIC18F4455 configuration words */
887 { { 0x3f, 0, 0xff } /* 0 */ , { 0xcf, 0, 0xff } /* 1 */ , { 0x3f, 0, 0xff } /* 2 */ ,
888 { 0x1f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */ , { 0x87, 0, 0xff } /* 5 */ ,
889 { 0xe5, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ ,
890 { 0xc0, 0, 0xff } /* 9 */ , { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ ,
891 { 0x0f, 0, 0xff } /* c */ , { 0x40, 0, 0xff } /* d */ }
893 { 0x200000, 0x200007,
894 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
895 { 0, 0 }, { 0, 0 }, { 0, 0 } }
899 {"p18f44j10", "18f44j10", "pic18f44j10", "f44j10"}, /* also 18f[24][45]j10 */
904 { 0xf80, 0xfff }, /* PIC18F44j10 range of SFR's */
906 /* PIC18F44j10 configuration words */
909 { { 0xe1, 0, 0xff } /* 0 */ , { 0x07, 0, 0xff } /* 1 */ , { 0xc7, 0, 0xff } /* 2 */ ,
910 { 0x0f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */ , { 0x01, 0, 0xff } /* 5 */ ,
911 { -1, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */ , { -1, 0, 0xff } /* 8 */ ,
912 { -1, 0, 0xff } /* 9 */ , { -1, 0, 0xff } /* a */ , { -1, 0, 0xff } /* b */ ,
913 { -1, 0, 0xff } /* c */ , { -1, 0, 0xff } /* d */ }
915 { 0x200000, 0x200007,
916 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
917 { 0, 0 }, { 0, 0 }, { 0, 0 } }
921 {"p18f4520", "18f4520", "pic18f4520", "f4520"},
926 { 0xf80, 0xfff }, /* PIC18F4520 range of SFR's */
928 /* PIC18F4520 configuration words */
931 { { 0x3f, 0, 0xff } /* 0 */ , { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ ,
932 { 0x1f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */ , { 0x87, 0, 0xff } /* 5 */ ,
933 { 0xc5, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ ,
934 { 0xc0, 0, 0xff } /* 9 */ , { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ ,
935 { 0x0f, 0, 0xff } /* c */ , { 0x40, 0, 0xff } /* d */ }
937 { 0x200000, 0x200007,
938 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
939 { 0, 0 }, { 0, 0 }, { 0, 0 } }
943 {"p18f4525", "18f4525", "pic18f4525", "f4525"},
948 { 0xf80, 0xfff }, /* PIC18F4525,2525 range of SFR's */
950 /* PIC18F4525,2525 configuration words */
953 { { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
954 { -1, 0, 0xff } /* 4 */ , { 0x87, 0, 0xff } /* 5 */ , { 0xc5, 0, 0xff } /* 6 */ ,
955 { -1, 0, 0xff } /* 7 */ , { 0x07, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
956 { 0x07, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x07, 0, 0xff } /* c */ ,
957 { 0x40, 0, 0xff } /* d */ }
959 { 0x200000, 0x200007,
960 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
961 { 0, 0 }, { 0, 0 }, { 0, 0 } }
965 {"p18f4550", "18f4550", "pic18f4550", "f4550"},
970 { 0xf62, 0xfff }, /* PIC18F4550 range of SFR's */
972 /* PIC18F4550 configuration words */
975 { { 0x3f, 0, 0xff } /* 0 */ , { 0xcf, 0, 0xff } /* 1 */ , { 0x3f, 0, 0xff } /* 2 */ ,
976 { 0x1f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */ , { 0x87, 0, 0xff } /* 5 */ ,
977 { 0xe5, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ ,
978 { 0xc0, 0, 0xff } /* 9 */ , { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ ,
979 { 0x0f, 0, 0xff } /* c */ , { 0x40, 0, 0xff } /* d */ }
981 { 0x200000, 0x200007,
982 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
983 { 0, 0 }, { 0, 0 }, { 0, 0 } }
987 {"p18f4585", "18f4585", "pic18f4585", "f4585"},
992 { 0xd00, 0xfff }, /* PIC18F2585,2680,4585,4680 range of SFR's */
994 /* PIC18F2585,2680,4585,4680 configuration words */
997 { { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
998 { -1, 0, 0xff } /* 4 */ , { 0x86, 0, 0xff } /* 5 */ , { 0xf5, 0, 0xff } /* 6 */ ,
999 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
1000 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
1001 { 0x40, 0, 0xff } /* d */ }
1003 { 0x200000, 0x200007,
1004 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
1005 { 0, 0 }, { 0, 0 }, { 0, 0 } }
1009 {"p18f45j10", "18f45j10", "pic18f45j10", "f45j10"}, /* also 18f[24][45]j10 */
1014 { 0xf80, 0xfff }, /* PIC18F45j10 range of SFR's */
1016 /* PIC18F45j10 configuration words */
1019 { { 0xe1, 0, 0xff } /* 0 */ , { 0x07, 0, 0xff } /* 1 */ , { 0xc7, 0, 0xff } /* 2 */ ,
1020 { 0x0f, 0, 0xff } /* 3 */ , { -1, 0, 0xff } /* 4 */ , { 0x01, 0, 0xff } /* 5 */ ,
1021 { -1, 0, 0xff } /* 6 */ , { -1, 0, 0xff } /* 7 */ , { -1, 0, 0xff } /* 8 */ ,
1022 { -1, 0, 0xff } /* 9 */ , { -1, 0, 0xff } /* a */ , { -1, 0, 0xff } /* b */ ,
1023 { -1, 0, 0xff } /* c */ , { -1, 0, 0xff } /* d */ }
1025 { 0x200000, 0x200007,
1026 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
1027 { 0, 0 }, { 0, 0 }, { 0, 0 } }
1031 {"p18f4620", "18f4620", "pic18f4620", "f4620"},
1036 { 0xf80, 0xfff }, /* PIC18F4620,2620 range of SFR's */
1038 /* PIC18F4620,2620 configuration words */
1041 { { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
1042 { -1, 0, 0xff } /* 4 */ , { 0x87, 0, 0xff } /* 5 */ , { 0xc5, 0, 0xff } /* 6 */ ,
1043 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
1044 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
1045 { 0x40, 0, 0xff } /* d */ }
1047 { 0x200000, 0x200007,
1048 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
1049 { 0, 0 }, { 0, 0 }, { 0, 0 } }
1053 {"p18f4680", "18f4680", "pic18f4680", "f4680"},
1058 { 0xd00, 0xfff }, /* PIC18F2585,2680,4585,4680 range of SFR's */
1060 /* PIC18F2585,2680,4585,4680 configuration words */
1063 { { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
1064 { -1, 0, 0xff } /* 4 */ , { 0x86, 0, 0xff } /* 5 */ , { 0xf5, 0, 0xff } /* 6 */ ,
1065 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
1066 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
1067 { 0x40, 0, 0xff } /* d */ }
1069 { 0x200000, 0x200007,
1070 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
1071 { 0, 0 }, { 0, 0 }, { 0, 0 } }
1075 {"p18f4682", "18f4682", "pic18f4682", "f4682"},
1080 { 0xd00, 0xfff }, /* PIC18F2682,2685,4682,4685 range of SFR's */
1082 /* PIC18F2682,2685,4682,4685 configuration words */
1085 { { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
1086 { -1, 0, 0xff } /* 4 */ , { 0x86, 0, 0xff } /* 5 */ , { 0xf5, 0, 0xff } /* 6 */ ,
1087 { -1, 0, 0xff } /* 7 */ , { 0x3f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
1088 { 0x3f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x3f, 0, 0xff } /* c */ ,
1089 { 0x40, 0, 0xff } /* d */ }
1091 { 0x200000, 0x200007,
1092 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
1093 { 0, 0 }, { 0, 0 }, { 0, 0 } }
1097 {"p18f4685", "18f4685", "pic18f4685", "f4685"},
1102 { 0xd00, 0xfff }, /* PIC18F2682,2685,4682,4685 range of SFR's */
1104 /* PIC18F2682,2685,4682,4685 configuration words */
1107 { { 0xcf, 0, 0xff } /* 1 */ , { 0x1f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
1108 { -1, 0, 0xff } /* 4 */ , { 0x86, 0, 0xff } /* 5 */ , { 0xf5, 0, 0xff } /* 6 */ ,
1109 { -1, 0, 0xff } /* 7 */ , { 0x3f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
1110 { 0x3f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x3f, 0, 0xff } /* c */ ,
1111 { 0x40, 0, 0xff } /* d */ }
1113 { 0x200000, 0x200007,
1114 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
1115 { 0, 0 }, { 0, 0 }, { 0, 0 } }
1119 {"p18f6520", "18f6520", "pic18f6520", "f6520"},
1124 { 0xf6b, 0xfff }, /* PIC18F6520 range of SFR's */
1126 /* PIC18F6520 configuration words */
1129 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
1130 { 0x83, 0, 0xff } /* 4 */ , { 0x03, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
1131 { -1, 0, 0xff } /* 7 */ , { 0xff, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
1132 { 0xff, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0xff, 0, 0xff } /* c */ ,
1133 { 0x40, 0, 0xff } /* d */ }
1135 { 0x200000, 0x200007,
1136 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
1137 { 0, 0 }, { 0, 0 }, { 0, 0 } }
1141 {"p18f6620", "18f6620", "pic18f6620", "f6620"},
1146 { 0xf6b, 0xfff }, /* PIC18F6620 range of SFR's */
1148 /* PIC18F6620 configuration words */
1151 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
1152 { 0x83, 0, 0xff } /* 4 */ , { 0x03, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
1153 { -1, 0, 0xff } /* 7 */ , { 0xff, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
1154 { 0xff, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0xff, 0, 0xff } /* c */ ,
1155 { 0x40, 0, 0xff } /* d */ }
1157 { 0x200000, 0x200007,
1158 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
1159 { 0, 0 }, { 0, 0 }, { 0, 0 } }
1163 {"p18f6680", "18f6680", "pic18f6680", "f6680"},
1168 { 0xd60, 0xfff }, /* PIC18F6680 range of SFR's */
1170 /* PIC18F6680 configuration words */
1173 { { 0x2f, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
1174 { 0x83, 0, 0xff } /* 4 */ , { 0x81, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
1175 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
1176 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
1177 { 0x40, 0, 0xff } /* d */ }
1179 { 0x200000, 0x200007,
1180 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
1181 { 0, 0 }, { 0, 0 }, { 0, 0 } }
1185 {"p18f6720", "18f6720", "pic18f6720", "f6720"},
1190 { 0xf6b, 0xfff }, /* PIC18F6720 range of SFR's */
1192 /* PIC18F6720 configuration words */
1195 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
1196 { 0x83, 0, 0xff } /* 4 */ , { 0x03, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
1197 { -1, 0, 0xff } /* 7 */ , { 0xff, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
1198 { 0xff, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0xff, 0, 0xff } /* c */ ,
1199 { 0x40, 0, 0xff } /* d */ }
1201 { 0x200000, 0x200007,
1202 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
1203 { 0, 0 }, { 0, 0 }, { 0, 0 } }
1207 {"p18f8520", "18f8520", "pic18f8520", "f8520"},
1212 { 0xf6b, 0xfff }, /* PIC18F8520 range of SFR's */
1214 /* PIC18F8520 configuration words */
1217 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
1218 { 0x83, 0, 0xff } /* 4 */ , { 0x03, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
1219 { -1, 0, 0xff } /* 7 */ , { 0xff, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
1220 { 0xff, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0xff, 0, 0xff } /* c */ ,
1221 { 0x40, 0, 0xff } /* d */ }
1223 { 0x200000, 0x200007,
1224 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
1225 { 0, 0 }, { 0, 0 }, { 0, 0 } }
1229 {"p18f8620", "18f8620", "pic18f8620", "f8620"},
1234 { 0xf6b, 0xfff }, /* PIC18F8620 range of SFR's */
1236 /* PIC18F8620 configuration words */
1239 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
1240 { 0x83, 0, 0xff } /* 4 */ , { 0x03, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
1241 { -1, 0, 0xff } /* 7 */ , { 0xff, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
1242 { 0xff, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0xff, 0, 0xff } /* c */ ,
1243 { 0x40, 0, 0xff } /* d */ }
1245 { 0x200000, 0x200007,
1246 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
1247 { 0, 0 }, { 0, 0 }, { 0, 0 } }
1251 {"p18f8680", "18f8680", "pic18f8680", "f8680"},
1256 { 0xd60, 0xfff }, /* PIC18F8680 range of SFR's */
1258 /* PIC18F8680 configuration words */
1261 { { 0x2f, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x1f, 0, 0xff } /* 3 */ ,
1262 { 0x83, 0, 0xff } /* 4 */ , { 0x81, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
1263 { -1, 0, 0xff } /* 7 */ , { 0x0f, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
1264 { 0x0f, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0x0f, 0, 0xff } /* c */ ,
1265 { 0x40, 0, 0xff } /* d */ }
1267 { 0x200000, 0x200007,
1268 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
1269 { 0, 0 }, { 0, 0 }, { 0, 0 } }
1273 {"p18f8720", "18f8720", "pic18f8720", "f8720"},
1278 { 0xf6b, 0xfff }, /* PIC18F8720 range of SFR's */
1280 /* PIC18F8720 configuration words */
1283 { { 0x27, 0, 0xff } /* 1 */ , { 0x0f, 0, 0xff } /* 2 */ , { 0x0f, 0, 0xff } /* 3 */ ,
1284 { 0x83, 0, 0xff } /* 4 */ , { 0x03, 0, 0xff } /* 5 */ , { 0x85, 0, 0xff } /* 6 */ ,
1285 { -1, 0, 0xff } /* 7 */ , { 0xff, 0, 0xff } /* 8 */ , { 0xc0, 0, 0xff } /* 9 */ ,
1286 { 0xff, 0, 0xff } /* a */ , { 0xe0, 0, 0xff } /* b */ , { 0xff, 0, 0xff } /* c */ ,
1287 { 0x40, 0, 0xff } /* d */ }
1289 { 0x200000, 0x200007,
1290 { { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 },
1291 { 0, 0 }, { 0, 0 }, { 0, 0 } }