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 |