Subversion Repositories svnkaklik

Compare Revisions

Ignore whitespace Rev 173 → Rev 174

/programy/Atmel_C/AVRcam/CamInterfaceAsm.lst
1,11 → 1,11
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s page 1
 
 
1 # 1 "CamInterfaceAsm.S"
2 # 1 "<built-in>"
GAS LISTING /tmp/cckBHomO.s page 1
 
 
1 # 1 "CamInterfaceAsm.S"
2 # 1 "<built-in>"
1 ;
0
0
0
0
2 ; Copyright (C) 2004 John Orlando
3 ;
4 ; AVRcam: a small real-time image processing engine.
58,480 → 58,1169
51 ; and is turned off when it isn't needed.
52
53 #include <avr/io.h>
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s page 2
 
 
1 /* Copyright (c) 2002,2003 Marek Michalkiewicz, Joerg Wunsch
2 All rights reserved.
3
4 Redistribution and use in source and binary forms, with or without
5 modification, are permitted provided that the following conditions are met:
6
7 * Redistributions of source code must retain the above copyright
8 notice, this list of conditions and the following disclaimer.
9 * Redistributions in binary form must reproduce the above copyright
10 notice, this list of conditions and the following disclaimer in
11 the documentation and/or other materials provided with the
12 distribution.
13
14 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
18 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24 POSSIBILITY OF SUCH DAMAGE. */
25
26 /* $Id: io.h,v 1.10 2003/02/28 23:03:40 marekm Exp $ */
27
28 /** \defgroup avr_io AVR device-specific IO definitions
29 \code #include <avr/io.h> \endcode
30
31 This header file includes the apropriate IO definitions for the
32 device that has been specified by the <tt>-mmcu=</tt> compiler
33 command-line switch. This is done by diverting to the appropriate
34 file <tt>&lt;avr/io</tt><em>XXXX</em><tt>.h&gt;</tt> which should
35 never be included directly. Some register names common to all
36 AVR devices are defined directly within <tt>&lt;avr/io.h&gt;</tt>,
37 but most of the details come from the respective include file.
38
39 Note that this file always includes
40 \code #include <avr/sfr_defs.h> \endcode
41 See \ref avr_sfr for the details.
42
43 Included are definitions of the IO register set and their
44 respective bit values as specified in the Atmel documentation.
45 Note that Atmel is not very consistent in its naming conventions,
46 so even identical functions sometimes get different names on
47 different devices.
48
49 Also included are the specific names useable for interrupt
50 function definitions as documented
51 \ref avr_signames "here".
52
53 Finally, the following macros are defined:
54
55 - \b RAMEND
56 <br>
57 A constant describing the last on-chip RAM location.
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s page 3
 
 
58 <br>
59 - \b XRAMEND
60 <br>
61 A constant describing the last possible location in RAM.
62 This is equal to RAMEND for devices that do not allow for
63 external RAM.
64 <br>
65 - \b E2END
66 <br>
67 A constant describing the address of the last EEPROM cell.
68 <br>
69 - \b FLASHEND
70 <br>
71 A constant describing the last byte address in flash ROM.
72 <br>
73 - \b SPM_PAGESIZE
74 <br>
75 For devices with bootloader support, the flash pagesize
76 (in bytes) to be used for the \c SPM instruction. */
77
78 #ifndef _AVR_IO_H_
79 #define _AVR_IO_H_
80
81 #include <avr/sfr_defs.h>
1 /* Copyright (c) 2002, Marek Michalkiewicz <marekm@amelek.gda.pl>
2 All rights reserved.
3
4 Redistribution and use in source and binary forms, with or without
5 modification, are permitted provided that the following conditions are met:
6
7 * Redistributions of source code must retain the above copyright
8 notice, this list of conditions and the following disclaimer.
9 * Redistributions in binary form must reproduce the above copyright
10 notice, this list of conditions and the following disclaimer in
11 the documentation and/or other materials provided with the
12 distribution.
13
14 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
18 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24 POSSIBILITY OF SUCH DAMAGE. */
25
26 /* avr/sfr_defs.h - macros for accessing AVR special function registers */
27
28 /* $Id: sfr_defs.h,v 1.10 2003/08/11 21:42:13 troth Exp $ */
29
30 #ifndef _AVR_SFR_DEFS_H_
31 #define _AVR_SFR_DEFS_H_ 1
32
33 /** \defgroup avr_sfr_notes Additional notes from <avr/sfr_defs.h>
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s page 4
 
 
34 \ingroup avr_sfr
35
36 The \c <avr/sfr_defs.h> file is included by all of the \c <avr/ioXXXX.h>
37 files, which use macros defined here to make the special function register
38 definitions look like C variables or simple constants, depending on the
39 <tt>_SFR_ASM_COMPAT</tt> define. Some examples from \c <avr/iom128.h> to
40 show how to define such macros:
41
42 \code
43 #define PORTA _SFR_IO8(0x1b)
44 #define TCNT1 _SFR_IO16(0x2c)
45 #define PORTF _SFR_MEM8(0x61)
46 #define TCNT3 _SFR_MEM16(0x88)
47 \endcode
48
49 If \c _SFR_ASM_COMPAT is not defined, C programs can use names like
50 <tt>PORTA</tt> directly in C expressions (also on the left side of
51 assignment operators) and GCC will do the right thing (use short I/O
52 instructions if possible). The \c __SFR_OFFSET definition is not used in
53 any way in this case.
54
55 Define \c _SFR_ASM_COMPAT as 1 to make these names work as simple constants
56 (addresses of the I/O registers). This is necessary when included in
57 preprocessed assembler (*.S) source files, so it is done automatically if
58 \c __ASSEMBLER__ is defined. By default, all addresses are defined as if
59 they were memory addresses (used in \c lds/sts instructions). To use these
60 addresses in \c in/out instructions, you must subtract 0x20 from them.
61
62 For more backwards compatibility, insert the following at the start of your
63 old assembler source file:
64
65 \code
66 #define __SFR_OFFSET 0
67 \endcode
68
69 This automatically subtracts 0x20 from I/O space addresses, but it's a
70 hack, so it is recommended to change your source: wrap such addresses in
71 macros defined here, as shown below. After this is done, the
72 <tt>__SFR_OFFSET</tt> definition is no longer necessary and can be removed.
73
74 Real example - this code could be used in a boot loader that is portable
75 between devices with \c SPMCR at different addresses.
76
77 \verbatim
78 <avr/iom163.h>: #define SPMCR _SFR_IO8(0x37)
79 <avr/iom128.h>: #define SPMCR _SFR_MEM8(0x68)
80 \endverbatim
81
82 \code
82
83 /*
84 * Registers common to all AVR devices.
85 */
86
87 #if __AVR_ARCH__ != 1
88 /*
89 * AVR architecture 1 has no RAM, thus no stack pointer.
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s page 5
 
 
90 *
91 * All other archs do have a stack pointer. Some devices have only
92 * less than 256 bytes of possible RAM locations (128 Bytes of SRAM
93 * and no option for external RAM), thus SPH is officially "reserved"
94 * for them. We catch this case below after including the
95 * device-specific ioXXXX.h file, by examining XRAMEND, and
96 * #undef-ining SP and SPH in that case.
97 */
98 /* Stack Pointer */
99 #define SP _SFR_IO16(0x3D)
100 #define SPL _SFR_IO8(0x3D)
101 #define SPH _SFR_IO8(0x3E)
102 #endif /* #if __AVR_ARCH__ != 1 */
103
104 /* Status REGister */
105 #define SREG _SFR_IO8(0x3F)
106
107 /* Status Register - SREG */
108 #define SREG_I 7
109 #define SREG_T 6
110 #define SREG_H 5
111 #define SREG_S 4
112 #define SREG_V 3
113 #define SREG_N 2
114 #define SREG_Z 1
115 #define SREG_C 0
116
117 /* Pointer definition */
118 #if __AVR_ARCH__ != 1
119 /* avr1 has only the Z pointer */
120 #define XL r26
121 #define XH r27
122 #define YL r28
123 #define YH r29
124 #endif /* #if __AVR_ARCH__ != 1 */
125 #define ZL r30
126 #define ZH r31
127
128 /*
129 * Only few devices come without EEPROM. In order to assemble the
130 * EEPROM library components without defining a specific device, we
131 * keep the EEPROM-related definitions here, and catch the devices
132 * without EEPROM (E2END == 0) below. Obviously, the EEPROM library
133 * functions will not work for them. ;-)
134 */
135 /* EEPROM Control Register */
136 #define EECR _SFR_IO8(0x1C)
137
138 /* EEPROM Data Register */
139 #define EEDR _SFR_IO8(0x1D)
140
141 /* EEPROM Address Register */
142 #define EEAR _SFR_IO16(0x1E)
143 #define EEARL _SFR_IO8(0x1E)
144 #define EEARH _SFR_IO8(0x1F)
145
146 /* EEPROM Control Register */
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s page 6
 
 
147 #define EERIE 3
148 #define EEMWE 2
149 #define EEWE 1
150 #define EERE 0
151
152 #if defined (__AVR_AT94K__)
153 # include <avr/ioat94k.h>
154 #elif defined (__AVR_AT43USB320__)
155 # include <avr/io43u32x.h>
156 #elif defined (__AVR_AT43USB355__)
157 # include <avr/io43u35x.h>
158 #elif defined (__AVR_AT76C711__)
159 # include <avr/io76c711.h>
160 #elif defined (__AVR_AT86RF401__)
161 # include <avr/io86r401.h>
162 #elif defined (__AVR_ATmega128__)
163 # include <avr/iom128.h>
164 #elif defined (__AVR_ATmega64__)
165 # include <avr/iom64.h>
166 #elif defined (__AVR_ATmega103__)
167 # include <avr/iom103.h>
168 #elif defined (__AVR_ATmega32__)
169 # include <avr/iom32.h>
170 #elif defined (__AVR_ATmega323__)
171 # include <avr/iom323.h>
172 #elif defined (__AVR_ATmega16__)
173 # include <avr/iom16.h>
174 #elif defined (__AVR_ATmega161__)
175 # include <avr/iom161.h>
176 #elif defined (__AVR_ATmega162__)
177 # include <avr/iom162.h>
178 #elif defined (__AVR_ATmega163__)
179 # include <avr/iom163.h>
180 #elif defined (__AVR_ATmega169__)
181 # include <avr/iom169.h>
182 #elif defined (__AVR_ATmega8__)
183 # include <avr/iom8.h>
1 /* Copyright (c) 2002, Marek Michalkiewicz
2 All rights reserved.
3
4 Redistribution and use in source and binary forms, with or without
5 modification, are permitted provided that the following conditions are met:
6
7 * Redistributions of source code must retain the above copyright
8 notice, this list of conditions and the following disclaimer.
9 * Redistributions in binary form must reproduce the above copyright
10 notice, this list of conditions and the following disclaimer in
11 the documentation and/or other materials provided with the
12 distribution.
13
14 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
15 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
18 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s page 7
 
 
21 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24 POSSIBILITY OF SUCH DAMAGE. */
25
26 /* $Id: iom8.h,v 1.8 2003/02/17 09:57:28 marekm Exp $ */
27
28 /* avr/iom8.h - definitions for ATmega8 */
29
30 #ifndef _AVR_IOM8_H_
31 #define _AVR_IOM8_H_ 1
32
33 /* This file should only be included from <avr/io.h>, never directly. */
34
35 #ifndef _AVR_IO_H_
36 # error "Include <avr/io.h> instead of this file."
37 #endif
38
39 #ifndef _AVR_IOXXX_H_
40 # define _AVR_IOXXX_H_ "iom8.h"
41 #else
42 # error "Attempt to include more than one <avr/ioXXX.h> file."
43 #endif
44
45 /* I/O registers */
46
47 /* TWI stands for "Two Wire Interface" or "TWI Was I2C(tm)" */
48 #define TWBR _SFR_IO8(0x00)
49 #define TWSR _SFR_IO8(0x01)
50 #define TWAR _SFR_IO8(0x02)
51 #define TWDR _SFR_IO8(0x03)
52
53 /* ADC */
54 #define ADCW _SFR_IO16(0x04)
55 #ifndef __ASSEMBLER__
56 #define ADC _SFR_IO16(0x04)
57 #endif
58 #define ADCL _SFR_IO8(0x04)
59 #define ADCH _SFR_IO8(0x05)
60 #define ADCSR _SFR_IO8(0x06)
61 #define ADCSRA _SFR_IO8(0x06) /* Changed in 2486H-AVR-09/02 */
62 #define ADMUX _SFR_IO8(0x07)
63
64 /* analog comparator */
65 #define ACSR _SFR_IO8(0x08)
66
67 /* USART */
68 #define UBRRL _SFR_IO8(0x09)
69 #define UCSRB _SFR_IO8(0x0A)
70 #define UCSRA _SFR_IO8(0x0B)
71 #define UDR _SFR_IO8(0x0C)
72
73 /* SPI */
74 #define SPCR _SFR_IO8(0x0D)
75 #define SPSR _SFR_IO8(0x0E)
76 #define SPDR _SFR_IO8(0x0F)
77
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s page 8
 
 
78 /* Port D */
79 #define PIND _SFR_IO8(0x10)
80 #define DDRD _SFR_IO8(0x11)
81 #define PORTD _SFR_IO8(0x12)
82
83 /* Port C */
84 #define PINC _SFR_IO8(0x13)
85 #define DDRC _SFR_IO8(0x14)
86 #define PORTC _SFR_IO8(0x15)
87
88 /* Port B */
89 #define PINB _SFR_IO8(0x16)
90 #define DDRB _SFR_IO8(0x17)
91 #define PORTB _SFR_IO8(0x18)
92
93 /* 0x1C..0x1F EEPROM */
94
95 #define UCSRC _SFR_IO8(0x20)
96 #define UBRRH _SFR_IO8(0x20)
97
98 #define WDTCR _SFR_IO8(0x21)
99 #define ASSR _SFR_IO8(0x22)
100
101 /* Timer 2 */
102 #define OCR2 _SFR_IO8(0x23)
103 #define TCNT2 _SFR_IO8(0x24)
104 #define TCCR2 _SFR_IO8(0x25)
105
106 /* Timer 1 */
107 #define ICR1 _SFR_IO16(0x26)
108 #define ICR1L _SFR_IO8(0x26)
109 #define ICR1H _SFR_IO8(0x27)
110 #define OCR1B _SFR_IO16(0x28)
111 #define OCR1BL _SFR_IO8(0x28)
112 #define OCR1BH _SFR_IO8(0x29)
113 #define OCR1A _SFR_IO16(0x2A)
114 #define OCR1AL _SFR_IO8(0x2A)
115 #define OCR1AH _SFR_IO8(0x2B)
116 #define TCNT1 _SFR_IO16(0x2C)
117 #define TCNT1L _SFR_IO8(0x2C)
118 #define TCNT1H _SFR_IO8(0x2D)
119 #define TCCR1B _SFR_IO8(0x2E)
120 #define TCCR1A _SFR_IO8(0x2F)
121
122 #define SFIOR _SFR_IO8(0x30)
123
124 #define OSCCAL _SFR_IO8(0x31)
125
126 /* Timer 0 */
127 #define TCNT0 _SFR_IO8(0x32)
128 #define TCCR0 _SFR_IO8(0x33)
129
130 #define MCUCSR _SFR_IO8(0x34)
131 #define MCUCR _SFR_IO8(0x35)
132
133 #define TWCR _SFR_IO8(0x36)
134
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s page 9
 
 
135 #define SPMCR _SFR_IO8(0x37)
136
137 #define TIFR _SFR_IO8(0x38)
138 #define TIMSK _SFR_IO8(0x39)
139
140 #define GIFR _SFR_IO8(0x3A)
141 #define GIMSK _SFR_IO8(0x3B)
142 #define GICR _SFR_IO8(0x3B) /* Changed in 2486H-AVR-09/02 */
143
144 /* 0x3C reserved (OCR0?) */
145
146 /* 0x3D..0x3E SP */
147
148 /* 0x3F SREG */
149
150 /* Interrupt vectors */
151
152 #define SIG_INTERRUPT0 _VECTOR(1)
153 #define SIG_INTERRUPT1 _VECTOR(2)
154 #define SIG_OUTPUT_COMPARE2 _VECTOR(3)
155 #define SIG_OVERFLOW2 _VECTOR(4)
156 #define SIG_INPUT_CAPTURE1 _VECTOR(5)
157 #define SIG_OUTPUT_COMPARE1A _VECTOR(6)
158 #define SIG_OUTPUT_COMPARE1B _VECTOR(7)
159 #define SIG_OVERFLOW1 _VECTOR(8)
160 #define SIG_OVERFLOW0 _VECTOR(9)
161 #define SIG_SPI _VECTOR(10)
162 #define SIG_UART_RECV _VECTOR(11)
163 #define SIG_UART_DATA _VECTOR(12)
164 #define SIG_UART_TRANS _VECTOR(13)
165 #define SIG_ADC _VECTOR(14)
166 #define SIG_EEPROM_READY _VECTOR(15)
167 #define SIG_COMPARATOR _VECTOR(16)
168 #define SIG_2WIRE_SERIAL _VECTOR(17)
169 #define SIG_SPM_READY _VECTOR(18)
170
171 #define _VECTORS_SIZE 38
172
173 /* Bit numbers */
174
175 /* GIMSK / GICR */
176 #define INT1 7
177 #define INT0 6
178 #define IVSEL 1
179 #define IVCE 0
180
181 /* GIFR */
182 #define INTF1 7
183 #define INTF0 6
184
184 #elif defined (__AVR_ATmega8515__)
GAS LISTING /tmp/cckBHomO.s page 2
 
 
1 /* Copyright (c) 2002,2003,2005,2006, Marek Michalkiewicz, Joerg Wunsch
2 All rights reserved.
3
4 Redistribution and use in source and binary forms, with or without
5 modification, are permitted provided that the following conditions are met:
6
7 * Redistributions of source code must retain the above copyright
8 notice, this list of conditions and the following disclaimer.
9
10 * Redistributions in binary form must reproduce the above copyright
11 notice, this list of conditions and the following disclaimer in
12 the documentation and/or other materials provided with the
13 distribution.
14
15 * Neither the name of the copyright holders nor the names of
16 contributors may be used to endorse or promote products derived
17 from this software without specific prior written permission.
18
19 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 POSSIBILITY OF SUCH DAMAGE. */
30
31 /* $Id: io.h,v 1.24.2.7 2006/04/19 16:53:25 aesok Exp $ */
32
33 /** \defgroup avr_io <avr/io.h>: AVR device-specific IO definitions
34 \code #include <avr/io.h> \endcode
35
36 This header file includes the apropriate IO definitions for the
37 device that has been specified by the <tt>-mmcu=</tt> compiler
38 command-line switch. This is done by diverting to the appropriate
39 file <tt>&lt;avr/io</tt><em>XXXX</em><tt>.h&gt;</tt> which should
40 never be included directly. Some register names common to all
41 AVR devices are defined directly within <tt>&lt;avr/io.h&gt;</tt>,
42 but most of the details come from the respective include file.
43
44 Note that this file always includes
45 \code #include <avr/sfr_defs.h> \endcode
46 See \ref avr_sfr for the details.
47
48 Included are definitions of the IO register set and their
49 respective bit values as specified in the Atmel documentation.
50 Note that Atmel is not very consistent in its naming conventions,
51 so even identical functions sometimes get different names on
52 different devices.
53
54 Also included are the specific names useable for interrupt
55 function definitions as documented
56 \ref avr_signames "here".
57
GAS LISTING /tmp/cckBHomO.s page 3
 
 
58 Finally, the following macros are defined:
59
60 - \b RAMEND
61 <br>
62 A constant describing the last on-chip RAM location.
63 <br>
64 - \b XRAMEND
65 <br>
66 A constant describing the last possible location in RAM.
67 This is equal to RAMEND for devices that do not allow for
68 external RAM.
69 <br>
70 - \b E2END
71 <br>
72 A constant describing the address of the last EEPROM cell.
73 <br>
74 - \b FLASHEND
75 <br>
76 A constant describing the last byte address in flash ROM.
77 <br>
78 - \b SPM_PAGESIZE
79 <br>
80 For devices with bootloader support, the flash pagesize
81 (in bytes) to be used for the \c SPM instruction. */
82
83 #ifndef _AVR_IO_H_
84 #define _AVR_IO_H_
85
86 #include <avr/sfr_defs.h>
1 /* Copyright (c) 2002, Marek Michalkiewicz <marekm@amelek.gda.pl>
2 All rights reserved.
3
4 Redistribution and use in source and binary forms, with or without
5 modification, are permitted provided that the following conditions are met:
6
7 * Redistributions of source code must retain the above copyright
8 notice, this list of conditions and the following disclaimer.
9
10 * Redistributions in binary form must reproduce the above copyright
11 notice, this list of conditions and the following disclaimer in
12 the documentation and/or other materials provided with the
13 distribution.
14
15 * Neither the name of the copyright holders nor the names of
16 contributors may be used to endorse or promote products derived
17 from this software without specific prior written permission.
18
19 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
GAS LISTING /tmp/cckBHomO.s page 4
 
 
29 POSSIBILITY OF SUCH DAMAGE. */
30
31 /* avr/sfr_defs.h - macros for accessing AVR special function registers */
32
33 /* $Id: sfr_defs.h,v 1.16 2005/09/10 21:31:13 joerg_wunsch Exp $ */
34
35 #ifndef _AVR_SFR_DEFS_H_
36 #define _AVR_SFR_DEFS_H_ 1
37
38 /** \defgroup avr_sfr_notes Additional notes from <avr/sfr_defs.h>
39 \ingroup avr_sfr
40
41 The \c <avr/sfr_defs.h> file is included by all of the \c <avr/ioXXXX.h>
42 files, which use macros defined here to make the special function register
43 definitions look like C variables or simple constants, depending on the
44 <tt>_SFR_ASM_COMPAT</tt> define. Some examples from \c <avr/iom128.h> to
45 show how to define such macros:
46
47 \code
48 #define PORTA _SFR_IO8(0x1b)
49 #define TCNT1 _SFR_IO16(0x2c)
50 #define PORTF _SFR_MEM8(0x61)
51 #define TCNT3 _SFR_MEM16(0x88)
52 \endcode
53
54 If \c _SFR_ASM_COMPAT is not defined, C programs can use names like
55 <tt>PORTA</tt> directly in C expressions (also on the left side of
56 assignment operators) and GCC will do the right thing (use short I/O
57 instructions if possible). The \c __SFR_OFFSET definition is not used in
58 any way in this case.
59
60 Define \c _SFR_ASM_COMPAT as 1 to make these names work as simple constants
61 (addresses of the I/O registers). This is necessary when included in
62 preprocessed assembler (*.S) source files, so it is done automatically if
63 \c __ASSEMBLER__ is defined. By default, all addresses are defined as if
64 they were memory addresses (used in \c lds/sts instructions). To use these
65 addresses in \c in/out instructions, you must subtract 0x20 from them.
66
67 For more backwards compatibility, insert the following at the start of your
68 old assembler source file:
69
70 \code
71 #define __SFR_OFFSET 0
72 \endcode
73
74 This automatically subtracts 0x20 from I/O space addresses, but it's a
75 hack, so it is recommended to change your source: wrap such addresses in
76 macros defined here, as shown below. After this is done, the
77 <tt>__SFR_OFFSET</tt> definition is no longer necessary and can be removed.
78
79 Real example - this code could be used in a boot loader that is portable
80 between devices with \c SPMCR at different addresses.
81
82 \verbatim
83 <avr/iom163.h>: #define SPMCR _SFR_IO8(0x37)
84 <avr/iom128.h>: #define SPMCR _SFR_MEM8(0x68)
85 \endverbatim
GAS LISTING /tmp/cckBHomO.s page 5
 
 
86
87 \code
87
88 #ifndef __AVR_HAVE_MOVW__
89 # if defined(__AVR_ENHANCED__) && __AVR_ENHANCED__
90 # define __AVR_HAVE_MOVW__ 1
91 # endif
92 #endif
93
94 #ifndef __AVR_HAVE_LPMX__
95 # if defined(__AVR_ENHANCED__) && __AVR_ENHANCED__
96 # define __AVR_HAVE_LPMX__ 1
97 # endif
98 #endif
99
100 /*
101 * Registers common to all AVR devices.
102 */
103
104 #if __AVR_ARCH__ != 1
105 /*
106 * AVR architecture 1 has no RAM, thus no stack pointer.
107 *
108 * All other archs do have a stack pointer. Some devices have only
109 * less than 256 bytes of possible RAM locations (128 Bytes of SRAM
110 * and no option for external RAM), thus SPH is officially "reserved"
111 * for them. We catch this case below after including the
112 * device-specific ioXXXX.h file, by examining XRAMEND, and
113 * #undef-ining SP and SPH in that case.
114 */
115 /* Stack Pointer */
116 #define SP _SFR_IO16(0x3D)
117 #define SPL _SFR_IO8(0x3D)
118 #define SPH _SFR_IO8(0x3E)
119 #endif /* #if __AVR_ARCH__ != 1 */
120
121 /* Status REGister */
122 #define SREG _SFR_IO8(0x3F)
123
124 /* Status Register - SREG */
125 #define SREG_I 7
126 #define SREG_T 6
127 #define SREG_H 5
128 #define SREG_S 4
129 #define SREG_V 3
130 #define SREG_N 2
131 #define SREG_Z 1
132 #define SREG_C 0
133
134 /* Pointer definition */
135 #if __AVR_ARCH__ != 1
136 /* avr1 has only the Z pointer */
137 #define XL r26
138 #define XH r27
139 #define YL r28
140 #define YH r29
141 #endif /* #if __AVR_ARCH__ != 1 */
GAS LISTING /tmp/cckBHomO.s page 6
 
 
142 #define ZL r30
143 #define ZH r31
144
145 /*
146 * Only few devices come without EEPROM. In order to assemble the
147 * EEPROM library components without defining a specific device, we
148 * keep the EEPROM-related definitions here.
149 */
150 #if defined(__COMPILING_AVR_LIBC__)
151
152 /* EEPROM Control Register */
153 #define EECR _SFR_IO8(0x1C)
154
155 /* EEPROM Data Register */
156 #define EEDR _SFR_IO8(0x1D)
157
158 /* EEPROM Address Register */
159 #define EEAR _SFR_IO16(0x1E)
160 #define EEARL _SFR_IO8(0x1E)
161 #define EEARH _SFR_IO8(0x1F)
162
163 /* EEPROM Control Register */
164 #define EERIE 3
165 #define EEMWE 2
166 #define EEWE 1
167 #define EERE 0
168
169 #endif /* __COMPILING_AVR_LIBC__ */
170
171 #if defined (__AVR_AT94K__)
172 # include <avr/ioat94k.h>
173 #elif defined (__AVR_AT43USB320__)
174 # include <avr/io43u32x.h>
175 #elif defined (__AVR_AT43USB355__)
176 # include <avr/io43u35x.h>
177 #elif defined (__AVR_AT76C711__)
178 # include <avr/io76c711.h>
179 #elif defined (__AVR_AT86RF401__)
180 # include <avr/io86r401.h>
181 #elif defined (__AVR_AT90PWM2__)
182 # include <avr/io90pwmx.h>
183 #elif defined (__AVR_AT90PWM3__)
184 # include <avr/io90pwmx.h>
185 #elif defined (__AVR_ATmega128__)
186 # include <avr/iom128.h>
187 #elif defined (__AVR_ATmega1280__)
188 # include <avr/iom1280.h>
189 #elif defined (__AVR_ATmega1281__)
190 # include <avr/iom1281.h>
191 #elif defined (__AVR_AT90CAN32__)
192 # include <avr/iocan32.h>
193 #elif defined (__AVR_AT90CAN64__)
194 # include <avr/iocan64.h>
195 #elif defined (__AVR_AT90CAN128__)
196 # include <avr/iocan128.h>
197 #elif defined (__AVR_AT90USB646__)
198 # include <avr/iousb646.h>
GAS LISTING /tmp/cckBHomO.s page 7
 
 
199 #elif defined (__AVR_AT90USB647__)
200 # include <avr/iousb647.h>
201 #elif defined (__AVR_AT90USB1286__)
202 # include <avr/iousb1286.h>
203 #elif defined (__AVR_AT90USB1287__)
204 # include <avr/iousb1287.h>
205 #elif defined (__AVR_ATmega64__)
206 # include <avr/iom64.h>
207 #elif defined (__AVR_ATmega640__)
208 # include <avr/iom640.h>
209 #elif defined (__AVR_ATmega644__)
210 # include <avr/iom644.h>
211 #elif defined (__AVR_ATmega644P__)
212 # include <avr/iom644.h>
213 #elif defined (__AVR_ATmega645__)
214 # include <avr/iom645.h>
215 #elif defined (__AVR_ATmega6450__)
216 # include <avr/iom6450.h>
217 #elif defined (__AVR_ATmega649__)
218 # include <avr/iom649.h>
219 #elif defined (__AVR_ATmega6490__)
220 # include <avr/iom6490.h>
221 #elif defined (__AVR_ATmega103__)
222 # include <avr/iom103.h>
223 #elif defined (__AVR_ATmega32__)
224 # include <avr/iom32.h>
225 #elif defined (__AVR_ATmega323__)
226 # include <avr/iom323.h>
227 #elif defined (__AVR_ATmega324P__)
228 # include <avr/iom324.h>
229 #elif defined (__AVR_ATmega325__)
230 # include <avr/iom325.h>
231 #elif defined (__AVR_ATmega3250__)
232 # include <avr/iom3250.h>
233 #elif defined (__AVR_ATmega329__)
234 # include <avr/iom329.h>
235 #elif defined (__AVR_ATmega3290__)
236 # include <avr/iom3290.h>
237 #elif defined (__AVR_ATmega406__)
238 # include <avr/iom406.h>
239 #elif defined (__AVR_ATmega16__)
240 # include <avr/iom16.h>
241 #elif defined (__AVR_ATmega161__)
242 # include <avr/iom161.h>
243 #elif defined (__AVR_ATmega162__)
244 # include <avr/iom162.h>
245 #elif defined (__AVR_ATmega163__)
246 # include <avr/iom163.h>
247 #elif defined (__AVR_ATmega164P__)
248 # include <avr/iom164.h>
249 #elif defined (__AVR_ATmega165__)
250 # include <avr/iom165.h>
251 #elif defined (__AVR_ATmega168__)
252 # include <avr/iom168.h>
253 #elif defined (__AVR_ATmega169__)
254 # include <avr/iom169.h>
255 #elif defined (__AVR_ATmega8__)
GAS LISTING /tmp/cckBHomO.s page 8
 
 
256 # include <avr/iom8.h>
1 /* Copyright (c) 2002, Marek Michalkiewicz
2 All rights reserved.
3
4 Redistribution and use in source and binary forms, with or without
5 modification, are permitted provided that the following conditions are met:
6
7 * Redistributions of source code must retain the above copyright
8 notice, this list of conditions and the following disclaimer.
9
10 * Redistributions in binary form must reproduce the above copyright
11 notice, this list of conditions and the following disclaimer in
12 the documentation and/or other materials provided with the
13 distribution.
14
15 * Neither the name of the copyright holders nor the names of
16 contributors may be used to endorse or promote products derived
17 from this software without specific prior written permission.
18
19 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 POSSIBILITY OF SUCH DAMAGE. */
30
31 /* $Id: iom8.h,v 1.13 2005/10/30 22:11:23 joerg_wunsch Exp $ */
32
33 /* avr/iom8.h - definitions for ATmega8 */
34
35 #ifndef _AVR_IOM8_H_
36 #define _AVR_IOM8_H_ 1
37
38 /* This file should only be included from <avr/io.h>, never directly. */
39
40 #ifndef _AVR_IO_H_
41 # error "Include <avr/io.h> instead of this file."
42 #endif
43
44 #ifndef _AVR_IOXXX_H_
45 # define _AVR_IOXXX_H_ "iom8.h"
46 #else
47 # error "Attempt to include more than one <avr/ioXXX.h> file."
48 #endif
49
50 /* I/O registers */
51
52 /* TWI stands for "Two Wire Interface" or "TWI Was I2C(tm)" */
53 #define TWBR _SFR_IO8(0x00)
54 #define TWSR _SFR_IO8(0x01)
55 #define TWAR _SFR_IO8(0x02)
56 #define TWDR _SFR_IO8(0x03)
GAS LISTING /tmp/cckBHomO.s page 9
 
 
57
58 /* ADC */
59 #define ADCW _SFR_IO16(0x04)
60 #ifndef __ASSEMBLER__
61 #define ADC _SFR_IO16(0x04)
62 #endif
63 #define ADCL _SFR_IO8(0x04)
64 #define ADCH _SFR_IO8(0x05)
65 #define ADCSR _SFR_IO8(0x06)
66 #define ADCSRA _SFR_IO8(0x06) /* Changed in 2486H-AVR-09/02 */
67 #define ADMUX _SFR_IO8(0x07)
68
69 /* analog comparator */
70 #define ACSR _SFR_IO8(0x08)
71
72 /* USART */
73 #define UBRRL _SFR_IO8(0x09)
74 #define UCSRB _SFR_IO8(0x0A)
75 #define UCSRA _SFR_IO8(0x0B)
76 #define UDR _SFR_IO8(0x0C)
77
78 /* SPI */
79 #define SPCR _SFR_IO8(0x0D)
80 #define SPSR _SFR_IO8(0x0E)
81 #define SPDR _SFR_IO8(0x0F)
82
83 /* Port D */
84 #define PIND _SFR_IO8(0x10)
85 #define DDRD _SFR_IO8(0x11)
86 #define PORTD _SFR_IO8(0x12)
87
88 /* Port C */
89 #define PINC _SFR_IO8(0x13)
90 #define DDRC _SFR_IO8(0x14)
91 #define PORTC _SFR_IO8(0x15)
92
93 /* Port B */
94 #define PINB _SFR_IO8(0x16)
95 #define DDRB _SFR_IO8(0x17)
96 #define PORTB _SFR_IO8(0x18)
97
98 /* EEPROM Control Register */
99 #define EECR _SFR_IO8(0x1C)
100
101 /* EEPROM Data Register */
102 #define EEDR _SFR_IO8(0x1D)
103
104 /* EEPROM Address Register */
105 #define EEAR _SFR_IO16(0x1E)
106 #define EEARL _SFR_IO8(0x1E)
107 #define EEARH _SFR_IO8(0x1F)
108
109 #define UCSRC _SFR_IO8(0x20)
110 #define UBRRH _SFR_IO8(0x20)
111
112 #define WDTCR _SFR_IO8(0x21)
113 #define ASSR _SFR_IO8(0x22)
GAS LISTING /tmp/cckBHomO.s page 10
 
 
114
115 /* Timer 2 */
116 #define OCR2 _SFR_IO8(0x23)
117 #define TCNT2 _SFR_IO8(0x24)
118 #define TCCR2 _SFR_IO8(0x25)
119
120 /* Timer 1 */
121 #define ICR1 _SFR_IO16(0x26)
122 #define ICR1L _SFR_IO8(0x26)
123 #define ICR1H _SFR_IO8(0x27)
124 #define OCR1B _SFR_IO16(0x28)
125 #define OCR1BL _SFR_IO8(0x28)
126 #define OCR1BH _SFR_IO8(0x29)
127 #define OCR1A _SFR_IO16(0x2A)
128 #define OCR1AL _SFR_IO8(0x2A)
129 #define OCR1AH _SFR_IO8(0x2B)
130 #define TCNT1 _SFR_IO16(0x2C)
131 #define TCNT1L _SFR_IO8(0x2C)
132 #define TCNT1H _SFR_IO8(0x2D)
133 #define TCCR1B _SFR_IO8(0x2E)
134 #define TCCR1A _SFR_IO8(0x2F)
135
136 #define SFIOR _SFR_IO8(0x30)
137
138 #define OSCCAL _SFR_IO8(0x31)
139
140 /* Timer 0 */
141 #define TCNT0 _SFR_IO8(0x32)
142 #define TCCR0 _SFR_IO8(0x33)
143
144 #define MCUCSR _SFR_IO8(0x34)
145 #define MCUCR _SFR_IO8(0x35)
146
147 #define TWCR _SFR_IO8(0x36)
148
149 #define SPMCR _SFR_IO8(0x37)
150
151 #define TIFR _SFR_IO8(0x38)
152 #define TIMSK _SFR_IO8(0x39)
153
154 #define GIFR _SFR_IO8(0x3A)
155 #define GIMSK _SFR_IO8(0x3B)
156 #define GICR _SFR_IO8(0x3B) /* Changed in 2486H-AVR-09/02 */
157
158 /* 0x3C reserved (OCR0?) */
159
160 /* 0x3D..0x3E SP */
161
162 /* 0x3F SREG */
163
164 /* Interrupt vectors */
165
166 /* External Interrupt Request 0 */
167 #define INT0_vect _VECTOR(1)
168 #define SIG_INTERRUPT0 _VECTOR(1)
169
170 /* External Interrupt Request 1 */
GAS LISTING /tmp/cckBHomO.s page 11
 
 
171 #define INT1_vect _VECTOR(2)
172 #define SIG_INTERRUPT1 _VECTOR(2)
173
174 /* Timer/Counter2 Compare Match */
175 #define TIMER2_COMP_vect _VECTOR(3)
176 #define SIG_OUTPUT_COMPARE2 _VECTOR(3)
177
178 /* Timer/Counter2 Overflow */
179 #define TIMER2_OVF_vect _VECTOR(4)
180 #define SIG_OVERFLOW2 _VECTOR(4)
181
182 /* Timer/Counter1 Capture Event */
183 #define TIMER1_CAPT_vect _VECTOR(5)
184 #define SIG_INPUT_CAPTURE1 _VECTOR(5)
185
186 /* Timer/Counter1 Compare Match A */
187 #define TIMER1_COMPA_vect _VECTOR(6)
188 #define SIG_OUTPUT_COMPARE1A _VECTOR(6)
189
190 /* Timer/Counter1 Compare Match B */
191 #define TIMER1_COMPB_vect _VECTOR(7)
192 #define SIG_OUTPUT_COMPARE1B _VECTOR(7)
193
194 /* Timer/Counter1 Overflow */
195 #define TIMER1_OVF_vect _VECTOR(8)
196 #define SIG_OVERFLOW1 _VECTOR(8)
197
198 /* Timer/Counter0 Overflow */
199 #define TIMER0_OVF_vect _VECTOR(9)
200 #define SIG_OVERFLOW0 _VECTOR(9)
201
202 /* Serial Transfer Complete */
203 #define SPI_STC_vect _VECTOR(10)
204 #define SIG_SPI _VECTOR(10)
205
206 /* USART, Rx Complete */
207 #define USART_RXC_vect _VECTOR(11)
208 #define SIG_UART_RECV _VECTOR(11)
209
210 /* USART Data Register Empty */
211 #define USART_UDRE_vect _VECTOR(12)
212 #define SIG_UART_DATA _VECTOR(12)
213
214 /* USART, Tx Complete */
215 #define USART_TXC_vect _VECTOR(13)
216 #define SIG_UART_TRANS _VECTOR(13)
217
218 /* ADC Conversion Complete */
219 #define ADC_vect _VECTOR(14)
220 #define SIG_ADC _VECTOR(14)
221
222 /* EEPROM Ready */
223 #define EE_RDY_vect _VECTOR(15)
224 #define SIG_EEPROM_READY _VECTOR(15)
225
226 /* Analog Comparator */
227 #define ANA_COMP_vect _VECTOR(16)
GAS LISTING /tmp/cckBHomO.s page 12
 
 
228 #define SIG_COMPARATOR _VECTOR(16)
229
230 /* 2-wire Serial Interface */
231 #define TWI_vect _VECTOR(17)
232 #define SIG_2WIRE_SERIAL _VECTOR(17)
233
234 /* Store Program Memory Ready */
235 #define SPM_RDY_vect _VECTOR(18)
236 #define SIG_SPM_READY _VECTOR(18)
237
238 #define _VECTORS_SIZE 38
239
240 /* Bit numbers */
241
242 /* GIMSK / GICR */
243 #define INT1 7
244 #define INT0 6
245 #define IVSEL 1
246 #define IVCE 0
247
248 /* GIFR */
249 #define INTF1 7
250 #define INTF0 6
251
252 /* TIMSK */
253 #define OCIE2 7
254 #define TOIE2 6
255 #define TICIE1 5
256 #define OCIE1A 4
257 #define OCIE1B 3
257 #elif defined (__AVR_ATmega48__)
258 # include <avr/iom48.h>
259 #elif defined (__AVR_ATmega88__)
260 # include <avr/iom88.h>
261 #elif defined (__AVR_ATmega8515__)
262 # include <avr/iom8515.h>
263 #elif defined (__AVR_ATmega8535__)
264 # include <avr/iom8535.h>
265 #elif defined (__AVR_AT90S8535__)
266 # include <avr/io8535.h>
267 #elif defined (__AVR_AT90C8534__)
268 # include <avr/io8534.h>
269 #elif defined (__AVR_AT90S8515__)
270 # include <avr/io8515.h>
271 #elif defined (__AVR_AT90S4434__)
272 # include <avr/io4434.h>
273 #elif defined (__AVR_AT90S4433__)
274 # include <avr/io4433.h>
275 #elif defined (__AVR_AT90S4414__)
276 # include <avr/io4414.h>
277 #elif defined (__AVR_ATtiny22__)
278 # include <avr/iotn22.h>
279 #elif defined (__AVR_ATtiny26__)
280 # include <avr/iotn26.h>
281 #elif defined (__AVR_AT90S2343__)
282 # include <avr/io2343.h>
283 #elif defined (__AVR_AT90S2333__)
GAS LISTING /tmp/cckBHomO.s page 13
 
 
284 # include <avr/io2333.h>
285 #elif defined (__AVR_AT90S2323__)
286 # include <avr/io2323.h>
287 #elif defined (__AVR_AT90S2313__)
288 # include <avr/io2313.h>
289 #elif defined (__AVR_ATtiny2313__)
290 # include <avr/iotn2313.h>
291 #elif defined (__AVR_ATtiny13__)
292 # include <avr/iotn13.h>
293 #elif defined (__AVR_ATtiny25__)
294 # include <avr/iotn25.h>
295 #elif defined (__AVR_ATtiny45__)
296 # include <avr/iotn45.h>
297 #elif defined (__AVR_ATtiny85__)
298 # include <avr/iotn85.h>
299 #elif defined (__AVR_ATtiny24__)
300 # include <avr/iotn24.h>
301 #elif defined (__AVR_ATtiny44__)
302 # include <avr/iotn44.h>
303 #elif defined (__AVR_ATtiny84__)
304 # include <avr/iotn84.h>
305 #elif defined (__AVR_ATtiny261__)
306 # include <avr/iotn261.h>
307 #elif defined (__AVR_ATtiny461__)
308 # include <avr/iotn461.h>
309 #elif defined (__AVR_ATtiny861__)
310 # include <avr/iotn861.h>
311 /* avr1: the following only supported for assembler programs */
312 #elif defined (__AVR_ATtiny28__)
313 # include <avr/iotn28.h>
314 #elif defined (__AVR_AT90S1200__)
315 # include <avr/io1200.h>
316 #elif defined (__AVR_ATtiny15__)
317 # include <avr/iotn15.h>
318 #elif defined (__AVR_ATtiny12__)
319 # include <avr/iotn12.h>
320 #elif defined (__AVR_ATtiny11__)
321 # include <avr/iotn11.h>
322 #else
323 # if !defined(__COMPILING_AVR_LIBC__)
324 # warning "device type not defined"
325 # endif
326 #endif
327
328 #include <avr/portpins.h>
1 /* Copyright (c) 2003 Theodore A. Roth
2 All rights reserved.
3
4 Redistribution and use in source and binary forms, with or without
5 modification, are permitted provided that the following conditions are met:
6
7 * Redistributions of source code must retain the above copyright
8 notice, this list of conditions and the following disclaimer.
9
10 * Redistributions in binary form must reproduce the above copyright
11 notice, this list of conditions and the following disclaimer in
12 the documentation and/or other materials provided with the
GAS LISTING /tmp/cckBHomO.s page 14
 
 
13 distribution.
14
15 * Neither the name of the copyright holders nor the names of
16 contributors may be used to endorse or promote products derived
17 from this software without specific prior written permission.
18
19 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 POSSIBILITY OF SUCH DAMAGE. */
30
31 /* $Id: portpins.h,v 1.3.4.1 2006/03/10 16:22:38 aesok Exp $ */
32
33 #ifndef _AVR_PORTPINS_H_
34 #define _AVR_PORTPINS_H_ 1
35
36 /* This file should only be included from <avr/io.h>, never directly. */
37
38 #ifndef _AVR_IO_H_
39 # error "Include <avr/io.h> instead of this file."
40 #endif
41
42 /* Define Generic PORTn, DDn, and PINn values. */
43
44 /* Port Data Register (generic) */
45 #define PORT7 7
46 #define PORT6 6
47 #define PORT5 5
48 #define PORT4 4
49 #define PORT3 3
50 #define PORT2 2
51 #define PORT1 1
52 #define PORT0 0
53
54 /* Port Data Direction Register (generic) */
55 #define DD7 7
56 #define DD6 6
57 #define DD5 5
58 #define DD4 4
59 #define DD3 3
60 #define DD2 2
61 #define DD1 1
62 #define DD0 0
63
64 /* Port Input Pins (generic) */
65 #define PIN7 7
66 #define PIN6 6
67 #define PIN5 5
68 #define PIN4 4
69 #define PIN3 3
GAS LISTING /tmp/cckBHomO.s page 15
 
 
70 #define PIN2 2
71 #define PIN1 1
72 #define PIN0 0
73
74 /* Define PORTxn values for all possible port pins. */
75
76 /* PORT A */
77
78 #if defined(PA0)
79 # define PORTA0 PA0
80 #endif
81 #if defined(PA1)
82 # define PORTA1 PA1
83 #endif
84 #if defined(PA2)
85 # define PORTA2 PA2
86 #endif
87 #if defined(PA3)
88 # define PORTA3 PA3
89 #endif
90 #if defined(PA4)
91 # define PORTA4 PA4
92 #endif
93 #if defined(PA5)
94 # define PORTA5 PA5
95 #endif
96 #if defined(PA6)
97 # define PORTA6 PA6
98 #endif
99 #if defined(PA7)
100 # define PORTA7 PA7
101 #endif
102
103 /* PORT B */
104
105 #if defined(PB0)
106 # define PORTB0 PB0
107 #endif
108 #if defined(PB1)
109 # define PORTB1 PB1
110 #endif
111 #if defined(PB2)
112 # define PORTB2 PB2
113 #endif
114 #if defined(PB3)
115 # define PORTB3 PB3
116 #endif
117 #if defined(PB4)
118 # define PORTB4 PB4
119 #endif
120 #if defined(PB5)
121 # define PORTB5 PB5
122 #endif
123 #if defined(PB6)
124 # define PORTB6 PB6
125 #endif
126 #if defined(PB7)
GAS LISTING /tmp/cckBHomO.s page 16
 
 
127 # define PORTB7 PB7
128 #endif
129
130 /* PORT C */
131
132 #if defined(PC0)
133 # define PORTC0 PC0
134 #endif
135 #if defined(PC1)
136 # define PORTC1 PC1
137 #endif
138 #if defined(PC2)
139 # define PORTC2 PC2
140 #endif
141 #if defined(PC3)
142 # define PORTC3 PC3
143 #endif
144 #if defined(PC4)
145 # define PORTC4 PC4
146 #endif
147 #if defined(PC5)
148 # define PORTC5 PC5
149 #endif
150 #if defined(PC6)
151 # define PORTC6 PC6
152 #endif
153 #if defined(PC7)
154 # define PORTC7 PC7
155 #endif
156
157 /* PORT D */
158
159 #if defined(PD0)
160 # define PORTD0 PD0
161 #endif
162 #if defined(PD1)
163 # define PORTD1 PD1
164 #endif
165 #if defined(PD2)
166 # define PORTD2 PD2
167 #endif
168 #if defined(PD3)
169 # define PORTD3 PD3
170 #endif
171 #if defined(PD4)
172 # define PORTD4 PD4
173 #endif
174 #if defined(PD5)
175 # define PORTD5 PD5
176 #endif
177 #if defined(PD6)
178 # define PORTD6 PD6
179 #endif
180 #if defined(PD7)
181 # define PORTD7 PD7
182 #endif
183
GAS LISTING /tmp/cckBHomO.s page 17
 
 
184 /* PORT E */
185
186 #if defined(PE0)
187 # define PORTE0 PE0
188 #endif
189 #if defined(PE1)
190 # define PORTE1 PE1
191 #endif
192 #if defined(PE2)
193 # define PORTE2 PE2
194 #endif
195 #if defined(PE3)
196 # define PORTE3 PE3
197 #endif
198 #if defined(PE4)
199 # define PORTE4 PE4
200 #endif
201 #if defined(PE5)
202 # define PORTE5 PE5
203 #endif
204 #if defined(PE6)
205 # define PORTE6 PE6
206 #endif
207 #if defined(PE7)
208 # define PORTE7 PE7
209 #endif
210
211 /* PORT F */
212
213 #if defined(PF0)
214 # define PORTF0 PF0
215 #endif
216 #if defined(PF1)
217 # define PORTF1 PF1
218 #endif
219 #if defined(PF2)
220 # define PORTF2 PF2
221 #endif
222 #if defined(PF3)
223 # define PORTF3 PF3
224 #endif
225 #if defined(PF4)
226 # define PORTF4 PF4
227 #endif
228 #if defined(PF5)
229 # define PORTF5 PF5
230 #endif
231 #if defined(PF6)
232 # define PORTF6 PF6
233 #endif
234 #if defined(PF7)
235 # define PORTF7 PF7
236 #endif
237
238 /* PORT G */
239
240 #if defined(PG0)
GAS LISTING /tmp/cckBHomO.s page 18
 
 
241 # define PORTG0 PG0
242 #endif
243 #if defined(PG1)
244 # define PORTG1 PG1
245 #endif
246 #if defined(PG2)
247 # define PORTG2 PG2
248 #endif
249 #if defined(PG3)
250 # define PORTG3 PG3
251 #endif
252 #if defined(PG4)
253 # define PORTG4 PG4
254 #endif
255 #if defined(PG5)
256 # define PORTG5 PG5
257 #endif
258 #if defined(PG6)
259 # define PORTG6 PG6
260 #endif
261 #if defined(PG7)
262 # define PORTG7 PG7
263 #endif
264
265 /* PORT H */
266
267 #if defined(PH0)
268 # define PORTH0 PH0
269 #endif
270 #if defined(PH1)
271 # define PORTH1 PH1
272 #endif
273 #if defined(PH2)
274 # define PORTH2 PH2
275 #endif
276 #if defined(PH3)
277 # define PORTH3 PH3
278 #endif
279 #if defined(PH4)
280 # define PORTH4 PH4
281 #endif
282 #if defined(PH5)
283 # define PORTH5 PH5
284 #endif
285 #if defined(PH6)
286 # define PORTH6 PH6
287 #endif
288 #if defined(PH7)
289 # define PORTH7 PH7
290 #endif
291
292 /* PORT J */
293
294 #if defined(PJ0)
295 # define PORTJ0 PJ0
296 #endif
297 #if defined(PJ1)
GAS LISTING /tmp/cckBHomO.s page 19
 
 
298 # define PORTJ1 PJ1
299 #endif
300 #if defined(PJ2)
301 # define PORTJ2 PJ2
302 #endif
303 #if defined(PJ3)
304 # define PORTJ3 PJ3
305 #endif
306 #if defined(PJ4)
307 # define PORTJ4 PJ4
308 #endif
309 #if defined(PJ5)
310 # define PORTJ5 PJ5
311 #endif
312 #if defined(PJ6)
313 # define PORTJ6 PJ6
314 #endif
315 #if defined(PJ7)
316 # define PORTJ7 PJ7
317 #endif
318
319 /* PORT K */
320
321 #if defined(PK0)
322 # define PORTK0 PK0
323 #endif
324 #if defined(PK1)
325 # define PORTK1 PK1
326 #endif
327 #if defined(PK2)
328 # define PORTK2 PK2
329 #endif
329
330 #if __AVR_ARCH__ != 1
331 # if XRAMEND < 0x100 && !defined(__COMPILING_AVR_LIBC__)
332 # undef SP
333 # define SP _SFR_IO8(0x3D)
334 # undef SPH
335 # endif
336 #endif
337
338 #include <avr/version.h>
1 /* Copyright (c) 2005, Joerg Wunsch -*- c -*-
2 All rights reserved.
3
4 Redistribution and use in source and binary forms, with or without
5 modification, are permitted provided that the following conditions are met:
6
7 * Redistributions of source code must retain the above copyright
8 notice, this list of conditions and the following disclaimer.
9
10 * Redistributions in binary form must reproduce the above copyright
11 notice, this list of conditions and the following disclaimer in
12 the documentation and/or other materials provided with the
13 distribution.
14
15 * Neither the name of the copyright holders nor the names of
GAS LISTING /tmp/cckBHomO.s page 20
 
 
16 contributors may be used to endorse or promote products derived
17 from this software without specific prior written permission.
18
19 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
22 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
23 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 POSSIBILITY OF SUCH DAMAGE. */
30
31 /* $Id: version.h.in,v 1.1 2005/09/12 20:18:12 joerg_wunsch Exp $ */
32
33 /** \defgroup avr_version <avr/version.h>: avr-libc version macros
34 \code #include <avr/version.h> \endcode
35
36 This header file defines macros that contain version numbers and
37 strings describing the current version of avr-libc.
38
39 The version number itself basically consists of three pieces that
40 are separated by a dot: the major number, the minor number, and
41 the revision number. For development versions (which use an odd
42 minor number), the string representation additionally gets the
43 date code (YYYYMMDD) appended.
44
45 This file will also be included by \c <avr/io.h>. That way,
46 portable tests can be implemented using \c <avr/io.h> that can be
47 used in code that wants to remain backwards-compatible to library
48 versions prior to the date when the library version API had been
49 added, as referenced but undefined C preprocessor macros
50 automatically evaluate to 0.
51 */
52
53 #ifndef _AVR_VERSION_H_
54 #define _AVR_VERSION_H_
55
56 /** \ingroup avr_version
57 String literal representation of the current library version. */
58 #define __AVR_LIBC_VERSION_STRING__ "1.4.4"
59
60 /** \ingroup avr_version
61 Numerical representation of the current library version.
62
63 In the numerical representation, the major number is multiplied by
64 10000, the minor number by 100, and all three parts are then
65 added. It is intented to provide a monotonically increasing
66 numerical value that can easily be used in numerical checks.
67 */
68 #define __AVR_LIBC_VERSION__ 10404UL
69
70 /** \ingroup avr_version
71 String literal representation of the release date. */
72 #define __AVR_LIBC_DATE_STRING__ "20060420"
GAS LISTING /tmp/cckBHomO.s page 21
 
 
73
74 /** \ingroup avr_version
75 Numerical representation of the release date. */
76 #define __AVR_LIBC_DATE_ 20060420UL
77
78 /** \ingroup avr_version
79 Library major version number. */
80 #define __AVR_LIBC_MAJOR__ 1
81
82 /** \ingroup avr_version
83 Library minor version number. */
84 #define __AVR_LIBC_MINOR__ 4
85
86 /** \ingroup avr_version
87 Library revision number. */
88 #define __AVR_LIBC_REVISION__ 4
89
90 #endif /* _AVR_VERSION_H_ */
91 ...
339
54 #include "Events.h"
1 #ifndef EVENTS_H
2 #define EVENTS_H
538,9 → 1227,6
3
4 /*
5 Copyright (C) 2004 John Orlando
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s page 10
 
 
6
7 AVRcam: a small real-time image processing engine.
8
572,6 → 1258,9
34 Description: This file provides the external interface
35 to the events that can be published/processed in the
36 system. It is specifically by itself (and nothing
GAS LISTING /tmp/cckBHomO.s page 22
 
 
37 else should be defined in here) so that both .c and
38 .S (assembly) files can include this file without
39 a problem.
598,9 → 1287,6
59 #define HREF_INTERRUPT_ENABLE_MASK 0x80
60 #define HREF_INTERRUPT_DISABLE_MASK 0x7F
61 #define ENABLE_PCLK_TIMER1_OVERFLOW_BITMASK 0x04
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s page 11
 
 
62 #define DISABLE_PCLK_TIMER1_OVERFLOW_BITMASK 0xFB
63 #define G_PORT _SFR_IO_ADDR(PINC)
64 #define RB_PORT _SFR_IO_ADDR(PINB)
632,6 → 1318,9
90
91 ; As pixel blocks are sampled, the red, green, and blue values are
92 ; used to index into their respective color maps. The color maps
GAS LISTING /tmp/cckBHomO.s page 23
 
 
93 ; return values that can be logically ANDed together so that a
94 ; particular RGB triplet will result in a single bit being set
95 ; after the AND operation. This single bit indicates which color
658,9 → 1347,6
116
117 ; These are the registers that will be used throughout this
118 ; module for acquiring each line of pixel data
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s page 12
 
 
119 pixelCount = 16
120 pixelRunStart = 17
121 lastColor = 18
692,6 → 1378,9
147 ;*****************************************************************
148 ; Function Name: CamIntAsm_waitForNewTrackingFrame
149 ; Function Description: This function is responsible for
GAS LISTING /tmp/cckBHomO.s page 24
 
 
150 ; going to sleep until a new frame begins (indicated by
151 ; VSYNC transitioning from low to high. This will wake
152 ; the "VSYNC sleep" up and allow it to continue with
718,9 → 1407,6
173
174 ;*****************************************************************
175 ; REMEMBER...everything from here on out is critically timed to be
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s page 13
 
 
176 ; synchronized with the flow of pixel data from the camera...
177 ;*****************************************************************
178
752,6 → 1438,9
204:CamInterfaceAsm.S **** out _SFR_IO_ADDR(TIMSK),tmp1 ; overflow
205
206:CamInterfaceAsm.S **** ldi tmp1,PIXEL_RUN_START_INITIAL ; set up the TCNT1 to overflow (and
GAS LISTING /tmp/cckBHomO.s page 25
 
 
207:CamInterfaceAsm.S **** ldi tmp2,0xFF ; interrupts) after 176 pixels
208:CamInterfaceAsm.S **** out _SFR_IO_ADDR(TCNT1H),tmp2
209:CamInterfaceAsm.S **** out _SFR_IO_ADDR(TCNT1L),tmp1
778,9 → 1467,6
230 ; Disable the HREF interrupt
231:CamInterfaceAsm.S **** cbi _SFR_IO_ADDR(PORTD),PD6
232:CamInterfaceAsm.S **** in tmp1, _SFR_IO_ADDR(GICR)
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s page 14
 
 
233:CamInterfaceAsm.S **** andi tmp1, HREF_INTERRUPT_DISABLE_MASK
234:CamInterfaceAsm.S **** out _SFR_IO_ADDR(GICR), tmp1
235
812,6 → 1498,9
261:CamInterfaceAsm.S **** sbi _SFR_IO_ADDR(PORTD),PD6
262:CamInterfaceAsm.S **** nop
263:CamInterfaceAsm.S **** cbi _SFR_IO_ADDR(PORTD),PD6
GAS LISTING /tmp/cckBHomO.s page 26
 
 
264
265:CamInterfaceAsm.S **** mov tmp2,pixelRunStart ; get the count value of the
266 ; current pixel run
838,9 → 1527,6
287
288:CamInterfaceAsm.S **** st X+,color ; record the color run in the current line buffer
289:CamInterfaceAsm.S **** st X,pixelCount
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s page 15
 
 
290:CamInterfaceAsm.S **** rjmp _cleanUp
291
292 _cleanUpDumpLine:
872,6 → 1558,9
318
319 ;*****************************************************************
320 ; Function Name: CamIntAsm_waitForNewDumpFrame
GAS LISTING /tmp/cckBHomO.s page 27
 
 
321 ; Function Description: This function is responsible for
322 ; going to sleep until a new frame begins (indicated by
323 ; VSYNC transitioning from low to high. This will wake
898,9 → 1587,6
344
345 CamIntAsm_acquireDumpLine:
346:CamInterfaceAsm.S **** brts _cleanUp
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s page 16
 
 
347 ;sbi _SFR_IO_ADDR(PORTD),PD6 ; For testing...
348 ;cbi _SFR_IO_ADDR(PORTD),PD6
349
932,6 → 1618,9
375
376 ;*******************************************************************************************
377 ; Dump Frame handler
GAS LISTING /tmp/cckBHomO.s page 28
 
 
378 ;*******************************************************************************************
379
380 _dumpFrame:
958,9 → 1647,6
401:CamInterfaceAsm.S **** in tmp1,G_PORT ; sample the G value (1)
402:CamInterfaceAsm.S **** in tmp2,RB_PORT ; sample the R/B value (1)
403:CamInterfaceAsm.S **** st X+,tmp1 ; store to the currLineBuff and inc ptrs(2)
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s page 17
 
 
404:CamInterfaceAsm.S **** st Y+,tmp2 ; store to the prevLineBuff and inc ptrs(2)
405:CamInterfaceAsm.S **** brtc _sampleDumpPixel ; loop back unless flag is set (2...if not set)
406 ; ___________
992,6 → 1678,9
432 ; whenever the HREF transitions (meaning the pixels
433 ; are starting after VSYNC transitioned, and we need to
434 ; start acquiring the pixel blocks
GAS LISTING /tmp/cckBHomO.s page 29
 
 
435 ; Inputs: none
436 ; Outputs: none
437 ;***********************************************************
1018,9 → 1707,6
458 ; set ; set the T bit in SREG
459 ; lds tmp1,eventBitmask
460 ; ori tmp1,EV_ACQUIRE_FRAME_COMPLETE
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s page 18
 
 
461 ; sts eventBitmask,tmp1
462 ; reti
463
1051,53 → 1737,42
488:CamInterfaceAsm.S **** reti
489
490 .end
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s page 19
 
 
DEFINED SYMBOLS
*ABS*:00000000 CamInterfaceAsm.S
*ABS*:00000000 Events.h
*ABS*:00000000 CamInterfaceAsm.S
*ABS*:00000000 C:/WinAVR/avr/include/avr/io.h
*ABS*:00000000 C:/WinAVR/avr/include/avr/iom8.h
*ABS*:00000000 C:/WinAVR/avr/include/avr/io.h
*ABS*:00000000 C:/WinAVR/avr/include/avr/sfr_defs.h
*ABS*:00000000 C:/WinAVR/avr/include/avr/io.h
*ABS*:00000000 CamInterfaceAsm.S
*ABS*:00000000 <command line>
*ABS*:00000000 <built-in>
*ABS*:00000000 CamInterfaceAsm.S
*ABS*:00000010 pixelCount
*ABS*:00000011 pixelRunStart
*ABS*:00000012 lastColor
*ABS*:00000013 tmp1
*ABS*:00000014 tmp2
*ABS*:00000013 color
*ABS*:00000014 greenData
*ABS*:00000015 blueData
*ABS*:00000016 colorMapLow
*ABS*:00000017 colorMapHigh
*ABS*:00000016 prevLineBuffLow
*ABS*:00000017 prevLineBuffHigh
*ABS*:00000018 currLineBuffLow
*ABS*:00000019 currLineBuffHigh
CamInterfaceAsm.S:169 .text:00000000 CamIntAsm_waitForNewTrackingFrame
CamInterfaceAsm.S:335 .text:0000008e CamIntAsm_waitForNewDumpFrame
CamInterfaceAsm.S:345 .text:00000094 CamIntAsm_acquireDumpLine
CamInterfaceAsm.S:179 .text:00000006 CamIntAsm_acquireTrackingLine
CamInterfaceAsm.S:423 .text:000000d4 __vector_1
CamInterfaceAsm.S:438 .text:000000d6 __vector_2
CamInterfaceAsm.S:474 .text:000000d8 __vector_8
CamInterfaceAsm.S:305 .text:00000080 _cleanUp
CamInterfaceAsm.S:223 .text:00000034 _trackFrame
CamInterfaceAsm.S:240 .text:00000044 _acquirePixelBlock
CamInterfaceAsm.S:281 .text:00000074 _cleanUpTrackingLine
CamInterfaceAsm.S:292 .text:00000080 _cleanUpDumpLine
CamInterfaceAsm.S:316 .text:0000008c _exit
CamInterfaceAsm.S:380 .text:000000ba _dumpFrame
CamInterfaceAsm.S:400 .text:000000c8 _sampleDumpPixel
CamInterfaceAsm.S:487 .text:000000e6 __vector_default
 
UNDEFINED SYMBOLS
__vector_9
fastEventBitmask
GAS LISTING /tmp/cckBHomO.s page 30
 
 
DEFINED SYMBOLS
*ABS*:00000000 CamInterfaceAsm.S
CamInterfaceAsm.S:119 *ABS*:00000010 pixelCount
CamInterfaceAsm.S:120 *ABS*:00000011 pixelRunStart
CamInterfaceAsm.S:121 *ABS*:00000012 lastColor
CamInterfaceAsm.S:122 *ABS*:00000013 tmp1
CamInterfaceAsm.S:123 *ABS*:00000014 tmp2
CamInterfaceAsm.S:124 *ABS*:00000013 color
CamInterfaceAsm.S:125 *ABS*:00000014 greenData
CamInterfaceAsm.S:126 *ABS*:00000015 blueData
CamInterfaceAsm.S:127 *ABS*:00000016 colorMapLow
CamInterfaceAsm.S:128 *ABS*:00000017 colorMapHigh
CamInterfaceAsm.S:129 *ABS*:00000016 prevLineBuffLow
CamInterfaceAsm.S:130 *ABS*:00000017 prevLineBuffHigh
CamInterfaceAsm.S:131 *ABS*:00000018 currLineBuffLow
CamInterfaceAsm.S:132 *ABS*:00000019 currLineBuffHigh
CamInterfaceAsm.S:169 .text:00000000 CamIntAsm_waitForNewTrackingFrame
CamInterfaceAsm.S:335 .text:0000008e CamIntAsm_waitForNewDumpFrame
CamInterfaceAsm.S:345 .text:00000094 CamIntAsm_acquireDumpLine
CamInterfaceAsm.S:179 .text:00000006 CamIntAsm_acquireTrackingLine
CamInterfaceAsm.S:423 .text:000000d4 __vector_1
CamInterfaceAsm.S:438 .text:000000d6 __vector_2
CamInterfaceAsm.S:474 .text:000000d8 __vector_8
CamInterfaceAsm.S:305 .text:00000080 _cleanUp
CamInterfaceAsm.S:223 .text:00000034 _trackFrame
CamInterfaceAsm.S:240 .text:00000044 _acquirePixelBlock
CamInterfaceAsm.S:281 .text:00000074 _cleanUpTrackingLine
CamInterfaceAsm.S:292 .text:00000080 _cleanUpDumpLine
CamInterfaceAsm.S:316 .text:0000008c _exit
CamInterfaceAsm.S:380 .text:000000ba _dumpFrame
CamInterfaceAsm.S:400 .text:000000c8 _sampleDumpPixel
CamInterfaceAsm.S:487 .text:000000e6 __vector_default
 
UNDEFINED SYMBOLS
__vector_9
fastEventBitmask