RTEMS CPU Kit with SuperCore  4.11.3
iomxxhva.h
Go to the documentation of this file.
1 
9 /*
10  * Copyright (c) 2007 Anatoly Sokolov
11  * All rights reserved.
12  *
13  * Redistribution and use in source and binary forms, with or without
14  * modification, are permitted provided that the following conditions are met:
15  *
16  * * Redistributions of source code must retain the above copyright
17  * notice, this list of conditions and the following disclaimer.
18  *
19  * * Redistributions in binary form must reproduce the above copyright
20  * notice, this list of conditions and the following disclaimer in
21  * the documentation and/or other materials provided with the
22  * distribution.
23  *
24  * * Neither the name of the copyright holders nor the names of
25  * contributors may be used to endorse or promote products derived
26  * from this software without specific prior written permission.
27  *
28  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
29  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
30  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
31  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
32  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
33  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
34  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
35  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
36  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
37  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
38  * POSSIBILITY OF SUCH DAMAGE.
39  */
40 
41 #ifndef _AVR_IOMXXHVA_H_
42 #define _AVR_IOMXXHVA_H_ 1
43 
51 #ifndef _AVR_IO_H_
52 # error "Include <avr/io.h> instead of this file."
53 #endif
54 
55 #ifndef _AVR_IOXXX_H_
56 # define _AVR_IOXXX_H_ "iomxxhva.h"
57 #else
58 # error "Attempt to include more than one <avr/ioXXX.h> file."
59 #endif
60 
61 /* Registers and associated bit numbers */
62 
63 #define PINA _SFR_IO8(0X00)
64 #define PINA1 1
65 #define PINA0 0
66 
67 #define DDRA _SFR_IO8(0x01)
68 #define DDA1 1
69 #define DDA0 0
70 
71 #define PORTA _SFR_IO8(0x02)
72 #define PA1 1
73 #define PA0 0
74 
75 #define PINB _SFR_IO8(0X03)
76 #define PINB3 3
77 #define PINB2 2
78 #define PINB1 1
79 #define PINB0 0
80 
81 #define DDRB _SFR_IO8(0x04)
82 #define DDB3 3
83 #define DDB2 2
84 #define DDB1 1
85 #define DDB0 0
86 
87 #define PORTB _SFR_IO8(0x05)
88 #define PB3 3
89 #define PB2 2
90 #define PB1 1
91 #define PB0 0
92 
93 #define PINC _SFR_IO8(0x06)
94 #define PINC0 0
95 
96 /* Reserved [0x7] */
97 
98 #define PORTC _SFR_IO8(0x08)
99 #define PC0 0
100 
101 /* Reserved [0x9..0x14] */
102 
103 #define TIFR0 _SFR_IO8(0x15)
104 #define ICF0 3
105 #define OCF0B 2
106 #define OCF0A 1
107 #define TOV0 0
108 
109 #define TIFR1 _SFR_IO8(0x16)
110 #define ICF1 3
111 #define OCF1B 2
112 #define OCF1A 1
113 #define TOV1 0
114 
115 #define OSICSR _SFR_IO8(0x17)
116 #define OSISEL0 4
117 #define OSIST 1
118 #define OSIEN 0
119 
120 /* Reserved [0x18..0x1B] */
121 
122 #define EIFR _SFR_IO8(0x1C)
123 #define INTF2 2
124 #define INTF1 1
125 #define INTF0 0
126 
127 #define EIMSK _SFR_IO8(0x1D)
128 #define INT2 2
129 #define INT1 1
130 #define INT0 0
131 
132 #define GPIOR0 _SFR_IO8(0x1E)
133 
134 #define EECR _SFR_IO8(0x1F)
135 #define EEPM1 5
136 #define EEPM0 4
137 #define EERIE 3
138 #define EEMPE 2
139 #define EEPE 1
140 #define EERE 0
141 
142 #define EEDR _SFR_IO8(0x20)
143 
144 #define EEAR _SFR_IO8(0x21)
145 #define EEARL _SFR_IO8(0x21)
146 
147 /* 6-char sequence denoting where to find the EEPROM registers in memory space.
148  Adresses denoted in hex syntax with uppercase letters. Used by the EEPROM
149  subroutines.
150  First two letters: EECR address.
151  Second two letters: EEDR address.
152  Last two letters: EEAR address. */
153 #define __EEPROM_REG_LOCATIONS__ 1F2021
154 
155 /* Reserved [0x22] */
156 
157 #define GTCCR _SFR_IO8(0x23)
158 #define TSM 7
159 #define PSRSYNC 0
160 
161 #define TCCR0A _SFR_IO8(0x24)
162 #define TCW0 7
163 #define ICEN0 6
164 #define ICNC0 5
165 #define ICES0 4
166 #define ICS0 3
167 #define WGM00 0
168 
169 #define TCCR0B _SFR_IO8(0x25)
170 #define CS02 2
171 #define CS01 1
172 #define CS00 0
173 
174 #define TCNT0 _SFR_IO16(0X26)
175 #define TCNT0L _SFR_IO8(0X26)
176 #define TCNT0H _SFR_IO8(0X27)
177 
178 #define OCR0A _SFR_IO8(0x28)
179 
180 #define OCR0B _SFR_IO8(0X29)
181 
182 #define GPIOR1 _SFR_IO8(0x2A)
183 
184 #define GPIOR2 _SFR_IO8(0x2B)
185 
186 #define SPCR _SFR_IO8(0x2C)
187 #define SPIE 7
188 #define SPE 6
189 #define DORD 5
190 #define MSTR 4
191 #define CPOL 3
192 #define CPHA 2
193 #define SPR1 1
194 #define SPR0 0
195 
196 #define SPSR _SFR_IO8(0x2D)
197 #define SPIF 7
198 #define WCOL 6
199 #define SPI2X 0
200 
201 #define SPDR _SFR_IO8(0x2E)
202 
203 /* Reserved [0x2F..0x30] */
204 
205 #define DWDR _SFR_IO8(0x31)
206 #define IDRD 7
207 
208 /* Reserved [0x32] */
209 
210 #define SMCR _SFR_IO8(0x33)
211 #define SM2 3
212 #define SM1 2
213 #define SM0 1
214 #define SE 0
215 
216 #define MCUSR _SFR_IO8(0x34)
217 #define OCDRF 4
218 #define WDRF 3
219 #define BORF 2
220 #define EXTRF 1
221 #define PORF 0
222 
223 #define MCUCR _SFR_IO8(0x35)
224 #define CKOE 5
225 #define PUD 4
226 
227 /* Reserved [0x36] */
228 
229 #define SPMCSR _SFR_IO8(0x37)
230 #define SIGRD 5
231 #define CTPB 4
232 #define RFLB 3
233 #define PGWRT 2
234 #define PGERS 1
235 #define SPMEN 0
236 
237 /* Reserved [0x38..0x3C] */
238 
239 /* SP [0x3D..0x3E] */
240 /* SREG [0x3F] */
241 
242 #define WDTCSR _SFR_MEM8(0x60)
243 #define WDIF 7
244 #define WDIE 6
245 #define WDP3 5
246 #define WDCE 4
247 #define WDE 3
248 #define WDP2 2
249 #define WDP1 1
250 #define WDP0 0
251 
252 #define CLKPR _SFR_MEM8(0x61)
253 #define CLKPCE 7
254 #define CLKPS1 1
255 #define CLKPS0 0
256 
257 /* Reserved [0x62..0x63] */
258 
259 #define PRR0 _SFR_MEM8(0x64)
260 #define PRVRM 5
261 #define PRSPI 3
262 #define PRTIM1 2
263 #define PRTIM0 1
264 #define PRVADC 0
265 
266 /* Reserved [0x65] */
267 
268 #define FOSCCAL _SFR_MEM8(0x66)
269 
270 /* Reserved [0x67..0x68] */
271 
272 #define EICRA _SFR_MEM8(0x69)
273 #define ISC21 5
274 #define ISC20 4
275 #define ISC11 3
276 #define ISC10 2
277 #define ISC01 1
278 #define ISC00 0
279 
280 /* Reserved [0x6A..0x6D] */
281 
282 #define TIMSK0 _SFR_MEM8(0x6E)
283 #define ICIE0 3
284 #define OCIE0B 2
285 #define OCIE0A 1
286 #define TOIE0 0
287 
288 #define TIMSK1 _SFR_MEM8(0x6F)
289 #define ICIE1 3
290 #define OCIE1B 2
291 #define OCIE1A 1
292 #define TOIE1 0
293 
294 /* Reserved [0x70..0x77] */
295 
296 #define VADC _SFR_MEM16(0x78)
297 #define VADCL _SFR_MEM8(0x78)
298 #define VADCH _SFR_MEM8(0x79)
299 
300 #define VADCSR _SFR_MEM8(0x7A)
301 #define VADEN 3
302 #define VADSC 2
303 #define VADCCIF 1
304 #define VADCCIE 0
305 
306 /* Reserved [0x7B] */
307 
308 #define VADMUX _SFR_MEM8(0x7C)
309 #define VADMUX3 3
310 #define VADMUX2 2
311 #define VADMUX1 1
312 #define VADMUX0 0
313 
314 /* Reserved [0x7D] */
315 
316 #define DIDR0 _SFR_MEM8(0x7E)
317 #define PA1DID 1
318 #define PA0DID 0
319 
320 /* Reserved [0x7F] */
321 
322 #define TCCR1A _SFR_MEM8(0x80)
323 #define TCW1 7
324 #define ICEN1 6
325 #define ICNC1 5
326 #define ICES1 4
327 #define ICS1 3
328 #define WGM10 0
329 
330 #define TCCR1B _SFR_MEM8(0x81)
331 #define CS12 2
332 #define CS11 1
333 #define CS10 0
334 
335 /* Reserved [0x82..0x83] */
336 
337 #define TCNT1 _SFR_MEM16(0x84)
338 #define TCNT1L _SFR_MEM8(0x84)
339 #define TCNT1H _SFR_MEM8(0x85)
340 
341 /* Reserved [0x86..0x87] */
342 
343 #define OCR1A _SFR_MEM8(0x88)
344 
345 #define OCR1B _SFR_MEM8(0x89)
346 
347 /* Reserved [0x8A..0xC7] */
348 
349 #define ROCR _SFR_MEM8(0xC8)
350 #define ROCS 7
351 #define ROCWIF 1
352 #define ROCWIE 0
353 
354 /* Reserved [0xC9..0xCF] */
355 
356 #define BGCCR _SFR_MEM8(0xD0)
357 #define BGD 7
358 #define BGCC5 5
359 #define BGCC4 4
360 #define BGCC3 3
361 #define BGCC2 2
362 #define BGCC1 1
363 #define BGCC0 0
364 
365 #define BGCRR _SFR_MEM8(0xD1)
366 #define BGCR7 7
367 #define BGCR6 6
368 #define BGCR5 5
369 #define BGCR4 4
370 #define BGCR3 3
371 #define BGCR2 2
372 #define BGCR1 1
373 #define BGCR0 0
374 
375 /* Reserved [0xD2..0xDF] */
376 
377 /* CC-ADC Accumulate Current */
378 /* TODO: Add _SFR_MEM32 */
379 /* #define CADAC _SFR_MEM32(0xE0) */
380 #define CADAC0 _SFR_MEM8(0xE0)
381 #define CADAC1 _SFR_MEM8(0xE1)
382 #define CADAC2 _SFR_MEM8(0xE2)
383 #define CADAC3 _SFR_MEM8(0xE3)
384 
385 #define CADCSRA _SFR_MEM8(0xE4)
386 #define CADEN 7
387 #define CADPOL 6
388 #define CADUB 5
389 #define CADAS1 4
390 #define CADAS0 3
391 #define CADSI1 2
392 #define CADSI0 1
393 #define CADSE 0
394 
395 #define CADCSRB _SFR_MEM8(0xE5)
396 #define CADACIE 6
397 #define CADRCIE 5
398 #define CADICIE 4
399 #define CADACIF 2
400 #define CADRCIF 1
401 #define CADICIF 0
402 
403 #define CADRC _SFR_MEM8(0xE6)
404 
405 /* Reserved [0xE7] */
406 
407 #define CADIC _SFR_MEM16(0xE8)
408 #define CADICL _SFR_MEM8(0xE8)
409 #define CADICH _SFR_MEM8(0xE9)
410 
411 /* Reserved [0xEA..0xEF] */
412 
413 #define FCSR _SFR_MEM8(0xF0)
414 #define DUVRD 3
415 #define CPS 2
416 #define DFE 1
417 #define CFE 0
418 
419 /* Reserved [0xF1] */
420 
421 #define BPIMSK _SFR_MEM8(0xF2)
422 #define SCIE 4
423 #define DOCIE 3
424 #define COCIE 2
425 #define DHCIE 1
426 #define CHCIE 0
427 
428 #define BPIFR _SFR_MEM8(0xF3)
429 #define SCIF 4
430 #define DOCIF 3
431 #define COCIF 2
432 #define DHCIF 1
433 #define CHCIF 0
434 
435 /* Reserved [0xF4] */
436 
437 #define BPSCD _SFR_MEM8(0xF5)
438 
439 #define BPDOCD _SFR_MEM8(0xF6)
440 
441 #define BPCOCD _SFR_MEM8(0xF7)
442 
443 #define BPDHCD _SFR_MEM8(0xF8)
444 
445 #define BPCHCD _SFR_MEM8(0xF9)
446 
447 #define BPSCTR _SFR_MEM8(0xFA)
448 
449 #define BPOCTR _SFR_MEM8(0xFB)
450 
451 #define BPHCTR _SFR_MEM8(0xFC)
452 
453 #define BPCR _SFR_MEM8(0xFD)
454 #define SCD 4
455 #define DOCD 3
456 #define COCD 2
457 #define DHCD 1
458 #define CHCD 0
459 
460 #define BPPLR _SFR_MEM8(0xFE)
461 #define BPPLE 1
462 #define BPPL 0
463 
464 /* Reserved [0xFF] */
465 
466 /* Interrupt vectors */
467 /* Battery Protection Interrupt */
468 #define BPINT_vect _VECTOR(1)
469 
470 /* Voltage Regulator Monitor Interrupt */
471 #define VREGMON_vect _VECTOR(2)
472 
473 /* External Interrupt Request 0 */
474 #define INT0_vect _VECTOR(3)
475 
476 /* External Interrupt Request 1 */
477 #define INT1_vect _VECTOR(4)
478 
479 /* External Interrupt Request 2 */
480 #define INT2_vect _VECTOR(5)
481 
482 /* Watchdog Timeout Interrupt */
483 #define WDT_vect _VECTOR(6)
484 
485 /* Timer/Counter 1 Input Capture */
486 #define TIMER1_IC_vect _VECTOR(7)
487 
488 /* Timer/Counter 1 Compare A Match */
489 #define TIMER1_COMPA_vect _VECTOR(8)
490 
491 /* Timer/Counter 1 Compare B Match */
492 #define TIMER1_COMPB_vect _VECTOR(9)
493 
494 /* Timer/Counter 1 Overflow */
495 #define TIMER1_OVF_vect _VECTOR(10)
496 
497 /* Timer/Counter 0 Input Capture */
498 #define TIMER0_IC_vect _VECTOR(11)
499 
500 /* Timer/Counter0 Compare A Match */
501 #define TIMER0_COMPA_vect _VECTOR(12)
502 
503 /* Timer/Counter0 Compare B Match */
504 #define TIMER0_COMPB_vect _VECTOR(13)
505 
506 /* Timer/Counter0 Overflow */
507 #define TIMER0_OVF_vect _VECTOR(14)
508 
509 /* SPI Serial Transfer Complete */
510 #define SPI_STC_vect _VECTOR(15)
511 
512 /* Voltage ADC Conversion Complete */
513 #define VADC_vect _VECTOR(16)
514 
515 /* Coulomb Counter ADC Conversion Complete */
516 #define CCADC_CONV_vect _VECTOR(17)
517 
518 /* Coloumb Counter ADC Regular Current */
519 #define CCADC_REG_CUR_vect _VECTOR(18)
520 
521 /* Coloumb Counter ADC Accumulator */
522 #define CCADC_ACC_vect _VECTOR(19)
523 
524 /* EEPROM Ready */
525 #define EE_READY_vect _VECTOR(20)
526 
527 #if defined (__AVR_ATmega16HVA__)
528 # define _VECTORS_SIZE 84
529 #else
530 # define _VECTORS_SIZE 42
531 #endif
532 
534 #endif /* _AVR_IOMXXHVA_H_ */