fdb4dd6dc01ae1732e11809d5ff48cbf5978b3a8
[fw/sdcc] / device / include / pic16 / pic16devices.txt
1 #
2 # Specification of devices supported by the PIC16 target of the
3 # Small Devices C Compiler (SDCC).
4 #
5 # Lines starting with a hash '#' are ignored.
6 # A new device specification must begin with a 'name' command.
7 # Numbers can be given in any way acceptable for scanf's %d,
8 # i.e., octal (0[0-7]*), decimal ([1-9][0-9]*), or hexadecimal
9 # (0[xX][0-9a-fA-F]+).
10 # Strings must not be quoted and may not contain whitespace!
11 #
12 # Valid commands are:
13 # name <name>
14 #       Begin specification of device type <name>, e.g. 18f6720.
15 #       Aliases 'p<name>' and 'pic<name>' will be recognized as well.
16 # using <name>
17 #       Import specification from the named entry, which must be defined
18 #       earlier. Later commands overrule imported ones.
19 # ramsize <size>
20 #       This device has <size> bytes of RAM.
21 # split <offset>
22 #       Addresses below <offset> refer to bank 0, addresses above <offset>
23 #       refer to SFRs in bank 15 for references via the access bank.
24 # configrange <first> <last>
25 #       Configuration registers occupy addresses <first> to <last> (both
26 #       included).
27 # configword <address> <mask> <value>
28 #       The config word at address <address> only implements the bits
29 #       indicated via <mask> (all others will be forced to 0 by the
30 #       compiler).
31 #       Unless overridden in C code, use the given default <value>.
32 # idlocrange <first> <last>
33 #       ID locations occupy addresses <first> to <last> (both included).
34 # idword <address> <value>
35 #       Unless overridden in C code, use the given default <value>.
36 #
37
38 name        18f1220
39 ramsize     256
40 split       0x80
41 configrange 0x300001 0x30000d
42 configword  0x300001 0xcf 0xff
43 configword  0x300002 0x0f 0xff
44 configword  0x300003 0x1f 0xff
45 configword  0x300005 0x80 0xff
46 configword  0x300006 0x85 0xff
47 configword  0x300008 0x03 0xff
48 configword  0x300009 0xc0 0xff
49 configword  0x30000a 0x03 0xff
50 configword  0x30000b 0xe0 0xff
51 configword  0x30000c 0x03 0xff
52 configword  0x30000d 0x40 0xff
53 idlocrange  0x200000 0x200007
54
55
56 name        18f1320
57 using       18f1220
58
59
60 name        18f2220
61 ramsize     512
62 split       0x80
63 configrange 0x300001 0x30000d
64 configword  0x300001 0xcf 0xff
65 configword  0x300002 0x0f 0xff
66 configword  0x300003 0x1f 0xff
67 configword  0x300005 0x83 0xff
68 configword  0x300006 0x85 0xff
69 configword  0x300008 0x0f 0xff
70 configword  0x300009 0xc0 0xff
71 configword  0x30000a 0x0f 0xff
72 configword  0x30000b 0xe0 0xff
73 configword  0x30000c 0x0f 0xff
74 configword  0x30000d 0x40 0xff
75 idlocrange  0x200000 0x200007
76
77
78 name        18f2221
79 ramsize     512
80 split       0x80
81 configrange 0x300001 0x30000d
82 configword  0x300001 0xcf 0x37
83 configword  0x300002 0x1f 0xff
84 configword  0x300003 0x1f 0xff
85 configword  0x300005 0x87 0xfb
86 configword  0x300006 0xf5 0x8f
87 configword  0x300008 0x03 0xff
88 configword  0x300009 0xc0 0xff
89 configword  0x30000a 0x03 0xff
90 configword  0x30000b 0xe0 0xff
91 configword  0x30000c 0x03 0xff
92 configword  0x30000d 0x40 0xff
93 idlocrange  0x200000 0x200007
94
95
96 name        18f2320
97 using       18f2220
98
99
100 name        18f2321
101 using       18f2221
102
103
104 name        18f2331
105 ramsize     768
106 split       0x60
107 configrange 0x300001 0x30000d
108 configword  0x300001 0xcf 0xff
109 configword  0x300002 0x0f 0xff
110 configword  0x300003 0x3f 0xff
111 configword  0x300004 0x3c 0xff
112 configword  0x300005 0x9d 0xff
113 configword  0x300006 0x85 0xff
114 configword  0x300008 0x0f 0xff
115 configword  0x300009 0xc0 0xff
116 configword  0x30000a 0x0f 0xff
117 configword  0x30000b 0xe0 0xff
118 configword  0x30000c 0x0f 0xff
119 configword  0x30000d 0x40 0xff
120 idlocrange  0x200000 0x200007
121
122
123 name        18f242
124 ramsize     768
125 split       0x80
126 configrange 0x300001 0x30000d
127 configword  0x300001 0x27 0xff
128 configword  0x300002 0x0f 0xff
129 configword  0x300003 0x0f 0xff
130 configword  0x300005 0x01 0xff
131 configword  0x300006 0x85 0xff
132 configword  0x300008 0x0f 0xff
133 configword  0x300009 0xc0 0xff
134 configword  0x30000a 0x0f 0xff
135 configword  0x30000b 0xe0 0xff
136 configword  0x30000c 0x0f 0xff
137 configword  0x30000d 0x40 0xff
138 idlocrange  0x200000 0x200007
139
140
141 name        18f2420
142 ramsize     768
143 split       0x80
144 configrange 0x300001 0x30000d
145 configword  0x300001 0xcf 0x07
146 configword  0x300002 0x1f 0xff
147 configword  0x300003 0x1f 0xff
148 configword  0x300005 0x87 0xfb
149 configword  0x300006 0xc5 0xbf
150 configword  0x300008 0x0f 0xff
151 configword  0x300009 0xc0 0xff
152 configword  0x30000a 0x0f 0xff
153 configword  0x30000b 0xe0 0xff
154 configword  0x30000c 0x0f 0xff
155 configword  0x30000d 0x40 0xff
156 idlocrange  0x200000 0x200007
157
158
159 name        18f2423
160 ramsize     768
161 split       0x80
162 configrange 0x300001 0x30000d
163 configword  0x300001 0xcf 0x07
164 configword  0x300002 0x1f 0xff
165 configword  0x300003 0x1f 0xff
166 configword  0x300005 0x87 0xfb
167 configword  0x300006 0xc5 0xbf
168 configword  0x300008 0x0f 0xff
169 configword  0x300009 0xc0 0xff
170 configword  0x30000a 0x0f 0xff
171 configword  0x30000b 0xe0 0xff
172 configword  0x30000c 0x0f 0xff
173 configword  0x30000d 0x40 0xff
174 idlocrange  0x200000 0x200007
175
176
177 name        18f2431
178 using       18f2331
179
180
181 name        18f2455
182 ramsize     2048
183 split       0x60
184 configrange 0x300000 0x30000d
185 configword  0x300000 0x3f 0xc0
186 configword  0x300001 0xcf 0x35
187 configword  0x300002 0x3f 0xdf
188 configword  0x300003 0x1f 0xff
189 configword  0x300005 0x87 0xfb
190 configword  0x300006 0xe5 0x9f
191 configword  0x300008 0x0f 0xff
192 configword  0x300009 0xc0 0xff
193 configword  0x30000a 0x0f 0xff
194 configword  0x30000b 0xe0 0xff
195 configword  0x30000c 0x0f 0xff
196 configword  0x30000d 0x40 0xff
197 idlocrange  0x200000 0x200007
198
199
200 name        18f248
201 ramsize     768
202 split       0x60
203 configrange 0x300001 0x30000d
204 configword  0x300001 0x27 0xff
205 configword  0x300002 0x0f 0xff
206 configword  0x300003 0x0f 0xff
207 configword  0x300006 0x85 0xff
208 configword  0x300008 0x0f 0xff
209 configword  0x300009 0xc0 0xff
210 configword  0x30000a 0x0f 0xff
211 configword  0x30000b 0xe0 0xff
212 configword  0x30000c 0x0f 0xff
213 configword  0x30000d 0x40 0xff
214 idlocrange  0x200000 0x200007
215
216
217 name        18f2480
218 ramsize     768
219 split       0x60
220 configrange 0x300001 0x30000d
221 configword  0x300001 0xcf 0x37
222 configword  0x300002 0x1f 0xff
223 configword  0x300003 0x1f 0xff
224 configword  0x300005 0x86 0xfb
225 configword  0x300006 0xd5 0xaf
226 configword  0x300008 0x0f 0xff
227 configword  0x300009 0xc0 0xff
228 configword  0x30000a 0x0f 0xff
229 configword  0x30000b 0xe0 0xff
230 configword  0x30000c 0x0f 0xff
231 configword  0x30000d 0x40 0xff
232 idlocrange  0x200000 0x200007
233
234
235 name        18f24j10
236 ramsize     1024
237 split       0x80
238 configrange 0x300000 0x300005
239 configword  0x300000 0xe1 0xff
240 configword  0x300001 0x04 0xf7
241 configword  0x300002 0xc7 0xff
242 configword  0x300003 0x0f 0xff
243 configword  0x300005 0x01 0xff
244 idlocrange  0x200000 0x200007
245
246
247 name        18f252
248 using       18f242
249 ramsize     1536
250
251
252 name        18f2520
253 using       18f2420
254 ramsize     1536
255
256
257 name        18f2523
258 using       18f2423
259 ramsize     1536
260
261
262 name        18f2525
263 ramsize     4096
264 split       0x80
265 configrange 0x300001 0x30000d
266 configword  0x300001 0xcf 0x37
267 configword  0x300002 0x1f 0xff
268 configword  0x300003 0x1f 0xff
269 configword  0x300005 0x87 0xfb
270 configword  0x300006 0xc5 0xbf
271 configword  0x300008 0x0f 0xff
272 configword  0x300009 0xc0 0xff
273 configword  0x30000a 0x0f 0xff
274 configword  0x30000b 0xe0 0xff
275 configword  0x30000c 0x0f 0xff
276 configword  0x30000d 0x40 0xff
277 idlocrange  0x200000 0x200007
278
279
280 name        18f2550
281 using       18f2455
282
283
284 name        18f258
285 using       18f248
286 ramsize     1536
287
288
289 name        18f2580
290 using       18f2480
291 ramsize     1536
292
293
294 name        18f2585
295 ramsize     4096
296 split       0x60
297 configrange 0x300001 0x30000d
298 configword  0x300001 0xcf 0x37
299 configword  0x300002 0x1f 0xff
300 configword  0x300003 0x1f 0xff
301 configword  0x300005 0x86 0xfb
302 configword  0x300006 0xf5 0x8f
303 configword  0x300008 0x0f 0xff
304 configword  0x300009 0xc0 0xff
305 configword  0x30000a 0x0f 0xff
306 configword  0x30000b 0xe0 0xff
307 configword  0x30000c 0x0f 0xff
308 configword  0x30000d 0x40 0xff
309 idlocrange  0x200000 0x200007
310
311
312 name        18f25j10
313 using       18f24j10
314
315
316 name        18f2620
317 using       18f2525
318
319
320 name        18f2680
321 using       18f2585
322
323
324 name        18f2682
325 ramsize     4096
326 split       0x60
327 configrange 0x300001 0x30000d
328 configword  0x300001 0xcf 0x37
329 configword  0x300002 0x1f 0xff
330 configword  0x300003 0x1f 0xff
331 configword  0x300005 0x86 0xfb
332 configword  0x300006 0xf5 0x8f
333 configword  0x300008 0x3f 0xff
334 configword  0x300009 0xc0 0xff
335 configword  0x30000a 0x3f 0xff
336 configword  0x30000b 0xe0 0xff
337 configword  0x30000c 0x3f 0xff
338 configword  0x30000d 0x40 0xff
339 idlocrange  0x200000 0x200007
340
341
342 name        18f2685
343 using       18f2682
344
345
346 name        18f4220
347 using       18f2220
348
349
350 name        18f4221
351 using       18f2221
352
353
354 name        18f4320
355 using       18f2220
356
357
358 name        18f4321
359 using       18f2221
360
361
362 name        18f4331
363 using       18f2331
364
365
366 name        18f442
367 using       18f242
368
369
370 name        18f4420
371 using       18f2420
372
373
374 name        18f4423
375 using       18f2423
376
377
378 name        18f4431
379 using       18f2331
380
381
382 name        18f4455
383 using       18f2455
384
385
386 name        18f448
387 using       18f248
388
389
390 name        18f4480
391 using       18f2480
392
393
394 name        18f44j10
395 using       18f24j10
396
397
398 name        18f452
399 using       18f242
400 ramsize     1536
401
402
403 name        18f4520
404 using       18f2420
405 ramsize     1536
406
407
408 name        18f4523
409 using       18f2423
410 ramsize     1536
411
412 name        18f4525
413 using       18f2525
414
415
416 name        18f4550
417 using       18f2455
418
419
420 name        18f458
421 using       18f248
422 ramsize     1536
423
424
425 name        18f4580
426 using       18f2480
427 ramsize     1536
428
429
430 name        18f4585
431 using       18f2585
432
433
434 name        18f45j10
435 using       18f24j10
436
437
438 name        18f4620
439 using       18f2525
440
441
442 name        18f4680
443 using       18f2585
444
445
446 name        18f4682
447 using       18f2682
448
449
450 name        18f4685
451 using       18f2682
452
453
454 name        18f6520
455 ramsize     2048
456 split       0x60
457 configrange 0x300001 0x30000d
458 configword  0x300001 0x27 0xff
459 configword  0x300002 0x0f 0xff
460 configword  0x300003 0x0f 0xff
461 configword  0x300004 0x83 0xff
462 configword  0x300005 0x03 0xff
463 configword  0x300006 0x85 0xff
464 configword  0x300008 0xff 0xff
465 configword  0x300009 0xc0 0xff
466 configword  0x30000a 0xff 0xff
467 configword  0x30000b 0xe0 0xff
468 configword  0x30000c 0xff 0xff
469 configword  0x30000d 0x40 0xff
470 idlocrange  0x200000 0x200007
471
472
473 name        18f6585
474 ramsize     3328
475 split       0x60
476 configrange 0x300001 0x30000d
477 configword  0x300001 0x2f 0xff
478 configword  0x300002 0x0f 0xff
479 configword  0x300003 0x1f 0xff
480 configword  0x300004 0x83 0xff
481 configword  0x300005 0x83 0xff
482 configword  0x300006 0x85 0xff
483 configword  0x300008 0x0f 0xff
484 configword  0x300009 0xc0 0xff
485 configword  0x30000a 0x0f 0xff
486 configword  0x30000b 0xe0 0xff
487 configword  0x30000c 0x0f 0xff
488 configword  0x30000d 0x40 0xff
489 idlocrange  0x200000 0x200007
490
491
492 name        18f6620
493 using       18f6520
494 ramsize     3840
495
496
497 name        18f6680
498 using       18f6585
499
500
501 name        18f6720
502 using       18f6520
503 ramsize     3840
504
505
506 name        18f8520
507 using       18f6520
508
509
510 name        18f8585
511 using       18f6585
512
513
514 name        18f8620
515 using       18f6520
516 ramsize     3840
517
518
519 name        18f8680
520 using       18f6585
521
522
523 name        18f8720
524 using       18f6520
525 ramsize     3840
526
527
528 name        18f66j60
529 ramsize     4096
530 split       0x60
531 configrange 0xfff8 0xfffd
532 configword  0xfff8 0xc1 0xff
533 configword  0xfff9 0x04 0xf7
534 configword  0xfffa 0xc7 0xff
535 configword  0xfffb 0x0f 0xff
536 configword  0xfffc 0xf8 0xff
537 configword  0xfffd 0x07 0xff
538
539
540 name        18f66j65
541 ramsize     4096
542 split       0x60
543 configrange 0x17ff8 0x17ffd
544 configword  0x17ff8 0xc1 0xff
545 configword  0x17ff9 0x04 0xf7
546 configword  0x17ffa 0xc7 0xff
547 configword  0x17ffb 0x0f 0xff
548 configword  0x17ffc 0xf8 0xff
549 configword  0x17ffd 0x07 0xff
550
551
552 name        18f67j60
553 ramsize     4096
554 split       0x60
555 configrange 0x1fff8 0x1fffd
556 configword  0x1fff8 0xc1 0xff
557 configword  0x1fff9 0x04 0xf7
558 configword  0x1fffa 0xc7 0xff
559 configword  0x1fffb 0x0f 0xff
560 configword  0x1fffc 0xf8 0xff
561 configword  0x1fffd 0x07 0xff
562
563
564 name        18f86j60
565 using       18f66j60
566
567
568 name        18f86j65
569 using       18f66j65
570
571
572 name        18f87j60
573 using       18f67j60
574
575
576 name        18f96j60
577 using       18f66j60
578
579
580 name        18f96j65
581 using       18f66j65
582
583
584 name        18f97j60
585 using       18f67j60
586