Statistics
| Revision:

root / demos / john / projects / libdragonfly / i2c.lst @ 1693

History | View | Annotate | Download (21.7 KB)

1
   1               		.file	"i2c.c"
2
   2               		.arch atmega128
3
   3               	__SREG__ = 0x3f
4
   4               	__SP_H__ = 0x3e
5
   5               	__SP_L__ = 0x3d
6
   6               	__tmp_reg__ = 0
7
   7               	__zero_reg__ = 1
8
   8               		.global __do_copy_data
9
   9               		.global __do_clear_bss
10
  17               	.Ltext0:
11
  18               	.global	i2c_init
12
  20               	i2c_init:
13
  21               	.LFB2:
14
  22               	.LM1:
15
  23               	/* prologue: frame size=0 */
16
  24               	/* prologue end (size=0) */
17
  25               	.LVL0:
18
  26               	.LM2:
19
  27 0000 7093 0000 		sts (master_recv_function)+1,r23
20
  28 0004 6093 0000 		sts master_recv_function,r22
21
  29               	.LM3:
22
  30 0008 5093 0000 		sts (slave_recv_function)+1,r21
23
  31 000c 4093 0000 		sts slave_recv_function,r20
24
  32               	.LM4:
25
  33 0010 3093 0000 		sts (slave_send_function)+1,r19
26
  34 0014 2093 0000 		sts slave_send_function,r18
27
  35               	.LM5:
28
  36 0018 1092 0000 		sts i2c_write_buff+128,__zero_reg__
29
  37 001c 1092 0000 		sts i2c_write_buff+129,__zero_reg__
30
  38               	.LM6:
31
  39 0020 1092 0000 		sts i2c_addr_buff+128,__zero_reg__
32
  40 0024 1092 0000 		sts i2c_addr_buff+129,__zero_reg__
33
  41               	.LM7:
34
  42 0028 95E4      		ldi r25,lo8(69)
35
  43 002a 9093 7400 		sts 116,r25
36
  44               	.LM8:
37
  45 002e 9CE0      		ldi r25,lo8(12)
38
  46 0030 9093 7000 		sts 112,r25
39
  47               	.LM9:
40
  48 0034 880F      		lsl r24
41
  49               	.LVL1:
42
  50 0036 8160      		ori r24,lo8(1)
43
  51 0038 8093 7200 		sts 114,r24
44
  52               	.LM10:
45
  53 003c 80E0      		ldi r24,lo8(0)
46
  54 003e 90E0      		ldi r25,hi8(0)
47
  55               	/* epilogue: frame size=0 */
48
  56 0040 0895      		ret
49
  57               	/* epilogue end (size=1) */
50
  58               	/* function i2c_init size 33 (32) */
51
  59               	.LFE2:
52
  61               	.global	i2c_send
53
  63               	i2c_send:
54
  64               	.LFB3:
55
  65               	.LM11:
56
  66               	/* prologue: frame size=0 */
57
  67 0042 6F92      		push r6
58
  68 0044 7F92      		push r7
59
  69 0046 8F92      		push r8
60
  70 0048 9F92      		push r9
61
  71 004a AF92      		push r10
62
  72 004c BF92      		push r11
63
  73 004e DF92      		push r13
64
  74 0050 EF92      		push r14
65
  75 0052 FF92      		push r15
66
  76 0054 0F93      		push r16
67
  77 0056 1F93      		push r17
68
  78 0058 CF93      		push r28
69
  79 005a DF93      		push r29
70
  80               	/* prologue end (size=13) */
71
  81               	.LVL2:
72
  82 005c D82E      		mov r13,r24
73
  83 005e 3A01      		movw r6,r20
74
  84               	.LM12:
75
  85               	/* #APP */
76
  86 0060 F894      		cli
77
  87               	/* #NOAPP */
78
  88 0062 00E0      		ldi r16,lo8(0)
79
  89 0064 10E0      		ldi r17,hi8(0)
80
  90               	.LVL3:
81
  91 0066 4091 0000 		lds r20,i2c_write_buff+130
82
  92               	.LVL4:
83
  93 006a 8091 0000 		lds r24,i2c_write_buff+128
84
  94               	.LVL5:
85
  95 006e 882E      		mov r8,r24
86
  96 0070 9924      		clr r9
87
  97 0072 DD0C      		lsl r13
88
  98 0074 8091 0000 		lds r24,i2c_addr_buff+130
89
  99 0078 A82E      		mov r10,r24
90
 100 007a BB24      		clr r11
91
 101 007c 7B01      		movw r14,r22
92
 102 007e 00C0      		rjmp .L4
93
 103               	.LVL6:
94
 104               	.L5:
95
 105               	.LM13:
96
 106 0080 8091 0000 		lds r24,i2c_write_buff+129
97
 107 0084 E82F      		mov r30,r24
98
 108 0086 FF27      		clr r31
99
 109 0088 9F01      		movw r18,r30
100
 110 008a 2F5F      		subi r18,lo8(-(1))
101
 111 008c 3F4F      		sbci r19,hi8(-(1))
102
 112 008e C42F      		mov r28,r20
103
 113 0090 DD27      		clr r29
104
 114 0092 C901      		movw r24,r18
105
 115 0094 BE01      		movw r22,r28
106
 116 0096 0E94 0000 		call __divmodhi4
107
 117 009a 8815      		cp r24,r8
108
 118 009c 9905      		cpc r25,r9
109
 119 009e 01F0      		breq .L13
110
 120               	.LM14:
111
 121 00a0 D701      		movw r26,r14
112
 122 00a2 8D91      		ld r24,X+
113
 123 00a4 7D01      		movw r14,r26
114
 124 00a6 E050      		subi r30,lo8(-(i2c_write_buff))
115
 125 00a8 F040      		sbci r31,hi8(-(i2c_write_buff))
116
 126 00aa 8083      		st Z,r24
117
 127 00ac C901      		movw r24,r18
118
 128 00ae BE01      		movw r22,r28
119
 129 00b0 0E94 0000 		call __divmodhi4
120
 130 00b4 8093 0000 		sts i2c_write_buff+129,r24
121
 131               	.LM15:
122
 132 00b8 8091 0000 		lds r24,i2c_addr_buff+129
123
 133 00bc 9927      		clr r25
124
 134 00be FC01      		movw r30,r24
125
 135 00c0 E050      		subi r30,lo8(-(i2c_addr_buff))
126
 136 00c2 F040      		sbci r31,hi8(-(i2c_addr_buff))
127
 137 00c4 D082      		st Z,r13
128
 138 00c6 0196      		adiw r24,1
129
 139 00c8 B501      		movw r22,r10
130
 140 00ca 0E94 0000 		call __divmodhi4
131
 141 00ce 8093 0000 		sts i2c_addr_buff+129,r24
132
 142               	.LM16:
133
 143 00d2 0F5F      		subi r16,lo8(-(1))
134
 144 00d4 1F4F      		sbci r17,hi8(-(1))
135
 145               	.LVL7:
136
 146               	.L4:
137
 147 00d6 0615      		cp r16,r6
138
 148 00d8 1705      		cpc r17,r7
139
 149 00da 01F4      		brne .L5
140
 150               	.LM17:
141
 151               	/* #APP */
142
 152 00dc 7894      		sei
143
 153               	.LM18:
144
 154               	/* #NOAPP */
145
 155 00de 8091 0000 		lds r24,start_flag
146
 156 00e2 9091 0000 		lds r25,(start_flag)+1
147
 157 00e6 892B      		or r24,r25
148
 158 00e8 01F0      		breq .L10
149
 159 00ea 00C0      		rjmp .L14
150
 160               	.LVL8:
151
 161               	.L13:
152
 162               	.LM19:
153
 163               	/* #APP */
154
 164 00ec 7894      		sei
155
 165               	/* #NOAPP */
156
 166 00ee 8FEF      		ldi r24,lo8(-1)
157
 167 00f0 9FEF      		ldi r25,hi8(-1)
158
 168 00f2 00C0      		rjmp .L8
159
 169               	.LVL9:
160
 170               	.L10:
161
 171               	.LM20:
162
 172 00f4 81E0      		ldi r24,lo8(1)
163
 173 00f6 90E0      		ldi r25,hi8(1)
164
 174 00f8 9093 0000 		sts (start_flag)+1,r25
165
 175 00fc 8093 0000 		sts start_flag,r24
166
 176               	.LM21:
167
 177 0100 8091 7400 		lds r24,116
168
 178 0104 8062      		ori r24,lo8(32)
169
 179 0106 8093 7400 		sts 116,r24
170
 180               	.LM22:
171
 181 010a 8091 7400 		lds r24,116
172
 182 010e 8068      		ori r24,lo8(-128)
173
 183 0110 8093 7400 		sts 116,r24
174
 184               	.L14:
175
 185 0114 80E0      		ldi r24,lo8(0)
176
 186 0116 90E0      		ldi r25,hi8(0)
177
 187               	.L8:
178
 188               	/* epilogue: frame size=0 */
179
 189 0118 DF91      		pop r29
180
 190 011a CF91      		pop r28
181
 191 011c 1F91      		pop r17
182
 192 011e 0F91      		pop r16
183
 193 0120 FF90      		pop r15
184
 194 0122 EF90      		pop r14
185
 195 0124 DF90      		pop r13
186
 196 0126 BF90      		pop r11
187
 197 0128 AF90      		pop r10
188
 198 012a 9F90      		pop r9
189
 199 012c 8F90      		pop r8
190
 200 012e 7F90      		pop r7
191
 201 0130 6F90      		pop r6
192
 202 0132 0895      		ret
193
 203               	/* epilogue end (size=14) */
194
 204               	/* function i2c_send size 124 (97) */
195
 205               	.LFE3:
196
 207               	.global	i2c_request
197
 209               	i2c_request:
198
 210               	.LFB4:
199
 211               	.LM23:
200
 212               	/* prologue: frame size=0 */
201
 213 0134 0F93      		push r16
202
 214 0136 1F93      		push r17
203
 215 0138 CF93      		push r28
204
 216 013a DF93      		push r29
205
 217               	/* prologue end (size=4) */
206
 218               	.LVL10:
207
 219 013c 482F      		mov r20,r24
208
 220               	.LM24:
209
 221 013e 8091 0000 		lds r24,i2c_write_buff+129
210
 222               	.LVL11:
211
 223 0142 E82F      		mov r30,r24
212
 224 0144 FF27      		clr r31
213
 225 0146 8F01      		movw r16,r30
214
 226 0148 0F5F      		subi r16,lo8(-(1))
215
 227 014a 1F4F      		sbci r17,hi8(-(1))
216
 228 014c 8091 0000 		lds r24,i2c_write_buff+130
217
 229 0150 C82F      		mov r28,r24
218
 230 0152 DD27      		clr r29
219
 231 0154 C801      		movw r24,r16
220
 232 0156 BE01      		movw r22,r28
221
 233 0158 0E94 0000 		call __divmodhi4
222
 234 015c 2091 0000 		lds r18,i2c_write_buff+128
223
 235 0160 3327      		clr r19
224
 236 0162 8217      		cp r24,r18
225
 237 0164 9307      		cpc r25,r19
226
 238 0166 01F4      		brne .L16
227
 239               	.LM25:
228
 240 0168 8FEF      		ldi r24,lo8(-1)
229
 241 016a 9FEF      		ldi r25,hi8(-1)
230
 242 016c 00C0      		rjmp .L18
231
 243               	.L16:
232
 244               	.LM26:
233
 245 016e E050      		subi r30,lo8(-(i2c_write_buff))
234
 246 0170 F040      		sbci r31,hi8(-(i2c_write_buff))
235
 247 0172 1082      		st Z,__zero_reg__
236
 248 0174 C801      		movw r24,r16
237
 249 0176 BE01      		movw r22,r28
238
 250 0178 0E94 0000 		call __divmodhi4
239
 251 017c 8093 0000 		sts i2c_write_buff+129,r24
240
 252               	.LM27:
241
 253 0180 8091 0000 		lds r24,i2c_addr_buff+129
242
 254 0184 9927      		clr r25
243
 255 0186 FC01      		movw r30,r24
244
 256 0188 E050      		subi r30,lo8(-(i2c_addr_buff))
245
 257 018a F040      		sbci r31,hi8(-(i2c_addr_buff))
246
 258 018c 440F      		lsl r20
247
 259 018e 4160      		ori r20,lo8(1)
248
 260 0190 4083      		st Z,r20
249
 261 0192 6091 0000 		lds r22,i2c_addr_buff+130
250
 262 0196 7727      		clr r23
251
 263 0198 0196      		adiw r24,1
252
 264 019a 0E94 0000 		call __divmodhi4
253
 265 019e 8093 0000 		sts i2c_addr_buff+129,r24
254
 266               	.LM28:
255
 267 01a2 8091 0000 		lds r24,start_flag
256
 268 01a6 9091 0000 		lds r25,(start_flag)+1
257
 269 01aa 892B      		or r24,r25
258
 270 01ac 01F4      		brne .L22
259
 271               	.LM29:
260
 272 01ae 81E0      		ldi r24,lo8(1)
261
 273 01b0 90E0      		ldi r25,hi8(1)
262
 274 01b2 9093 0000 		sts (start_flag)+1,r25
263
 275 01b6 8093 0000 		sts start_flag,r24
264
 276               	.LM30:
265
 277 01ba 8091 7400 		lds r24,116
266
 278 01be 8062      		ori r24,lo8(32)
267
 279 01c0 8093 7400 		sts 116,r24
268
 280               	.LM31:
269
 281 01c4 8091 7400 		lds r24,116
270
 282 01c8 8068      		ori r24,lo8(-128)
271
 283 01ca 8093 7400 		sts 116,r24
272
 284               	.L22:
273
 285 01ce 80E0      		ldi r24,lo8(0)
274
 286 01d0 90E0      		ldi r25,hi8(0)
275
 287               	.L18:
276
 288               	/* epilogue: frame size=0 */
277
 289 01d2 DF91      		pop r29
278
 290 01d4 CF91      		pop r28
279
 291 01d6 1F91      		pop r17
280
 292 01d8 0F91      		pop r16
281
 293 01da 0895      		ret
282
 294               	/* epilogue end (size=5) */
283
 295               	/* function i2c_request size 84 (75) */
284
 296               	.LFE4:
285
 298               	.global	__vector_33
286
 300               	__vector_33:
287
 301               	.LFB5:
288
 302               	.LM32:
289
 303               	/* prologue: frame size=0 */
290
 304 01dc 1F92      		push __zero_reg__
291
 305 01de 0F92      		push __tmp_reg__
292
 306 01e0 0FB6      		in __tmp_reg__,__SREG__
293
 307 01e2 0F92      		push __tmp_reg__
294
 308 01e4 1124      		clr __zero_reg__
295
 309 01e6 2F93      		push r18
296
 310 01e8 3F93      		push r19
297
 311 01ea 4F93      		push r20
298
 312 01ec 5F93      		push r21
299
 313 01ee 6F93      		push r22
300
 314 01f0 7F93      		push r23
301
 315 01f2 8F93      		push r24
302
 316 01f4 9F93      		push r25
303
 317 01f6 AF93      		push r26
304
 318 01f8 BF93      		push r27
305
 319 01fa EF93      		push r30
306
 320 01fc FF93      		push r31
307
 321               	/* prologue end (size=17) */
308
 322               	.LM33:
309
 323 01fe 8091 7100 		lds r24,113
310
 324               	.LM34:
311
 325 0202 887F      		andi r24,lo8(-8)
312
 326 0204 8035      		cpi r24,lo8(80)
313
 327 0206 01F4      		brne .+2
314
 328 0208 00C0      		rjmp .L30
315
 329               	.LM35:
316
 330 020a 8135      		cpi r24,lo8(81)
317
 331 020c 00F4      		brsh .L35
318
 332 020e 8831      		cpi r24,lo8(24)
319
 333 0210 01F4      		brne .+2
320
 334 0212 00C0      		rjmp .L26
321
 335 0214 8931      		cpi r24,lo8(25)
322
 336 0216 00F4      		brsh .L36
323
 337 0218 8830      		cpi r24,lo8(8)
324
 338 021a 01F0      		breq .L25
325
 339 021c 8031      		cpi r24,lo8(16)
326
 340 021e 01F0      		breq .+2
327
 341 0220 00C0      		rjmp .L24
328
 342 0222 00C0      		rjmp .L25
329
 343               	.L36:
330
 344 0224 8033      		cpi r24,lo8(48)
331
 345 0226 01F4      		brne .+2
332
 346 0228 00C0      		rjmp .L28
333
 347 022a 8034      		cpi r24,lo8(64)
334
 348 022c 01F4      		brne .+2
335
 349 022e 00C0      		rjmp .L29
336
 350 0230 8832      		cpi r24,lo8(40)
337
 351 0232 01F0      		breq .+2
338
 352 0234 00C0      		rjmp .L24
339
 353 0236 00C0      		rjmp .L27
340
 354               	.L35:
341
 355 0238 803A      		cpi r24,lo8(-96)
342
 356 023a 01F4      		brne .+2
343
 357 023c 00C0      		rjmp .L32
344
 358 023e 813A      		cpi r24,lo8(-95)
345
 359 0240 00F4      		brsh .L37
346
 360 0242 8036      		cpi r24,lo8(96)
347
 361 0244 01F4      		brne .+2
348
 362 0246 00C0      		rjmp .L32
349
 363 0248 8038      		cpi r24,lo8(-128)
350
 364 024a 01F4      		brne .+2
351
 365 024c 00C0      		rjmp .L33
352
 366 024e 8835      		cpi r24,lo8(88)
353
 367 0250 01F0      		breq .+2
354
 368 0252 00C0      		rjmp .L24
355
 369 0254 00C0      		rjmp .L31
356
 370               	.L37:
357
 371 0256 883B      		cpi r24,lo8(-72)
358
 372 0258 01F4      		brne .+2
359
 373 025a 00C0      		rjmp .L34
360
 374 025c 803C      		cpi r24,lo8(-64)
361
 375 025e 01F4      		brne .+2
362
 376 0260 00C0      		rjmp .L32
363
 377 0262 883A      		cpi r24,lo8(-88)
364
 378 0264 01F0      		breq .+2
365
 379 0266 00C0      		rjmp .L24
366
 380 0268 00C0      		rjmp .L32
367
 381               	.L25:
368
 382               	.LM36:
369
 383 026a 8091 0000 		lds r24,i2c_addr_buff+128
370
 384 026e 9927      		clr r25
371
 385 0270 FC01      		movw r30,r24
372
 386 0272 E050      		subi r30,lo8(-(i2c_addr_buff))
373
 387 0274 F040      		sbci r31,hi8(-(i2c_addr_buff))
374
 388 0276 3081      		ld r19,Z
375
 389 0278 3093 0000 		sts addr_to_send.1407,r19
376
 390 027c 6091 0000 		lds r22,i2c_addr_buff+130
377
 391 0280 7727      		clr r23
378
 392 0282 0196      		adiw r24,1
379
 393 0284 0E94 0000 		call __divmodhi4
380
 394 0288 8093 0000 		sts i2c_addr_buff+128,r24
381
 395               	.LM37:
382
 396 028c 8091 0000 		lds r24,i2c_write_buff+128
383
 397 0290 9927      		clr r25
384
 398 0292 FC01      		movw r30,r24
385
 399 0294 E050      		subi r30,lo8(-(i2c_write_buff))
386
 400 0296 F040      		sbci r31,hi8(-(i2c_write_buff))
387
 401 0298 2081      		ld r18,Z
388
 402 029a 2093 0000 		sts data_to_send.1406,r18
389
 403 029e 6091 0000 		lds r22,i2c_write_buff+130
390
 404 02a2 7727      		clr r23
391
 405 02a4 0196      		adiw r24,1
392
 406 02a6 0E94 0000 		call __divmodhi4
393
 407 02aa 8093 0000 		sts i2c_write_buff+128,r24
394
 408               	.LM38:
395
 409 02ae 3093 7300 		sts 115,r19
396
 410               	.LM39:
397
 411 02b2 8091 7400 		lds r24,116
398
 412 02b6 8F7D      		andi r24,lo8(-33)
399
 413 02b8 00C0      		rjmp .L49
400
 414               	.L26:
401
 415               	.LM40:
402
 416 02ba 8091 0000 		lds r24,data_to_send.1406
403
 417 02be 8093 7300 		sts 115,r24
404
 418               	.LM41:
405
 419 02c2 8091 6500 		lds r24,101
406
 420 02c6 8B7F      		andi r24,lo8(-5)
407
 421 02c8 00C0      		rjmp .L50
408
 422               	.L27:
409
 423               	.LM42:
410
 424 02ca 4091 0000 		lds r20,i2c_write_buff+128
411
 425 02ce 8091 0000 		lds r24,i2c_write_buff+129
412
 426 02d2 4817      		cp r20,r24
413
 427 02d4 01F0      		breq .L51
414
 428               	.LM43:
415
 429 02d6 8091 0000 		lds r24,i2c_addr_buff+128
416
 430 02da 282F      		mov r18,r24
417
 431 02dc 3327      		clr r19
418
 432               	.LM44:
419
 433 02de F901      		movw r30,r18
420
 434 02e0 E050      		subi r30,lo8(-(i2c_addr_buff))
421
 435 02e2 F040      		sbci r31,hi8(-(i2c_addr_buff))
422
 436 02e4 9081      		ld r25,Z
423
 437 02e6 8091 0000 		lds r24,addr_to_send.1407
424
 438 02ea 9817      		cp r25,r24
425
 439 02ec 01F4      		brne .L40
426
 440               	.LM45:
427
 441 02ee 6091 0000 		lds r22,i2c_addr_buff+130
428
 442 02f2 7727      		clr r23
429
 443 02f4 C901      		movw r24,r18
430
 444 02f6 0196      		adiw r24,1
431
 445 02f8 0E94 0000 		call __divmodhi4
432
 446 02fc 8093 0000 		sts i2c_addr_buff+128,r24
433
 447               	.LM46:
434
 448 0300 842F      		mov r24,r20
435
 449 0302 9927      		clr r25
436
 450 0304 FC01      		movw r30,r24
437
 451 0306 E050      		subi r30,lo8(-(i2c_write_buff))
438
 452 0308 F040      		sbci r31,hi8(-(i2c_write_buff))
439
 453 030a 2081      		ld r18,Z
440
 454 030c 2093 7300 		sts 115,r18
441
 455 0310 6091 0000 		lds r22,i2c_write_buff+130
442
 456 0314 7727      		clr r23
443
 457 0316 0196      		adiw r24,1
444
 458 0318 0E94 0000 		call __divmodhi4
445
 459 031c 8093 0000 		sts i2c_write_buff+128,r24
446
 460 0320 00C0      		rjmp .L32
447
 461               	.L40:
448
 462               	.LM47:
449
 463 0322 8091 7400 		lds r24,116
450
 464 0326 8062      		ori r24,lo8(32)
451
 465               	.L49:
452
 466 0328 8093 7400 		sts 116,r24
453
 467 032c 00C0      		rjmp .L32
454
 468               	.L28:
455
 469               	.LM48:
456
 470 032e 8091 6500 		lds r24,101
457
 471 0332 8460      		ori r24,lo8(4)
458
 472 0334 8093 6500 		sts 101,r24
459
 473               	.L51:
460
 474               	.LM49:
461
 475 0338 8091 7400 		lds r24,116
462
 476 033c 8061      		ori r24,lo8(16)
463
 477 033e 8093 7400 		sts 116,r24
464
 478               	.LM50:
465
 479 0342 1092 0000 		sts (start_flag)+1,__zero_reg__
466
 480 0346 1092 0000 		sts start_flag,__zero_reg__
467
 481 034a 00C0      		rjmp .L32
468
 482               	.L29:
469
 483               	.LM51:
470
 484 034c 8091 6500 		lds r24,101
471
 485 0350 8460      		ori r24,lo8(4)
472
 486               	.L50:
473
 487 0352 8093 6500 		sts 101,r24
474
 488 0356 00C0      		rjmp .L32
475
 489               	.L30:
476
 490               	.LM52:
477
 491 0358 E091 0000 		lds r30,master_recv_function
478
 492 035c F091 0000 		lds r31,(master_recv_function)+1
479
 493 0360 3097      		sbiw r30,0
480
 494 0362 01F0      		breq .L32
481
 495               	.LM53:
482
 496 0364 8091 7300 		lds r24,115
483
 497 0368 0995      		icall
484
 498 036a 892B      		or r24,r25
485
 499 036c 01F4      		brne .L32
486
 500               	.LM54:
487
 501 036e 8091 7400 		lds r24,116
488
 502 0372 8F7B      		andi r24,lo8(-65)
489
 503 0374 00C0      		rjmp .L49
490
 504               	.L31:
491
 505               	.LM55:
492
 506 0376 8091 7400 		lds r24,116
493
 507 037a 8064      		ori r24,lo8(64)
494
 508 037c 8093 7400 		sts 116,r24
495
 509               	.LM56:
496
 510 0380 9091 0000 		lds r25,i2c_write_buff+128
497
 511 0384 8091 0000 		lds r24,i2c_write_buff+129
498
 512 0388 9817      		cp r25,r24
499
 513 038a 01F4      		brne .L40
500
 514 038c 00C0      		rjmp .L51
501
 515               	.L34:
502
 516               	.LM57:
503
 517 038e E091 0000 		lds r30,slave_send_function
504
 518 0392 F091 0000 		lds r31,(slave_send_function)+1
505
 519 0396 3097      		sbiw r30,0
506
 520 0398 01F0      		breq .L32
507
 521               	.LM58:
508
 522 039a 0995      		icall
509
 523 039c 8093 7300 		sts 115,r24
510
 524 03a0 00C0      		rjmp .L32
511
 525               	.L33:
512
 526               	.LM59:
513
 527 03a2 E091 0000 		lds r30,slave_recv_function
514
 528 03a6 F091 0000 		lds r31,(slave_recv_function)+1
515
 529 03aa 3097      		sbiw r30,0
516
 530 03ac 01F0      		breq .L32
517
 531               	.LM60:
518
 532 03ae 8091 7300 		lds r24,115
519
 533 03b2 0995      		icall
520
 534 03b4 00C0      		rjmp .L32
521
 535               	.L24:
522
 536               	.LM61:
523
 537 03b6 8091 7400 		lds r24,116
524
 538 03ba 8061      		ori r24,lo8(16)
525
 539 03bc 8093 7400 		sts 116,r24
526
 540               	.LM62:
527
 541 03c0 1092 0000 		sts (start_flag)+1,__zero_reg__
528
 542 03c4 1092 0000 		sts start_flag,__zero_reg__
529
 543               	.LM63:
530
 544 03c8 1092 0000 		sts i2c_write_buff+128,__zero_reg__
531
 545 03cc 1092 0000 		sts i2c_write_buff+129,__zero_reg__
532
 546               	.LM64:
533
 547 03d0 1092 0000 		sts i2c_addr_buff+128,__zero_reg__
534
 548 03d4 1092 0000 		sts i2c_addr_buff+129,__zero_reg__
535
 549               	.L32:
536
 550               	.LM65:
537
 551 03d8 8091 7400 		lds r24,116
538
 552 03dc 8068      		ori r24,lo8(-128)
539
 553 03de 8093 7400 		sts 116,r24
540
 554               	/* epilogue: frame size=0 */
541
 555 03e2 FF91      		pop r31
542
 556 03e4 EF91      		pop r30
543
 557 03e6 BF91      		pop r27
544
 558 03e8 AF91      		pop r26
545
 559 03ea 9F91      		pop r25
546
 560 03ec 8F91      		pop r24
547
 561 03ee 7F91      		pop r23
548
 562 03f0 6F91      		pop r22
549
 563 03f2 5F91      		pop r21
550
 564 03f4 4F91      		pop r20
551
 565 03f6 3F91      		pop r19
552
 566 03f8 2F91      		pop r18
553
 567 03fa 0F90      		pop __tmp_reg__
554
 568 03fc 0FBE      		out __SREG__,__tmp_reg__
555
 569 03fe 0F90      		pop __tmp_reg__
556
 570 0400 1F90      		pop __zero_reg__
557
 571 0402 1895      		reti
558
 572               	/* epilogue end (size=17) */
559
 573               	/* function __vector_33 size 276 (242) */
560
 574               	.LFE5:
561
 576               		.data
562
 579               	addr_to_send.1407:
563
 580 0000 FF        		.byte	-1
564
 581               		.lcomm data_to_send.1406,1
565
 582               		.lcomm start_flag,2
566
 583               		.lcomm master_recv_function,2
567
 584               		.lcomm slave_recv_function,2
568
 585               		.lcomm slave_send_function,2
569
 586               		.comm i2c_write_buff,131,1
570
 587               		.comm i2c_addr_buff,131,1
571
 636               	.Letext0:
572
DEFINED SYMBOLS
573
                            *ABS*:00000000 i2c.c
574
F:\DOCUME~1\Evan\LOCALS~1\Temp/cci1LvUT.s:3      *ABS*:0000003f __SREG__
575
F:\DOCUME~1\Evan\LOCALS~1\Temp/cci1LvUT.s:4      *ABS*:0000003e __SP_H__
576
F:\DOCUME~1\Evan\LOCALS~1\Temp/cci1LvUT.s:5      *ABS*:0000003d __SP_L__
577
F:\DOCUME~1\Evan\LOCALS~1\Temp/cci1LvUT.s:6      *ABS*:00000000 __tmp_reg__
578
F:\DOCUME~1\Evan\LOCALS~1\Temp/cci1LvUT.s:7      *ABS*:00000001 __zero_reg__
579
F:\DOCUME~1\Evan\LOCALS~1\Temp/cci1LvUT.s:20     .text:00000000 i2c_init
580
F:\DOCUME~1\Evan\LOCALS~1\Temp/cci1LvUT.s:582    .bss:00000003 master_recv_function
581
F:\DOCUME~1\Evan\LOCALS~1\Temp/cci1LvUT.s:583    .bss:00000005 slave_recv_function
582
F:\DOCUME~1\Evan\LOCALS~1\Temp/cci1LvUT.s:584    .bss:00000007 slave_send_function
583
                            *COM*:00000083 i2c_write_buff
584
                            *COM*:00000083 i2c_addr_buff
585
F:\DOCUME~1\Evan\LOCALS~1\Temp/cci1LvUT.s:63     .text:00000042 i2c_send
586
F:\DOCUME~1\Evan\LOCALS~1\Temp/cci1LvUT.s:581    .bss:00000001 start_flag
587
F:\DOCUME~1\Evan\LOCALS~1\Temp/cci1LvUT.s:209    .text:00000134 i2c_request
588
F:\DOCUME~1\Evan\LOCALS~1\Temp/cci1LvUT.s:300    .text:000001dc __vector_33
589
F:\DOCUME~1\Evan\LOCALS~1\Temp/cci1LvUT.s:579    .data:00000000 addr_to_send.1407
590
                             .bss:00000000 data_to_send.1406
591

    
592
UNDEFINED SYMBOLS
593
__do_copy_data
594
__do_clear_bss
595
__divmodhi4