Subversion Repositories svnkaklik

Rev

Rev 151 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log

Rev 151 Rev 174
Line 1... Line 1...
1
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s 			page 1
1
GAS LISTING /tmp/cckBHomO.s 			page 1
2
 
2
 
3
 
3
 
4
   1               	# 1 "CamInterfaceAsm.S"
4
   1               	# 1 "CamInterfaceAsm.S"
5
   2               	# 1 "<built-in>"
5
   2               	# 1 "<built-in>"
6
   1               	;
6
   1               	;
7
   0               	
7
   0               	
8
   0               	
8
   0               	
9
   2               	;    Copyright (C) 2004    John Orlando
9
   2               	;    Copyright (C) 2004    John Orlando
10
   3               	;    
10
   3               	;    
11
   4               	;   AVRcam: a small real-time image processing engine.
11
   4               	;   AVRcam: a small real-time image processing engine.
12
   5               	
12
   5               	
13
   6               	;    This program is free software; you can redistribute it and/or
13
   6               	;    This program is free software; you can redistribute it and/or
Line 56... Line 56...
56
  49               	;                              interrupts, and caused problems.  Now,
56
  49               	;                              interrupts, and caused problems.  Now,
57
  50               	;                              the "PCLK" pipe feeds timer1 when needed,
57
  50               	;                              the "PCLK" pipe feeds timer1 when needed,
58
  51               	;                              and is turned off when it isn't needed.
58
  51               	;                              and is turned off when it isn't needed.
59
  52               	
59
  52               	
60
  53               	#include <avr/io.h>
60
  53               	#include <avr/io.h>
61
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s 			page 2
61
GAS LISTING /tmp/cckBHomO.s 			page 2
62
 
62
 
63
 
63
 
64
   1               	/* Copyright (c) 2002,2003 Marek Michalkiewicz, Joerg Wunsch
64
   1               	/* Copyright (c) 2002,2003,2005,2006, Marek Michalkiewicz, Joerg Wunsch
65
   2               	   All rights reserved.
65
   2               	   All rights reserved.
66
   3               	
66
   3               	
67
   4               	   Redistribution and use in source and binary forms, with or without
67
   4               	   Redistribution and use in source and binary forms, with or without
68
   5               	   modification, are permitted provided that the following conditions are met:
68
   5               	   modification, are permitted provided that the following conditions are met:
69
   6               	
69
   6               	
70
   7               	   * Redistributions of source code must retain the above copyright
70
   7               	   * Redistributions of source code must retain the above copyright
71
   8               	     notice, this list of conditions and the following disclaimer.
71
   8               	     notice, this list of conditions and the following disclaimer.
72
   9               	   * Redistributions in binary form must reproduce the above copyright
72
   9               	
73
  10               	     notice, this list of conditions and the following disclaimer in
73
  10               	   * Redistributions in binary form must reproduce the above copyright
74
  11               	     the documentation and/or other materials provided with the
74
  11               	     notice, this list of conditions and the following disclaimer in
75
  12               	     distribution.
75
  12               	     the documentation and/or other materials provided with the
76
  13               	
76
  13               	     distribution.
77
  14               	  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
77
  14               	
78
  15               	  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
78
  15               	   * Neither the name of the copyright holders nor the names of
79
  16               	  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
79
  16               	     contributors may be used to endorse or promote products derived
80
  17               	  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
80
  17               	     from this software without specific prior written permission.
81
  18               	  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
81
  18               	
82
  19               	  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
82
  19               	  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
83
  20               	  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
83
  20               	  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
84
  21               	  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
84
  21               	  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
85
  22               	  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
85
  22               	  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
86
  23               	  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
86
  23               	  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
87
  24               	  POSSIBILITY OF SUCH DAMAGE. */
87
  24               	  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
88
  25               	
88
  25               	  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
89
  26               	/* $Id: io.h,v 1.10 2003/02/28 23:03:40 marekm Exp $ */
89
  26               	  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
90
  27               	
90
  27               	  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
91
  28               	/** \defgroup avr_io AVR device-specific IO definitions
91
  28               	  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
92
  29               	    \code #include <avr/io.h> \endcode
92
  29               	  POSSIBILITY OF SUCH DAMAGE. */
93
  30               	
93
  30               	
94
  31               	    This header file includes the apropriate IO definitions for the
94
  31               	/* $Id: io.h,v 1.24.2.7 2006/04/19 16:53:25 aesok Exp $ */
95
  32               	    device that has been specified by the <tt>-mmcu=</tt> compiler
95
  32               	
96
  33               	    command-line switch.  This is done by diverting to the appropriate
96
  33               	/** \defgroup avr_io <avr/io.h>: AVR device-specific IO definitions
97
  34               	    file <tt>&lt;avr/io</tt><em>XXXX</em><tt>.h&gt;</tt> which should
97
  34               	    \code #include <avr/io.h> \endcode
98
  35               	    never be included directly.  Some register names common to all
98
  35               	
99
  36               	    AVR devices are defined directly within <tt>&lt;avr/io.h&gt;</tt>,
99
  36               	    This header file includes the apropriate IO definitions for the
100
  37               	    but most of the details come from the respective include file.
100
  37               	    device that has been specified by the <tt>-mmcu=</tt> compiler
101
  38               	
101
  38               	    command-line switch.  This is done by diverting to the appropriate
102
  39               	    Note that this file always includes
102
  39               	    file <tt>&lt;avr/io</tt><em>XXXX</em><tt>.h&gt;</tt> which should
103
  40               	    \code #include <avr/sfr_defs.h> \endcode
103
  40               	    never be included directly.  Some register names common to all
104
  41               	    See \ref avr_sfr for the details.
104
  41               	    AVR devices are defined directly within <tt>&lt;avr/io.h&gt;</tt>,
105
  42               	
105
  42               	    but most of the details come from the respective include file.
106
  43               	    Included are definitions of the IO register set and their
106
  43               	
107
  44               	    respective bit values as specified in the Atmel documentation.
107
  44               	    Note that this file always includes
108
  45               	    Note that Atmel is not very consistent in its naming conventions,
108
  45               	    \code #include <avr/sfr_defs.h> \endcode
109
  46               	    so even identical functions sometimes get different names on
109
  46               	    See \ref avr_sfr for the details.
110
  47               	    different devices.
110
  47               	
111
  48               	
111
  48               	    Included are definitions of the IO register set and their
112
  49               	    Also included are the specific names useable for interrupt
112
  49               	    respective bit values as specified in the Atmel documentation.
113
  50               	    function definitions as documented
113
  50               	    Note that Atmel is not very consistent in its naming conventions,
114
  51               	    \ref avr_signames "here".
114
  51               	    so even identical functions sometimes get different names on
115
  52               	
115
  52               	    different devices.
116
  53               	    Finally, the following macros are defined:
116
  53               	
117
  54               	
117
  54               	    Also included are the specific names useable for interrupt
118
  55               	    - \b RAMEND
118
  55               	    function definitions as documented
119
  56               	    <br>
119
  56               	    \ref avr_signames "here".
120
  57               	    A constant describing the last on-chip RAM location.
120
  57               	
121
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s 			page 3
121
GAS LISTING /tmp/cckBHomO.s 			page 3
122
 
122
 
123
 
123
 
124
  58               	    <br>
124
  58               	    Finally, the following macros are defined:
125
  59               	    - \b XRAMEND
125
  59               	
126
  60               	    <br>
126
  60               	    - \b RAMEND
127
  61               	    A constant describing the last possible location in RAM.
127
  61               	    <br>
128
  62               	    This is equal to RAMEND for devices that do not allow for
128
  62               	    A constant describing the last on-chip RAM location.
129
  63               	    external RAM.
129
  63               	    <br>
130
  64               	    <br>
130
  64               	    - \b XRAMEND
131
  65               	    - \b E2END
131
  65               	    <br>
132
  66               	    <br>
132
  66               	    A constant describing the last possible location in RAM.
133
  67               	    A constant describing the address of the last EEPROM cell.
133
  67               	    This is equal to RAMEND for devices that do not allow for
134
  68               	    <br>
134
  68               	    external RAM.
135
  69               	    - \b FLASHEND
135
  69               	    <br>
136
  70               	    <br>
136
  70               	    - \b E2END
137
  71               	    A constant describing the last byte address in flash ROM.
137
  71               	    <br>
138
  72               	    <br>
138
  72               	    A constant describing the address of the last EEPROM cell.
139
  73               	    - \b SPM_PAGESIZE
139
  73               	    <br>
140
  74               	    <br>
140
  74               	    - \b FLASHEND
141
  75               	    For devices with bootloader support, the flash pagesize
141
  75               	    <br>
142
  76               	    (in bytes) to be used for the \c SPM instruction. */
142
  76               	    A constant describing the last byte address in flash ROM.
143
  77               	
143
  77               	    <br>
144
  78               	#ifndef _AVR_IO_H_
144
  78               	    - \b SPM_PAGESIZE
145
  79               	#define _AVR_IO_H_
145
  79               	    <br>
146
  80               	
146
  80               	    For devices with bootloader support, the flash pagesize
147
  81               	#include <avr/sfr_defs.h>
147
  81               	    (in bytes) to be used for the \c SPM instruction. */
148
   1               	/* Copyright (c) 2002, Marek Michalkiewicz <marekm@amelek.gda.pl>
148
  82               	
149
   2               	   All rights reserved.
149
  83               	#ifndef _AVR_IO_H_
150
   3               	
150
  84               	#define _AVR_IO_H_
151
   4               	   Redistribution and use in source and binary forms, with or without
151
  85               	
152
   5               	   modification, are permitted provided that the following conditions are met:
152
  86               	#include <avr/sfr_defs.h>
153
   6               	
153
   1               	/* Copyright (c) 2002, Marek Michalkiewicz <marekm@amelek.gda.pl>
154
   7               	   * Redistributions of source code must retain the above copyright
154
   2               	   All rights reserved.
155
   8               	     notice, this list of conditions and the following disclaimer.
155
   3               	
156
   9               	   * Redistributions in binary form must reproduce the above copyright
156
   4               	   Redistribution and use in source and binary forms, with or without
157
  10               	     notice, this list of conditions and the following disclaimer in
157
   5               	   modification, are permitted provided that the following conditions are met:
158
  11               	     the documentation and/or other materials provided with the
158
   6               	
159
  12               	     distribution.
159
   7               	   * Redistributions of source code must retain the above copyright
160
  13               	
160
   8               	     notice, this list of conditions and the following disclaimer.
161
  14               	   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
161
   9               	
162
  15               	   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
162
  10               	   * Redistributions in binary form must reproduce the above copyright
163
  16               	   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
163
  11               	     notice, this list of conditions and the following disclaimer in
164
  17               	   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
164
  12               	     the documentation and/or other materials provided with the
165
  18               	   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
165
  13               	     distribution.
166
  19               	   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
166
  14               	
167
  20               	   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
167
  15               	   * Neither the name of the copyright holders nor the names of
168
  21               	   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
168
  16               	     contributors may be used to endorse or promote products derived
169
  22               	   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
169
  17               	     from this software without specific prior written permission.
170
  23               	   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
170
  18               	
171
  24               	   POSSIBILITY OF SUCH DAMAGE.  */
171
  19               	   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
172
  25               	
172
  20               	   AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
173
  26               	/* avr/sfr_defs.h - macros for accessing AVR special function registers */
173
  21               	   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
174
  27               	
174
  22               	   ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
175
  28               	/* $Id: sfr_defs.h,v 1.10 2003/08/11 21:42:13 troth Exp $ */
175
  23               	   LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
176
  29               	
176
  24               	   CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
177
  30               	#ifndef _AVR_SFR_DEFS_H_
177
  25               	   SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
178
  31               	#define _AVR_SFR_DEFS_H_ 1
178
  26               	   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
179
  32               	
179
  27               	   CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
180
  33               	/** \defgroup avr_sfr_notes Additional notes from <avr/sfr_defs.h>
180
  28               	   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
181
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s 			page 4
181
GAS LISTING /tmp/cckBHomO.s 			page 4
182
 
182
 
183
 
183
 
184
  34               	    \ingroup avr_sfr
184
  29               	   POSSIBILITY OF SUCH DAMAGE.  */
185
  35               	
185
  30               	
186
  36               	   The \c <avr/sfr_defs.h> file is included by all of the \c <avr/ioXXXX.h>
186
  31               	/* avr/sfr_defs.h - macros for accessing AVR special function registers */
187
  37               	   files, which use macros defined here to make the special function register
187
  32               	
188
  38               	   definitions look like C variables or simple constants, depending on the
188
  33               	/* $Id: sfr_defs.h,v 1.16 2005/09/10 21:31:13 joerg_wunsch Exp $ */
189
  39               	   <tt>_SFR_ASM_COMPAT</tt> define.  Some examples from \c <avr/iom128.h> to
189
  34               	
190
  40               	   show how to define such macros:
190
  35               	#ifndef _AVR_SFR_DEFS_H_
191
  41               	
191
  36               	#define _AVR_SFR_DEFS_H_ 1
192
  42               	\code
192
  37               	
193
  43               	#define PORTA _SFR_IO8(0x1b)
193
  38               	/** \defgroup avr_sfr_notes Additional notes from <avr/sfr_defs.h>
194
  44               	#define TCNT1 _SFR_IO16(0x2c)
194
  39               	    \ingroup avr_sfr
195
  45               	#define PORTF _SFR_MEM8(0x61)
195
  40               	
196
  46               	#define TCNT3 _SFR_MEM16(0x88)
196
  41               	   The \c <avr/sfr_defs.h> file is included by all of the \c <avr/ioXXXX.h>
197
  47               	\endcode
197
  42               	   files, which use macros defined here to make the special function register
198
  48               	
198
  43               	   definitions look like C variables or simple constants, depending on the
199
  49               	   If \c _SFR_ASM_COMPAT is not defined, C programs can use names like
199
  44               	   <tt>_SFR_ASM_COMPAT</tt> define.  Some examples from \c <avr/iom128.h> to
200
  50               	   <tt>PORTA</tt> directly in C expressions (also on the left side of
200
  45               	   show how to define such macros:
201
  51               	   assignment operators) and GCC will do the right thing (use short I/O
201
  46               	
202
  52               	   instructions if possible).  The \c __SFR_OFFSET definition is not used in
202
  47               	\code
203
  53               	   any way in this case.
203
  48               	#define PORTA _SFR_IO8(0x1b)
204
  54               	
204
  49               	#define TCNT1 _SFR_IO16(0x2c)
205
  55               	   Define \c _SFR_ASM_COMPAT as 1 to make these names work as simple constants
205
  50               	#define PORTF _SFR_MEM8(0x61)
206
  56               	   (addresses of the I/O registers).  This is necessary when included in
206
  51               	#define TCNT3 _SFR_MEM16(0x88)
207
  57               	   preprocessed assembler (*.S) source files, so it is done automatically if
207
  52               	\endcode
208
  58               	   \c __ASSEMBLER__ is defined.  By default, all addresses are defined as if
208
  53               	
209
  59               	   they were memory addresses (used in \c lds/sts instructions).  To use these
209
  54               	   If \c _SFR_ASM_COMPAT is not defined, C programs can use names like
210
  60               	   addresses in \c in/out instructions, you must subtract 0x20 from them.
210
  55               	   <tt>PORTA</tt> directly in C expressions (also on the left side of
211
  61               	
211
  56               	   assignment operators) and GCC will do the right thing (use short I/O
212
  62               	   For more backwards compatibility, insert the following at the start of your
212
  57               	   instructions if possible).  The \c __SFR_OFFSET definition is not used in
213
  63               	   old assembler source file:
213
  58               	   any way in this case.
214
  64               	
214
  59               	
215
  65               	\code
215
  60               	   Define \c _SFR_ASM_COMPAT as 1 to make these names work as simple constants
216
  66               	#define __SFR_OFFSET 0
216
  61               	   (addresses of the I/O registers).  This is necessary when included in
217
  67               	\endcode
217
  62               	   preprocessed assembler (*.S) source files, so it is done automatically if
218
  68               	
218
  63               	   \c __ASSEMBLER__ is defined.  By default, all addresses are defined as if
219
  69               	   This automatically subtracts 0x20 from I/O space addresses, but it's a
219
  64               	   they were memory addresses (used in \c lds/sts instructions).  To use these
220
  70               	   hack, so it is recommended to change your source: wrap such addresses in
220
  65               	   addresses in \c in/out instructions, you must subtract 0x20 from them.
221
  71               	   macros defined here, as shown below.  After this is done, the
221
  66               	
222
  72               	   <tt>__SFR_OFFSET</tt> definition is no longer necessary and can be removed.
222
  67               	   For more backwards compatibility, insert the following at the start of your
223
  73               	
223
  68               	   old assembler source file:
224
  74               	   Real example - this code could be used in a boot loader that is portable
224
  69               	
225
  75               	   between devices with \c SPMCR at different addresses.
225
  70               	\code
226
  76               	
226
  71               	#define __SFR_OFFSET 0
227
  77               	\verbatim
227
  72               	\endcode
228
  78               	<avr/iom163.h>: #define SPMCR _SFR_IO8(0x37)
228
  73               	
229
  79               	<avr/iom128.h>: #define SPMCR _SFR_MEM8(0x68)
229
  74               	   This automatically subtracts 0x20 from I/O space addresses, but it's a
230
  80               	\endverbatim
230
  75               	   hack, so it is recommended to change your source: wrap such addresses in
231
  81               	
231
  76               	   macros defined here, as shown below.  After this is done, the
232
  82               	\code
232
  77               	   <tt>__SFR_OFFSET</tt> definition is no longer necessary and can be removed.
233
  82               	
233
  78               	
234
  83               	/*
234
  79               	   Real example - this code could be used in a boot loader that is portable
235
  84               	 * Registers common to all AVR devices.
235
  80               	   between devices with \c SPMCR at different addresses.
236
  85               	 */
236
  81               	
237
  86               	
237
  82               	\verbatim
238
  87               	#if __AVR_ARCH__ != 1
238
  83               	<avr/iom163.h>: #define SPMCR _SFR_IO8(0x37)
239
  88               	/*
239
  84               	<avr/iom128.h>: #define SPMCR _SFR_MEM8(0x68)
240
  89               	 * AVR architecture 1 has no RAM, thus no stack pointer.
240
  85               	\endverbatim
241
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s 			page 5
241
GAS LISTING /tmp/cckBHomO.s 			page 5
242
 
242
 
243
 
243
 
244
  90               	 *
244
  86               	
245
  91               	 * All other archs do have a stack pointer.  Some devices have only
245
  87               	\code
246
  92               	 * less than 256 bytes of possible RAM locations (128 Bytes of SRAM
246
  87               	
247
  93               	 * and no option for external RAM), thus SPH is officially "reserved"
247
  88               	#ifndef __AVR_HAVE_MOVW__
248
  94               	 * for them.  We catch this case below after including the
248
  89               	#  if  defined(__AVR_ENHANCED__) && __AVR_ENHANCED__
249
  95               	 * device-specific ioXXXX.h file, by examining XRAMEND, and
249
  90               	#   define __AVR_HAVE_MOVW__ 1
250
  96               	 * #undef-ining SP and SPH in that case.
250
  91               	#  endif
251
  97               	 */
251
  92               	#endif
252
  98               	/* Stack Pointer */
252
  93               	
253
  99               	#define SP        _SFR_IO16(0x3D)
253
  94               	#ifndef __AVR_HAVE_LPMX__
254
 100               	#define SPL       _SFR_IO8(0x3D)
254
  95               	# if  defined(__AVR_ENHANCED__) && __AVR_ENHANCED__
255
 101               	#define SPH       _SFR_IO8(0x3E)
255
  96               	#  define __AVR_HAVE_LPMX__ 1
256
 102               	#endif /* #if __AVR_ARCH__ != 1 */
256
  97               	# endif
257
 103               	
257
  98               	#endif
258
 104               	/* Status REGister */
258
  99               	
259
 105               	#define SREG      _SFR_IO8(0x3F)
259
 100               	/*
260
 106               	
260
 101               	 * Registers common to all AVR devices.
261
 107               	/* Status Register - SREG */
261
 102               	 */
262
 108               	#define    SREG_I       7
262
 103               	
263
 109               	#define    SREG_T       6
263
 104               	#if __AVR_ARCH__ != 1
264
 110               	#define    SREG_H       5
264
 105               	/*
265
 111               	#define    SREG_S       4
265
 106               	 * AVR architecture 1 has no RAM, thus no stack pointer.
266
 112               	#define    SREG_V       3
266
 107               	 *
267
 113               	#define    SREG_N       2
267
 108               	 * All other archs do have a stack pointer.  Some devices have only
268
 114               	#define    SREG_Z       1
268
 109               	 * less than 256 bytes of possible RAM locations (128 Bytes of SRAM
269
 115               	#define    SREG_C       0
269
 110               	 * and no option for external RAM), thus SPH is officially "reserved"
270
 116               	
270
 111               	 * for them.  We catch this case below after including the
271
 117               	/* Pointer definition */
271
 112               	 * device-specific ioXXXX.h file, by examining XRAMEND, and
272
 118               	#if __AVR_ARCH__ != 1
272
 113               	 * #undef-ining SP and SPH in that case.
273
 119               	/* avr1 has only the Z pointer */
273
 114               	 */
274
 120               	#define    XL           r26
274
 115               	/* Stack Pointer */
275
 121               	#define    XH           r27
275
 116               	#define SP        _SFR_IO16(0x3D)
276
 122               	#define    YL           r28
276
 117               	#define SPL       _SFR_IO8(0x3D)
277
 123               	#define    YH           r29
277
 118               	#define SPH       _SFR_IO8(0x3E)
278
 124               	#endif /* #if __AVR_ARCH__ != 1 */
278
 119               	#endif /* #if __AVR_ARCH__ != 1 */
279
 125               	#define    ZL           r30
279
 120               	
280
 126               	#define    ZH           r31
280
 121               	/* Status REGister */
281
 127               	
281
 122               	#define SREG      _SFR_IO8(0x3F)
282
 128               	/*
282
 123               	
283
 129               	 * Only few devices come without EEPROM.  In order to assemble the
283
 124               	/* Status Register - SREG */
284
 130               	 * EEPROM library components without defining a specific device, we
284
 125               	#define    SREG_I       7
285
 131               	 * keep the EEPROM-related definitions here, and catch the devices
285
 126               	#define    SREG_T       6
286
 132               	 * without EEPROM (E2END == 0) below.  Obviously, the EEPROM library
286
 127               	#define    SREG_H       5
287
 133               	 * functions will not work for them. ;-)
287
 128               	#define    SREG_S       4
288
 134               	 */
288
 129               	#define    SREG_V       3
289
 135               	/* EEPROM Control Register */
289
 130               	#define    SREG_N       2
290
 136               	#define EECR	_SFR_IO8(0x1C)
290
 131               	#define    SREG_Z       1
291
 137               	
291
 132               	#define    SREG_C       0
292
 138               	/* EEPROM Data Register */
292
 133               	
293
 139               	#define EEDR	_SFR_IO8(0x1D)
293
 134               	/* Pointer definition */
294
 140               	
294
 135               	#if __AVR_ARCH__ != 1
295
 141               	/* EEPROM Address Register */
295
 136               	/* avr1 has only the Z pointer */
296
 142               	#define EEAR	_SFR_IO16(0x1E)
296
 137               	#define    XL           r26
297
 143               	#define EEARL	_SFR_IO8(0x1E)
297
 138               	#define    XH           r27
298
 144               	#define EEARH	_SFR_IO8(0x1F)
298
 139               	#define    YL           r28
299
 145               	
299
 140               	#define    YH           r29
300
 146               	/* EEPROM Control Register */
300
 141               	#endif /* #if __AVR_ARCH__ != 1 */
301
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s 			page 6
301
GAS LISTING /tmp/cckBHomO.s 			page 6
302
 
302
 
303
 
303
 
304
 147               	#define    EERIE        3
304
 142               	#define    ZL           r30
305
 148               	#define    EEMWE        2
305
 143               	#define    ZH           r31
306
 149               	#define    EEWE         1
306
 144               	
307
 150               	#define    EERE         0
307
 145               	/*
308
 151               	
308
 146               	 * Only few devices come without EEPROM.  In order to assemble the
309
 152               	#if defined (__AVR_AT94K__)
309
 147               	 * EEPROM library components without defining a specific device, we
310
 153               	#  include <avr/ioat94k.h>
310
 148               	 * keep the EEPROM-related definitions here.
311
 154               	#elif defined (__AVR_AT43USB320__)
311
 149               	 */
312
 155               	#  include <avr/io43u32x.h>
312
 150               	#if defined(__COMPILING_AVR_LIBC__)
313
 156               	#elif defined (__AVR_AT43USB355__)
313
 151               	
314
 157               	#  include <avr/io43u35x.h>
314
 152               	/* EEPROM Control Register */
315
 158               	#elif defined (__AVR_AT76C711__)
315
 153               	#define EECR	_SFR_IO8(0x1C)
316
 159               	#  include <avr/io76c711.h>
316
 154               	
317
 160               	#elif defined (__AVR_AT86RF401__)
317
 155               	/* EEPROM Data Register */
318
 161               	#  include <avr/io86r401.h>
318
 156               	#define EEDR	_SFR_IO8(0x1D)
319
 162               	#elif defined (__AVR_ATmega128__)
319
 157               	
320
 163               	#  include <avr/iom128.h>
320
 158               	/* EEPROM Address Register */
321
 164               	#elif defined (__AVR_ATmega64__)
321
 159               	#define EEAR	_SFR_IO16(0x1E)
322
 165               	#  include <avr/iom64.h>
322
 160               	#define EEARL	_SFR_IO8(0x1E)
323
 166               	#elif defined (__AVR_ATmega103__)
323
 161               	#define EEARH	_SFR_IO8(0x1F)
324
 167               	#  include <avr/iom103.h>
324
 162               	
325
 168               	#elif defined (__AVR_ATmega32__)
325
 163               	/* EEPROM Control Register */
326
 169               	#  include <avr/iom32.h>
326
 164               	#define    EERIE        3
327
 170               	#elif defined (__AVR_ATmega323__)
327
 165               	#define    EEMWE        2
328
 171               	#  include <avr/iom323.h>
328
 166               	#define    EEWE         1
329
 172               	#elif defined (__AVR_ATmega16__)
329
 167               	#define    EERE         0
330
 173               	#  include <avr/iom16.h>
330
 168               	
331
 174               	#elif defined (__AVR_ATmega161__)
331
 169               	#endif /* __COMPILING_AVR_LIBC__ */
332
 175               	#  include <avr/iom161.h>
332
 170               	
333
 176               	#elif defined (__AVR_ATmega162__)
333
 171               	#if defined (__AVR_AT94K__)
334
 177               	#  include <avr/iom162.h>
334
 172               	#  include <avr/ioat94k.h>
335
 178               	#elif defined (__AVR_ATmega163__)
335
 173               	#elif defined (__AVR_AT43USB320__)
336
 179               	#  include <avr/iom163.h>
336
 174               	#  include <avr/io43u32x.h>
337
 180               	#elif defined (__AVR_ATmega169__)
337
 175               	#elif defined (__AVR_AT43USB355__)
338
 181               	#  include <avr/iom169.h>
338
 176               	#  include <avr/io43u35x.h>
339
 182               	#elif defined (__AVR_ATmega8__)
339
 177               	#elif defined (__AVR_AT76C711__)
340
 183               	#  include <avr/iom8.h>
340
 178               	#  include <avr/io76c711.h>
341
   1               	/* Copyright (c) 2002, Marek Michalkiewicz
341
 179               	#elif defined (__AVR_AT86RF401__)
342
   2               	   All rights reserved.
342
 180               	#  include <avr/io86r401.h>
343
   3               	
343
 181               	#elif defined (__AVR_AT90PWM2__)
344
   4               	   Redistribution and use in source and binary forms, with or without
344
 182               	#  include <avr/io90pwmx.h>
345
   5               	   modification, are permitted provided that the following conditions are met:
345
 183               	#elif defined (__AVR_AT90PWM3__)
346
   6               	
346
 184               	#  include <avr/io90pwmx.h>
347
   7               	   * Redistributions of source code must retain the above copyright
347
 185               	#elif defined (__AVR_ATmega128__)
348
   8               	     notice, this list of conditions and the following disclaimer.
348
 186               	#  include <avr/iom128.h>
349
   9               	   * Redistributions in binary form must reproduce the above copyright
349
 187               	#elif defined (__AVR_ATmega1280__)
350
  10               	     notice, this list of conditions and the following disclaimer in
350
 188               	#  include <avr/iom1280.h>
351
  11               	     the documentation and/or other materials provided with the
351
 189               	#elif defined (__AVR_ATmega1281__)
352
  12               	     distribution.
352
 190               	#  include <avr/iom1281.h>
353
  13               	
353
 191               	#elif defined (__AVR_AT90CAN32__)
354
  14               	  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
354
 192               	#  include <avr/iocan32.h>
355
  15               	  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
355
 193               	#elif defined (__AVR_AT90CAN64__)
356
  16               	  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
356
 194               	#  include <avr/iocan64.h>
357
  17               	  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
357
 195               	#elif defined (__AVR_AT90CAN128__)
358
  18               	  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
358
 196               	#  include <avr/iocan128.h>
359
  19               	  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
359
 197               	#elif defined (__AVR_AT90USB646__)
360
  20               	  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
360
 198               	#  include <avr/iousb646.h>
361
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s 			page 7
361
GAS LISTING /tmp/cckBHomO.s 			page 7
362
 
362
 
363
 
363
 
364
  21               	  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
364
 199               	#elif defined (__AVR_AT90USB647__)
365
  22               	  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
365
 200               	#  include <avr/iousb647.h>
366
  23               	  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
366
 201               	#elif defined (__AVR_AT90USB1286__)
367
  24               	  POSSIBILITY OF SUCH DAMAGE. */
367
 202               	#  include <avr/iousb1286.h>
368
  25               	
368
 203               	#elif defined (__AVR_AT90USB1287__)
369
  26               	/* $Id: iom8.h,v 1.8 2003/02/17 09:57:28 marekm Exp $ */
369
 204               	#  include <avr/iousb1287.h>
370
  27               	
370
 205               	#elif defined (__AVR_ATmega64__)
371
  28               	/* avr/iom8.h - definitions for ATmega8 */
371
 206               	#  include <avr/iom64.h>
372
  29               	
372
 207               	#elif defined (__AVR_ATmega640__)
373
  30               	#ifndef _AVR_IOM8_H_
373
 208               	#  include <avr/iom640.h>
374
  31               	#define _AVR_IOM8_H_ 1
374
 209               	#elif defined (__AVR_ATmega644__)
375
  32               	
375
 210               	#  include <avr/iom644.h>
376
  33               	/* This file should only be included from <avr/io.h>, never directly. */
376
 211               	#elif defined (__AVR_ATmega644P__)
377
  34               	
377
 212               	#  include <avr/iom644.h>
378
  35               	#ifndef _AVR_IO_H_
378
 213               	#elif defined (__AVR_ATmega645__)
379
  36               	#  error "Include <avr/io.h> instead of this file."
379
 214               	#  include <avr/iom645.h>
380
  37               	#endif
380
 215               	#elif defined (__AVR_ATmega6450__)
381
  38               	
381
 216               	#  include <avr/iom6450.h>
382
  39               	#ifndef _AVR_IOXXX_H_
382
 217               	#elif defined (__AVR_ATmega649__)
383
  40               	#  define _AVR_IOXXX_H_ "iom8.h"
383
 218               	#  include <avr/iom649.h>
384
  41               	#else
384
 219               	#elif defined (__AVR_ATmega6490__)
385
  42               	#  error "Attempt to include more than one <avr/ioXXX.h> file."
385
 220               	#  include <avr/iom6490.h>
386
  43               	#endif 
386
 221               	#elif defined (__AVR_ATmega103__)
387
  44               	
387
 222               	#  include <avr/iom103.h>
388
  45               	/* I/O registers */
388
 223               	#elif defined (__AVR_ATmega32__)
389
  46               	
389
 224               	#  include <avr/iom32.h>
390
  47               	/* TWI stands for "Two Wire Interface" or "TWI Was I2C(tm)" */
390
 225               	#elif defined (__AVR_ATmega323__)
391
  48               	#define TWBR	_SFR_IO8(0x00)
391
 226               	#  include <avr/iom323.h>
392
  49               	#define TWSR	_SFR_IO8(0x01)
392
 227               	#elif defined (__AVR_ATmega324P__)
393
  50               	#define TWAR	_SFR_IO8(0x02)
393
 228               	#  include <avr/iom324.h>
394
  51               	#define TWDR	_SFR_IO8(0x03)
394
 229               	#elif defined (__AVR_ATmega325__)
395
  52               	
395
 230               	#  include <avr/iom325.h>
396
  53               	/* ADC */
396
 231               	#elif defined (__AVR_ATmega3250__)
397
  54               	#define ADCW	_SFR_IO16(0x04)
397
 232               	#  include <avr/iom3250.h>
398
  55               	#ifndef __ASSEMBLER__
398
 233               	#elif defined (__AVR_ATmega329__)
399
  56               	#define ADC	_SFR_IO16(0x04)
399
 234               	#  include <avr/iom329.h>
400
  57               	#endif
400
 235               	#elif defined (__AVR_ATmega3290__)
401
  58               	#define ADCL	_SFR_IO8(0x04)
401
 236               	#  include <avr/iom3290.h>
402
  59               	#define ADCH	_SFR_IO8(0x05)
402
 237               	#elif defined (__AVR_ATmega406__)
403
  60               	#define ADCSR	_SFR_IO8(0x06)
403
 238               	#  include <avr/iom406.h>
404
  61               	#define ADCSRA	_SFR_IO8(0x06)  /* Changed in 2486H-AVR-09/02 */
404
 239               	#elif defined (__AVR_ATmega16__)
405
  62               	#define ADMUX	_SFR_IO8(0x07)
405
 240               	#  include <avr/iom16.h>
406
  63               	
406
 241               	#elif defined (__AVR_ATmega161__)
407
  64               	/* analog comparator */
407
 242               	#  include <avr/iom161.h>
408
  65               	#define ACSR	_SFR_IO8(0x08)
408
 243               	#elif defined (__AVR_ATmega162__)
409
  66               	
409
 244               	#  include <avr/iom162.h>
410
  67               	/* USART */
410
 245               	#elif defined (__AVR_ATmega163__)
411
  68               	#define UBRRL	_SFR_IO8(0x09)
411
 246               	#  include <avr/iom163.h>
412
  69               	#define UCSRB	_SFR_IO8(0x0A)
412
 247               	#elif defined (__AVR_ATmega164P__)
413
  70               	#define UCSRA	_SFR_IO8(0x0B)
413
 248               	#  include <avr/iom164.h>
414
  71               	#define UDR	_SFR_IO8(0x0C)
414
 249               	#elif defined (__AVR_ATmega165__)
415
  72               	
415
 250               	#  include <avr/iom165.h>
416
  73               	/* SPI */
416
 251               	#elif defined (__AVR_ATmega168__)
417
  74               	#define SPCR	_SFR_IO8(0x0D)
417
 252               	#  include <avr/iom168.h>
418
  75               	#define SPSR	_SFR_IO8(0x0E)
418
 253               	#elif defined (__AVR_ATmega169__)
419
  76               	#define SPDR	_SFR_IO8(0x0F)
419
 254               	#  include <avr/iom169.h>
420
  77               	
420
 255               	#elif defined (__AVR_ATmega8__)
421
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s 			page 8
421
GAS LISTING /tmp/cckBHomO.s 			page 8
422
 
422
 
423
 
423
 
424
  78               	/* Port D */
424
 256               	#  include <avr/iom8.h>
425
  79               	#define PIND	_SFR_IO8(0x10)
425
   1               	/* Copyright (c) 2002, Marek Michalkiewicz
426
  80               	#define DDRD	_SFR_IO8(0x11)
426
   2               	   All rights reserved.
427
  81               	#define PORTD	_SFR_IO8(0x12)
427
   3               	
428
  82               	
428
   4               	   Redistribution and use in source and binary forms, with or without
429
  83               	/* Port C */
429
   5               	   modification, are permitted provided that the following conditions are met:
430
  84               	#define PINC	_SFR_IO8(0x13)
430
   6               	
431
  85               	#define DDRC	_SFR_IO8(0x14)
431
   7               	   * Redistributions of source code must retain the above copyright
432
  86               	#define PORTC	_SFR_IO8(0x15)
432
   8               	     notice, this list of conditions and the following disclaimer.
433
  87               	
433
   9               	
434
  88               	/* Port B */
434
  10               	   * Redistributions in binary form must reproduce the above copyright
435
  89               	#define PINB	_SFR_IO8(0x16)
435
  11               	     notice, this list of conditions and the following disclaimer in
436
  90               	#define DDRB	_SFR_IO8(0x17)
436
  12               	     the documentation and/or other materials provided with the
437
  91               	#define PORTB	_SFR_IO8(0x18)
437
  13               	     distribution.
438
  92               	
438
  14               	
439
  93               	/* 0x1C..0x1F EEPROM */
439
  15               	   * Neither the name of the copyright holders nor the names of
440
  94               	
440
  16               	     contributors may be used to endorse or promote products derived
441
  95               	#define UCSRC	_SFR_IO8(0x20)
441
  17               	     from this software without specific prior written permission.
442
  96               	#define UBRRH	_SFR_IO8(0x20)
442
  18               	
443
  97               	
443
  19               	  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
444
  98               	#define WDTCR	_SFR_IO8(0x21)
444
  20               	  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
445
  99               	#define ASSR	_SFR_IO8(0x22)
445
  21               	  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
446
 100               	
446
  22               	  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
447
 101               	/* Timer 2 */
447
  23               	  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
448
 102               	#define OCR2	_SFR_IO8(0x23)
448
  24               	  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
449
 103               	#define TCNT2	_SFR_IO8(0x24)
449
  25               	  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
450
 104               	#define TCCR2	_SFR_IO8(0x25)
450
  26               	  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
451
 105               	
451
  27               	  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
452
 106               	/* Timer 1 */
452
  28               	  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
453
 107               	#define ICR1	_SFR_IO16(0x26)
453
  29               	  POSSIBILITY OF SUCH DAMAGE. */
454
 108               	#define ICR1L	_SFR_IO8(0x26)
454
  30               	
455
 109               	#define ICR1H	_SFR_IO8(0x27)
455
  31               	/* $Id: iom8.h,v 1.13 2005/10/30 22:11:23 joerg_wunsch Exp $ */
456
 110               	#define OCR1B	_SFR_IO16(0x28)
456
  32               	
457
 111               	#define OCR1BL	_SFR_IO8(0x28)
457
  33               	/* avr/iom8.h - definitions for ATmega8 */
458
 112               	#define OCR1BH	_SFR_IO8(0x29)
458
  34               	
459
 113               	#define OCR1A	_SFR_IO16(0x2A)
459
  35               	#ifndef _AVR_IOM8_H_
460
 114               	#define OCR1AL	_SFR_IO8(0x2A)
460
  36               	#define _AVR_IOM8_H_ 1
461
 115               	#define OCR1AH	_SFR_IO8(0x2B)
461
  37               	
462
 116               	#define TCNT1	_SFR_IO16(0x2C)
462
  38               	/* This file should only be included from <avr/io.h>, never directly. */
463
 117               	#define TCNT1L	_SFR_IO8(0x2C)
463
  39               	
464
 118               	#define TCNT1H	_SFR_IO8(0x2D)
464
  40               	#ifndef _AVR_IO_H_
465
 119               	#define TCCR1B	_SFR_IO8(0x2E)
465
  41               	#  error "Include <avr/io.h> instead of this file."
466
 120               	#define TCCR1A	_SFR_IO8(0x2F)
466
  42               	#endif
467
 121               	
467
  43               	
468
 122               	#define SFIOR	_SFR_IO8(0x30)
468
  44               	#ifndef _AVR_IOXXX_H_
469
 123               	
469
  45               	#  define _AVR_IOXXX_H_ "iom8.h"
470
 124               	#define OSCCAL	_SFR_IO8(0x31)
470
  46               	#else
471
 125               	
471
  47               	#  error "Attempt to include more than one <avr/ioXXX.h> file."
472
 126               	/* Timer 0 */
472
  48               	#endif 
473
 127               	#define TCNT0	_SFR_IO8(0x32)
473
  49               	
474
 128               	#define TCCR0	_SFR_IO8(0x33)
474
  50               	/* I/O registers */
475
 129               	
475
  51               	
476
 130               	#define MCUCSR	_SFR_IO8(0x34)
476
  52               	/* TWI stands for "Two Wire Interface" or "TWI Was I2C(tm)" */
477
 131               	#define MCUCR	_SFR_IO8(0x35)
477
  53               	#define TWBR	_SFR_IO8(0x00)
478
 132               	
478
  54               	#define TWSR	_SFR_IO8(0x01)
479
 133               	#define TWCR	_SFR_IO8(0x36)
479
  55               	#define TWAR	_SFR_IO8(0x02)
480
 134               	
480
  56               	#define TWDR	_SFR_IO8(0x03)
481
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s 			page 9
481
GAS LISTING /tmp/cckBHomO.s 			page 9
482
 
482
 
483
 
483
 
484
 135               	#define SPMCR	_SFR_IO8(0x37)
484
  57               	
485
 136               	
485
  58               	/* ADC */
486
 137               	#define TIFR	_SFR_IO8(0x38)
486
  59               	#define ADCW	_SFR_IO16(0x04)
487
 138               	#define TIMSK	_SFR_IO8(0x39)
487
  60               	#ifndef __ASSEMBLER__
488
 139               	
488
  61               	#define ADC	_SFR_IO16(0x04)
489
 140               	#define GIFR	_SFR_IO8(0x3A)
489
  62               	#endif
490
 141               	#define GIMSK	_SFR_IO8(0x3B)
490
  63               	#define ADCL	_SFR_IO8(0x04)
491
 142               	#define GICR	_SFR_IO8(0x3B)   /* Changed in 2486H-AVR-09/02 */
491
  64               	#define ADCH	_SFR_IO8(0x05)
492
 143               	
492
  65               	#define ADCSR	_SFR_IO8(0x06)
493
 144               	/* 0x3C reserved (OCR0?) */
493
  66               	#define ADCSRA	_SFR_IO8(0x06)  /* Changed in 2486H-AVR-09/02 */
494
 145               	
494
  67               	#define ADMUX	_SFR_IO8(0x07)
495
 146               	/* 0x3D..0x3E SP */
495
  68               	
496
 147               	
496
  69               	/* analog comparator */
497
 148               	/* 0x3F SREG */
497
  70               	#define ACSR	_SFR_IO8(0x08)
498
 149               	
498
  71               	
499
 150               	/* Interrupt vectors */
499
  72               	/* USART */
500
 151               	
500
  73               	#define UBRRL	_SFR_IO8(0x09)
501
 152               	#define SIG_INTERRUPT0		_VECTOR(1)
501
  74               	#define UCSRB	_SFR_IO8(0x0A)
502
 153               	#define SIG_INTERRUPT1		_VECTOR(2)
502
  75               	#define UCSRA	_SFR_IO8(0x0B)
503
 154               	#define SIG_OUTPUT_COMPARE2	_VECTOR(3)
503
  76               	#define UDR	_SFR_IO8(0x0C)
504
 155               	#define SIG_OVERFLOW2		_VECTOR(4)
504
  77               	
505
 156               	#define SIG_INPUT_CAPTURE1	_VECTOR(5)
505
  78               	/* SPI */
506
 157               	#define SIG_OUTPUT_COMPARE1A	_VECTOR(6)
506
  79               	#define SPCR	_SFR_IO8(0x0D)
507
 158               	#define SIG_OUTPUT_COMPARE1B	_VECTOR(7)
507
  80               	#define SPSR	_SFR_IO8(0x0E)
508
 159               	#define SIG_OVERFLOW1		_VECTOR(8)
508
  81               	#define SPDR	_SFR_IO8(0x0F)
509
 160               	#define SIG_OVERFLOW0		_VECTOR(9)
509
  82               	
510
 161               	#define SIG_SPI			_VECTOR(10)
510
  83               	/* Port D */
511
 162               	#define SIG_UART_RECV		_VECTOR(11)
511
  84               	#define PIND	_SFR_IO8(0x10)
512
 163               	#define SIG_UART_DATA		_VECTOR(12)
512
  85               	#define DDRD	_SFR_IO8(0x11)
513
 164               	#define SIG_UART_TRANS		_VECTOR(13)
513
  86               	#define PORTD	_SFR_IO8(0x12)
514
 165               	#define SIG_ADC			_VECTOR(14)
514
  87               	
515
 166               	#define SIG_EEPROM_READY	_VECTOR(15)
515
  88               	/* Port C */
516
 167               	#define SIG_COMPARATOR		_VECTOR(16)
516
  89               	#define PINC	_SFR_IO8(0x13)
517
 168               	#define SIG_2WIRE_SERIAL	_VECTOR(17)
517
  90               	#define DDRC	_SFR_IO8(0x14)
518
 169               	#define SIG_SPM_READY		_VECTOR(18)
518
  91               	#define PORTC	_SFR_IO8(0x15)
519
 170               	
519
  92               	
520
 171               	#define _VECTORS_SIZE 38
520
  93               	/* Port B */
521
 172               	
521
  94               	#define PINB	_SFR_IO8(0x16)
522
 173               	/* Bit numbers */
522
  95               	#define DDRB	_SFR_IO8(0x17)
523
 174               	
523
  96               	#define PORTB	_SFR_IO8(0x18)
524
 175               	/* GIMSK / GICR */
524
  97               	
525
 176               	#define INT1	7
525
  98               	/* EEPROM Control Register */
526
 177               	#define INT0	6
526
  99               	#define EECR	_SFR_IO8(0x1C)
527
 178               	#define IVSEL	1
527
 100               	
528
 179               	#define IVCE	0
528
 101               	/* EEPROM Data Register */
529
 180               	
529
 102               	#define EEDR	_SFR_IO8(0x1D)
530
 181               	/* GIFR */
530
 103               	
531
 182               	#define INTF1	7
531
 104               	/* EEPROM Address Register */
532
 183               	#define INTF0	6
532
 105               	#define EEAR	_SFR_IO16(0x1E)
533
 184               	
533
 106               	#define EEARL	_SFR_IO8(0x1E)
534
 184               	#elif defined (__AVR_ATmega8515__)
534
 107               	#define EEARH	_SFR_IO8(0x1F)
-
 
535
 108               	
-
 
536
 109               	#define UCSRC	_SFR_IO8(0x20)
-
 
537
 110               	#define UBRRH	_SFR_IO8(0x20)
-
 
538
 111               	
-
 
539
 112               	#define WDTCR	_SFR_IO8(0x21)
-
 
540
 113               	#define ASSR	_SFR_IO8(0x22)
-
 
541
GAS LISTING /tmp/cckBHomO.s 			page 10
-
 
542
 
-
 
543
 
-
 
544
 114               	
-
 
545
 115               	/* Timer 2 */
-
 
546
 116               	#define OCR2	_SFR_IO8(0x23)
-
 
547
 117               	#define TCNT2	_SFR_IO8(0x24)
-
 
548
 118               	#define TCCR2	_SFR_IO8(0x25)
-
 
549
 119               	
-
 
550
 120               	/* Timer 1 */
-
 
551
 121               	#define ICR1	_SFR_IO16(0x26)
-
 
552
 122               	#define ICR1L	_SFR_IO8(0x26)
-
 
553
 123               	#define ICR1H	_SFR_IO8(0x27)
-
 
554
 124               	#define OCR1B	_SFR_IO16(0x28)
-
 
555
 125               	#define OCR1BL	_SFR_IO8(0x28)
-
 
556
 126               	#define OCR1BH	_SFR_IO8(0x29)
-
 
557
 127               	#define OCR1A	_SFR_IO16(0x2A)
-
 
558
 128               	#define OCR1AL	_SFR_IO8(0x2A)
-
 
559
 129               	#define OCR1AH	_SFR_IO8(0x2B)
-
 
560
 130               	#define TCNT1	_SFR_IO16(0x2C)
-
 
561
 131               	#define TCNT1L	_SFR_IO8(0x2C)
-
 
562
 132               	#define TCNT1H	_SFR_IO8(0x2D)
-
 
563
 133               	#define TCCR1B	_SFR_IO8(0x2E)
-
 
564
 134               	#define TCCR1A	_SFR_IO8(0x2F)
-
 
565
 135               	
-
 
566
 136               	#define SFIOR	_SFR_IO8(0x30)
-
 
567
 137               	
-
 
568
 138               	#define OSCCAL	_SFR_IO8(0x31)
-
 
569
 139               	
-
 
570
 140               	/* Timer 0 */
-
 
571
 141               	#define TCNT0	_SFR_IO8(0x32)
-
 
572
 142               	#define TCCR0	_SFR_IO8(0x33)
-
 
573
 143               	
-
 
574
 144               	#define MCUCSR	_SFR_IO8(0x34)
-
 
575
 145               	#define MCUCR	_SFR_IO8(0x35)
-
 
576
 146               	
-
 
577
 147               	#define TWCR	_SFR_IO8(0x36)
-
 
578
 148               	
-
 
579
 149               	#define SPMCR	_SFR_IO8(0x37)
-
 
580
 150               	
-
 
581
 151               	#define TIFR	_SFR_IO8(0x38)
-
 
582
 152               	#define TIMSK	_SFR_IO8(0x39)
-
 
583
 153               	
-
 
584
 154               	#define GIFR	_SFR_IO8(0x3A)
-
 
585
 155               	#define GIMSK	_SFR_IO8(0x3B)
-
 
586
 156               	#define GICR	_SFR_IO8(0x3B)   /* Changed in 2486H-AVR-09/02 */
-
 
587
 157               	
-
 
588
 158               	/* 0x3C reserved (OCR0?) */
-
 
589
 159               	
-
 
590
 160               	/* 0x3D..0x3E SP */
-
 
591
 161               	
-
 
592
 162               	/* 0x3F SREG */
-
 
593
 163               	
-
 
594
 164               	/* Interrupt vectors */
-
 
595
 165               	
-
 
596
 166               	/* External Interrupt Request 0 */
-
 
597
 167               	#define INT0_vect			_VECTOR(1)
-
 
598
 168               	#define SIG_INTERRUPT0			_VECTOR(1)
-
 
599
 169               	
-
 
600
 170               	/* External Interrupt Request 1 */
-
 
601
GAS LISTING /tmp/cckBHomO.s 			page 11
-
 
602
 
-
 
603
 
-
 
604
 171               	#define INT1_vect			_VECTOR(2)
-
 
605
 172               	#define SIG_INTERRUPT1			_VECTOR(2)
-
 
606
 173               	
-
 
607
 174               	/* Timer/Counter2 Compare Match */
-
 
608
 175               	#define TIMER2_COMP_vect		_VECTOR(3)
-
 
609
 176               	#define SIG_OUTPUT_COMPARE2		_VECTOR(3)
-
 
610
 177               	
-
 
611
 178               	/* Timer/Counter2 Overflow */
-
 
612
 179               	#define TIMER2_OVF_vect			_VECTOR(4)
-
 
613
 180               	#define SIG_OVERFLOW2			_VECTOR(4)
-
 
614
 181               	
-
 
615
 182               	/* Timer/Counter1 Capture Event */
-
 
616
 183               	#define TIMER1_CAPT_vect		_VECTOR(5)
-
 
617
 184               	#define SIG_INPUT_CAPTURE1		_VECTOR(5)
-
 
618
 185               	
-
 
619
 186               	/* Timer/Counter1 Compare Match A */
-
 
620
 187               	#define TIMER1_COMPA_vect		_VECTOR(6)
-
 
621
 188               	#define SIG_OUTPUT_COMPARE1A		_VECTOR(6)
-
 
622
 189               	
-
 
623
 190               	/* Timer/Counter1 Compare Match B */
-
 
624
 191               	#define TIMER1_COMPB_vect		_VECTOR(7)
-
 
625
 192               	#define SIG_OUTPUT_COMPARE1B		_VECTOR(7)
-
 
626
 193               	
-
 
627
 194               	/* Timer/Counter1 Overflow */
-
 
628
 195               	#define TIMER1_OVF_vect			_VECTOR(8)
-
 
629
 196               	#define SIG_OVERFLOW1			_VECTOR(8)
-
 
630
 197               	
-
 
631
 198               	/* Timer/Counter0 Overflow */
-
 
632
 199               	#define TIMER0_OVF_vect			_VECTOR(9)
-
 
633
 200               	#define SIG_OVERFLOW0			_VECTOR(9)
-
 
634
 201               	
-
 
635
 202               	/* Serial Transfer Complete */
-
 
636
 203               	#define SPI_STC_vect			_VECTOR(10)
-
 
637
 204               	#define SIG_SPI				_VECTOR(10)
-
 
638
 205               	
-
 
639
 206               	/* USART, Rx Complete */
-
 
640
 207               	#define USART_RXC_vect			_VECTOR(11)
-
 
641
 208               	#define SIG_UART_RECV			_VECTOR(11)
-
 
642
 209               	
-
 
643
 210               	/* USART Data Register Empty */
-
 
644
 211               	#define USART_UDRE_vect			_VECTOR(12)
-
 
645
 212               	#define SIG_UART_DATA			_VECTOR(12)
-
 
646
 213               	
-
 
647
 214               	/* USART, Tx Complete */
-
 
648
 215               	#define USART_TXC_vect			_VECTOR(13)
-
 
649
 216               	#define SIG_UART_TRANS			_VECTOR(13)
-
 
650
 217               	
-
 
651
 218               	/* ADC Conversion Complete */
-
 
652
 219               	#define ADC_vect			_VECTOR(14)
-
 
653
 220               	#define SIG_ADC				_VECTOR(14)
-
 
654
 221               	
-
 
655
 222               	/* EEPROM Ready */
-
 
656
 223               	#define EE_RDY_vect			_VECTOR(15)
-
 
657
 224               	#define SIG_EEPROM_READY		_VECTOR(15)
-
 
658
 225               	
-
 
659
 226               	/* Analog Comparator */
-
 
660
 227               	#define ANA_COMP_vect			_VECTOR(16)
-
 
661
GAS LISTING /tmp/cckBHomO.s 			page 12
-
 
662
 
-
 
663
 
-
 
664
 228               	#define SIG_COMPARATOR			_VECTOR(16)
-
 
665
 229               	
-
 
666
 230               	/* 2-wire Serial Interface */
-
 
667
 231               	#define TWI_vect			_VECTOR(17)
-
 
668
 232               	#define SIG_2WIRE_SERIAL		_VECTOR(17)
-
 
669
 233               	
-
 
670
 234               	/* Store Program Memory Ready */
-
 
671
 235               	#define SPM_RDY_vect			_VECTOR(18)
-
 
672
 236               	#define SIG_SPM_READY			_VECTOR(18)
-
 
673
 237               	
-
 
674
 238               	#define _VECTORS_SIZE 38
-
 
675
 239               	
-
 
676
 240               	/* Bit numbers */
-
 
677
 241               	
-
 
678
 242               	/* GIMSK / GICR */
-
 
679
 243               	#define INT1	7
-
 
680
 244               	#define INT0	6
-
 
681
 245               	#define IVSEL	1
-
 
682
 246               	#define IVCE	0
-
 
683
 247               	
-
 
684
 248               	/* GIFR */
-
 
685
 249               	#define INTF1	7
-
 
686
 250               	#define INTF0	6
-
 
687
 251               	
-
 
688
 252               	/* TIMSK */
-
 
689
 253               	#define OCIE2	7
-
 
690
 254               	#define TOIE2	6
-
 
691
 255               	#define TICIE1	5
-
 
692
 256               	#define OCIE1A	4
-
 
693
 257               	#define OCIE1B	3
-
 
694
 257               	#elif defined (__AVR_ATmega48__)
-
 
695
 258               	#  include <avr/iom48.h>
-
 
696
 259               	#elif defined (__AVR_ATmega88__)
-
 
697
 260               	#  include <avr/iom88.h>
-
 
698
 261               	#elif defined (__AVR_ATmega8515__)
-
 
699
 262               	#  include <avr/iom8515.h>
-
 
700
 263               	#elif defined (__AVR_ATmega8535__)
-
 
701
 264               	#  include <avr/iom8535.h>
-
 
702
 265               	#elif defined (__AVR_AT90S8535__)
-
 
703
 266               	#  include <avr/io8535.h>
-
 
704
 267               	#elif defined (__AVR_AT90C8534__)
-
 
705
 268               	#  include <avr/io8534.h>
-
 
706
 269               	#elif defined (__AVR_AT90S8515__)
-
 
707
 270               	#  include <avr/io8515.h>
-
 
708
 271               	#elif defined (__AVR_AT90S4434__)
-
 
709
 272               	#  include <avr/io4434.h>
-
 
710
 273               	#elif defined (__AVR_AT90S4433__)
-
 
711
 274               	#  include <avr/io4433.h>
-
 
712
 275               	#elif defined (__AVR_AT90S4414__)
-
 
713
 276               	#  include <avr/io4414.h>
-
 
714
 277               	#elif defined (__AVR_ATtiny22__)
-
 
715
 278               	#  include <avr/iotn22.h>
-
 
716
 279               	#elif defined (__AVR_ATtiny26__)
-
 
717
 280               	#  include <avr/iotn26.h>
-
 
718
 281               	#elif defined (__AVR_AT90S2343__)
-
 
719
 282               	#  include <avr/io2343.h>
-
 
720
 283               	#elif defined (__AVR_AT90S2333__)
-
 
721
GAS LISTING /tmp/cckBHomO.s 			page 13
-
 
722
 
-
 
723
 
-
 
724
 284               	#  include <avr/io2333.h>
-
 
725
 285               	#elif defined (__AVR_AT90S2323__)
-
 
726
 286               	#  include <avr/io2323.h>
-
 
727
 287               	#elif defined (__AVR_AT90S2313__)
-
 
728
 288               	#  include <avr/io2313.h>
-
 
729
 289               	#elif defined (__AVR_ATtiny2313__)
-
 
730
 290               	#  include <avr/iotn2313.h>
-
 
731
 291               	#elif defined (__AVR_ATtiny13__)
-
 
732
 292               	#  include <avr/iotn13.h>
-
 
733
 293               	#elif defined (__AVR_ATtiny25__)
-
 
734
 294               	#  include <avr/iotn25.h>
-
 
735
 295               	#elif defined (__AVR_ATtiny45__)
-
 
736
 296               	#  include <avr/iotn45.h>
-
 
737
 297               	#elif defined (__AVR_ATtiny85__)
-
 
738
 298               	#  include <avr/iotn85.h>
-
 
739
 299               	#elif defined (__AVR_ATtiny24__)
-
 
740
 300               	#  include <avr/iotn24.h>
-
 
741
 301               	#elif defined (__AVR_ATtiny44__)
-
 
742
 302               	#  include <avr/iotn44.h>
-
 
743
 303               	#elif defined (__AVR_ATtiny84__)
-
 
744
 304               	#  include <avr/iotn84.h>
-
 
745
 305               	#elif defined (__AVR_ATtiny261__)
-
 
746
 306               	#  include <avr/iotn261.h>
-
 
747
 307               	#elif defined (__AVR_ATtiny461__)
-
 
748
 308               	#  include <avr/iotn461.h>
-
 
749
 309               	#elif defined (__AVR_ATtiny861__)
-
 
750
 310               	#  include <avr/iotn861.h>
-
 
751
 311               	/* avr1: the following only supported for assembler programs */
-
 
752
 312               	#elif defined (__AVR_ATtiny28__)
-
 
753
 313               	#  include <avr/iotn28.h>
-
 
754
 314               	#elif defined (__AVR_AT90S1200__)
-
 
755
 315               	#  include <avr/io1200.h>
-
 
756
 316               	#elif defined (__AVR_ATtiny15__)
-
 
757
 317               	#  include <avr/iotn15.h>
-
 
758
 318               	#elif defined (__AVR_ATtiny12__)
-
 
759
 319               	#  include <avr/iotn12.h>
-
 
760
 320               	#elif defined (__AVR_ATtiny11__)
-
 
761
 321               	#  include <avr/iotn11.h>
-
 
762
 322               	#else
-
 
763
 323               	#  if !defined(__COMPILING_AVR_LIBC__)
-
 
764
 324               	#    warning "device type not defined"
-
 
765
 325               	#  endif
-
 
766
 326               	#endif
-
 
767
 327               	
-
 
768
 328               	#include <avr/portpins.h>
-
 
769
   1               	/* Copyright (c) 2003  Theodore A. Roth
-
 
770
   2               	   All rights reserved.
-
 
771
   3               	
-
 
772
   4               	   Redistribution and use in source and binary forms, with or without
-
 
773
   5               	   modification, are permitted provided that the following conditions are met:
-
 
774
   6               	
-
 
775
   7               	   * Redistributions of source code must retain the above copyright
-
 
776
   8               	     notice, this list of conditions and the following disclaimer.
-
 
777
   9               	
-
 
778
  10               	   * Redistributions in binary form must reproduce the above copyright
-
 
779
  11               	     notice, this list of conditions and the following disclaimer in
-
 
780
  12               	     the documentation and/or other materials provided with the
-
 
781
GAS LISTING /tmp/cckBHomO.s 			page 14
-
 
782
 
-
 
783
 
-
 
784
  13               	     distribution.
-
 
785
  14               	
-
 
786
  15               	   * Neither the name of the copyright holders nor the names of
-
 
787
  16               	     contributors may be used to endorse or promote products derived
-
 
788
  17               	     from this software without specific prior written permission.
-
 
789
  18               	
-
 
790
  19               	  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-
 
791
  20               	  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-
 
792
  21               	  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-
 
793
  22               	  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-
 
794
  23               	  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-
 
795
  24               	  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-
 
796
  25               	  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-
 
797
  26               	  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-
 
798
  27               	  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-
 
799
  28               	  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-
 
800
  29               	  POSSIBILITY OF SUCH DAMAGE. */
-
 
801
  30               	
-
 
802
  31               	/* $Id: portpins.h,v 1.3.4.1 2006/03/10 16:22:38 aesok Exp $ */
-
 
803
  32               	
-
 
804
  33               	#ifndef _AVR_PORTPINS_H_
-
 
805
  34               	#define _AVR_PORTPINS_H_ 1
-
 
806
  35               	
-
 
807
  36               	/* This file should only be included from <avr/io.h>, never directly. */
-
 
808
  37               	
-
 
809
  38               	#ifndef _AVR_IO_H_
-
 
810
  39               	#  error "Include <avr/io.h> instead of this file."
-
 
811
  40               	#endif
-
 
812
  41               	
-
 
813
  42               	/* Define Generic PORTn, DDn, and PINn values. */
-
 
814
  43               	
-
 
815
  44               	/* Port Data Register (generic) */
-
 
816
  45               	#define    PORT7        7
-
 
817
  46               	#define    PORT6        6
-
 
818
  47               	#define    PORT5        5
-
 
819
  48               	#define    PORT4        4
-
 
820
  49               	#define    PORT3        3
-
 
821
  50               	#define    PORT2        2
-
 
822
  51               	#define    PORT1        1
-
 
823
  52               	#define    PORT0        0
-
 
824
  53               	
-
 
825
  54               	/* Port Data Direction Register (generic) */
-
 
826
  55               	#define    DD7          7
-
 
827
  56               	#define    DD6          6
-
 
828
  57               	#define    DD5          5
-
 
829
  58               	#define    DD4          4
-
 
830
  59               	#define    DD3          3
-
 
831
  60               	#define    DD2          2
-
 
832
  61               	#define    DD1          1
-
 
833
  62               	#define    DD0          0
-
 
834
  63               	
-
 
835
  64               	/* Port Input Pins (generic) */
-
 
836
  65               	#define    PIN7         7
-
 
837
  66               	#define    PIN6         6
-
 
838
  67               	#define    PIN5         5
-
 
839
  68               	#define    PIN4         4
-
 
840
  69               	#define    PIN3         3
-
 
841
GAS LISTING /tmp/cckBHomO.s 			page 15
-
 
842
 
-
 
843
 
-
 
844
  70               	#define    PIN2         2
-
 
845
  71               	#define    PIN1         1
-
 
846
  72               	#define    PIN0         0
-
 
847
  73               	
-
 
848
  74               	/* Define PORTxn values for all possible port pins. */
-
 
849
  75               	
-
 
850
  76               	/* PORT A */
-
 
851
  77               	
-
 
852
  78               	#if defined(PA0)
-
 
853
  79               	#  define PORTA0 PA0
-
 
854
  80               	#endif
-
 
855
  81               	#if defined(PA1)
-
 
856
  82               	#  define PORTA1 PA1
-
 
857
  83               	#endif
-
 
858
  84               	#if defined(PA2)
-
 
859
  85               	#  define PORTA2 PA2
-
 
860
  86               	#endif
-
 
861
  87               	#if defined(PA3)
-
 
862
  88               	#  define PORTA3 PA3
-
 
863
  89               	#endif
-
 
864
  90               	#if defined(PA4)
-
 
865
  91               	#  define PORTA4 PA4
-
 
866
  92               	#endif
-
 
867
  93               	#if defined(PA5)
-
 
868
  94               	#  define PORTA5 PA5
-
 
869
  95               	#endif
-
 
870
  96               	#if defined(PA6)
-
 
871
  97               	#  define PORTA6 PA6
-
 
872
  98               	#endif
-
 
873
  99               	#if defined(PA7)
-
 
874
 100               	#  define PORTA7 PA7
-
 
875
 101               	#endif
-
 
876
 102               	
-
 
877
 103               	/* PORT B */
-
 
878
 104               	
-
 
879
 105               	#if defined(PB0)
-
 
880
 106               	#  define PORTB0 PB0
-
 
881
 107               	#endif
-
 
882
 108               	#if defined(PB1)
-
 
883
 109               	#  define PORTB1 PB1
-
 
884
 110               	#endif
-
 
885
 111               	#if defined(PB2)
-
 
886
 112               	#  define PORTB2 PB2
-
 
887
 113               	#endif
-
 
888
 114               	#if defined(PB3)
-
 
889
 115               	#  define PORTB3 PB3
-
 
890
 116               	#endif
-
 
891
 117               	#if defined(PB4)
-
 
892
 118               	#  define PORTB4 PB4
-
 
893
 119               	#endif
-
 
894
 120               	#if defined(PB5)
-
 
895
 121               	#  define PORTB5 PB5
-
 
896
 122               	#endif
-
 
897
 123               	#if defined(PB6)
-
 
898
 124               	#  define PORTB6 PB6
-
 
899
 125               	#endif
-
 
900
 126               	#if defined(PB7)
-
 
901
GAS LISTING /tmp/cckBHomO.s 			page 16
-
 
902
 
-
 
903
 
-
 
904
 127               	#  define PORTB7 PB7
-
 
905
 128               	#endif
-
 
906
 129               	
-
 
907
 130               	/* PORT C */
-
 
908
 131               	
-
 
909
 132               	#if defined(PC0)
-
 
910
 133               	#  define PORTC0 PC0
-
 
911
 134               	#endif
-
 
912
 135               	#if defined(PC1)
-
 
913
 136               	#  define PORTC1 PC1
-
 
914
 137               	#endif
-
 
915
 138               	#if defined(PC2)
-
 
916
 139               	#  define PORTC2 PC2
-
 
917
 140               	#endif
-
 
918
 141               	#if defined(PC3)
-
 
919
 142               	#  define PORTC3 PC3
-
 
920
 143               	#endif
-
 
921
 144               	#if defined(PC4)
-
 
922
 145               	#  define PORTC4 PC4
-
 
923
 146               	#endif
-
 
924
 147               	#if defined(PC5)
-
 
925
 148               	#  define PORTC5 PC5
-
 
926
 149               	#endif
-
 
927
 150               	#if defined(PC6)
-
 
928
 151               	#  define PORTC6 PC6
-
 
929
 152               	#endif
-
 
930
 153               	#if defined(PC7)
-
 
931
 154               	#  define PORTC7 PC7
-
 
932
 155               	#endif
-
 
933
 156               	
-
 
934
 157               	/* PORT D */
-
 
935
 158               	
-
 
936
 159               	#if defined(PD0)
-
 
937
 160               	#  define PORTD0 PD0
-
 
938
 161               	#endif
-
 
939
 162               	#if defined(PD1)
-
 
940
 163               	#  define PORTD1 PD1
-
 
941
 164               	#endif
-
 
942
 165               	#if defined(PD2)
-
 
943
 166               	#  define PORTD2 PD2
-
 
944
 167               	#endif
-
 
945
 168               	#if defined(PD3)
-
 
946
 169               	#  define PORTD3 PD3
-
 
947
 170               	#endif
-
 
948
 171               	#if defined(PD4)
-
 
949
 172               	#  define PORTD4 PD4
-
 
950
 173               	#endif
-
 
951
 174               	#if defined(PD5)
-
 
952
 175               	#  define PORTD5 PD5
-
 
953
 176               	#endif
-
 
954
 177               	#if defined(PD6)
-
 
955
 178               	#  define PORTD6 PD6
-
 
956
 179               	#endif
-
 
957
 180               	#if defined(PD7)
-
 
958
 181               	#  define PORTD7 PD7
-
 
959
 182               	#endif
-
 
960
 183               	
-
 
961
GAS LISTING /tmp/cckBHomO.s 			page 17
-
 
962
 
-
 
963
 
-
 
964
 184               	/* PORT E */
-
 
965
 185               	
-
 
966
 186               	#if defined(PE0)
-
 
967
 187               	#  define PORTE0 PE0
-
 
968
 188               	#endif
-
 
969
 189               	#if defined(PE1)
-
 
970
 190               	#  define PORTE1 PE1
-
 
971
 191               	#endif
-
 
972
 192               	#if defined(PE2)
-
 
973
 193               	#  define PORTE2 PE2
-
 
974
 194               	#endif
-
 
975
 195               	#if defined(PE3)
-
 
976
 196               	#  define PORTE3 PE3
-
 
977
 197               	#endif
-
 
978
 198               	#if defined(PE4)
-
 
979
 199               	#  define PORTE4 PE4
-
 
980
 200               	#endif
-
 
981
 201               	#if defined(PE5)
-
 
982
 202               	#  define PORTE5 PE5
-
 
983
 203               	#endif
-
 
984
 204               	#if defined(PE6)
-
 
985
 205               	#  define PORTE6 PE6
-
 
986
 206               	#endif
-
 
987
 207               	#if defined(PE7)
-
 
988
 208               	#  define PORTE7 PE7
-
 
989
 209               	#endif
-
 
990
 210               	
-
 
991
 211               	/* PORT F */
-
 
992
 212               	
-
 
993
 213               	#if defined(PF0)
-
 
994
 214               	#  define PORTF0 PF0
-
 
995
 215               	#endif
-
 
996
 216               	#if defined(PF1)
-
 
997
 217               	#  define PORTF1 PF1
-
 
998
 218               	#endif
-
 
999
 219               	#if defined(PF2)
-
 
1000
 220               	#  define PORTF2 PF2
-
 
1001
 221               	#endif
-
 
1002
 222               	#if defined(PF3)
-
 
1003
 223               	#  define PORTF3 PF3
-
 
1004
 224               	#endif
-
 
1005
 225               	#if defined(PF4)
-
 
1006
 226               	#  define PORTF4 PF4
-
 
1007
 227               	#endif
-
 
1008
 228               	#if defined(PF5)
-
 
1009
 229               	#  define PORTF5 PF5
-
 
1010
 230               	#endif
-
 
1011
 231               	#if defined(PF6)
-
 
1012
 232               	#  define PORTF6 PF6
-
 
1013
 233               	#endif
-
 
1014
 234               	#if defined(PF7)
-
 
1015
 235               	#  define PORTF7 PF7
-
 
1016
 236               	#endif
-
 
1017
 237               	
-
 
1018
 238               	/* PORT G */
-
 
1019
 239               	
-
 
1020
 240               	#if defined(PG0)
-
 
1021
GAS LISTING /tmp/cckBHomO.s 			page 18
-
 
1022
 
-
 
1023
 
-
 
1024
 241               	#  define PORTG0 PG0
-
 
1025
 242               	#endif
-
 
1026
 243               	#if defined(PG1)
-
 
1027
 244               	#  define PORTG1 PG1
-
 
1028
 245               	#endif
-
 
1029
 246               	#if defined(PG2)
-
 
1030
 247               	#  define PORTG2 PG2
-
 
1031
 248               	#endif
-
 
1032
 249               	#if defined(PG3)
-
 
1033
 250               	#  define PORTG3 PG3
-
 
1034
 251               	#endif
-
 
1035
 252               	#if defined(PG4)
-
 
1036
 253               	#  define PORTG4 PG4
-
 
1037
 254               	#endif
-
 
1038
 255               	#if defined(PG5)
-
 
1039
 256               	#  define PORTG5 PG5
-
 
1040
 257               	#endif
-
 
1041
 258               	#if defined(PG6)
-
 
1042
 259               	#  define PORTG6 PG6
-
 
1043
 260               	#endif
-
 
1044
 261               	#if defined(PG7)
-
 
1045
 262               	#  define PORTG7 PG7
-
 
1046
 263               	#endif
-
 
1047
 264               	
-
 
1048
 265               	/* PORT H */
-
 
1049
 266               	
-
 
1050
 267               	#if defined(PH0)
-
 
1051
 268               	#  define PORTH0 PH0
-
 
1052
 269               	#endif
-
 
1053
 270               	#if defined(PH1)
-
 
1054
 271               	#  define PORTH1 PH1
-
 
1055
 272               	#endif
-
 
1056
 273               	#if defined(PH2)
-
 
1057
 274               	#  define PORTH2 PH2
-
 
1058
 275               	#endif
-
 
1059
 276               	#if defined(PH3)
-
 
1060
 277               	#  define PORTH3 PH3
-
 
1061
 278               	#endif
-
 
1062
 279               	#if defined(PH4)
-
 
1063
 280               	#  define PORTH4 PH4
-
 
1064
 281               	#endif
-
 
1065
 282               	#if defined(PH5)
-
 
1066
 283               	#  define PORTH5 PH5
-
 
1067
 284               	#endif
-
 
1068
 285               	#if defined(PH6)
-
 
1069
 286               	#  define PORTH6 PH6
-
 
1070
 287               	#endif
-
 
1071
 288               	#if defined(PH7)
-
 
1072
 289               	#  define PORTH7 PH7
-
 
1073
 290               	#endif
-
 
1074
 291               	
-
 
1075
 292               	/* PORT J */
-
 
1076
 293               	
-
 
1077
 294               	#if defined(PJ0)
-
 
1078
 295               	#  define PORTJ0 PJ0
-
 
1079
 296               	#endif
-
 
1080
 297               	#if defined(PJ1)
-
 
1081
GAS LISTING /tmp/cckBHomO.s 			page 19
-
 
1082
 
-
 
1083
 
-
 
1084
 298               	#  define PORTJ1 PJ1
-
 
1085
 299               	#endif
-
 
1086
 300               	#if defined(PJ2)
-
 
1087
 301               	#  define PORTJ2 PJ2
-
 
1088
 302               	#endif
-
 
1089
 303               	#if defined(PJ3)
-
 
1090
 304               	#  define PORTJ3 PJ3
-
 
1091
 305               	#endif
-
 
1092
 306               	#if defined(PJ4)
-
 
1093
 307               	#  define PORTJ4 PJ4
-
 
1094
 308               	#endif
-
 
1095
 309               	#if defined(PJ5)
-
 
1096
 310               	#  define PORTJ5 PJ5
-
 
1097
 311               	#endif
-
 
1098
 312               	#if defined(PJ6)
-
 
1099
 313               	#  define PORTJ6 PJ6
-
 
1100
 314               	#endif
-
 
1101
 315               	#if defined(PJ7)
-
 
1102
 316               	#  define PORTJ7 PJ7
-
 
1103
 317               	#endif
-
 
1104
 318               	
-
 
1105
 319               	/* PORT K */
-
 
1106
 320               	
-
 
1107
 321               	#if defined(PK0)
-
 
1108
 322               	#  define PORTK0 PK0
-
 
1109
 323               	#endif
-
 
1110
 324               	#if defined(PK1)
-
 
1111
 325               	#  define PORTK1 PK1
-
 
1112
 326               	#endif
-
 
1113
 327               	#if defined(PK2)
-
 
1114
 328               	#  define PORTK2 PK2
-
 
1115
 329               	#endif
-
 
1116
 329               	
-
 
1117
 330               	#if __AVR_ARCH__ != 1
-
 
1118
 331               	#  if XRAMEND < 0x100 && !defined(__COMPILING_AVR_LIBC__)
-
 
1119
 332               	#    undef SP
-
 
1120
 333               	#    define SP     _SFR_IO8(0x3D)
-
 
1121
 334               	#    undef SPH
-
 
1122
 335               	#  endif
-
 
1123
 336               	#endif
-
 
1124
 337               	
-
 
1125
 338               	#include <avr/version.h>
-
 
1126
   1               	/* Copyright (c) 2005, Joerg Wunsch                               -*- c -*-
-
 
1127
   2               	   All rights reserved.
-
 
1128
   3               	
-
 
1129
   4               	   Redistribution and use in source and binary forms, with or without
-
 
1130
   5               	   modification, are permitted provided that the following conditions are met:
-
 
1131
   6               	
-
 
1132
   7               	   * Redistributions of source code must retain the above copyright
-
 
1133
   8               	     notice, this list of conditions and the following disclaimer.
-
 
1134
   9               	
-
 
1135
  10               	   * Redistributions in binary form must reproduce the above copyright
-
 
1136
  11               	     notice, this list of conditions and the following disclaimer in
-
 
1137
  12               	     the documentation and/or other materials provided with the
-
 
1138
  13               	     distribution.
-
 
1139
  14               	
-
 
1140
  15               	   * Neither the name of the copyright holders nor the names of
-
 
1141
GAS LISTING /tmp/cckBHomO.s 			page 20
-
 
1142
 
-
 
1143
 
-
 
1144
  16               	     contributors may be used to endorse or promote products derived
-
 
1145
  17               	     from this software without specific prior written permission.
-
 
1146
  18               	
-
 
1147
  19               	  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-
 
1148
  20               	  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-
 
1149
  21               	  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-
 
1150
  22               	  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-
 
1151
  23               	  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-
 
1152
  24               	  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-
 
1153
  25               	  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-
 
1154
  26               	  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-
 
1155
  27               	  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-
 
1156
  28               	  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-
 
1157
  29               	  POSSIBILITY OF SUCH DAMAGE. */
-
 
1158
  30               	
-
 
1159
  31               	/* $Id: version.h.in,v 1.1 2005/09/12 20:18:12 joerg_wunsch Exp $ */
-
 
1160
  32               	
-
 
1161
  33               	/** \defgroup avr_version <avr/version.h>: avr-libc version macros
-
 
1162
  34               	    \code #include <avr/version.h> \endcode
-
 
1163
  35               	
-
 
1164
  36               	    This header file defines macros that contain version numbers and
-
 
1165
  37               	    strings describing the current version of avr-libc.
-
 
1166
  38               	
-
 
1167
  39               	    The version number itself basically consists of three pieces that
-
 
1168
  40               	    are separated by a dot: the major number, the minor number, and
-
 
1169
  41               	    the revision number.  For development versions (which use an odd
-
 
1170
  42               	    minor number), the string representation additionally gets the
-
 
1171
  43               	    date code (YYYYMMDD) appended.
-
 
1172
  44               	
-
 
1173
  45               	    This file will also be included by \c <avr/io.h>.  That way,
-
 
1174
  46               	    portable tests can be implemented using \c <avr/io.h> that can be
-
 
1175
  47               	    used in code that wants to remain backwards-compatible to library
-
 
1176
  48               	    versions prior to the date when the library version API had been
-
 
1177
  49               	    added, as referenced but undefined C preprocessor macros
-
 
1178
  50               	    automatically evaluate to 0.
-
 
1179
  51               	*/
-
 
1180
  52               	
-
 
1181
  53               	#ifndef _AVR_VERSION_H_
-
 
1182
  54               	#define _AVR_VERSION_H_
-
 
1183
  55               	
-
 
1184
  56               	/** \ingroup avr_version
-
 
1185
  57               	    String literal representation of the current library version. */
-
 
1186
  58               	#define __AVR_LIBC_VERSION_STRING__ "1.4.4"
-
 
1187
  59               	
-
 
1188
  60               	/** \ingroup avr_version
-
 
1189
  61               	    Numerical representation of the current library version.
-
 
1190
  62               	
-
 
1191
  63               	    In the numerical representation, the major number is multiplied by
-
 
1192
  64               	    10000, the minor number by 100, and all three parts are then
-
 
1193
  65               	    added.  It is intented to provide a monotonically increasing
-
 
1194
  66               	    numerical value that can easily be used in numerical checks.
-
 
1195
  67               	 */
-
 
1196
  68               	#define __AVR_LIBC_VERSION__        10404UL
-
 
1197
  69               	
-
 
1198
  70               	/** \ingroup avr_version
-
 
1199
  71               	    String literal representation of the release date. */
-
 
1200
  72               	#define __AVR_LIBC_DATE_STRING__    "20060420"
-
 
1201
GAS LISTING /tmp/cckBHomO.s 			page 21
-
 
1202
 
-
 
1203
 
-
 
1204
  73               	
-
 
1205
  74               	/** \ingroup avr_version
-
 
1206
  75               	    Numerical representation of the release date. */
-
 
1207
  76               	#define __AVR_LIBC_DATE_            20060420UL
-
 
1208
  77               	
-
 
1209
  78               	/** \ingroup avr_version
-
 
1210
  79               	    Library major version number. */
-
 
1211
  80               	#define __AVR_LIBC_MAJOR__          1
-
 
1212
  81               	
-
 
1213
  82               	/** \ingroup avr_version
-
 
1214
  83               	    Library minor version number. */
-
 
1215
  84               	#define __AVR_LIBC_MINOR__          4
-
 
1216
  85               	
-
 
1217
  86               	/** \ingroup avr_version
-
 
1218
  87               	    Library revision number. */
-
 
1219
  88               	#define __AVR_LIBC_REVISION__       4
-
 
1220
  89               	
-
 
1221
  90               	#endif /* _AVR_VERSION_H_ */
-
 
1222
  91               	...
-
 
1223
 339               	
535
  54               	#include "Events.h"
1224
  54               	#include "Events.h"
536
   1               	#ifndef EVENTS_H
1225
   1               	#ifndef EVENTS_H
537
   2               	#define EVENTS_H
1226
   2               	#define EVENTS_H
538
   3               	
1227
   3               	
539
   4               	/*
1228
   4               	/*
540
   5               	    Copyright (C) 2004    John Orlando
1229
   5               	    Copyright (C) 2004    John Orlando
541
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s 			page 10
-
 
542
 
-
 
543
 
-
 
544
   6               	    
1230
   6               	    
545
   7               	   AVRcam: a small real-time image processing engine.
1231
   7               	   AVRcam: a small real-time image processing engine.
546
   8               	
1232
   8               	
547
   9               	    This program is free software; you can redistribute it and/or
1233
   9               	    This program is free software; you can redistribute it and/or
548
  10               	    modify it under the terms of the GNU General Public
1234
  10               	    modify it under the terms of the GNU General Public
Line 570... Line 1256...
570
  32               		Module Auth: John Orlando
1256
  32               		Module Auth: John Orlando
571
  33               		
1257
  33               		
572
  34               		Description: This file provides the external interface
1258
  34               		Description: This file provides the external interface
573
  35               		to the events that can be published/processed in the
1259
  35               		to the events that can be published/processed in the
574
  36               		system.  It is specifically by itself (and nothing
1260
  36               		system.  It is specifically by itself (and nothing
-
 
1261
GAS LISTING /tmp/cckBHomO.s 			page 22
-
 
1262
 
-
 
1263
 
575
  37               		else should be defined in here) so that both .c and
1264
  37               		else should be defined in here) so that both .c and
576
  38               		.S (assembly) files can include this file without
1265
  38               		.S (assembly) files can include this file without
577
  39               		a problem.
1266
  39               		a problem.
578
  40               	    
1267
  40               	    
579
  41               	    Revision History:
1268
  41               	    Revision History:
Line 596... Line 1285...
596
  57               										; of the system that the line is complete
1285
  57               										; of the system that the line is complete
597
  58               									
1286
  58               									
598
  59               	#define HREF_INTERRUPT_ENABLE_MASK   0x80
1287
  59               	#define HREF_INTERRUPT_ENABLE_MASK   0x80
599
  60               	#define HREF_INTERRUPT_DISABLE_MASK  0x7F
1288
  60               	#define HREF_INTERRUPT_DISABLE_MASK  0x7F
600
  61               	#define ENABLE_PCLK_TIMER1_OVERFLOW_BITMASK  0x04
1289
  61               	#define ENABLE_PCLK_TIMER1_OVERFLOW_BITMASK  0x04
601
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s 			page 11
-
 
602
 
-
 
603
 
-
 
604
  62               	#define DISABLE_PCLK_TIMER1_OVERFLOW_BITMASK 0xFB
1290
  62               	#define DISABLE_PCLK_TIMER1_OVERFLOW_BITMASK 0xFB
605
  63               	#define G_PORT						_SFR_IO_ADDR(PINC)  
1291
  63               	#define G_PORT						_SFR_IO_ADDR(PINC)  
606
  64               	#define RB_PORT						_SFR_IO_ADDR(PINB)  
1292
  64               	#define RB_PORT						_SFR_IO_ADDR(PINB)  
607
  65               	#define PIXEL_RUN_START_INITIAL     0x50     	; This value causes our pixel counter (TCNT1)
1293
  65               	#define PIXEL_RUN_START_INITIAL     0x50     	; This value causes our pixel counter (TCNT1)
608
  66               													; to overflow after 176 (horizontal) pixels
1294
  66               													; to overflow after 176 (horizontal) pixels
Line 630... Line 1316...
630
  88               	;    |  |--this is sampled
1316
  88               	;    |  |--this is sampled
631
  89               	;    |--this is sampled
1317
  89               	;    |--this is sampled
632
  90               	
1318
  90               	
633
  91               	; As pixel blocks are sampled, the red, green, and blue values are
1319
  91               	; As pixel blocks are sampled, the red, green, and blue values are
634
  92               	; used to index into their respective color maps.  The color maps
1320
  92               	; used to index into their respective color maps.  The color maps
-
 
1321
GAS LISTING /tmp/cckBHomO.s 			page 23
-
 
1322
 
-
 
1323
 
635
  93               	; return values that can be logically ANDed together so that a 
1324
  93               	; return values that can be logically ANDed together so that a 
636
  94               	; particular RGB triplet will result in a single bit being set
1325
  94               	; particular RGB triplet will result in a single bit being set
637
  95               	; after the AND operation.  This single bit indicates which color
1326
  95               	; after the AND operation.  This single bit indicates which color
638
  96               	; the RGB triplet represents.  It is also possible for no bits to
1327
  96               	; the RGB triplet represents.  It is also possible for no bits to
639
  97               	; be set after the AND process, indicating that the RGB triplet
1328
  97               	; be set after the AND process, indicating that the RGB triplet
Line 656... Line 1345...
656
 114               	; in to the colorMap look-up code below to make it work.
1345
 114               	; in to the colorMap look-up code below to make it work.
657
 115               	
1346
 115               	
658
 116               	
1347
 116               	
659
 117               	; These are the registers that will be used throughout this
1348
 117               	; These are the registers that will be used throughout this
660
 118               	; module for acquiring each line of pixel data
1349
 118               	; module for acquiring each line of pixel data
661
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s 			page 12
-
 
662
 
-
 
663
 
-
 
664
 119               	pixelCount			= 16
1350
 119               	pixelCount			= 16
665
 120               	pixelRunStart		= 17
1351
 120               	pixelRunStart		= 17
666
 121               	lastColor     		= 18
1352
 121               	lastColor     		= 18
667
 122               	tmp1				= 19	; be sure to not use tmp1 and color simultaneously
1353
 122               	tmp1				= 19	; be sure to not use tmp1 and color simultaneously
668
 123               	tmp2				= 20
1354
 123               	tmp2				= 20
Line 690... Line 1376...
690
 145               			.global SIG_OVERFLOW1
1376
 145               			.global SIG_OVERFLOW1
691
 146               			
1377
 146               			
692
 147               	;*****************************************************************		
1378
 147               	;*****************************************************************		
693
 148               	;   	Function Name: CamIntAsm_waitForNewTrackingFrame
1379
 148               	;   	Function Name: CamIntAsm_waitForNewTrackingFrame
694
 149               	;       Function Description: This function is responsible for
1380
 149               	;       Function Description: This function is responsible for
-
 
1381
GAS LISTING /tmp/cckBHomO.s 			page 24
-
 
1382
 
-
 
1383
 
695
 150               	;       going to sleep until a new frame begins (indicated by
1384
 150               	;       going to sleep until a new frame begins (indicated by
696
 151               	;    	VSYNC transitioning from low to high.  This will wake
1385
 151               	;    	VSYNC transitioning from low to high.  This will wake
697
 152               	;       the "VSYNC sleep" up and allow it to continue with 
1386
 152               	;       the "VSYNC sleep" up and allow it to continue with 
698
 153               	;       the acquireLine function, where the system waits for
1387
 153               	;       the acquireLine function, where the system waits for
699
 154               	;       an "HREF sleep" that we use to synchronize with the
1388
 154               	;       an "HREF sleep" that we use to synchronize with the
Line 716... Line 1405...
716
 171:CamInterfaceAsm.S **** 		cbi		_SFR_IO_ADDR(PORTD),PD6		
1405
 171:CamInterfaceAsm.S **** 		cbi		_SFR_IO_ADDR(PORTD),PD6		
717
 172:CamInterfaceAsm.S **** 		sleep
1406
 172:CamInterfaceAsm.S **** 		sleep
718
 173               	
1407
 173               	
719
 174               	;*****************************************************************
1408
 174               	;*****************************************************************
720
 175               	; REMEMBER...everything from here on out is critically timed to be
1409
 175               	; REMEMBER...everything from here on out is critically timed to be
721
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s 			page 13
-
 
722
 
-
 
723
 
-
 
724
 176               	; synchronized with the flow of pixel data from the camera...
1410
 176               	; synchronized with the flow of pixel data from the camera...
725
 177               	;*****************************************************************
1411
 177               	;*****************************************************************
726
 178               	
1412
 178               	
727
 179               	CamIntAsm_acquireTrackingLine:
1413
 179               	CamIntAsm_acquireTrackingLine:
728
 180:CamInterfaceAsm.S **** 		brts	_cleanUp
1414
 180:CamInterfaceAsm.S **** 		brts	_cleanUp
Line 750... Line 1436...
750
 202:CamInterfaceAsm.S **** 		in		tmp1, _SFR_IO_ADDR(TIMSK)			; enable TIMER1 to start counting
1436
 202:CamInterfaceAsm.S **** 		in		tmp1, _SFR_IO_ADDR(TIMSK)			; enable TIMER1 to start counting
751
 203:CamInterfaceAsm.S **** 		ori		tmp1, ENABLE_PCLK_TIMER1_OVERFLOW_BITMASK 	; external PCLK pulses and interrupt on 
1437
 203:CamInterfaceAsm.S **** 		ori		tmp1, ENABLE_PCLK_TIMER1_OVERFLOW_BITMASK 	; external PCLK pulses and interrupt on 
752
 204:CamInterfaceAsm.S **** 		out		_SFR_IO_ADDR(TIMSK),tmp1			; overflow
1438
 204:CamInterfaceAsm.S **** 		out		_SFR_IO_ADDR(TIMSK),tmp1			; overflow
753
 205               			
1439
 205               			
754
 206:CamInterfaceAsm.S **** 		ldi 	tmp1,PIXEL_RUN_START_INITIAL	; set up the TCNT1 to overflow (and
1440
 206:CamInterfaceAsm.S **** 		ldi 	tmp1,PIXEL_RUN_START_INITIAL	; set up the TCNT1 to overflow (and
-
 
1441
GAS LISTING /tmp/cckBHomO.s 			page 25
-
 
1442
 
-
 
1443
 
755
 207:CamInterfaceAsm.S **** 		ldi 	tmp2,0xFF 						; interrupts) after 176 pixels		
1444
 207:CamInterfaceAsm.S **** 		ldi 	tmp2,0xFF 						; interrupts) after 176 pixels		
756
 208:CamInterfaceAsm.S **** 		out 	_SFR_IO_ADDR(TCNT1H),tmp2		
1445
 208:CamInterfaceAsm.S **** 		out 	_SFR_IO_ADDR(TCNT1H),tmp2		
757
 209:CamInterfaceAsm.S **** 		out 	_SFR_IO_ADDR(TCNT1L),tmp1				
1446
 209:CamInterfaceAsm.S **** 		out 	_SFR_IO_ADDR(TCNT1L),tmp1				
758
 210               			
1447
 210               			
759
 211:CamInterfaceAsm.S **** 		mov		YL,colorMapLow		
1448
 211:CamInterfaceAsm.S **** 		mov		YL,colorMapLow		
Line 776... Line 1465...
776
 228               		; 14 clock cycles (7 to wakeup from idle sleep, 3 to vector, and 4 to return)	
1465
 228               		; 14 clock cycles (7 to wakeup from idle sleep, 3 to vector, and 4 to return)	
777
 229               	
1466
 229               	
778
 230               		; Disable the HREF interrupt
1467
 230               		; Disable the HREF interrupt
779
 231:CamInterfaceAsm.S **** 		cbi		_SFR_IO_ADDR(PORTD),PD6
1468
 231:CamInterfaceAsm.S **** 		cbi		_SFR_IO_ADDR(PORTD),PD6
780
 232:CamInterfaceAsm.S **** 		in 		tmp1, _SFR_IO_ADDR(GICR)
1469
 232:CamInterfaceAsm.S **** 		in 		tmp1, _SFR_IO_ADDR(GICR)
781
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s 			page 14
-
 
782
 
-
 
783
 
-
 
784
 233:CamInterfaceAsm.S **** 		andi 	tmp1, HREF_INTERRUPT_DISABLE_MASK
1470
 233:CamInterfaceAsm.S **** 		andi 	tmp1, HREF_INTERRUPT_DISABLE_MASK
785
 234:CamInterfaceAsm.S **** 		out		_SFR_IO_ADDR(GICR), tmp1
1471
 234:CamInterfaceAsm.S **** 		out		_SFR_IO_ADDR(GICR), tmp1
786
 235               			
1472
 235               			
787
 236               		; A couple of NOPs are needed here to sync up the pixel data...the number (2)
1473
 236               		; A couple of NOPs are needed here to sync up the pixel data...the number (2)
788
 237               		; of NOPs was determined emperically by trial and error.
1474
 237               		; of NOPs was determined emperically by trial and error.
Line 810... Line 1496...
810
 259               			
1496
 259               			
811
 260               			; Toggle the debug line to indicate a color change
1497
 260               			; Toggle the debug line to indicate a color change
812
 261:CamInterfaceAsm.S **** 		sbi     _SFR_IO_ADDR(PORTD),PD6
1498
 261:CamInterfaceAsm.S **** 		sbi     _SFR_IO_ADDR(PORTD),PD6
813
 262:CamInterfaceAsm.S **** 		nop
1499
 262:CamInterfaceAsm.S **** 		nop
814
 263:CamInterfaceAsm.S **** 		cbi		_SFR_IO_ADDR(PORTD),PD6
1500
 263:CamInterfaceAsm.S **** 		cbi		_SFR_IO_ADDR(PORTD),PD6
-
 
1501
GAS LISTING /tmp/cckBHomO.s 			page 26
-
 
1502
 
-
 
1503
 
815
 264               			
1504
 264               			
816
 265:CamInterfaceAsm.S **** 		mov		tmp2,pixelRunStart				; get the count value of the
1505
 265:CamInterfaceAsm.S **** 		mov		tmp2,pixelRunStart				; get the count value of the
817
 266               													; current pixel run
1506
 266               													; current pixel run
818
 267:CamInterfaceAsm.S **** 		in		pixelCount,_SFR_IO_ADDR(TCNT1L)	; get the current TCNT1 value 
1507
 267:CamInterfaceAsm.S **** 		in		pixelCount,_SFR_IO_ADDR(TCNT1L)	; get the current TCNT1 value 
819
 268:CamInterfaceAsm.S **** 		mov   	pixelRunStart,pixelCount		; reload pixelRunStart for the
1508
 268:CamInterfaceAsm.S **** 		mov   	pixelRunStart,pixelCount		; reload pixelRunStart for the
Line 836... Line 1525...
836
 285:CamInterfaceAsm.S **** 		inc		pixelCount				; increment pixelCount since we actually need to account
1525
 285:CamInterfaceAsm.S **** 		inc		pixelCount				; increment pixelCount since we actually need to account
837
 286               											; for the overflow of TCNT1
1526
 286               											; for the overflow of TCNT1
838
 287               											
1527
 287               											
839
 288:CamInterfaceAsm.S **** 		st		X+,color				; record the color run in the current line buffer
1528
 288:CamInterfaceAsm.S **** 		st		X+,color				; record the color run in the current line buffer
840
 289:CamInterfaceAsm.S **** 		st		X,pixelCount		
1529
 289:CamInterfaceAsm.S **** 		st		X,pixelCount		
841
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s 			page 15
-
 
842
 
-
 
843
 
-
 
844
 290:CamInterfaceAsm.S **** 		rjmp	_cleanUp
1530
 290:CamInterfaceAsm.S **** 		rjmp	_cleanUp
845
 291               			
1531
 291               			
846
 292               	_cleanUpDumpLine:		
1532
 292               	_cleanUpDumpLine:		
847
 293               			; NOTE: If serial data is received, to interrupt the tracking of a line, we'll
1533
 293               			; NOTE: If serial data is received, to interrupt the tracking of a line, we'll
848
 294               			; get a EV_SERIAL_DATA_RECEIVED event, and the T bit set so we will end the
1534
 294               			; get a EV_SERIAL_DATA_RECEIVED event, and the T bit set so we will end the
Line 870... Line 1556...
870
 316               	_exit:
1556
 316               	_exit:
871
 317:CamInterfaceAsm.S **** 		ret
1557
 317:CamInterfaceAsm.S **** 		ret
872
 318               			
1558
 318               			
873
 319               	;*****************************************************************		
1559
 319               	;*****************************************************************		
874
 320               	;   	Function Name: CamIntAsm_waitForNewDumpFrame
1560
 320               	;   	Function Name: CamIntAsm_waitForNewDumpFrame
-
 
1561
GAS LISTING /tmp/cckBHomO.s 			page 27
-
 
1562
 
-
 
1563
 
875
 321               	;       Function Description: This function is responsible for
1564
 321               	;       Function Description: This function is responsible for
876
 322               	;       going to sleep until a new frame begins (indicated by
1565
 322               	;       going to sleep until a new frame begins (indicated by
877
 323               	;    	VSYNC transitioning from low to high.  This will wake
1566
 323               	;    	VSYNC transitioning from low to high.  This will wake
878
 324               	;       the "VSYNC sleep" up and allow it to continue with 
1567
 324               	;       the "VSYNC sleep" up and allow it to continue with 
879
 325               	;       acquiring a line of pixel data to dump out to the UI.
1568
 325               	;       acquiring a line of pixel data to dump out to the UI.
Line 896... Line 1585...
896
 342               	; synchronized with the flow of pixel data from the camera...
1585
 342               	; synchronized with the flow of pixel data from the camera...
897
 343               	;*****************************************************************
1586
 343               	;*****************************************************************
898
 344               	
1587
 344               	
899
 345               	CamIntAsm_acquireDumpLine:
1588
 345               	CamIntAsm_acquireDumpLine:
900
 346:CamInterfaceAsm.S **** 		brts	_cleanUp
1589
 346:CamInterfaceAsm.S **** 		brts	_cleanUp
901
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s 			page 16
-
 
902
 
-
 
903
 
-
 
904
 347               			;sbi		_SFR_IO_ADDR(PORTD),PD6 ; For testing...
1590
 347               			;sbi		_SFR_IO_ADDR(PORTD),PD6 ; For testing...
905
 348               			;cbi		_SFR_IO_ADDR(PORTD),PD6
1591
 348               			;cbi		_SFR_IO_ADDR(PORTD),PD6
906
 349               			
1592
 349               			
907
 350:CamInterfaceAsm.S **** 		mov   	XH,currLineBuffHigh    	; Load the pointer to the current line
1593
 350:CamInterfaceAsm.S **** 		mov   	XH,currLineBuffHigh    	; Load the pointer to the current line
908
 351:CamInterfaceAsm.S **** 		mov		XL,currLineBuffLow		; buffer into the X pointer regs
1594
 351:CamInterfaceAsm.S **** 		mov		XL,currLineBuffLow		; buffer into the X pointer regs
Line 930... Line 1616...
930
 373:CamInterfaceAsm.S **** 		ori 	tmp1, HREF_INTERRUPT_ENABLE_MASK
1616
 373:CamInterfaceAsm.S **** 		ori 	tmp1, HREF_INTERRUPT_ENABLE_MASK
931
 374:CamInterfaceAsm.S **** 		out		_SFR_IO_ADDR(GICR), tmp1
1617
 374:CamInterfaceAsm.S **** 		out		_SFR_IO_ADDR(GICR), tmp1
932
 375               			
1618
 375               			
933
 376               	;*******************************************************************************************
1619
 376               	;*******************************************************************************************
934
 377               	;   Dump Frame handler 
1620
 377               	;   Dump Frame handler 
-
 
1621
GAS LISTING /tmp/cckBHomO.s 			page 28
-
 
1622
 
-
 
1623
 
935
 378               	;*******************************************************************************************		
1624
 378               	;*******************************************************************************************		
936
 379               			
1625
 379               			
937
 380               	_dumpFrame:		
1626
 380               	_dumpFrame:		
938
 381:CamInterfaceAsm.S **** 		sbi		_SFR_IO_ADDR(PORTD),PD6
1627
 381:CamInterfaceAsm.S **** 		sbi		_SFR_IO_ADDR(PORTD),PD6
939
 382:CamInterfaceAsm.S **** 		sleep   ; ...And we wait...
1628
 382:CamInterfaceAsm.S **** 		sleep   ; ...And we wait...
Line 956... Line 1645...
956
 399               	; do that here (only 8 instruction cycles :-)  )
1645
 399               	; do that here (only 8 instruction cycles :-)  )
957
 400               	_sampleDumpPixel:
1646
 400               	_sampleDumpPixel:
958
 401:CamInterfaceAsm.S **** 		in		tmp1,G_PORT				; sample the G value					(1)
1647
 401:CamInterfaceAsm.S **** 		in		tmp1,G_PORT				; sample the G value					(1)
959
 402:CamInterfaceAsm.S **** 		in		tmp2,RB_PORT			; sample the R/B value					(1)
1648
 402:CamInterfaceAsm.S **** 		in		tmp2,RB_PORT			; sample the R/B value					(1)
960
 403:CamInterfaceAsm.S **** 		st		X+,tmp1					; store to the currLineBuff and inc ptrs(2)
1649
 403:CamInterfaceAsm.S **** 		st		X+,tmp1					; store to the currLineBuff and inc ptrs(2)
961
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s 			page 17
-
 
962
 
-
 
963
 
-
 
964
 404:CamInterfaceAsm.S **** 		st		Y+,tmp2					; store to the prevLineBuff and inc ptrs(2)
1650
 404:CamInterfaceAsm.S **** 		st		Y+,tmp2					; store to the prevLineBuff and inc ptrs(2)
965
 405:CamInterfaceAsm.S **** 		brtc	_sampleDumpPixel		; loop back unless flag is set			(2...if not set)
1651
 405:CamInterfaceAsm.S **** 		brtc	_sampleDumpPixel		; loop back unless flag is set			(2...if not set)
966
 406               											;									___________
1652
 406               											;									___________
967
 407               											;									8 cycles normally
1653
 407               											;									8 cycles normally
968
 408               																				
1654
 408               																				
Line 990... Line 1676...
990
 430               	;	for handling a falling edge on the Ext Interrupt 1.  This
1676
 430               	;	for handling a falling edge on the Ext Interrupt 1.  This
991
 431               	;	routine simply returns, since we just want to wake up
1677
 431               	;	routine simply returns, since we just want to wake up
992
 432               	;	whenever the HREF transitions (meaning the pixels 
1678
 432               	;	whenever the HREF transitions (meaning the pixels 
993
 433               	;	are starting after VSYNC transitioned, and we need to
1679
 433               	;	are starting after VSYNC transitioned, and we need to
994
 434               	; 	start acquiring the pixel blocks
1680
 434               	; 	start acquiring the pixel blocks
-
 
1681
GAS LISTING /tmp/cckBHomO.s 			page 29
-
 
1682
 
-
 
1683
 
995
 435               	;	Inputs:  none
1684
 435               	;	Inputs:  none
996
 436               	;	Outputs: none
1685
 436               	;	Outputs: none
997
 437               	;***********************************************************	
1686
 437               	;***********************************************************	
998
 438               	SIG_INTERRUPT1:
1687
 438               	SIG_INTERRUPT1:
999
 439               	; This will wake us up when HREF transitions high...we just want to return
1688
 439               	; This will wake us up when HREF transitions high...we just want to return
Line 1016... Line 1705...
1016
 456               	;***********************************************************
1705
 456               	;***********************************************************
1017
 457               	;SIG_OVERFLOW0:
1706
 457               	;SIG_OVERFLOW0:
1018
 458               	;		set				; set the T bit in SREG
1707
 458               	;		set				; set the T bit in SREG
1019
 459               	;		lds		tmp1,eventBitmask
1708
 459               	;		lds		tmp1,eventBitmask
1020
 460               	;		ori		tmp1,EV_ACQUIRE_FRAME_COMPLETE
1709
 460               	;		ori		tmp1,EV_ACQUIRE_FRAME_COMPLETE
1021
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s 			page 18
-
 
1022
 
-
 
1023
 
-
 
1024
 461               	;		sts		eventBitmask,tmp1
1710
 461               	;		sts		eventBitmask,tmp1
1025
 462               	;		reti
1711
 462               	;		reti
1026
 463               			
1712
 463               			
1027
 464               	;***********************************************************
1713
 464               	;***********************************************************
1028
 465               	;	Function Name: <interrupt handler for Timer1 overflow>
1714
 465               	;	Function Name: <interrupt handler for Timer1 overflow>
Line 1049... Line 1735...
1049
 486               	        .global __vector_default              
1735
 486               	        .global __vector_default              
1050
 487               	__vector_default:
1736
 487               	__vector_default:
1051
 488:CamInterfaceAsm.S ****         reti
1737
 488:CamInterfaceAsm.S ****         reti
1052
 489               	
1738
 489               	
1053
 490               	        .end
1739
 490               	        .end
1054
GAS LISTING C:\DOCUME~1\John\LOCALS~1\Temp/ccIlaaaa.s 			page 19
1740
GAS LISTING /tmp/cckBHomO.s 			page 30
1055
 
1741
 
1056
 
1742
 
1057
DEFINED SYMBOLS
1743
DEFINED SYMBOLS
1058
                            *ABS*:00000000 CamInterfaceAsm.S
-
 
1059
                            *ABS*:00000000 Events.h
-
 
1060
                            *ABS*:00000000 CamInterfaceAsm.S
-
 
1061
                            *ABS*:00000000 C:/WinAVR/avr/include/avr/io.h
-
 
1062
                            *ABS*:00000000 C:/WinAVR/avr/include/avr/iom8.h
-
 
1063
                            *ABS*:00000000 C:/WinAVR/avr/include/avr/io.h
-
 
1064
                            *ABS*:00000000 C:/WinAVR/avr/include/avr/sfr_defs.h
-
 
1065
                            *ABS*:00000000 C:/WinAVR/avr/include/avr/io.h
-
 
1066
                            *ABS*:00000000 CamInterfaceAsm.S
-
 
1067
                            *ABS*:00000000 <command line>
-
 
1068
                            *ABS*:00000000 <built-in>
-
 
1069
                            *ABS*:00000000 CamInterfaceAsm.S
1744
                            *ABS*:00000000 CamInterfaceAsm.S
1070
                            *ABS*:00000010 pixelCount
1745
   CamInterfaceAsm.S:119    *ABS*:00000010 pixelCount
1071
                            *ABS*:00000011 pixelRunStart
1746
   CamInterfaceAsm.S:120    *ABS*:00000011 pixelRunStart
1072
                            *ABS*:00000012 lastColor
1747
   CamInterfaceAsm.S:121    *ABS*:00000012 lastColor
1073
                            *ABS*:00000013 tmp1
1748
   CamInterfaceAsm.S:122    *ABS*:00000013 tmp1
1074
                            *ABS*:00000014 tmp2
1749
   CamInterfaceAsm.S:123    *ABS*:00000014 tmp2
1075
                            *ABS*:00000013 color
1750
   CamInterfaceAsm.S:124    *ABS*:00000013 color
1076
                            *ABS*:00000014 greenData
1751
   CamInterfaceAsm.S:125    *ABS*:00000014 greenData
1077
                            *ABS*:00000015 blueData
1752
   CamInterfaceAsm.S:126    *ABS*:00000015 blueData
1078
                            *ABS*:00000016 colorMapLow
1753
   CamInterfaceAsm.S:127    *ABS*:00000016 colorMapLow
1079
                            *ABS*:00000017 colorMapHigh
1754
   CamInterfaceAsm.S:128    *ABS*:00000017 colorMapHigh
1080
                            *ABS*:00000016 prevLineBuffLow
1755
   CamInterfaceAsm.S:129    *ABS*:00000016 prevLineBuffLow
1081
                            *ABS*:00000017 prevLineBuffHigh
1756
   CamInterfaceAsm.S:130    *ABS*:00000017 prevLineBuffHigh
1082
                            *ABS*:00000018 currLineBuffLow
1757
   CamInterfaceAsm.S:131    *ABS*:00000018 currLineBuffLow
1083
                            *ABS*:00000019 currLineBuffHigh
1758
   CamInterfaceAsm.S:132    *ABS*:00000019 currLineBuffHigh
1084
   CamInterfaceAsm.S:169    .text:00000000 CamIntAsm_waitForNewTrackingFrame
1759
   CamInterfaceAsm.S:169    .text:00000000 CamIntAsm_waitForNewTrackingFrame
1085
   CamInterfaceAsm.S:335    .text:0000008e CamIntAsm_waitForNewDumpFrame
1760
   CamInterfaceAsm.S:335    .text:0000008e CamIntAsm_waitForNewDumpFrame
1086
   CamInterfaceAsm.S:345    .text:00000094 CamIntAsm_acquireDumpLine
1761
   CamInterfaceAsm.S:345    .text:00000094 CamIntAsm_acquireDumpLine
1087
   CamInterfaceAsm.S:179    .text:00000006 CamIntAsm_acquireTrackingLine
1762
   CamInterfaceAsm.S:179    .text:00000006 CamIntAsm_acquireTrackingLine
1088
   CamInterfaceAsm.S:423    .text:000000d4 __vector_1
1763
   CamInterfaceAsm.S:423    .text:000000d4 __vector_1
1089
   CamInterfaceAsm.S:438    .text:000000d6 __vector_2
1764
   CamInterfaceAsm.S:438    .text:000000d6 __vector_2
1090
   CamInterfaceAsm.S:474    .text:000000d8 __vector_8
1765
   CamInterfaceAsm.S:474    .text:000000d8 __vector_8
1091
   CamInterfaceAsm.S:305    .text:00000080 _cleanUp
1766
   CamInterfaceAsm.S:305    .text:00000080 _cleanUp
1092
   CamInterfaceAsm.S:223    .text:00000034 _trackFrame
1767
   CamInterfaceAsm.S:223    .text:00000034 _trackFrame
1093
   CamInterfaceAsm.S:240    .text:00000044 _acquirePixelBlock
1768
   CamInterfaceAsm.S:240    .text:00000044 _acquirePixelBlock
1094
   CamInterfaceAsm.S:281    .text:00000074 _cleanUpTrackingLine
1769
   CamInterfaceAsm.S:281    .text:00000074 _cleanUpTrackingLine
1095
   CamInterfaceAsm.S:292    .text:00000080 _cleanUpDumpLine
1770
   CamInterfaceAsm.S:292    .text:00000080 _cleanUpDumpLine
1096
   CamInterfaceAsm.S:316    .text:0000008c _exit
1771
   CamInterfaceAsm.S:316    .text:0000008c _exit
1097
   CamInterfaceAsm.S:380    .text:000000ba _dumpFrame
1772
   CamInterfaceAsm.S:380    .text:000000ba _dumpFrame
1098
   CamInterfaceAsm.S:400    .text:000000c8 _sampleDumpPixel
1773
   CamInterfaceAsm.S:400    .text:000000c8 _sampleDumpPixel
1099
   CamInterfaceAsm.S:487    .text:000000e6 __vector_default
1774
   CamInterfaceAsm.S:487    .text:000000e6 __vector_default
1100
 
1775
 
1101
UNDEFINED SYMBOLS
1776
UNDEFINED SYMBOLS
1102
__vector_9
1777
__vector_9
1103
fastEventBitmask
1778
fastEventBitmask