Subversion Repositories svnkaklik

Rev

Details | Last modification | View Log

Rev Author Line No. Line
174 kaklik 1
GAS LISTING /tmp/ccaC5L8h.s 			page 1
2
 
3
 
4
   1               		.file	"CamConfig.c"
5
   2               		.arch atmega8
6
   3               	__SREG__ = 0x3f
7
   4               	__SP_H__ = 0x3e
8
   5               	__SP_L__ = 0x3d
9
   6               	__tmp_reg__ = 0
10
   7               	__zero_reg__ = 1
11
   8               		.global __do_copy_data
12
   9               		.global __do_clear_bss
13
  10               		.stabs	"/home/kaklik/projects/programy/Atmel_C/AVRcam/",100,0,2,.Ltext0
14
  11               		.stabs	"CamConfig.c",100,0,2,.Ltext0
15
  12               		.text
16
  13               	.Ltext0:
17
  14               		.stabs	"gcc2_compiled.",60,0,0,0
18
  15               		.stabs	"int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
19
  16               		.stabs	"char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
20
  17               		.stabs	"long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
21
  18               		.stabs	"unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
22
  19               		.stabs	"long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
23
  20               		.stabs	"long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
24
  21               		.stabs	"long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
25
  22               		.stabs	"short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
26
  23               		.stabs	"short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
27
  24               		.stabs	"signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
28
  25               		.stabs	"unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
29
  26               		.stabs	"float:t(0,12)=r(0,1);4;0;",128,0,0,0
30
  27               		.stabs	"double:t(0,13)=r(0,1);4;0;",128,0,0,0
31
  28               		.stabs	"long double:t(0,14)=r(0,1);4;0;",128,0,0,0
32
  29               		.stabs	"void:t(0,15)=(0,15)",128,0,0,0
33
  30               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/io.h",130,0,0,0
34
  31               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
35
  32               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/inttypes.h",130,0,0,0
36
  33               		.stabs	"/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdint.h",130,0,0,0
37
  34               		.stabs	"int8_t:t(4,1)=(0,10)",128,0,116,0
38
  35               		.stabs	"uint8_t:t(4,2)=(0,11)",128,0,117,0
39
  36               		.stabs	"int16_t:t(4,3)=(0,1)",128,0,118,0
40
  37               		.stabs	"uint16_t:t(4,4)=(0,4)",128,0,119,0
41
  38               		.stabs	"int32_t:t(4,5)=(0,3)",128,0,120,0
42
  39               		.stabs	"uint32_t:t(4,6)=(0,5)",128,0,121,0
43
  40               		.stabs	"int64_t:t(4,7)=(0,6)",128,0,122,0
44
  41               		.stabs	"uint64_t:t(4,8)=(0,7)",128,0,123,0
45
  42               		.stabs	"intptr_t:t(4,9)=(4,3)",128,0,135,0
46
  43               		.stabs	"uintptr_t:t(4,10)=(4,4)",128,0,140,0
47
  44               		.stabs	"int_least8_t:t(4,11)=(4,1)",128,0,152,0
48
  45               		.stabs	"uint_least8_t:t(4,12)=(4,2)",128,0,157,0
49
  46               		.stabs	"int_least16_t:t(4,13)=(4,3)",128,0,162,0
50
  47               		.stabs	"uint_least16_t:t(4,14)=(4,4)",128,0,167,0
51
  48               		.stabs	"int_least32_t:t(4,15)=(4,5)",128,0,172,0
52
  49               		.stabs	"uint_least32_t:t(4,16)=(4,6)",128,0,177,0
53
  50               		.stabs	"int_least64_t:t(4,17)=(4,7)",128,0,182,0
54
  51               		.stabs	"uint_least64_t:t(4,18)=(4,8)",128,0,187,0
55
  52               		.stabs	"int_fast8_t:t(4,19)=(4,1)",128,0,200,0
56
  53               		.stabs	"uint_fast8_t:t(4,20)=(4,2)",128,0,205,0
57
  54               		.stabs	"int_fast16_t:t(4,21)=(4,3)",128,0,210,0
58
  55               		.stabs	"uint_fast16_t:t(4,22)=(4,4)",128,0,215,0
59
  56               		.stabs	"int_fast32_t:t(4,23)=(4,5)",128,0,220,0
60
  57               		.stabs	"uint_fast32_t:t(4,24)=(4,6)",128,0,225,0
61
GAS LISTING /tmp/ccaC5L8h.s 			page 2
62
 
63
 
64
  58               		.stabs	"int_fast64_t:t(4,25)=(4,7)",128,0,230,0
65
  59               		.stabs	"uint_fast64_t:t(4,26)=(4,8)",128,0,235,0
66
  60               		.stabs	"intmax_t:t(4,27)=(4,7)",128,0,249,0
67
  61               		.stabs	"uintmax_t:t(4,28)=(4,8)",128,0,254,0
68
  62               		.stabn	162,0,0,0
69
  63               		.stabs	"int_farptr_t:t(3,1)=(4,5)",128,0,76,0
70
  64               		.stabs	"uint_farptr_t:t(3,2)=(4,6)",128,0,80,0
71
  65               		.stabn	162,0,0,0
72
  66               		.stabn	162,0,0,0
73
  67               		.stabn	162,0,0,0
74
  68               		.stabs	"CamConfig.h",130,0,0,0
75
  69               		.stabs	"I2CInterface.h",130,0,0,0
76
  70               		.stabs	"CommonDefs.h",130,0,0,0
77
  71               		.stabs	"bool_t:t(7,1)=(0,11)",128,0,56,0
78
  72               		.stabn	162,0,0,0
79
  73               		.stabs	"i2cCmd_t:t(6,1)=(6,2)=s2configReg:(0,11),0,8;data:(0,11),8,8;;",128,0,53,0
80
  74               		.stabn	162,0,0,0
81
  75               		.stabn	162,0,0,0
82
  76               		.stabs	"CamConfig_writeTxFifo:F(7,1)",36,0,155,CamConfig_writeTxFifo
83
  77               		.stabs	"cmd:P(6,1)",64,0,154,24
84
  78               	.global	CamConfig_writeTxFifo
85
  79               		.type	CamConfig_writeTxFifo, @function
86
  80               	CamConfig_writeTxFifo:
87
  81               		.stabd	46,0,0
88
   1:CamConfig.c   **** /*
89
   2:CamConfig.c   ****     Copyright (C) 2004    John Orlando
90
   3:CamConfig.c   ****     
91
   4:CamConfig.c   ****    AVRcam: a small real-time image processing engine.
92
   5:CamConfig.c   **** 
93
   6:CamConfig.c   ****     This program is free software; you can redistribute it and/or
94
   7:CamConfig.c   ****     modify it under the terms of the GNU General Public
95
   8:CamConfig.c   ****     License as published by the Free Software Foundation; either
96
   9:CamConfig.c   ****     version 2 of the License, or (at your option) any later version.
97
  10:CamConfig.c   **** 
98
  11:CamConfig.c   ****     This program is distributed in the hope that it will be useful,
99
  12:CamConfig.c   ****     but WITHOUT ANY WARRANTY; without even the implied warranty of
100
  13:CamConfig.c   ****     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
101
  14:CamConfig.c   ****     General Public License for more details.
102
  15:CamConfig.c   **** 
103
  16:CamConfig.c   ****     You should have received a copy of the GNU General Public
104
  17:CamConfig.c   ****     License along with this program; if not, write to the Free Software
105
  18:CamConfig.c   ****     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
106
  19:CamConfig.c   **** 
107
  20:CamConfig.c   ****    For more information on the AVRcam, please contact:
108
  21:CamConfig.c   **** 
109
  22:CamConfig.c   ****    john@jrobot.net
110
  23:CamConfig.c   **** 
111
  24:CamConfig.c   ****    or go to www.jrobot.net for more details regarding the system.
112
  25:CamConfig.c   **** */
113
  26:CamConfig.c   **** /**********************************************************
114
  27:CamConfig.c   **** 	Module Name: CamConfig.c
115
  28:CamConfig.c   **** 	Module Date: 04/10/2004
116
  29:CamConfig.c   ****     Module Auth: John Orlando 
117
  30:CamConfig.c   **** 	
118
  31:CamConfig.c   **** 	Description: This module is responsible for the 
119
  32:CamConfig.c   **** 	high-level configuration activities of the OV6620
120
  33:CamConfig.c   **** 	camera module.  This module interfaces with the
121
GAS LISTING /tmp/ccaC5L8h.s 			page 3
122
 
123
 
124
  34:CamConfig.c   **** 	I2CInterface module to perform this configuration.
125
  35:CamConfig.c   ****     
126
  36:CamConfig.c   ****     Revision History:
127
  37:CamConfig.c   ****     Date        Rel Ver.    Notes
128
  38:CamConfig.c   ****     4/10/2004      0.1     Module created
129
  39:CamConfig.c   ****     6/30/2004      1.0     Initial release for Circuit Cellar
130
  40:CamConfig.c   ****                            contest.
131
  41:CamConfig.c   ****     11/15/2004     1.2     Added code to un-tri-state the
132
  42:CamConfig.c   ****                            OV6620's pixel data busses at
133
  43:CamConfig.c   ****                            startup after four seconds.  
134
  44:CamConfig.c   ****                            This was added in to 
135
  45:CamConfig.c   ****                            allow the user to re-program the
136
  46:CamConfig.c   ****                            mega8 at startup if needed.
137
  47:CamConfig.c   **** ***********************************************************/
138
  48:CamConfig.c   **** 
139
  49:CamConfig.c   **** /*  Includes */
140
  50:CamConfig.c   **** #include <avr/io.h>
141
  51:CamConfig.c   **** #include "CamConfig.h"
142
  52:CamConfig.c   **** #include "I2CInterface.h"
143
  53:CamConfig.c   **** #include "CommonDefs.h"
144
  54:CamConfig.c   **** #include "Utility.h"
145
  55:CamConfig.c   **** 
146
  56:CamConfig.c   **** /**********************************************************/
147
  57:CamConfig.c   **** /*  Definitions */
148
  58:CamConfig.c   **** /* The length of an I2C command is made up of a register address
149
  59:CamConfig.c   **** plus the actual value of the register */
150
  60:CamConfig.c   **** #define SIZE_OF_I2C_CMD 2
151
  61:CamConfig.c   **** #define MAX_NUM_CONFIG_CMDS 8
152
  62:CamConfig.c   **** #define CAM_CONFIG_TX_FIFO_SIZE MAX_NUM_CONFIG_CMDS 
153
  63:CamConfig.c   **** #define CAM_CONFIG_TX_FIFO_MASK CAM_CONFIG_TX_FIFO_SIZE-1
154
  64:CamConfig.c   **** 
155
  65:CamConfig.c   **** /*  Local Variables */
156
  66:CamConfig.c   **** 
157
  67:CamConfig.c   **** /*  Local Structures and Typedefs */
158
  68:CamConfig.c   **** 
159
  69:CamConfig.c   **** /*  Local Function Prototypes */
160
  70:CamConfig.c   **** static i2cCmd_t CamConfig_readTxFifo(void);
161
  71:CamConfig.c   **** 
162
  72:CamConfig.c   **** /*  Extern Variables */
163
  73:CamConfig.c   **** i2cCmd_t 		CamConfig_txFifo[CAM_CONFIG_TX_FIFO_SIZE];
164
  74:CamConfig.c   **** unsigned char CamConfig_txFifoHead=0;
165
  75:CamConfig.c   **** unsigned char CamConfig_txFifoTail=0;
166
  76:CamConfig.c   **** 
167
  77:CamConfig.c   **** /***********************************************************
168
  78:CamConfig.c   **** 	Function Name: CamConfig_init
169
  79:CamConfig.c   **** 	Function Description: This function is responsible for
170
  80:CamConfig.c   **** 	performing the initial configuration of the camera.
171
  81:CamConfig.c   **** 	Inputs:  none
172
  82:CamConfig.c   **** 	Outputs: none
173
  83:CamConfig.c   **** ***********************************************************/	
174
  84:CamConfig.c   **** void CamConfig_init(void)
175
  85:CamConfig.c   **** {
176
  86:CamConfig.c   **** 	CamConfig_setCamReg(0x14,0x20);  /* reduce frame size */
177
  87:CamConfig.c   **** 	CamConfig_setCamReg(0x39,0x40);  /* gate PCLK with HREF */
178
  88:CamConfig.c   **** 	CamConfig_setCamReg(0x12,0x28);  /* set RGB mode, with no AWB */
179
  89:CamConfig.c   **** 	CamConfig_setCamReg(0x28,0x05);  /* set color sequencer */
180
  90:CamConfig.c   ****     CamConfig_setCamReg(0x13,0x01);  /* un-tri-state the Y/UV lines */
181
GAS LISTING /tmp/ccaC5L8h.s 			page 4
182
 
183
 
184
  91:CamConfig.c   **** 	
185
  92:CamConfig.c   **** 	/* send the first four cmds in the I2C fifo */
186
  93:CamConfig.c   **** 	CamConfig_sendFifoCmds();	
187
  94:CamConfig.c   **** }
188
  95:CamConfig.c   **** 
189
  96:CamConfig.c   **** 
190
  97:CamConfig.c   **** /***********************************************************
191
  98:CamConfig.c   **** 	Function Name: CamConfig_setCamReg
192
  99:CamConfig.c   **** 	Function Description: This function is responsible for
193
 100:CamConfig.c   **** 	creating an I2C cmd structure and placing it into the
194
 101:CamConfig.c   **** 	cmd fifo.
195
 102:CamConfig.c   **** 	Inputs:  reg - the register to modify
196
 103:CamConfig.c   **** 	         val - the new value of the register
197
 104:CamConfig.c   **** 	Outputs: none
198
 105:CamConfig.c   **** ***********************************************************/	
199
 106:CamConfig.c   **** void CamConfig_setCamReg(unsigned char reg, unsigned char val)
200
 107:CamConfig.c   **** {
201
 108:CamConfig.c   **** 	i2cCmd_t cmd;
202
 109:CamConfig.c   **** 	
203
 110:CamConfig.c   **** 	cmd.configReg = reg;
204
 111:CamConfig.c   **** 	cmd.data = val;
205
 112:CamConfig.c   **** #ifndef SIMULATION	
206
 113:CamConfig.c   **** 	CamConfig_writeTxFifo(cmd);
207
 114:CamConfig.c   **** #endif	
208
 115:CamConfig.c   **** }
209
 116:CamConfig.c   **** /***********************************************************
210
 117:CamConfig.c   **** 	Function Name: CamConfig_sendFifoCmds
211
 118:CamConfig.c   **** 	Function Description: This function is responsible for
212
 119:CamConfig.c   **** 	sending the entire contents of the config fifo.  This
213
 120:CamConfig.c   **** 	function won't return until the configuration process
214
 121:CamConfig.c   **** 	is complete (or an error is encountered).
215
 122:CamConfig.c   **** 	Inputs:  none
216
 123:CamConfig.c   **** 	Outputs: none
217
 124:CamConfig.c   **** 	Note: Since this function is written to use the TWI
218
 125:CamConfig.c   **** 	interrupt in the I2CInterface module, there will be 
219
 126:CamConfig.c   **** 	some busy-waiting here...no big deal, since we end up
220
 127:CamConfig.c   **** 	having to trash the frame that we are executing this
221
 128:CamConfig.c   **** 	slave write in anyway (since we can't meet the strict
222
 129:CamConfig.c   **** 	timing requirements and write i2c at the same time).
223
 130:CamConfig.c   **** ***********************************************************/	
224
 131:CamConfig.c   **** void CamConfig_sendFifoCmds(void)
225
 132:CamConfig.c   **** {
226
 133:CamConfig.c   **** 	i2cCmd_t cmd;
227
 134:CamConfig.c   **** 	
228
 135:CamConfig.c   **** 	while (CamConfig_txFifoHead != CamConfig_txFifoTail)
229
 136:CamConfig.c   **** 	{
230
 137:CamConfig.c   **** 		cmd = CamConfig_readTxFifo();
231
 138:CamConfig.c   **** 		I2CInt_writeData(CAM_ADDRESS,&cmd.configReg,SIZE_OF_I2C_CMD);
232
 139:CamConfig.c   **** 		Utility_delay(100);		
233
 140:CamConfig.c   **** 		/* wait for the I2C transaction to complete */
234
 141:CamConfig.c   **** 		while(I2CInt_isI2cBusy() == TRUE);
235
 142:CamConfig.c   **** 	} 
236
 143:CamConfig.c   **** }
237
 144:CamConfig.c   **** 
238
 145:CamConfig.c   **** /***********************************************************
239
 146:CamConfig.c   **** 	Function Name: CamConfig_writeTxFifo
240
 147:CamConfig.c   **** 	Function Description: This function is responsible for
241
GAS LISTING /tmp/ccaC5L8h.s 			page 5
242
 
243
 
244
 148:CamConfig.c   **** 	adding a new command to the tx fifo.  It adjusts all
245
 149:CamConfig.c   **** 	needed pointers.
246
 150:CamConfig.c   **** 	Inputs:  cmd - the i2cCmd_t to add to the fifo
247
 151:CamConfig.c   **** 	Outputs: bool_t - indicating if writing to the fifo
248
 152:CamConfig.c   **** 	         causes it to wrap
249
 153:CamConfig.c   **** ***********************************************************/	
250
 154:CamConfig.c   **** bool_t CamConfig_writeTxFifo(i2cCmd_t cmd)
251
 155:CamConfig.c   **** {
252
  82               		.stabn	68,0,155,.LM0-CamConfig_writeTxFifo
253
  83               	.LM0:
254
  84               	/* prologue: frame size=0 */
255
  85               	/* prologue end (size=0) */
256
 156:CamConfig.c   **** 	unsigned char tmpHead;
257
 157:CamConfig.c   **** 	bool_t retVal = TRUE;
258
 158:CamConfig.c   ****  	
259
 159:CamConfig.c   **** 	CamConfig_txFifo[CamConfig_txFifoHead] = cmd;
260
  86               		.stabn	68,0,159,.LM1-CamConfig_writeTxFifo
261
  87               	.LM1:
262
  88 0000 2091 0000 		lds r18,CamConfig_txFifoHead
263
  89 0004 E22F      		mov r30,r18
264
  90 0006 FF27      		clr r31
265
  91 0008 EE0F      		lsl r30
266
  92 000a FF1F      		rol r31
267
  93 000c E050      		subi r30,lo8(-(CamConfig_txFifo))
268
  94 000e F040      		sbci r31,hi8(-(CamConfig_txFifo))
269
  95 0010 9183      		std Z+1,r25
270
  96 0012 8083      		st Z,r24
271
 160:CamConfig.c   **** 		
272
 161:CamConfig.c   **** 	/* see if we need to wrap */
273
 162:CamConfig.c   **** 	tmpHead = (CamConfig_txFifoHead+1) & (CAM_CONFIG_TX_FIFO_MASK);
274
  97               		.stabn	68,0,162,.LM2-CamConfig_writeTxFifo
275
  98               	.LM2:
276
  99 0014 2F5F      		subi r18,lo8(-(1))
277
 100 0016 2770      		andi r18,lo8(7)
278
 163:CamConfig.c   **** 	CamConfig_txFifoHead = tmpHead;
279
 101               		.stabn	68,0,163,.LM3-CamConfig_writeTxFifo
280
 102               	.LM3:
281
 103 0018 2093 0000 		sts CamConfig_txFifoHead,r18
282
 104 001c 90E0      		ldi r25,lo8(0)
283
 105 001e 8091 0000 		lds r24,CamConfig_txFifoTail
284
 106 0022 2817      		cp r18,r24
285
 107 0024 09F4      		brne .L2
286
 108               		.stabn	68,0,163,.LM4-CamConfig_writeTxFifo
287
 109               	.LM4:
288
 110 0026 91E0      		ldi r25,lo8(1)
289
 111               	.L2:
290
 112 0028 81E0      		ldi r24,lo8(1)
291
 113 002a 8927      		eor r24,r25
292
 164:CamConfig.c   **** 	
293
 165:CamConfig.c   **** 	/* check to see if we have filled up the queue */
294
 166:CamConfig.c   **** 	if (CamConfig_txFifoHead == CamConfig_txFifoTail)
295
 167:CamConfig.c   **** 	{
296
 168:CamConfig.c   **** 		/* we wrapped the fifo...return false */
297
 169:CamConfig.c   **** 		retVal = FALSE;
298
 170:CamConfig.c   **** 	}
299
 171:CamConfig.c   **** 	return(retVal);
300
 172:CamConfig.c   **** }
301
GAS LISTING /tmp/ccaC5L8h.s 			page 6
302
 
303
 
304
 114               		.stabn	68,0,172,.LM5-CamConfig_writeTxFifo
305
 115               	.LM5:
306
 116 002c 9927      		clr r25
307
 117               	/* epilogue: frame size=0 */
308
 118 002e 0895      		ret
309
 119               	/* epilogue end (size=1) */
310
 120               	/* function CamConfig_writeTxFifo size 24 (23) */
311
 121               		.size	CamConfig_writeTxFifo, .-CamConfig_writeTxFifo
312
 122               		.stabs	"tmpHead:r(0,11)",64,0,156,18
313
 123               		.stabn	192,0,0,CamConfig_writeTxFifo-CamConfig_writeTxFifo
314
 124               		.stabn	224,0,0,.Lscope0-CamConfig_writeTxFifo
315
 125               	.Lscope0:
316
 126               		.stabs	"",36,0,0,.Lscope0-CamConfig_writeTxFifo
317
 127               		.stabd	78,0,0
318
 128               		.stabs	"CamConfig_setCamReg:F(0,15)",36,0,107,CamConfig_setCamReg
319
 129               		.stabs	"reg:P(0,11)",64,0,106,24
320
 130               		.stabs	"val:P(0,11)",64,0,106,22
321
 131               	.global	CamConfig_setCamReg
322
 132               		.type	CamConfig_setCamReg, @function
323
 133               	CamConfig_setCamReg:
324
 134               		.stabd	46,0,0
325
 135               		.stabn	68,0,107,.LM6-CamConfig_setCamReg
326
 136               	.LM6:
327
 137               	/* prologue: frame size=0 */
328
 138               	/* prologue end (size=0) */
329
 139               		.stabn	68,0,110,.LM7-CamConfig_setCamReg
330
 140               	.LM7:
331
 141 0030 282F      		mov r18,r24
332
 142               		.stabn	68,0,111,.LM8-CamConfig_setCamReg
333
 143               	.LM8:
334
 144 0032 362F      		mov r19,r22
335
 145               		.stabn	68,0,113,.LM9-CamConfig_setCamReg
336
 146               	.LM9:
337
 147 0034 C901      		movw r24,r18
338
 148 0036 E4DF      		rcall CamConfig_writeTxFifo
339
 149               	/* epilogue: frame size=0 */
340
 150 0038 0895      		ret
341
 151               	/* epilogue end (size=1) */
342
 152               	/* function CamConfig_setCamReg size 5 (4) */
343
 153               		.size	CamConfig_setCamReg, .-CamConfig_setCamReg
344
 154               		.stabs	"cmd:r(6,1)",64,0,108,18
345
 155               		.stabn	192,0,0,CamConfig_setCamReg-CamConfig_setCamReg
346
 156               		.stabn	224,0,0,.Lscope1-CamConfig_setCamReg
347
 157               	.Lscope1:
348
 158               		.stabs	"",36,0,0,.Lscope1-CamConfig_setCamReg
349
 159               		.stabd	78,0,0
350
 160               		.stabs	"CamConfig_sendFifoCmds:F(0,15)",36,0,132,CamConfig_sendFifoCmds
351
 161               	.global	CamConfig_sendFifoCmds
352
 162               		.type	CamConfig_sendFifoCmds, @function
353
 163               	CamConfig_sendFifoCmds:
354
 164               		.stabd	46,0,0
355
 165               		.stabn	68,0,132,.LM10-CamConfig_sendFifoCmds
356
 166               	.LM10:
357
 167               	/* prologue: frame size=2 */
358
 168 003a 0F93      		push r16
359
 169 003c 1F93      		push r17
360
 170 003e CF93      		push r28
361
GAS LISTING /tmp/ccaC5L8h.s 			page 7
362
 
363
 
364
 171 0040 DF93      		push r29
365
 172 0042 CDB7      		in r28,__SP_L__
366
 173 0044 DEB7      		in r29,__SP_H__
367
 174 0046 2297      		sbiw r28,2
368
 175 0048 0FB6      		in __tmp_reg__,__SREG__
369
 176 004a F894      		cli
370
 177 004c DEBF      		out __SP_H__,r29
371
 178 004e 0FBE      		out __SREG__,__tmp_reg__
372
 179 0050 CDBF      		out __SP_L__,r28
373
 180               	/* prologue end (size=12) */
374
 181 0052 8E01      		movw r16,r28
375
 182 0054 0F5F      		subi r16,lo8(-(1))
376
 183 0056 1F4F      		sbci r17,hi8(-(1))
377
 184 0058 19C0      		rjmp .L7
378
 185               	.L8:
379
 186               	.LBB4:
380
 187               	.LBB5:
381
 173:CamConfig.c   **** 
382
 174:CamConfig.c   **** /***********************************************************
383
 175:CamConfig.c   **** 	Function Name: CamConfig_readTxFifo
384
 176:CamConfig.c   **** 	Function Description: This function is responsible for
385
 177:CamConfig.c   **** 	reading a cmd out of the tx fifo.
386
 178:CamConfig.c   **** 	Inputs:  none
387
 179:CamConfig.c   **** 	Outputs: i2cCmd_t - the cmd read from the fifo
388
 180:CamConfig.c   **** ***********************************************************/	
389
 181:CamConfig.c   **** static i2cCmd_t CamConfig_readTxFifo(void)
390
 182:CamConfig.c   **** {
391
 183:CamConfig.c   **** 	i2cCmd_t cmd;
392
 184:CamConfig.c   **** 	unsigned char tmpTail;
393
 185:CamConfig.c   **** 	
394
 186:CamConfig.c   **** 	/* just return the current tail from the rx fifo */
395
 187:CamConfig.c   **** 	cmd = CamConfig_txFifo[CamConfig_txFifoTail];	
396
 188               		.stabn	68,0,187,.LM11-CamConfig_sendFifoCmds
397
 189               	.LM11:
398
 190 005a E32F      		mov r30,r19
399
 191 005c FF27      		clr r31
400
 192 005e EE0F      		lsl r30
401
 193 0060 FF1F      		rol r31
402
 194 0062 E050      		subi r30,lo8(-(CamConfig_txFifo))
403
 195 0064 F040      		sbci r31,hi8(-(CamConfig_txFifo))
404
 196 0066 9181      		ldd r25,Z+1
405
 197 0068 2081      		ld r18,Z
406
 188:CamConfig.c   **** 	tmpTail = (CamConfig_txFifoTail+1) & (CAM_CONFIG_TX_FIFO_MASK);
407
 189:CamConfig.c   **** 	CamConfig_txFifoTail = tmpTail;
408
 198               		.stabn	68,0,189,.LM12-CamConfig_sendFifoCmds
409
 199               	.LM12:
410
 200 006a 832F      		mov r24,r19
411
 201 006c 8F5F      		subi r24,lo8(-(1))
412
 202 006e 8770      		andi r24,lo8(7)
413
 203 0070 8093 0000 		sts CamConfig_txFifoTail,r24
414
 204               		.stabn	68,0,137,.LM13-CamConfig_sendFifoCmds
415
 205               	.LM13:
416
 206 0074 9A83      		std Y+2,r25
417
 207 0076 2983      		std Y+1,r18
418
 208               	.LBE5:
419
 209               	.LBE4:
420
 210               		.stabn	68,0,138,.LM14-CamConfig_sendFifoCmds
421
GAS LISTING /tmp/ccaC5L8h.s 			page 8
422
 
423
 
424
 211               	.LM14:
425
 212 0078 42E0      		ldi r20,lo8(2)
426
 213 007a B801      		movw r22,r16
427
 214 007c 80E6      		ldi r24,lo8(96)
428
 215 007e 00D0      		rcall I2CInt_writeData
429
 216               		.stabn	68,0,139,.LM15-CamConfig_sendFifoCmds
430
 217               	.LM15:
431
 218 0080 84E6      		ldi r24,lo8(100)
432
 219 0082 90E0      		ldi r25,hi8(100)
433
 220 0084 00D0      		rcall Utility_delay
434
 221               	.L9:
435
 222               		.stabn	68,0,141,.LM16-CamConfig_sendFifoCmds
436
 223               	.LM16:
437
 224 0086 00D0      		rcall I2CInt_isI2cBusy
438
 225 0088 8130      		cpi r24,lo8(1)
439
 226 008a E9F3      		breq .L9
440
 227               	.L7:
441
 228               		.stabn	68,0,135,.LM17-CamConfig_sendFifoCmds
442
 229               	.LM17:
443
 230 008c 3091 0000 		lds r19,CamConfig_txFifoTail
444
 231 0090 8091 0000 		lds r24,CamConfig_txFifoHead
445
 232 0094 8317      		cp r24,r19
446
 233 0096 09F7      		brne .L8
447
 234               	/* epilogue: frame size=2 */
448
 235 0098 2296      		adiw r28,2
449
 236 009a 0FB6      		in __tmp_reg__,__SREG__
450
 237 009c F894      		cli
451
 238 009e DEBF      		out __SP_H__,r29
452
 239 00a0 0FBE      		out __SREG__,__tmp_reg__
453
 240 00a2 CDBF      		out __SP_L__,r28
454
 241 00a4 DF91      		pop r29
455
 242 00a6 CF91      		pop r28
456
 243 00a8 1F91      		pop r17
457
 244 00aa 0F91      		pop r16
458
 245 00ac 0895      		ret
459
 246               	/* epilogue end (size=11) */
460
 247               	/* function CamConfig_sendFifoCmds size 58 (35) */
461
 248               		.size	CamConfig_sendFifoCmds, .-CamConfig_sendFifoCmds
462
 249               		.stabs	"cmd:(6,1)",128,0,133,1
463
 250               		.stabn	192,0,0,CamConfig_sendFifoCmds-CamConfig_sendFifoCmds
464
 251               		.stabn	224,0,0,.Lscope2-CamConfig_sendFifoCmds
465
 252               	.Lscope2:
466
 253               		.stabs	"",36,0,0,.Lscope2-CamConfig_sendFifoCmds
467
 254               		.stabd	78,0,0
468
 255               		.stabs	"CamConfig_init:F(0,15)",36,0,85,CamConfig_init
469
 256               	.global	CamConfig_init
470
 257               		.type	CamConfig_init, @function
471
 258               	CamConfig_init:
472
 259               		.stabd	46,0,0
473
 260               		.stabn	68,0,85,.LM18-CamConfig_init
474
 261               	.LM18:
475
 262               	/* prologue: frame size=0 */
476
 263               	/* prologue end (size=0) */
477
 264               		.stabn	68,0,86,.LM19-CamConfig_init
478
 265               	.LM19:
479
 266 00ae 60E2      		ldi r22,lo8(32)
480
 267 00b0 84E1      		ldi r24,lo8(20)
481
GAS LISTING /tmp/ccaC5L8h.s 			page 9
482
 
483
 
484
 268 00b2 BEDF      		rcall CamConfig_setCamReg
485
 269               		.stabn	68,0,87,.LM20-CamConfig_init
486
 270               	.LM20:
487
 271 00b4 60E4      		ldi r22,lo8(64)
488
 272 00b6 89E3      		ldi r24,lo8(57)
489
 273 00b8 BBDF      		rcall CamConfig_setCamReg
490
 274               		.stabn	68,0,88,.LM21-CamConfig_init
491
 275               	.LM21:
492
 276 00ba 68E2      		ldi r22,lo8(40)
493
 277 00bc 82E1      		ldi r24,lo8(18)
494
 278 00be B8DF      		rcall CamConfig_setCamReg
495
 279               		.stabn	68,0,89,.LM22-CamConfig_init
496
 280               	.LM22:
497
 281 00c0 65E0      		ldi r22,lo8(5)
498
 282 00c2 88E2      		ldi r24,lo8(40)
499
 283 00c4 B5DF      		rcall CamConfig_setCamReg
500
 284               		.stabn	68,0,90,.LM23-CamConfig_init
501
 285               	.LM23:
502
 286 00c6 61E0      		ldi r22,lo8(1)
503
 287 00c8 83E1      		ldi r24,lo8(19)
504
 288 00ca B2DF      		rcall CamConfig_setCamReg
505
 289               		.stabn	68,0,93,.LM24-CamConfig_init
506
 290               	.LM24:
507
 291 00cc B6DF      		rcall CamConfig_sendFifoCmds
508
 292               	/* epilogue: frame size=0 */
509
 293 00ce 0895      		ret
510
 294               	/* epilogue end (size=1) */
511
 295               	/* function CamConfig_init size 17 (16) */
512
 296               		.size	CamConfig_init, .-CamConfig_init
513
 297               	.Lscope3:
514
 298               		.stabs	"",36,0,0,.Lscope3-CamConfig_init
515
 299               		.stabd	78,0,0
516
 300               	.global	CamConfig_txFifoHead
517
 301               	.global	CamConfig_txFifoHead
518
 302               		.section .bss
519
 303               		.type	CamConfig_txFifoHead, @object
520
 304               		.size	CamConfig_txFifoHead, 1
521
 305               	CamConfig_txFifoHead:
522
 306 0000 00        		.skip 1,0
523
 307               	.global	CamConfig_txFifoTail
524
 308               	.global	CamConfig_txFifoTail
525
 309               		.type	CamConfig_txFifoTail, @object
526
 310               		.size	CamConfig_txFifoTail, 1
527
 311               	CamConfig_txFifoTail:
528
 312 0001 00        		.skip 1,0
529
 313               		.comm CamConfig_txFifo,16,1
530
 314               		.stabs	"CamConfig_txFifo:G(0,16)=ar(0,17)=r(0,17);0;0177777;;0;7;(6,1)",32,0,73,0
531
 315               		.stabs	"CamConfig_txFifoHead:G(0,11)",32,0,74,0
532
 316               		.stabs	"CamConfig_txFifoTail:G(0,11)",32,0,75,0
533
 317               		.text
534
 318               		.stabs	"",100,0,0,.Letext0
535
 319               	.Letext0:
536
 320               	/* File "CamConfig.c": code  104 = 0x0068 (  78), prologues  12, epilogues  14 */
537
GAS LISTING /tmp/ccaC5L8h.s 			page 10
538
 
539
 
540
DEFINED SYMBOLS
541
                            *ABS*:00000000 CamConfig.c
542
     /tmp/ccaC5L8h.s:3      *ABS*:0000003f __SREG__
543
     /tmp/ccaC5L8h.s:4      *ABS*:0000003e __SP_H__
544
     /tmp/ccaC5L8h.s:5      *ABS*:0000003d __SP_L__
545
     /tmp/ccaC5L8h.s:6      *ABS*:00000000 __tmp_reg__
546
     /tmp/ccaC5L8h.s:7      *ABS*:00000001 __zero_reg__
547
     /tmp/ccaC5L8h.s:80     .text:00000000 CamConfig_writeTxFifo
548
     /tmp/ccaC5L8h.s:305    .bss:00000000 CamConfig_txFifoHead
549
                            *COM*:00000010 CamConfig_txFifo
550
     /tmp/ccaC5L8h.s:311    .bss:00000001 CamConfig_txFifoTail
551
     /tmp/ccaC5L8h.s:133    .text:00000030 CamConfig_setCamReg
552
     /tmp/ccaC5L8h.s:163    .text:0000003a CamConfig_sendFifoCmds
553
     /tmp/ccaC5L8h.s:258    .text:000000ae CamConfig_init
554
 
555
UNDEFINED SYMBOLS
556
__do_copy_data
557
__do_clear_bss
558
I2CInt_writeData
559
Utility_delay
560
I2CInt_isI2cBusy