root / demos / john / projects / libdragonfly / i2c.lst @ 1693
History | View | Annotate | Download (21.7 KB)
1 | 1693 | emullini | 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 |