* device/include/pic16/pic18f[24][3456]k20.h,
[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> [<and-mask>]
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 #       The optional <and-mask> will be applied to the value just before
33 #       emitting it into the .asm file (used to disable XINST by default).
34 # idlocrange <first> <last>
35 #       ID locations occupy addresses <first> to <last> (both included).
36 # idword <address> <value>
37 #       Unless overridden in C code, use the given default <value>.
38 #
39
40 name        18f1220
41 ramsize     256
42 split       0x80
43 configrange 0x300001 0x30000d
44 configword  0x300001 0xcf 0xff
45 configword  0x300002 0x0f 0xff
46 configword  0x300003 0x1f 0xff
47 configword  0x300005 0x80 0xff
48 configword  0x300006 0x85 0xff
49 configword  0x300008 0x03 0xff
50 configword  0x300009 0xc0 0xff
51 configword  0x30000a 0x03 0xff
52 configword  0x30000b 0xe0 0xff
53 configword  0x30000c 0x03 0xff
54 configword  0x30000d 0x40 0xff
55 idlocrange  0x200000 0x200007
56
57
58 name        18f1320
59 using       18f1220
60
61
62 name        18f2220
63 ramsize     512
64 split       0x80
65 configrange 0x300001 0x30000d
66 configword  0x300001 0xcf 0xff
67 configword  0x300002 0x0f 0xff
68 configword  0x300003 0x1f 0xff
69 configword  0x300005 0x83 0xff
70 configword  0x300006 0x85 0xff
71 configword  0x300008 0x0f 0xff
72 configword  0x300009 0xc0 0xff
73 configword  0x30000a 0x0f 0xff
74 configword  0x30000b 0xe0 0xff
75 configword  0x30000c 0x0f 0xff
76 configword  0x30000d 0x40 0xff
77 idlocrange  0x200000 0x200007
78
79
80 name        18f2221
81 ramsize     512
82 split       0x80
83 configrange 0x300001 0x30000d
84 configword  0x300001 0xcf 0x37
85 configword  0x300002 0x1f 0xff
86 configword  0x300003 0x1f 0xff
87 configword  0x300005 0x87 0xfb
88 configword  0x300006 0xf5 0x8f 0xbf
89 configword  0x300008 0x03 0xff
90 configword  0x300009 0xc0 0xff
91 configword  0x30000a 0x03 0xff
92 configword  0x30000b 0xe0 0xff
93 configword  0x30000c 0x03 0xff
94 configword  0x30000d 0x40 0xff
95 idlocrange  0x200000 0x200007
96
97
98 name        18f2320
99 using       18f2220
100
101
102 name        18f2321
103 using       18f2221
104
105
106 name        18f2331
107 ramsize     768
108 split       0x60
109 configrange 0x300001 0x30000d
110 configword  0x300001 0xcf 0xff
111 configword  0x300002 0x0f 0xff
112 configword  0x300003 0x3f 0xff
113 configword  0x300004 0x3c 0xff
114 configword  0x300005 0x9d 0xff
115 configword  0x300006 0x85 0xff
116 configword  0x300008 0x0f 0xff
117 configword  0x300009 0xc0 0xff
118 configword  0x30000a 0x0f 0xff
119 configword  0x30000b 0xe0 0xff
120 configword  0x30000c 0x0f 0xff
121 configword  0x30000d 0x40 0xff
122 idlocrange  0x200000 0x200007
123
124
125 name        18f23k20
126 ramsize     512
127 split       0x60
128 configrange 0x300001 0x30000d
129 configword  0x300001 0xcf 0x37
130 configword  0x300002 0x1f 0xff
131 configword  0x300003 0x1f 0xff
132 configword  0x300005 0x8f 0xfb
133 configword  0x300006 0xc5 0xbf 0xbf
134 configword  0x300008 0x0f 0xff
135 configword  0x300009 0xc0 0xff
136 configword  0x30000a 0x0f 0xff
137 configword  0x30000b 0xe0 0xff
138 configword  0x30000c 0x0f 0xff
139 configword  0x30000d 0x40 0xff
140 idlocrange  0x200000 0x200007
141
142
143 name        18f2410
144 ramsize     768
145 split       0x80
146 configrange 0x300001 0x30000d
147 configword  0x300001 0xcf 0x37
148 configword  0x300002 0x1f 0xff
149 configword  0x300003 0x1f 0xfb
150 configword  0x300005 0x87 0xfb
151 configword  0x300006 0xc5 0xbf 0xbf
152 configword  0x300008 0x0f 0xff
153 configword  0x300009 0x40 0xff
154 configword  0x30000a 0x0f 0xff
155 configword  0x30000b 0x60 0xff
156 configword  0x30000c 0x0f 0xff
157 configword  0x30000d 0x40 0xff
158 idlocrange  0x200000 0x200007
159
160
161 name        18f242
162 ramsize     768
163 split       0x80
164 configrange 0x300001 0x30000d
165 configword  0x300001 0x27 0xff
166 configword  0x300002 0x0f 0xff
167 configword  0x300003 0x0f 0xff
168 configword  0x300005 0x01 0xff
169 configword  0x300006 0x85 0xff
170 configword  0x300008 0x0f 0xff
171 configword  0x300009 0xc0 0xff
172 configword  0x30000a 0x0f 0xff
173 configword  0x30000b 0xe0 0xff
174 configword  0x30000c 0x0f 0xff
175 configword  0x30000d 0x40 0xff
176 idlocrange  0x200000 0x200007
177
178
179 name        18f2420
180 ramsize     768
181 split       0x80
182 configrange 0x300001 0x30000d
183 configword  0x300001 0xcf 0x07
184 configword  0x300002 0x1f 0xff
185 configword  0x300003 0x1f 0xff
186 configword  0x300005 0x87 0xfb
187 configword  0x300006 0xc5 0xbf 0xbf
188 configword  0x300008 0x0f 0xff
189 configword  0x300009 0xc0 0xff
190 configword  0x30000a 0x0f 0xff
191 configword  0x30000b 0xe0 0xff
192 configword  0x30000c 0x0f 0xff
193 configword  0x30000d 0x40 0xff
194 idlocrange  0x200000 0x200007
195
196
197 name        18f2423
198 ramsize     768
199 split       0x80
200 configrange 0x300001 0x30000d
201 configword  0x300001 0xcf 0x07
202 configword  0x300002 0x1f 0xff
203 configword  0x300003 0x1f 0xff
204 configword  0x300005 0x87 0xfb
205 configword  0x300006 0xc5 0xbf 0xbf
206 configword  0x300008 0x0f 0xff
207 configword  0x300009 0xc0 0xff
208 configword  0x30000a 0x0f 0xff
209 configword  0x30000b 0xe0 0xff
210 configword  0x30000c 0x0f 0xff
211 configword  0x30000d 0x40 0xff
212 idlocrange  0x200000 0x200007
213
214
215 name        18f2431
216 using       18f2331
217
218
219 name        18f2450
220 # 0x200..0x3FF is not implemented, but we leave that to the linker ;-)
221 ramsize     0x500
222 split       0x60
223 configrange 0x300000 0x30000d
224 configword  0x300000 0x3f 0xc7
225 configword  0x300001 0xcf 0x37
226 configword  0x300002 0x3f 0xdf
227 configword  0x300003 0x1f 0xff
228 configword  0x300005 0x86 0xfb
229 configword  0x300006 0xed 0x97 0xbf
230 configword  0x300008 0x03 0xff
231 configword  0x300009 0x40 0xff
232 configword  0x30000a 0x03 0xff
233 configword  0x30000b 0x60 0xff
234 configword  0x30000c 0x03 0xff
235 configword  0x30000d 0x40 0xff
236 idlocrange  0x200000 0x200007
237
238 name        18f2455
239 ramsize     2048
240 split       0x60
241 configrange 0x300000 0x30000d
242 configword  0x300000 0x3f 0xc0
243 configword  0x300001 0xcf 0x35
244 configword  0x300002 0x3f 0xdf
245 configword  0x300003 0x1f 0xff
246 configword  0x300005 0x87 0xfb
247 configword  0x300006 0xe5 0x9f 0xbf
248 configword  0x300008 0x0f 0xff
249 configword  0x300009 0xc0 0xff
250 configword  0x30000a 0x0f 0xff
251 configword  0x30000b 0xe0 0xff
252 configword  0x30000c 0x0f 0xff
253 configword  0x30000d 0x40 0xff
254 idlocrange  0x200000 0x200007
255
256
257 name        18f248
258 ramsize     768
259 split       0x60
260 configrange 0x300001 0x30000d
261 configword  0x300001 0x27 0xff
262 configword  0x300002 0x0f 0xff
263 configword  0x300003 0x0f 0xff
264 configword  0x300006 0x85 0xff
265 configword  0x300008 0x0f 0xff
266 configword  0x300009 0xc0 0xff
267 configword  0x30000a 0x0f 0xff
268 configword  0x30000b 0xe0 0xff
269 configword  0x30000c 0x0f 0xff
270 configword  0x30000d 0x40 0xff
271 idlocrange  0x200000 0x200007
272
273
274 name        18f2480
275 ramsize     768
276 split       0x60
277 configrange 0x300001 0x30000d
278 configword  0x300001 0xcf 0x37
279 configword  0x300002 0x1f 0xff
280 configword  0x300003 0x1f 0xff
281 configword  0x300005 0x86 0xfb
282 configword  0x300006 0xd5 0xaf 0xbf
283 configword  0x300008 0x0f 0xff
284 configword  0x300009 0xc0 0xff
285 configword  0x30000a 0x0f 0xff
286 configword  0x30000b 0xe0 0xff
287 configword  0x30000c 0x0f 0xff
288 configword  0x30000d 0x40 0xff
289 idlocrange  0x200000 0x200007
290
291
292 name        18f24j10
293 ramsize     1024
294 split       0x80
295 configrange 0x300000 0x300005
296 configword  0x300000 0xe1 0xff
297 configword  0x300001 0x04 0xf7
298 configword  0x300002 0xc7 0xff
299 configword  0x300003 0x0f 0xff
300 configword  0x300005 0x01 0xff
301 idlocrange  0x200000 0x200007
302
303
304 name        18f24k20
305 using       18f23k20
306 ramsize     768
307
308
309 name        18f2510
310 using       18f2410
311 ramsize     1536
312
313
314 name        18f2515
315 using       18f2410
316 ramsize     4096
317
318
319 name        18f252
320 using       18f242
321 ramsize     1536
322
323
324 name        18f2520
325 using       18f2420
326 ramsize     1536
327
328
329 name        18f2523
330 using       18f2423
331 ramsize     1536
332
333
334 name        18f2525
335 ramsize     4096
336 split       0x80
337 configrange 0x300001 0x30000d
338 configword  0x300001 0xcf 0x37
339 configword  0x300002 0x1f 0xff
340 configword  0x300003 0x1f 0xff
341 configword  0x300005 0x87 0xfb
342 configword  0x300006 0xc5 0xbf 0xbf
343 configword  0x300008 0x0f 0xff
344 configword  0x300009 0xc0 0xff
345 configword  0x30000a 0x0f 0xff
346 configword  0x30000b 0xe0 0xff
347 configword  0x30000c 0x0f 0xff
348 configword  0x30000d 0x40 0xff
349 idlocrange  0x200000 0x200007
350
351
352 name        18f2550
353 using       18f2455
354
355
356 name        18f258
357 using       18f248
358 ramsize     1536
359
360
361 name        18f2580
362 using       18f2480
363 ramsize     1536
364
365
366 name        18f2585
367 ramsize     4096
368 split       0x60
369 configrange 0x300001 0x30000d
370 configword  0x300001 0xcf 0x37
371 configword  0x300002 0x1f 0xff
372 configword  0x300003 0x1f 0xff
373 configword  0x300005 0x86 0xfb
374 configword  0x300006 0xf5 0x8f 0xbf
375 configword  0x300008 0x0f 0xff
376 configword  0x300009 0xc0 0xff
377 configword  0x30000a 0x0f 0xff
378 configword  0x30000b 0xe0 0xff
379 configword  0x30000c 0x0f 0xff
380 configword  0x30000d 0x40 0xff
381 idlocrange  0x200000 0x200007
382
383
384 name        18f25j10
385 using       18f24j10
386
387
388 name        18f25k20
389 using       18f23k20
390 ramsize     1536
391
392
393 name        18f2610
394 using       18f2410
395 ramsize     4096
396
397
398 name        18f2620
399 using       18f2525
400
401
402 name        18f2680
403 using       18f2585
404
405
406 name        18f2682
407 ramsize     4096
408 split       0x60
409 configrange 0x300001 0x30000d
410 configword  0x300001 0xcf 0x37
411 configword  0x300002 0x1f 0xff
412 configword  0x300003 0x1f 0xff
413 configword  0x300005 0x86 0xfb
414 configword  0x300006 0xf5 0x8f 0xbf
415 configword  0x300008 0x3f 0xff
416 configword  0x300009 0xc0 0xff
417 configword  0x30000a 0x3f 0xff
418 configword  0x30000b 0xe0 0xff
419 configword  0x30000c 0x3f 0xff
420 configword  0x30000d 0x40 0xff
421 idlocrange  0x200000 0x200007
422
423
424 name        18f2685
425 using       18f2682
426
427
428 name        18f26k20
429 using       18f23k20
430 ramsize     3936
431
432
433 name        18f4220
434 using       18f2220
435
436
437 name        18f4221
438 using       18f2221
439
440
441 name        18f4320
442 using       18f2220
443
444
445 name        18f4321
446 using       18f2221
447
448
449 name        18f4331
450 using       18f2331
451
452
453 name        18f43k20
454 using       18f23k20
455
456
457 name        18f4410
458 using       18f2410
459 ramsize     768
460
461
462 name        18f442
463 using       18f242
464
465
466 name        18f4420
467 using       18f2420
468
469
470 name        18f4423
471 using       18f2423
472
473
474 name        18f4431
475 using       18f2331
476
477
478 name        18f4450
479 using       18f2450
480
481 name        18f4455
482 using       18f2455
483
484
485 name        18f448
486 using       18f248
487
488
489 name        18f4480
490 using       18f2480
491
492
493 name        18f44j10
494 using       18f24j10
495
496
497 name        18f44k20
498 using       18f23k20
499 ramsize     768
500
501
502 name        18f4510
503 using       18f2410
504 ramsize     1536
505
506
507 name        18f4515
508 using       18f2410
509 ramsize     4096
510
511
512 name        18f452
513 using       18f242
514 ramsize     1536
515
516
517 name        18f4520
518 using       18f2420
519 ramsize     1536
520
521
522 name        18f4523
523 using       18f2423
524 ramsize     1536
525
526 name        18f4525
527 using       18f2525
528
529
530 name        18f4550
531 using       18f2455
532
533
534 name        18f458
535 using       18f248
536 ramsize     1536
537
538
539 name        18f4580
540 using       18f2480
541 ramsize     1536
542
543
544 name        18f4585
545 using       18f2585
546
547
548 name        18f45j10
549 using       18f24j10
550
551
552 name        18f45k20
553 using       18f23k20
554 ramsize     1536
555
556
557 name        18f4610
558 using       18f2410
559 ramsize     4096
560
561
562 name        18f4620
563 using       18f2525
564
565
566 name        18f4680
567 using       18f2585
568
569
570 name        18f4682
571 using       18f2682
572
573
574 name        18f4685
575 using       18f2682
576
577
578 name        18f46k20
579 using       18f23k20
580 ramsize     3936
581
582
583 name        18f6520
584 ramsize     2048
585 split       0x60
586 configrange 0x300001 0x30000d
587 configword  0x300001 0x27 0xff
588 configword  0x300002 0x0f 0xff
589 configword  0x300003 0x0f 0xff
590 configword  0x300004 0x83 0xff
591 configword  0x300005 0x03 0xff
592 configword  0x300006 0x85 0xff
593 configword  0x300008 0xff 0xff
594 configword  0x300009 0xc0 0xff
595 configword  0x30000a 0xff 0xff
596 configword  0x30000b 0xe0 0xff
597 configword  0x30000c 0xff 0xff
598 configword  0x30000d 0x40 0xff
599 idlocrange  0x200000 0x200007
600
601
602 name        18f6585
603 ramsize     3328
604 split       0x60
605 configrange 0x300001 0x30000d
606 configword  0x300001 0x2f 0xff
607 configword  0x300002 0x0f 0xff
608 configword  0x300003 0x1f 0xff
609 configword  0x300004 0x83 0xff
610 configword  0x300005 0x83 0xff
611 configword  0x300006 0x85 0xff
612 configword  0x300008 0x0f 0xff
613 configword  0x300009 0xc0 0xff
614 configword  0x30000a 0x0f 0xff
615 configword  0x30000b 0xe0 0xff
616 configword  0x30000c 0x0f 0xff
617 configword  0x30000d 0x40 0xff
618 idlocrange  0x200000 0x200007
619
620
621 name        18f65j50
622 ramsize     3904
623 split       0x60
624 configrange 0x7ff8 0x7ffd
625 configword  0x7ff8 0xef 0xff 0xbf
626 configword  0x7ff9 0x07 0xff
627 configword  0x7ffa 0xc7 0xff
628 configword  0x7ffb 0x0f 0xff
629 configword  0x7ffc 0xf8 0xff
630 configword  0x7ffd 0x0f 0xff
631
632
633 name        18f6620
634 using       18f6520
635 ramsize     3840
636
637
638 name        18f6680
639 using       18f6585
640
641 name        18f66j50
642 ramsize     3904
643 split       0x60
644 configrange 0xfff8 0xfffd
645 configword  0xfff8 0xef 0xff 0xbf
646 configword  0xfff9 0x07 0xff
647 configword  0xfffa 0xc7 0xff
648 configword  0xfffb 0x0f 0xff
649 configword  0xfffc 0xf8 0xff
650 configword  0xfffd 0x0f 0xff
651
652
653 name        18f66j55
654 ramsize     3904
655 split       0x60
656 configrange 0x17ff8 0x17ffd
657 configword  0x17ff8 0xef 0xff 0xbf
658 configword  0x17ff9 0x07 0xff
659 configword  0x17ffa 0xc7 0xff
660 configword  0x17ffb 0x0f 0xff
661 configword  0x17ffc 0xf8 0xff
662 configword  0x17ffd 0x0f 0xff
663
664
665 name        18f6720
666 using       18f6520
667 ramsize     3840
668
669
670 name        18f67j50
671 ramsize     3904
672 split       0x60
673 configrange 0x1fff8 0x1fffd
674 configword  0x1fff8 0xef 0xff 0xbf
675 configword  0x1fff9 0x07 0xff
676 configword  0x1fffa 0xc7 0xff
677 configword  0x1fffb 0x0f 0xff
678 configword  0x1fffc 0xf8 0xff
679 configword  0x1fffd 0x0f 0xff
680
681
682 name        18f8520
683 using       18f6520
684
685
686 name        18f8585
687 using       18f6585
688
689
690 name        18f8620
691 using       18f6520
692 ramsize     3840
693
694
695 name        18f8680
696 using       18f6585
697
698
699 name        18f8720
700 using       18f6520
701 ramsize     3840
702
703
704 name        18f66j60
705 ramsize     4096
706 split       0x60
707 configrange 0xfff8 0xfffd
708 configword  0xfff8 0xc1 0xff
709 configword  0xfff9 0x04 0xf7
710 configword  0xfffa 0xc7 0xff
711 configword  0xfffb 0x0f 0xff
712 configword  0xfffc 0xf8 0xff
713 configword  0xfffd 0x07 0xff
714
715
716 name        18f66j65
717 ramsize     4096
718 split       0x60
719 configrange 0x17ff8 0x17ffd
720 configword  0x17ff8 0xc1 0xff
721 configword  0x17ff9 0x04 0xf7
722 configword  0x17ffa 0xc7 0xff
723 configword  0x17ffb 0x0f 0xff
724 configword  0x17ffc 0xf8 0xff
725 configword  0x17ffd 0x07 0xff
726
727
728 name        18f67j60
729 ramsize     4096
730 split       0x60
731 configrange 0x1fff8 0x1fffd
732 configword  0x1fff8 0xc1 0xff
733 configword  0x1fff9 0x04 0xf7
734 configword  0x1fffa 0xc7 0xff
735 configword  0x1fffb 0x0f 0xff
736 configword  0x1fffc 0xf8 0xff
737 configword  0x1fffd 0x07 0xff
738
739
740 name        18f85j50
741 using       18f65j50
742
743
744 name        18f86j50
745 using       18f66j50
746
747
748 name        18f86j55
749 using       18f66j55
750
751
752 name        18f86j60
753 using       18f66j60
754
755
756 name        18f86j65
757 using       18f66j65
758
759
760 name        18f87j50
761 using       18f67j50
762
763
764 name        18f87j60
765 using       18f67j60
766
767
768 name        18f96j60
769 using       18f66j60
770
771
772 name        18f96j65
773 using       18f66j65
774
775
776 name        18f97j60
777 using       18f67j60
778