* device/include/pic16/pic18f2450.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>
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        18f2450
182 # 0x200..0x3FF is not implemented, but we leave that to the linker ;-)
183 ramsize     0x500
184 split       0x60
185 configrange 0x300000 0x30000d
186 configword  0x300000 0x3f 0xc7
187 configword  0x300001 0xcf 0x37
188 configword  0x300002 0x3f 0xdf
189 configword  0x300003 0x1f 0xff
190 configword  0x300005 0x86 0xfb
191 configword  0x300006 0xed 0x97
192 configword  0x300008 0x03 0xff
193 configword  0x300009 0x40 0xff
194 configword  0x30000a 0x03 0xff
195 configword  0x30000b 0x60 0xff
196 configword  0x30000c 0x03 0xff
197 configword  0x30000d 0x40 0xff
198 idlocrange  0x200000 0x200007
199
200 name        18f2455
201 ramsize     2048
202 split       0x60
203 configrange 0x300000 0x30000d
204 configword  0x300000 0x3f 0xc0
205 configword  0x300001 0xcf 0x35
206 configword  0x300002 0x3f 0xdf
207 configword  0x300003 0x1f 0xff
208 configword  0x300005 0x87 0xfb
209 configword  0x300006 0xe5 0x9f
210 configword  0x300008 0x0f 0xff
211 configword  0x300009 0xc0 0xff
212 configword  0x30000a 0x0f 0xff
213 configword  0x30000b 0xe0 0xff
214 configword  0x30000c 0x0f 0xff
215 configword  0x30000d 0x40 0xff
216 idlocrange  0x200000 0x200007
217
218
219 name        18f248
220 ramsize     768
221 split       0x60
222 configrange 0x300001 0x30000d
223 configword  0x300001 0x27 0xff
224 configword  0x300002 0x0f 0xff
225 configword  0x300003 0x0f 0xff
226 configword  0x300006 0x85 0xff
227 configword  0x300008 0x0f 0xff
228 configword  0x300009 0xc0 0xff
229 configword  0x30000a 0x0f 0xff
230 configword  0x30000b 0xe0 0xff
231 configword  0x30000c 0x0f 0xff
232 configword  0x30000d 0x40 0xff
233 idlocrange  0x200000 0x200007
234
235
236 name        18f2480
237 ramsize     768
238 split       0x60
239 configrange 0x300001 0x30000d
240 configword  0x300001 0xcf 0x37
241 configword  0x300002 0x1f 0xff
242 configword  0x300003 0x1f 0xff
243 configword  0x300005 0x86 0xfb
244 configword  0x300006 0xd5 0xaf
245 configword  0x300008 0x0f 0xff
246 configword  0x300009 0xc0 0xff
247 configword  0x30000a 0x0f 0xff
248 configword  0x30000b 0xe0 0xff
249 configword  0x30000c 0x0f 0xff
250 configword  0x30000d 0x40 0xff
251 idlocrange  0x200000 0x200007
252
253
254 name        18f24j10
255 ramsize     1024
256 split       0x80
257 configrange 0x300000 0x300005
258 configword  0x300000 0xe1 0xff
259 configword  0x300001 0x04 0xf7
260 configword  0x300002 0xc7 0xff
261 configword  0x300003 0x0f 0xff
262 configword  0x300005 0x01 0xff
263 idlocrange  0x200000 0x200007
264
265
266 name        18f252
267 using       18f242
268 ramsize     1536
269
270
271 name        18f2520
272 using       18f2420
273 ramsize     1536
274
275
276 name        18f2523
277 using       18f2423
278 ramsize     1536
279
280
281 name        18f2525
282 ramsize     4096
283 split       0x80
284 configrange 0x300001 0x30000d
285 configword  0x300001 0xcf 0x37
286 configword  0x300002 0x1f 0xff
287 configword  0x300003 0x1f 0xff
288 configword  0x300005 0x87 0xfb
289 configword  0x300006 0xc5 0xbf
290 configword  0x300008 0x0f 0xff
291 configword  0x300009 0xc0 0xff
292 configword  0x30000a 0x0f 0xff
293 configword  0x30000b 0xe0 0xff
294 configword  0x30000c 0x0f 0xff
295 configword  0x30000d 0x40 0xff
296 idlocrange  0x200000 0x200007
297
298
299 name        18f2550
300 using       18f2455
301
302
303 name        18f258
304 using       18f248
305 ramsize     1536
306
307
308 name        18f2580
309 using       18f2480
310 ramsize     1536
311
312
313 name        18f2585
314 ramsize     4096
315 split       0x60
316 configrange 0x300001 0x30000d
317 configword  0x300001 0xcf 0x37
318 configword  0x300002 0x1f 0xff
319 configword  0x300003 0x1f 0xff
320 configword  0x300005 0x86 0xfb
321 configword  0x300006 0xf5 0x8f
322 configword  0x300008 0x0f 0xff
323 configword  0x300009 0xc0 0xff
324 configword  0x30000a 0x0f 0xff
325 configword  0x30000b 0xe0 0xff
326 configword  0x30000c 0x0f 0xff
327 configword  0x30000d 0x40 0xff
328 idlocrange  0x200000 0x200007
329
330
331 name        18f25j10
332 using       18f24j10
333
334
335 name        18f2620
336 using       18f2525
337
338
339 name        18f2680
340 using       18f2585
341
342
343 name        18f2682
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
352 configword  0x300008 0x3f 0xff
353 configword  0x300009 0xc0 0xff
354 configword  0x30000a 0x3f 0xff
355 configword  0x30000b 0xe0 0xff
356 configword  0x30000c 0x3f 0xff
357 configword  0x30000d 0x40 0xff
358 idlocrange  0x200000 0x200007
359
360
361 name        18f2685
362 using       18f2682
363
364
365 name        18f4220
366 using       18f2220
367
368
369 name        18f4221
370 using       18f2221
371
372
373 name        18f4320
374 using       18f2220
375
376
377 name        18f4321
378 using       18f2221
379
380
381 name        18f4331
382 using       18f2331
383
384
385 name        18f442
386 using       18f242
387
388
389 name        18f4420
390 using       18f2420
391
392
393 name        18f4423
394 using       18f2423
395
396
397 name        18f4431
398 using       18f2331
399
400
401 name        18f4450
402 using       18f2450
403
404 name        18f4455
405 using       18f2455
406
407
408 name        18f448
409 using       18f248
410
411
412 name        18f4480
413 using       18f2480
414
415
416 name        18f44j10
417 using       18f24j10
418
419
420 name        18f452
421 using       18f242
422 ramsize     1536
423
424
425 name        18f4520
426 using       18f2420
427 ramsize     1536
428
429
430 name        18f4523
431 using       18f2423
432 ramsize     1536
433
434 name        18f4525
435 using       18f2525
436
437
438 name        18f4550
439 using       18f2455
440
441
442 name        18f458
443 using       18f248
444 ramsize     1536
445
446
447 name        18f4580
448 using       18f2480
449 ramsize     1536
450
451
452 name        18f4585
453 using       18f2585
454
455
456 name        18f45j10
457 using       18f24j10
458
459
460 name        18f4620
461 using       18f2525
462
463
464 name        18f4680
465 using       18f2585
466
467
468 name        18f4682
469 using       18f2682
470
471
472 name        18f4685
473 using       18f2682
474
475
476 name        18f6520
477 ramsize     2048
478 split       0x60
479 configrange 0x300001 0x30000d
480 configword  0x300001 0x27 0xff
481 configword  0x300002 0x0f 0xff
482 configword  0x300003 0x0f 0xff
483 configword  0x300004 0x83 0xff
484 configword  0x300005 0x03 0xff
485 configword  0x300006 0x85 0xff
486 configword  0x300008 0xff 0xff
487 configword  0x300009 0xc0 0xff
488 configword  0x30000a 0xff 0xff
489 configword  0x30000b 0xe0 0xff
490 configword  0x30000c 0xff 0xff
491 configword  0x30000d 0x40 0xff
492 idlocrange  0x200000 0x200007
493
494
495 name        18f6585
496 ramsize     3328
497 split       0x60
498 configrange 0x300001 0x30000d
499 configword  0x300001 0x2f 0xff
500 configword  0x300002 0x0f 0xff
501 configword  0x300003 0x1f 0xff
502 configword  0x300004 0x83 0xff
503 configword  0x300005 0x83 0xff
504 configword  0x300006 0x85 0xff
505 configword  0x300008 0x0f 0xff
506 configword  0x300009 0xc0 0xff
507 configword  0x30000a 0x0f 0xff
508 configword  0x30000b 0xe0 0xff
509 configword  0x30000c 0x0f 0xff
510 configword  0x30000d 0x40 0xff
511 idlocrange  0x200000 0x200007
512
513
514 name        18f6620
515 using       18f6520
516 ramsize     3840
517
518
519 name        18f6680
520 using       18f6585
521
522
523 name        18f6720
524 using       18f6520
525 ramsize     3840
526
527
528 name        18f8520
529 using       18f6520
530
531
532 name        18f8585
533 using       18f6585
534
535
536 name        18f8620
537 using       18f6520
538 ramsize     3840
539
540
541 name        18f8680
542 using       18f6585
543
544
545 name        18f8720
546 using       18f6520
547 ramsize     3840
548
549
550 name        18f66j60
551 ramsize     4096
552 split       0x60
553 configrange 0xfff8 0xfffd
554 configword  0xfff8 0xc1 0xff
555 configword  0xfff9 0x04 0xf7
556 configword  0xfffa 0xc7 0xff
557 configword  0xfffb 0x0f 0xff
558 configword  0xfffc 0xf8 0xff
559 configword  0xfffd 0x07 0xff
560
561
562 name        18f66j65
563 ramsize     4096
564 split       0x60
565 configrange 0x17ff8 0x17ffd
566 configword  0x17ff8 0xc1 0xff
567 configword  0x17ff9 0x04 0xf7
568 configword  0x17ffa 0xc7 0xff
569 configword  0x17ffb 0x0f 0xff
570 configword  0x17ffc 0xf8 0xff
571 configword  0x17ffd 0x07 0xff
572
573
574 name        18f67j60
575 ramsize     4096
576 split       0x60
577 configrange 0x1fff8 0x1fffd
578 configword  0x1fff8 0xc1 0xff
579 configword  0x1fff9 0x04 0xf7
580 configword  0x1fffa 0xc7 0xff
581 configword  0x1fffb 0x0f 0xff
582 configword  0x1fffc 0xf8 0xff
583 configword  0x1fffd 0x07 0xff
584
585
586 name        18f86j60
587 using       18f66j60
588
589
590 name        18f86j65
591 using       18f66j65
592
593
594 name        18f87j60
595 using       18f67j60
596
597
598 name        18f96j60
599 using       18f66j60
600
601
602 name        18f96j65
603 using       18f66j65
604
605
606 name        18f97j60
607 using       18f67j60
608