45aec7d46521c2eb45bf43e150158f0e79e553f6
[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        18f2410
126 ramsize     768
127 split       0x80
128 configrange 0x300001 0x30000d
129 configword  0x300001 0xcf 0x37
130 configword  0x300002 0x1f 0xff
131 configword  0x300003 0x1f 0xfb
132 configword  0x300005 0x87 0xfb
133 configword  0x300006 0xc5 0xbf 0xbf
134 configword  0x300008 0x0f 0xff
135 configword  0x300009 0x40 0xff
136 configword  0x30000a 0x0f 0xff
137 configword  0x30000b 0x60 0xff
138 configword  0x30000c 0x0f 0xff
139 configword  0x30000d 0x40 0xff
140 idlocrange  0x200000 0x200007
141
142
143 name        18f242
144 ramsize     768
145 split       0x80
146 configrange 0x300001 0x30000d
147 configword  0x300001 0x27 0xff
148 configword  0x300002 0x0f 0xff
149 configword  0x300003 0x0f 0xff
150 configword  0x300005 0x01 0xff
151 configword  0x300006 0x85 0xff
152 configword  0x300008 0x0f 0xff
153 configword  0x300009 0xc0 0xff
154 configword  0x30000a 0x0f 0xff
155 configword  0x30000b 0xe0 0xff
156 configword  0x30000c 0x0f 0xff
157 configword  0x30000d 0x40 0xff
158 idlocrange  0x200000 0x200007
159
160
161 name        18f2420
162 ramsize     768
163 split       0x80
164 configrange 0x300001 0x30000d
165 configword  0x300001 0xcf 0x07
166 configword  0x300002 0x1f 0xff
167 configword  0x300003 0x1f 0xff
168 configword  0x300005 0x87 0xfb
169 configword  0x300006 0xc5 0xbf 0xbf
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        18f2423
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        18f2431
198 using       18f2331
199
200
201 name        18f2450
202 # 0x200..0x3FF is not implemented, but we leave that to the linker ;-)
203 ramsize     0x500
204 split       0x60
205 configrange 0x300000 0x30000d
206 configword  0x300000 0x3f 0xc7
207 configword  0x300001 0xcf 0x37
208 configword  0x300002 0x3f 0xdf
209 configword  0x300003 0x1f 0xff
210 configword  0x300005 0x86 0xfb
211 configword  0x300006 0xed 0x97 0xbf
212 configword  0x300008 0x03 0xff
213 configword  0x300009 0x40 0xff
214 configword  0x30000a 0x03 0xff
215 configword  0x30000b 0x60 0xff
216 configword  0x30000c 0x03 0xff
217 configword  0x30000d 0x40 0xff
218 idlocrange  0x200000 0x200007
219
220 name        18f2455
221 ramsize     2048
222 split       0x60
223 configrange 0x300000 0x30000d
224 configword  0x300000 0x3f 0xc0
225 configword  0x300001 0xcf 0x35
226 configword  0x300002 0x3f 0xdf
227 configword  0x300003 0x1f 0xff
228 configword  0x300005 0x87 0xfb
229 configword  0x300006 0xe5 0x9f 0xbf
230 configword  0x300008 0x0f 0xff
231 configword  0x300009 0xc0 0xff
232 configword  0x30000a 0x0f 0xff
233 configword  0x30000b 0xe0 0xff
234 configword  0x30000c 0x0f 0xff
235 configword  0x30000d 0x40 0xff
236 idlocrange  0x200000 0x200007
237
238
239 name        18f248
240 ramsize     768
241 split       0x60
242 configrange 0x300001 0x30000d
243 configword  0x300001 0x27 0xff
244 configword  0x300002 0x0f 0xff
245 configword  0x300003 0x0f 0xff
246 configword  0x300006 0x85 0xff
247 configword  0x300008 0x0f 0xff
248 configword  0x300009 0xc0 0xff
249 configword  0x30000a 0x0f 0xff
250 configword  0x30000b 0xe0 0xff
251 configword  0x30000c 0x0f 0xff
252 configword  0x30000d 0x40 0xff
253 idlocrange  0x200000 0x200007
254
255
256 name        18f2480
257 ramsize     768
258 split       0x60
259 configrange 0x300001 0x30000d
260 configword  0x300001 0xcf 0x37
261 configword  0x300002 0x1f 0xff
262 configword  0x300003 0x1f 0xff
263 configword  0x300005 0x86 0xfb
264 configword  0x300006 0xd5 0xaf 0xbf
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        18f24j10
275 ramsize     1024
276 split       0x80
277 configrange 0x300000 0x300005
278 configword  0x300000 0xe1 0xff
279 configword  0x300001 0x04 0xf7
280 configword  0x300002 0xc7 0xff
281 configword  0x300003 0x0f 0xff
282 configword  0x300005 0x01 0xff
283 idlocrange  0x200000 0x200007
284
285
286 name        18f2510
287 using       18f2410
288 ramsize     1536
289
290
291 name        18f2515
292 using       18f2410
293 ramsize     4096
294
295
296 name        18f252
297 using       18f242
298 ramsize     1536
299
300
301 name        18f2520
302 using       18f2420
303 ramsize     1536
304
305
306 name        18f2523
307 using       18f2423
308 ramsize     1536
309
310
311 name        18f2525
312 ramsize     4096
313 split       0x80
314 configrange 0x300001 0x30000d
315 configword  0x300001 0xcf 0x37
316 configword  0x300002 0x1f 0xff
317 configword  0x300003 0x1f 0xff
318 configword  0x300005 0x87 0xfb
319 configword  0x300006 0xc5 0xbf 0xbf
320 configword  0x300008 0x0f 0xff
321 configword  0x300009 0xc0 0xff
322 configword  0x30000a 0x0f 0xff
323 configword  0x30000b 0xe0 0xff
324 configword  0x30000c 0x0f 0xff
325 configword  0x30000d 0x40 0xff
326 idlocrange  0x200000 0x200007
327
328
329 name        18f2550
330 using       18f2455
331
332
333 name        18f258
334 using       18f248
335 ramsize     1536
336
337
338 name        18f2580
339 using       18f2480
340 ramsize     1536
341
342
343 name        18f2585
344 ramsize     4096
345 split       0x60
346 configrange 0x300001 0x30000d
347 configword  0x300001 0xcf 0x37
348 configword  0x300002 0x1f 0xff
349 configword  0x300003 0x1f 0xff
350 configword  0x300005 0x86 0xfb
351 configword  0x300006 0xf5 0x8f 0xbf
352 configword  0x300008 0x0f 0xff
353 configword  0x300009 0xc0 0xff
354 configword  0x30000a 0x0f 0xff
355 configword  0x30000b 0xe0 0xff
356 configword  0x30000c 0x0f 0xff
357 configword  0x30000d 0x40 0xff
358 idlocrange  0x200000 0x200007
359
360
361 name        18f25j10
362 using       18f24j10
363
364
365 name        18f2610
366 using       18f2410
367 ramsize     4096
368
369
370 name        18f2620
371 using       18f2525
372
373
374 name        18f2680
375 using       18f2585
376
377
378 name        18f2682
379 ramsize     4096
380 split       0x60
381 configrange 0x300001 0x30000d
382 configword  0x300001 0xcf 0x37
383 configword  0x300002 0x1f 0xff
384 configword  0x300003 0x1f 0xff
385 configword  0x300005 0x86 0xfb
386 configword  0x300006 0xf5 0x8f 0xbf
387 configword  0x300008 0x3f 0xff
388 configword  0x300009 0xc0 0xff
389 configword  0x30000a 0x3f 0xff
390 configword  0x30000b 0xe0 0xff
391 configword  0x30000c 0x3f 0xff
392 configword  0x30000d 0x40 0xff
393 idlocrange  0x200000 0x200007
394
395
396 name        18f2685
397 using       18f2682
398
399
400 name        18f4220
401 using       18f2220
402
403
404 name        18f4221
405 using       18f2221
406
407
408 name        18f4320
409 using       18f2220
410
411
412 name        18f4321
413 using       18f2221
414
415
416 name        18f4331
417 using       18f2331
418
419
420 name        18f4410
421 using       18f2410
422 ramsize     768
423
424
425 name        18f442
426 using       18f242
427
428
429 name        18f4420
430 using       18f2420
431
432
433 name        18f4423
434 using       18f2423
435
436
437 name        18f4431
438 using       18f2331
439
440
441 name        18f4450
442 using       18f2450
443
444 name        18f4455
445 using       18f2455
446
447
448 name        18f448
449 using       18f248
450
451
452 name        18f4480
453 using       18f2480
454
455
456 name        18f44j10
457 using       18f24j10
458
459
460 name        18f4510
461 using       18f2410
462 ramsize     1536
463
464
465 name        18f4515
466 using       18f2410
467 ramsize     4096
468
469
470 name        18f452
471 using       18f242
472 ramsize     1536
473
474
475 name        18f4520
476 using       18f2420
477 ramsize     1536
478
479
480 name        18f4523
481 using       18f2423
482 ramsize     1536
483
484 name        18f4525
485 using       18f2525
486
487
488 name        18f4550
489 using       18f2455
490
491
492 name        18f458
493 using       18f248
494 ramsize     1536
495
496
497 name        18f4580
498 using       18f2480
499 ramsize     1536
500
501
502 name        18f4585
503 using       18f2585
504
505
506 name        18f45j10
507 using       18f24j10
508
509
510 name        18f4610
511 using       18f2410
512 ramsize     4096
513
514
515 name        18f4620
516 using       18f2525
517
518
519 name        18f4680
520 using       18f2585
521
522
523 name        18f4682
524 using       18f2682
525
526
527 name        18f4685
528 using       18f2682
529
530
531 name        18f6520
532 ramsize     2048
533 split       0x60
534 configrange 0x300001 0x30000d
535 configword  0x300001 0x27 0xff
536 configword  0x300002 0x0f 0xff
537 configword  0x300003 0x0f 0xff
538 configword  0x300004 0x83 0xff
539 configword  0x300005 0x03 0xff
540 configword  0x300006 0x85 0xff
541 configword  0x300008 0xff 0xff
542 configword  0x300009 0xc0 0xff
543 configword  0x30000a 0xff 0xff
544 configword  0x30000b 0xe0 0xff
545 configword  0x30000c 0xff 0xff
546 configword  0x30000d 0x40 0xff
547 idlocrange  0x200000 0x200007
548
549
550 name        18f6585
551 ramsize     3328
552 split       0x60
553 configrange 0x300001 0x30000d
554 configword  0x300001 0x2f 0xff
555 configword  0x300002 0x0f 0xff
556 configword  0x300003 0x1f 0xff
557 configword  0x300004 0x83 0xff
558 configword  0x300005 0x83 0xff
559 configword  0x300006 0x85 0xff
560 configword  0x300008 0x0f 0xff
561 configword  0x300009 0xc0 0xff
562 configword  0x30000a 0x0f 0xff
563 configword  0x30000b 0xe0 0xff
564 configword  0x30000c 0x0f 0xff
565 configword  0x30000d 0x40 0xff
566 idlocrange  0x200000 0x200007
567
568
569 name        18f6620
570 using       18f6520
571 ramsize     3840
572
573
574 name        18f6680
575 using       18f6585
576
577
578 name        18f6720
579 using       18f6520
580 ramsize     3840
581
582
583 name        18f8520
584 using       18f6520
585
586
587 name        18f8585
588 using       18f6585
589
590
591 name        18f8620
592 using       18f6520
593 ramsize     3840
594
595
596 name        18f8680
597 using       18f6585
598
599
600 name        18f8720
601 using       18f6520
602 ramsize     3840
603
604
605 name        18f66j60
606 ramsize     4096
607 split       0x60
608 configrange 0xfff8 0xfffd
609 configword  0xfff8 0xc1 0xff
610 configword  0xfff9 0x04 0xf7
611 configword  0xfffa 0xc7 0xff
612 configword  0xfffb 0x0f 0xff
613 configword  0xfffc 0xf8 0xff
614 configword  0xfffd 0x07 0xff
615
616
617 name        18f66j65
618 ramsize     4096
619 split       0x60
620 configrange 0x17ff8 0x17ffd
621 configword  0x17ff8 0xc1 0xff
622 configword  0x17ff9 0x04 0xf7
623 configword  0x17ffa 0xc7 0xff
624 configword  0x17ffb 0x0f 0xff
625 configword  0x17ffc 0xf8 0xff
626 configword  0x17ffd 0x07 0xff
627
628
629 name        18f67j60
630 ramsize     4096
631 split       0x60
632 configrange 0x1fff8 0x1fffd
633 configword  0x1fff8 0xc1 0xff
634 configword  0x1fff9 0x04 0xf7
635 configword  0x1fffa 0xc7 0xff
636 configword  0x1fffb 0x0f 0xff
637 configword  0x1fffc 0xf8 0xff
638 configword  0x1fffd 0x07 0xff
639
640
641 name        18f86j60
642 using       18f66j60
643
644
645 name        18f86j65
646 using       18f66j65
647
648
649 name        18f87j60
650 using       18f67j60
651
652
653 name        18f96j60
654 using       18f66j60
655
656
657 name        18f96j65
658 using       18f66j65
659
660
661 name        18f97j60
662 using       18f67j60
663