Subversion Repositories svnkaklik

Rev

Rev 410 | Details | Compare with Previous | Last modification | View Log

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