5e8885a241970cd93907bbbfada79e35165a52a7
[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 # sfrrange <first> <last>
25 #       SFRs occupy addresses <first> to <last> (both included) and must
26 #       hence not be used as RAM.
27 # configrange <first> <last>
28 #       Configuration registers occupy addresses <first> to <last> (both
29 #       included).
30 # configword <address> <mask> <value>
31 #       The config word at address <address> only implements the bits
32 #       indicated via <mask> (all others will be forced to 0 by the
33 #       compiler).
34 #       Unless overridden in C code, use the given default <value>.
35 # idlocrange <first> <last>
36 #       ID locations occupy addresses <first> to <last> (both included).
37 # idword <address> <value>
38 #       Unless overridden in C code, use the given default <value>.
39 #
40
41 name        18f1220
42 ramsize     256
43 split       0x80
44 sfrrange    0xf80 0xfff
45 configrange 0x300001 0x30000d
46 configword  0x300001 0xcf 0xff
47 configword  0x300002 0x0f 0xff
48 configword  0x300003 0x1f 0xff
49 configword  0x300005 0x80 0xff
50 configword  0x300006 0x85 0xff
51 configword  0x300008 0x03 0xff
52 configword  0x300009 0xc0 0xff
53 configword  0x30000a 0x03 0xff
54 configword  0x30000b 0xe0 0xff
55 configword  0x30000c 0x03 0xff
56 configword  0x30000d 0x40 0xff
57 idlocrange  0x200000 0x200007
58
59
60 name        18f1320
61 using       18f1220
62
63
64 name        18f2220
65 ramsize     512
66 split       0x80
67 sfrrange    0xf80 0xfff
68 configrange 0x300001 0x30000d
69 configword  0x300001 0xcf 0xff
70 configword  0x300002 0x0f 0xff
71 configword  0x300003 0x1f 0xff
72 configword  0x300005 0x83 0xff
73 configword  0x300006 0x85 0xff
74 configword  0x300008 0x0f 0xff
75 configword  0x300009 0xc0 0xff
76 configword  0x30000a 0x0f 0xff
77 configword  0x30000b 0xe0 0xff
78 configword  0x30000c 0x0f 0xff
79 configword  0x30000d 0x40 0xff
80 idlocrange  0x200000 0x200007
81
82
83 name        18f2221
84 ramsize     512
85 split       0x80
86 sfrrange    0xf80 0xfff
87 configrange 0x300001 0x30000d
88 configword  0x300001 0xcf 0x37
89 configword  0x300002 0x1f 0xff
90 configword  0x300003 0x1f 0xff
91 configword  0x300005 0x87 0xfb
92 configword  0x300006 0xf5 0x8f
93 configword  0x300008 0x03 0xff
94 configword  0x300009 0xc0 0xff
95 configword  0x30000a 0x03 0xff
96 configword  0x30000b 0xe0 0xff
97 configword  0x30000c 0x03 0xff
98 configword  0x30000d 0x40 0xff
99 idlocrange  0x200000 0x200007
100
101
102 name        18f2320
103 using       18f2220
104
105
106 name        18f2321
107 using       18f2221
108
109
110 name        18f2331
111 ramsize     768
112 split       0x60
113 sfrrange    0xf60 0xfff
114 configrange 0x300001 0x30000d
115 configword  0x300001 0xcf 0xff
116 configword  0x300002 0x0f 0xff
117 configword  0x300003 0x3f 0xff
118 configword  0x300004 0x3c 0xff
119 configword  0x300005 0x9d 0xff
120 configword  0x300006 0x85 0xff
121 configword  0x300008 0x0f 0xff
122 configword  0x300009 0xc0 0xff
123 configword  0x30000a 0x0f 0xff
124 configword  0x30000b 0xe0 0xff
125 configword  0x30000c 0x0f 0xff
126 configword  0x30000d 0x40 0xff
127 idlocrange  0x200000 0x200007
128
129
130 name        18f242
131 ramsize     768
132 split       0x80
133 sfrrange    0xf80 0xfff
134 configrange 0x300001 0x30000d
135 configword  0x300001 0x27 0xff
136 configword  0x300002 0x0f 0xff
137 configword  0x300003 0x0f 0xff
138 configword  0x300005 0x01 0xff
139 configword  0x300006 0x85 0xff
140 configword  0x300008 0x0f 0xff
141 configword  0x300009 0xc0 0xff
142 configword  0x30000a 0x0f 0xff
143 configword  0x30000b 0xe0 0xff
144 configword  0x30000c 0x0f 0xff
145 configword  0x30000d 0x40 0xff
146 idlocrange  0x200000 0x200007
147
148
149 name        18f2420
150 ramsize     768
151 split       0x80
152 sfrrange    0xf80 0xfff
153 configrange 0x300001 0x30000d
154 configword  0x300001 0xcf 0x07
155 configword  0x300002 0x1f 0xff
156 configword  0x300003 0x1f 0xff
157 configword  0x300005 0x87 0xfb
158 configword  0x300006 0xc5 0xbf
159 configword  0x300008 0x0f 0xff
160 configword  0x300009 0xc0 0xff
161 configword  0x30000a 0x0f 0xff
162 configword  0x30000b 0xe0 0xff
163 configword  0x30000c 0x0f 0xff
164 configword  0x30000d 0x40 0xff
165 idlocrange  0x200000 0x200007
166
167
168 name        18f2423
169 ramsize     768
170 split       0x80
171 sfrrange    0xf80 0xfff
172 configrange 0x300001 0x30000d
173 configword  0x300001 0xcf 0x07
174 configword  0x300002 0x1f 0xff
175 configword  0x300003 0x1f 0xff
176 configword  0x300005 0x87 0xfb
177 configword  0x300006 0xc5 0xbf
178 configword  0x300008 0x0f 0xff
179 configword  0x300009 0xc0 0xff
180 configword  0x30000a 0x0f 0xff
181 configword  0x30000b 0xe0 0xff
182 configword  0x30000c 0x0f 0xff
183 configword  0x30000d 0x40 0xff
184 idlocrange  0x200000 0x200007
185
186
187 name        18f2431
188 using       18f2331
189
190
191 name        18f2455
192 ramsize     2048
193 split       0x60
194 sfrrange    0xf60 0xfff
195 configrange 0x300000 0x30000d
196 configword  0x300000 0x3f 0xc0
197 configword  0x300001 0xcf 0x35
198 configword  0x300002 0x3f 0xdf
199 configword  0x300003 0x1f 0xff
200 configword  0x300005 0x87 0xfb
201 configword  0x300006 0xe5 0x9f
202 configword  0x300008 0x0f 0xff
203 configword  0x300009 0xc0 0xff
204 configword  0x30000a 0x0f 0xff
205 configword  0x30000b 0xe0 0xff
206 configword  0x30000c 0x0f 0xff
207 configword  0x30000d 0x40 0xff
208 idlocrange  0x200000 0x200007
209
210
211 name        18f248
212 ramsize     768
213 split       0x60
214 sfrrange    0xf00 0xfff
215 configrange 0x300001 0x30000d
216 configword  0x300001 0x27 0xff
217 configword  0x300002 0x0f 0xff
218 configword  0x300003 0x0f 0xff
219 configword  0x300006 0x85 0xff
220 configword  0x300008 0x0f 0xff
221 configword  0x300009 0xc0 0xff
222 configword  0x30000a 0x0f 0xff
223 configword  0x30000b 0xe0 0xff
224 configword  0x30000c 0x0f 0xff
225 configword  0x30000d 0x40 0xff
226 idlocrange  0x200000 0x200007
227
228
229 name        18f2480
230 ramsize     768
231 split       0x60
232 sfrrange    0xd00 0xfff
233 configrange 0x300001 0x30000d
234 configword  0x300001 0xcf 0x37
235 configword  0x300002 0x1f 0xff
236 configword  0x300003 0x1f 0xff
237 configword  0x300005 0x86 0xfb
238 configword  0x300006 0xd5 0xaf
239 configword  0x300008 0x0f 0xff
240 configword  0x300009 0xc0 0xff
241 configword  0x30000a 0x0f 0xff
242 configword  0x30000b 0xe0 0xff
243 configword  0x30000c 0x0f 0xff
244 configword  0x30000d 0x40 0xff
245 idlocrange  0x200000 0x200007
246
247
248 name        18f24j10
249 ramsize     1024
250 split       0x80
251 sfrrange    0xf80 0xfff
252 configrange 0x300000 0x300005
253 configword  0x300000 0xe1 0xff
254 configword  0x300001 0x04 0xf7
255 configword  0x300002 0xc7 0xff
256 configword  0x300003 0x0f 0xff
257 configword  0x300005 0x01 0xff
258 idlocrange  0x200000 0x200007
259
260
261 name        18f252
262 using       18f242
263 ramsize     1536
264
265
266 name        18f2520
267 using       18f2420
268 ramsize     1536
269
270
271 name        18f2523
272 using       18f2423
273 ramsize     1536
274
275
276 name        18f2525
277 ramsize     4096
278 split       0x80
279 sfrrange    0xf80 0xfff
280 configrange 0x300001 0x30000d
281 configword  0x300001 0xcf 0x37
282 configword  0x300002 0x1f 0xff
283 configword  0x300003 0x1f 0xff
284 configword  0x300005 0x87 0xfb
285 configword  0x300006 0xc5 0xbf
286 configword  0x300008 0x0f 0xff
287 configword  0x300009 0xc0 0xff
288 configword  0x30000a 0x0f 0xff
289 configword  0x30000b 0xe0 0xff
290 configword  0x30000c 0x0f 0xff
291 configword  0x30000d 0x40 0xff
292 idlocrange  0x200000 0x200007
293
294
295 name        18f2550
296 using       18f2455
297
298
299 name        18f258
300 using       18f248
301 ramsize     1536
302
303
304 name        18f2580
305 using       18f2480
306 ramsize     1536
307
308
309 name        18f2585
310 ramsize     4096
311 split       0x60
312 sfrrange    0xd00 0xfff
313 configrange 0x300001 0x30000d
314 configword  0x300001 0xcf 0x37
315 configword  0x300002 0x1f 0xff
316 configword  0x300003 0x1f 0xff
317 configword  0x300005 0x86 0xfb
318 configword  0x300006 0xf5 0x8f
319 configword  0x300008 0x0f 0xff
320 configword  0x300009 0xc0 0xff
321 configword  0x30000a 0x0f 0xff
322 configword  0x30000b 0xe0 0xff
323 configword  0x30000c 0x0f 0xff
324 configword  0x30000d 0x40 0xff
325 idlocrange  0x200000 0x200007
326
327
328 name        18f25j10
329 using       18f24j10
330
331
332 name        18f2620
333 using       18f2525
334
335
336 name        18f2680
337 using       18f2585
338
339
340 name        18f2682
341 ramsize     4096
342 split       0x60
343 sfrrange    0xd00 0xfff
344 configrange 0x300001 0x30000d
345 configword  0x300001 0xcf 0x37
346 configword  0x300002 0x1f 0xff
347 configword  0x300003 0x1f 0xff
348 configword  0x300005 0x86 0xfb
349 configword  0x300006 0xf5 0x8f
350 configword  0x300008 0x3f 0xff
351 configword  0x300009 0xc0 0xff
352 configword  0x30000a 0x3f 0xff
353 configword  0x30000b 0xe0 0xff
354 configword  0x30000c 0x3f 0xff
355 configword  0x30000d 0x40 0xff
356 idlocrange  0x200000 0x200007
357
358
359 name        18f2685
360 using       18f2682
361
362
363 name        18f4220
364 using       18f2220
365
366
367 name        18f4221
368 using       18f2221
369
370
371 name        18f4320
372 using       18f2220
373
374
375 name        18f4321
376 using       18f2221
377
378
379 name        18f4331
380 using       18f2331
381
382
383 name        18f442
384 using       18f242
385
386
387 name        18f4420
388 using       18f2420
389
390
391 name        18f4423
392 using       18f2423
393
394
395 name        18f4431
396 using       18f2331
397
398
399 name        18f4455
400 using       18f2455
401
402
403 name        18f448
404 using       18f248
405
406
407 name        18f4480
408 using       18f2480
409
410
411 name        18f44j10
412 using       18f24j10
413
414
415 name        18f452
416 using       18f242
417 ramsize     1536
418
419
420 name        18f4520
421 using       18f2420
422 ramsize     1536
423
424
425 name        18f4523
426 using       18f2423
427 ramsize     1536
428
429 name        18f4525
430 using       18f2525
431
432
433 name        18f4550
434 using       18f2455
435
436
437 name        18f458
438 using       18f248
439 ramsize     1536
440
441
442 name        18f4580
443 using       18f2480
444 ramsize     1536
445
446
447 name        18f4585
448 using       18f2585
449
450
451 name        18f45j10
452 using       18f24j10
453
454
455 name        18f4620
456 using       18f2525
457
458
459 name        18f4680
460 using       18f2585
461
462
463 name        18f4682
464 using       18f2682
465
466
467 name        18f4685
468 using       18f2682
469
470
471 name        18f6520
472 ramsize     2048
473 split       0x60
474 sfrrange    0xf60 0xfff
475 configrange 0x300001 0x30000d
476 configword  0x300001 0x27 0xff
477 configword  0x300002 0x0f 0xff
478 configword  0x300003 0x0f 0xff
479 configword  0x300004 0x83 0xff
480 configword  0x300005 0x03 0xff
481 configword  0x300006 0x85 0xff
482 configword  0x300008 0xff 0xff
483 configword  0x300009 0xc0 0xff
484 configword  0x30000a 0xff 0xff
485 configword  0x30000b 0xe0 0xff
486 configword  0x30000c 0xff 0xff
487 configword  0x30000d 0x40 0xff
488 idlocrange  0x200000 0x200007
489
490
491 name        18f6585
492 ramsize     3328
493 split       0x60
494 sfrrange    0xd00 0xfff
495 configrange 0x300001 0x30000d
496 configword  0x300001 0x2f 0xff
497 configword  0x300002 0x0f 0xff
498 configword  0x300003 0x1f 0xff
499 configword  0x300004 0x83 0xff
500 configword  0x300005 0x83 0xff
501 configword  0x300006 0x85 0xff
502 configword  0x300008 0x0f 0xff
503 configword  0x300009 0xc0 0xff
504 configword  0x30000a 0x0f 0xff
505 configword  0x30000b 0xe0 0xff
506 configword  0x30000c 0x0f 0xff
507 configword  0x30000d 0x40 0xff
508 idlocrange  0x200000 0x200007
509
510
511 name        18f6620
512 using       18f6520
513 ramsize     3840
514
515
516 name        18f6680
517 using       18f6585
518
519
520 name        18f6720
521 using       18f6520
522 ramsize     3840
523
524
525 name        18f8520
526 using       18f6520
527
528
529 name        18f8585
530 using       18f6585
531
532
533 name        18f8620
534 using       18f6520
535 ramsize     3840
536
537
538 name        18f8680
539 using       18f6585
540
541
542 name        18f8720
543 using       18f6520
544 ramsize     3840
545
546