Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 1378 → Rev 1379

/branches/twimaster.lst
0,0 → 1,507
1 .file "twimaster.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __CCP__ = 0x34
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .text
9 .global i2c_init
11 i2c_init:
12 /* prologue: function */
13 /* frame size = 0 */
14 0000 1092 B900 sts 185,__zero_reg__
15 0004 8AE2 ldi r24,lo8(42)
16 0006 8093 B800 sts 184,r24
17 /* epilogue start */
18 000a 0895 ret
20 .global i2c_start
22 i2c_start:
23 /* prologue: function */
24 /* frame size = 0 */
25 000c 85EA ldi r24,lo8(-91)
26 000e 8093 BC00 sts 188,r24
27 /* epilogue start */
28 0012 0895 ret
30 .global i2c_stop
32 i2c_stop:
33 /* prologue: function */
34 /* frame size = 0 */
35 0014 84E9 ldi r24,lo8(-108)
36 0016 8093 BC00 sts 188,r24
37 /* epilogue start */
38 001a 0895 ret
40 .global i2c_reset
42 i2c_reset:
43 /* prologue: function */
44 /* frame size = 0 */
45 001c 4CEB ldi r20,lo8(188)
46 001e 50E0 ldi r21,hi8(188)
47 0020 84E9 ldi r24,lo8(-108)
48 0022 DA01 movw r26,r20
49 0024 8C93 st X,r24
50 0026 1092 0000 sts twi_state,__zero_reg__
51 002a 2BEB ldi r18,lo8(187)
52 002c 30E0 ldi r19,hi8(187)
53 002e F901 movw r30,r18
54 0030 8081 ld r24,Z
55 0032 1092 0000 sts motor,__zero_reg__
56 0036 80E8 ldi r24,lo8(-128)
57 0038 8C93 st X,r24
58 003a 1092 BD00 sts 189,__zero_reg__
59 003e 1092 BA00 sts 186,__zero_reg__
60 0042 1082 st Z,__zero_reg__
61 0044 E9EB ldi r30,lo8(185)
62 0046 F0E0 ldi r31,hi8(185)
63 0048 1082 st Z,__zero_reg__
64 004a A8EB ldi r26,lo8(184)
65 004c B0E0 ldi r27,hi8(184)
66 004e 1C92 st X,__zero_reg__
67 0050 1082 st Z,__zero_reg__
68 0052 8AE2 ldi r24,lo8(42)
69 0054 8C93 st X,r24
70 0056 85EA ldi r24,lo8(-91)
71 0058 DA01 movw r26,r20
72 005a 8C93 st X,r24
73 005c 1082 st Z,__zero_reg__
74 005e F901 movw r30,r18
75 0060 1082 st Z,__zero_reg__
76 0062 85E8 ldi r24,lo8(-123)
77 0064 8C93 st X,r24
78 /* epilogue start */
79 0066 0895 ret
81 .global i2c_write_byte
83 i2c_write_byte:
84 /* prologue: function */
85 /* frame size = 0 */
86 0068 1092 B900 sts 185,__zero_reg__
87 006c 8093 BB00 sts 187,r24
88 0070 85E8 ldi r24,lo8(-123)
89 0072 8093 BC00 sts 188,r24
90 /* epilogue start */
91 0076 0895 ret
93 .global I2C_WriteByte
95 I2C_WriteByte:
96 /* prologue: function */
97 /* frame size = 0 */
98 0078 8093 BB00 sts 187,r24
99 007c 85E8 ldi r24,lo8(-123)
100 007e 8093 BC00 sts 188,r24
101 /* epilogue start */
102 0082 0895 ret
104 .global I2C_ReceiveByte
106 I2C_ReceiveByte:
107 /* prologue: function */
108 /* frame size = 0 */
109 0084 85EC ldi r24,lo8(-59)
110 0086 8093 BC00 sts 188,r24
111 /* epilogue start */
112 008a 0895 ret
114 .global I2C_ReceiveLastByte
116 I2C_ReceiveLastByte:
117 /* prologue: function */
118 /* frame size = 0 */
119 008c 85E8 ldi r24,lo8(-123)
120 008e 8093 BC00 sts 188,r24
121 /* epilogue start */
122 0092 0895 ret
124 .global __vector_26
126 __vector_26:
127 0094 1F92 push __zero_reg__
128 0096 0F92 push r0
129 0098 0FB6 in r0,__SREG__
130 009a 0F92 push r0
131 009c 1124 clr __zero_reg__
132 009e 2F93 push r18
133 00a0 3F93 push r19
134 00a2 8F93 push r24
135 00a4 9F93 push r25
136 00a6 EF93 push r30
137 00a8 FF93 push r31
138 /* prologue: Signal */
139 /* frame size = 0 */
140 00aa 8091 0000 lds r24,twi_state
141 00ae 8F5F subi r24,lo8(-(1))
142 00b0 8093 0000 sts twi_state,r24
143 00b4 8150 subi r24,lo8(-(-1))
144 00b6 E82F mov r30,r24
145 00b8 F0E0 ldi r31,lo8(0)
146 00ba E731 cpi r30,23
147 00bc F105 cpc r31,__zero_reg__
148 00be 00F0 brlo .L59
149 .L18:
150 00c0 1092 0000 sts twi_state,__zero_reg__
151 .L45:
152 00c4 8091 BC00 lds r24,188
153 00c8 8068 ori r24,lo8(-128)
154 00ca 8093 BC00 sts 188,r24
155 /* epilogue start */
156 00ce FF91 pop r31
157 00d0 EF91 pop r30
158 00d2 9F91 pop r25
159 00d4 8F91 pop r24
160 00d6 3F91 pop r19
161 00d8 2F91 pop r18
162 00da 0F90 pop r0
163 00dc 0FBE out __SREG__,r0
164 00de 0F90 pop r0
165 00e0 1F90 pop __zero_reg__
166 00e2 1895 reti
167 .L59:
168 00e4 E050 subi r30,lo8(-(gs(.L40)))
169 00e6 F040 sbci r31,hi8(-(gs(.L40)))
170 00e8 EE0F lsl r30
171 00ea FF1F rol r31
172 00ec 0590 lpm __tmp_reg__,Z+
173 00ee F491 lpm r31,Z
174 00f0 E02D mov r30,__tmp_reg__
175 00f2 0994 ijmp
176 .data
177 .section .progmem.gcc_sw_table, "a", @progbits
178 .p2align 1
179 .L40:
180 .data
181 .section .progmem.gcc_sw_table, "a", @progbits
182 .p2align 1
183 0000 0000 .word gs(.L19)
184 0002 0000 .word gs(.L20)
185 0004 0000 .word gs(.L21)
186 0006 0000 .word gs(.L22)
187 0008 0000 .word gs(.L23)
188 000a 0000 .word gs(.L24)
189 000c 0000 .word gs(.L18)
190 000e 0000 .word gs(.L18)
191 0010 0000 .word gs(.L35)
192 0012 0000 .word gs(.L26)
193 0014 0000 .word gs(.L27)
194 0016 0000 .word gs(.L38)
195 0018 0000 .word gs(.L34)
196 001a 0000 .word gs(.L35)
197 001c 0000 .word gs(.L31)
198 001e 0000 .word gs(.L32)
199 0020 0000 .word gs(.L38)
200 0022 0000 .word gs(.L34)
201 0024 0000 .word gs(.L35)
202 0026 0000 .word gs(.L36)
203 0028 0000 .word gs(.L37)
204 002a 0000 .word gs(.L38)
205 002c 0000 .word gs(.L39)
206 .text
207 .L35:
208 00f4 1092 B900 sts 185,__zero_reg__
209 00f8 88E9 ldi r24,lo8(-104)
210 00fa 8093 BB00 sts 187,r24
211 00fe 85E8 ldi r24,lo8(-123)
212 0100 8093 BC00 sts 188,r24
213 0104 00C0 rjmp .L45
214 .L38:
215 0106 1092 B900 sts 185,__zero_reg__
216 010a 80E8 ldi r24,lo8(-128)
217 010c 8093 BB00 sts 187,r24
218 0110 85E8 ldi r24,lo8(-123)
219 0112 8093 BC00 sts 188,r24
220 0116 00C0 rjmp .L45
221 .L34:
222 0118 84E9 ldi r24,lo8(-108)
223 011a 8093 BC00 sts 188,r24
224 011e 8AE0 ldi r24,lo8(10)
225 0120 90E0 ldi r25,hi8(10)
226 0122 9093 0000 sts (I2CTimeout)+1,r25
227 0126 8093 0000 sts I2CTimeout,r24
228 012a 85EA ldi r24,lo8(-91)
229 012c 8093 BC00 sts 188,r24
230 0130 00C0 rjmp .L45
231 .L19:
232 0132 9091 0000 lds r25,motor
233 0136 292F mov r18,r25
234 0138 30E0 ldi r19,lo8(0)
235 013a F901 movw r30,r18
236 013c EE0F lsl r30
237 013e FF1F rol r31
238 0140 EE0F lsl r30
239 0142 FF1F rol r31
240 0144 E050 subi r30,lo8(-(Mixer))
241 0146 F040 sbci r31,hi8(-(Mixer))
242 0148 8585 ldd r24,Z+13
243 014a 1816 cp __zero_reg__,r24
244 014c 04F0 brlt .L41
245 014e 9C30 cpi r25,lo8(12)
246 0150 00F0 brlo .L54
247 0152 00C0 rjmp .L41
248 .L42:
249 0154 9C30 cpi r25,lo8(12)
250 0156 00F4 brsh .L57
251 .L54:
252 0158 9F5F subi r25,lo8(-(1))
253 015a 292F mov r18,r25
254 015c 30E0 ldi r19,lo8(0)
255 015e F901 movw r30,r18
256 0160 EE0F lsl r30
257 0162 FF1F rol r31
258 0164 EE0F lsl r30
259 0166 FF1F rol r31
260 0168 E050 subi r30,lo8(-(Mixer))
261 016a F040 sbci r31,hi8(-(Mixer))
262 016c 8585 ldd r24,Z+13
263 016e 1816 cp __zero_reg__,r24
264 0170 04F4 brge .L42
265 .L57:
266 0172 9093 0000 sts motor,r25
267 .L41:
268 0176 9C30 cpi r25,lo8(12)
269 0178 01F4 brne .+2
270 017a 00C0 rjmp .L60
271 017c 275D subi r18,lo8(-(41))
272 017e 3F4F sbci r19,hi8(-(41))
273 0180 220F lsl r18
274 0182 331F rol r19
275 0184 1092 B900 sts 185,__zero_reg__
276 0188 2093 BB00 sts 187,r18
277 018c 85E8 ldi r24,lo8(-123)
278 018e 8093 BC00 sts 188,r24
279 0192 00C0 rjmp .L45
280 .L32:
281 0194 8091 0000 lds r24,AnalogOffsetRoll
282 0198 1092 B900 sts 185,__zero_reg__
283 019c 8093 BB00 sts 187,r24
284 01a0 85E8 ldi r24,lo8(-123)
285 01a2 8093 BC00 sts 188,r24
286 01a6 00C0 rjmp .L45
287 .L31:
288 01a8 1092 B900 sts 185,__zero_reg__
289 01ac 82E1 ldi r24,lo8(18)
290 01ae 8093 BB00 sts 187,r24
291 01b2 85E8 ldi r24,lo8(-123)
292 01b4 8093 BC00 sts 188,r24
293 01b8 00C0 rjmp .L45
294 .L37:
295 01ba 8091 0000 lds r24,AnalogOffsetGier
296 01be 1092 B900 sts 185,__zero_reg__
297 01c2 8093 BB00 sts 187,r24
298 01c6 85E8 ldi r24,lo8(-123)
299 01c8 8093 BC00 sts 188,r24
300 01cc 00C0 rjmp .L45
301 .L27:
302 01ce 8091 0000 lds r24,AnalogOffsetNick
303 01d2 1092 B900 sts 185,__zero_reg__
304 01d6 8093 BB00 sts 187,r24
305 01da 85E8 ldi r24,lo8(-123)
306 01dc 8093 BC00 sts 188,r24
307 01e0 00C0 rjmp .L45
308 .L39:
309 01e2 84E9 ldi r24,lo8(-108)
310 01e4 8093 BC00 sts 188,r24
311 01e8 8AE0 ldi r24,lo8(10)
312 01ea 90E0 ldi r25,hi8(10)
313 01ec 9093 0000 sts (I2CTimeout)+1,r25
314 01f0 8093 0000 sts I2CTimeout,r24
315 01f4 1092 0000 sts twi_state,__zero_reg__
316 01f8 00C0 rjmp .L45
317 .L36:
318 01fa 1092 B900 sts 185,__zero_reg__
319 01fe 84E1 ldi r24,lo8(20)
320 0200 8093 BB00 sts 187,r24
321 0204 85E8 ldi r24,lo8(-123)
322 0206 8093 BC00 sts 188,r24
323 020a 00C0 rjmp .L45
324 .L21:
325 020c 8091 B900 lds r24,185
326 0210 8033 cpi r24,lo8(48)
327 0212 01F4 brne .+2
328 0214 00C0 rjmp .L61
329 .L46:
330 0216 84E9 ldi r24,lo8(-108)
331 0218 8093 BC00 sts 188,r24
332 021c 8AE0 ldi r24,lo8(10)
333 021e 90E0 ldi r25,hi8(10)
334 0220 9093 0000 sts (I2CTimeout)+1,r25
335 0224 8093 0000 sts I2CTimeout,r24
336 0228 1092 0000 sts twi_state,__zero_reg__
337 022c 85EA ldi r24,lo8(-91)
338 022e 8093 BC00 sts 188,r24
339 0232 00C0 rjmp .L45
340 .L20:
341 0234 8091 0000 lds r24,motor
342 0238 E82F mov r30,r24
343 023a F0E0 ldi r31,lo8(0)
344 023c E050 subi r30,lo8(-(Motor))
345 023e F040 sbci r31,hi8(-(Motor))
346 0240 9081 ld r25,Z
347 0242 8F5F subi r24,lo8(-(1))
348 0244 8093 0000 sts motor,r24
349 0248 1092 B900 sts 185,__zero_reg__
350 024c 9093 BB00 sts 187,r25
351 0250 85E8 ldi r24,lo8(-123)
352 0252 8093 BC00 sts 188,r24
353 0256 00C0 rjmp .L45
354 .L26:
355 0258 1092 B900 sts 185,__zero_reg__
356 025c 80E1 ldi r24,lo8(16)
357 025e 8093 BB00 sts 187,r24
358 0262 85E8 ldi r24,lo8(-123)
359 0264 8093 BC00 sts 188,r24
360 0268 00C0 rjmp .L45
361 .L24:
362 026a 8091 0000 lds r24,motorread
363 026e 9091 BB00 lds r25,187
364 0272 E82F mov r30,r24
365 0274 F0E0 ldi r31,lo8(0)
366 0276 E050 subi r30,lo8(-(motor_rx2))
367 0278 F040 sbci r31,hi8(-(motor_rx2))
368 027a 9083 st Z,r25
369 027c 8F5F subi r24,lo8(-(1))
370 027e 8093 0000 sts motorread,r24
371 0282 8C30 cpi r24,lo8(12)
372 0284 00F0 brlo .L51
373 0286 1092 0000 sts motorread,__zero_reg__
374 .L51:
375 028a 84E9 ldi r24,lo8(-108)
376 028c 8093 BC00 sts 188,r24
377 0290 1092 0000 sts twi_state,__zero_reg__
378 0294 00C0 rjmp .L45
379 .L23:
380 0296 8091 BB00 lds r24,187
381 029a E091 0000 lds r30,motorread
382 029e F0E0 ldi r31,lo8(0)
383 02a0 E050 subi r30,lo8(-(motor_rx))
384 02a2 F040 sbci r31,hi8(-(motor_rx))
385 02a4 8083 st Z,r24
386 02a6 85E8 ldi r24,lo8(-123)
387 02a8 8093 BC00 sts 188,r24
388 02ac 00C0 rjmp .L45
389 .L22:
390 02ae 8091 B900 lds r24,185
391 02b2 8034 cpi r24,lo8(64)
392 02b4 01F0 breq .L48
393 02b6 8091 0000 lds r24,motorread
394 02ba E82F mov r30,r24
395 02bc F0E0 ldi r31,lo8(0)
396 02be E050 subi r30,lo8(-(MotorPresent))
397 02c0 F040 sbci r31,hi8(-(MotorPresent))
398 02c2 1082 st Z,__zero_reg__
399 02c4 8F5F subi r24,lo8(-(1))
400 02c6 8093 0000 sts motorread,r24
401 02ca 8C30 cpi r24,lo8(12)
402 02cc 00F0 brlo .L49
403 02ce 1092 0000 sts motorread,__zero_reg__
404 .L49:
405 02d2 84E9 ldi r24,lo8(-108)
406 02d4 8093 BC00 sts 188,r24
407 02d8 1092 0000 sts twi_state,__zero_reg__
408 .L50:
409 02dc 8091 0000 lds r24,missing_motor.2180
410 02e0 8093 0000 sts MissingMotor,r24
411 02e4 1092 0000 sts missing_motor.2180,__zero_reg__
412 02e8 00C0 rjmp .L45
413 .L61:
414 02ea 8091 0000 lds r24,missing_motor.2180
415 02ee 8823 tst r24
416 02f0 01F0 breq .L56
417 02f2 8091 0000 lds r24,motor
418 .L47:
419 02f6 E82F mov r30,r24
420 02f8 F0E0 ldi r31,lo8(0)
421 02fa E050 subi r30,lo8(-(MotorError-1))
422 02fc F040 sbci r31,hi8(-(MotorError-1))
423 02fe 8081 ld r24,Z
424 0300 8F5F subi r24,lo8(-(1))
425 0302 8083 st Z,r24
426 0304 8823 tst r24
427 0306 01F0 breq .+2
428 0308 00C0 rjmp .L46
429 030a 8FEF ldi r24,lo8(-1)
430 030c 8083 st Z,r24
431 030e 00C0 rjmp .L46
432 .L48:
433 0310 8091 0000 lds r24,motorread
434 0314 E82F mov r30,r24
435 0316 F0E0 ldi r31,lo8(0)
436 0318 E050 subi r30,lo8(-(MotorPresent))
437 031a F040 sbci r31,hi8(-(MotorPresent))
438 031c 8C5F subi r24,lo8(-(4))
439 031e 8083 st Z,r24
440 0320 85EC ldi r24,lo8(-59)
441 0322 8093 BC00 sts 188,r24
442 0326 00C0 rjmp .L50
443 .L60:
444 0328 1092 0000 sts motor,__zero_reg__
445 032c 83E0 ldi r24,lo8(3)
446 032e 8093 0000 sts twi_state,r24
447 0332 8091 0000 lds r24,motorread
448 0336 880F lsl r24
449 0338 8D5A subi r24,lo8(-(83))
450 033a 1092 B900 sts 185,__zero_reg__
451 033e 8093 BB00 sts 187,r24
452 0342 85E8 ldi r24,lo8(-123)
453 0344 8093 BC00 sts 188,r24
454 0348 00C0 rjmp .L45
455 .L56:
456 034a 8091 0000 lds r24,motor
457 034e 8093 0000 sts missing_motor.2180,r24
458 0352 00C0 rjmp .L47
460 .global twi_state
461 .global twi_state
462 .section .bss
465 twi_state:
466 0000 00 .skip 1,0
467 .global motor
468 .global motor
471 motor:
472 0001 00 .skip 1,0
473 .global motorread
474 .global motorread
477 motorread:
478 0002 00 .skip 1,0
479 .global MissingMotor
480 .global MissingMotor
483 MissingMotor:
484 0003 00 .skip 1,0
485 .global I2CError
486 .global I2CError
489 I2CError:
490 0004 0000 .skip 2,0
491 .lcomm missing_motor.2180,1
492 .comm motor_rx,16,1
493 .comm MotorPresent,12,1
494 .comm MotorError,12,1
495 .comm Mixer,77,1
496 .comm motor_rx2,16,1
497 .global __do_copy_data
498 .global __do_clear_bss
DEFINED SYMBOLS
*ABS*:00000000 twimaster.c
C:\Users\Arthur\AppData\Local\Temp/ccPuOpq7.s:2 *ABS*:0000003f __SREG__
C:\Users\Arthur\AppData\Local\Temp/ccPuOpq7.s:3 *ABS*:0000003e __SP_H__
C:\Users\Arthur\AppData\Local\Temp/ccPuOpq7.s:4 *ABS*:0000003d __SP_L__
C:\Users\Arthur\AppData\Local\Temp/ccPuOpq7.s:5 *ABS*:00000034 __CCP__
C:\Users\Arthur\AppData\Local\Temp/ccPuOpq7.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\Arthur\AppData\Local\Temp/ccPuOpq7.s:7 *ABS*:00000001 __zero_reg__
C:\Users\Arthur\AppData\Local\Temp/ccPuOpq7.s:11 .text:00000000 i2c_init
C:\Users\Arthur\AppData\Local\Temp/ccPuOpq7.s:22 .text:0000000c i2c_start
C:\Users\Arthur\AppData\Local\Temp/ccPuOpq7.s:32 .text:00000014 i2c_stop
C:\Users\Arthur\AppData\Local\Temp/ccPuOpq7.s:42 .text:0000001c i2c_reset
C:\Users\Arthur\AppData\Local\Temp/ccPuOpq7.s:465 .bss:00000000 twi_state
C:\Users\Arthur\AppData\Local\Temp/ccPuOpq7.s:471 .bss:00000001 motor
C:\Users\Arthur\AppData\Local\Temp/ccPuOpq7.s:83 .text:00000068 i2c_write_byte
C:\Users\Arthur\AppData\Local\Temp/ccPuOpq7.s:95 .text:00000078 I2C_WriteByte
C:\Users\Arthur\AppData\Local\Temp/ccPuOpq7.s:106 .text:00000084 I2C_ReceiveByte
C:\Users\Arthur\AppData\Local\Temp/ccPuOpq7.s:116 .text:0000008c I2C_ReceiveLastByte
C:\Users\Arthur\AppData\Local\Temp/ccPuOpq7.s:126 .text:00000094 __vector_26
*COM*:0000004d Mixer
C:\Users\Arthur\AppData\Local\Temp/ccPuOpq7.s:477 .bss:00000002 motorread
*COM*:00000010 motor_rx2
*COM*:00000010 motor_rx
*COM*:0000000c MotorPresent
.bss:00000006 missing_motor.2180
C:\Users\Arthur\AppData\Local\Temp/ccPuOpq7.s:483 .bss:00000003 MissingMotor
*COM*:0000000c MotorError
C:\Users\Arthur\AppData\Local\Temp/ccPuOpq7.s:489 .bss:00000004 I2CError
 
UNDEFINED SYMBOLS
I2CTimeout
AnalogOffsetRoll
AnalogOffsetGier
AnalogOffsetNick
Motor
__do_copy_data
__do_clear_bss