Go to most recent revision | Blame | Last modification | View Log | RSS feed
1 .file "GPS.c"
2 .arch atmega644
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .text
11 .global gps_main
13 gps_main:
14 /* prologue: frame size=0 */
15 0000 6F92 push r6
16 0002 7F92 push r7
17 0004 8F92 push r8
18 0006 9F92 push r9
19 0008 AF92 push r10
20 000a BF92 push r11
21 000c CF92 push r12
22 000e DF92 push r13
23 0010 EF92 push r14
24 0012 FF92 push r15
25 0014 0F93 push r16
26 0016 1F93 push r17
27 /* prologue end (size=12) */
28 0018 8091 0000 lds r24,Poti1
29 001c 9091 0000 lds r25,(Poti1)+1
30 0020 1816 cp __zero_reg__,r24
31 0022 1906 cpc __zero_reg__,r25
32 0024 04F0 brlt .+2
33 0026 00C0 rjmp .L2
34 0028 8091 0000 lds r24,actualPos+24
35 002c 8823 tst r24
36 002e 01F4 brne .+2
37 0030 00C0 rjmp .L2
38 0032 8091 0000 lds r24,gps_getpos
39 0036 9091 0000 lds r25,(gps_getpos)+1
40 003a 892B or r24,r25
41 003c 01F0 breq .L5
42 003e 8091 0000 lds r24,actualPos
43 0042 9091 0000 lds r25,(actualPos)+1
44 0046 A091 0000 lds r26,(actualPos)+2
45 004a B091 0000 lds r27,(actualPos)+3
46 004e 8093 0000 sts target_x,r24
47 0052 9093 0000 sts (target_x)+1,r25
48 0056 A093 0000 sts (target_x)+2,r26
49 005a B093 0000 sts (target_x)+3,r27
50 005e 8091 0000 lds r24,actualPos+4
51 0062 9091 0000 lds r25,(actualPos+4)+1
52 0066 A091 0000 lds r26,(actualPos+4)+2
53 006a B091 0000 lds r27,(actualPos+4)+3
54 006e 8093 0000 sts target_y,r24
55 0072 9093 0000 sts (target_y)+1,r25
56 0076 A093 0000 sts (target_y)+2,r26
57 007a B093 0000 sts (target_y)+3,r27
58 007e 8091 0000 lds r24,actualPos+8
59 0082 9091 0000 lds r25,(actualPos+8)+1
60 0086 A091 0000 lds r26,(actualPos+8)+2
61 008a B091 0000 lds r27,(actualPos+8)+3
62 008e 8093 0000 sts target_z,r24
63 0092 9093 0000 sts (target_z)+1,r25
64 0096 A093 0000 sts (target_z)+2,r26
65 009a B093 0000 sts (target_z)+3,r27
66 009e 82E3 ldi r24,lo8(50)
67 00a0 90E0 ldi r25,hi8(50)
68 00a2 9093 0000 sts (beeptime)+1,r25
69 00a6 8093 0000 sts beeptime,r24
70 00aa 1092 0000 sts (gps_getpos)+1,__zero_reg__
71 00ae 1092 0000 sts gps_getpos,__zero_reg__
72 .L5:
73 00b2 A090 0000 lds r10,gps_p
74 00b6 B090 0000 lds r11,(gps_p)+1
75 00ba 6091 0000 lds r22,target_z
76 00be 7091 0000 lds r23,(target_z)+1
77 00c2 8091 0000 lds r24,(target_z)+2
78 00c6 9091 0000 lds r25,(target_z)+3
79 00ca 6E5F subi r22,lo8(-(2))
80 00cc 7F4F sbci r23,hi8(-(2))
81 00ce 8F4F sbci r24,hlo8(-(2))
82 00d0 9F4F sbci r25,hhi8(-(2))
83 00d2 2091 0000 lds r18,target_x
84 00d6 3091 0000 lds r19,(target_x)+1
85 00da 4091 0000 lds r20,(target_x)+2
86 00de 5091 0000 lds r21,(target_x)+3
87 00e2 E2E0 ldi r30,lo8(2)
88 00e4 EE2E mov r14,r30
89 00e6 F12C mov r15,__zero_reg__
90 00e8 012D mov r16,__zero_reg__
91 00ea 112D mov r17,__zero_reg__
92 00ec 2E25 eor r18,r14
93 00ee 3F25 eor r19,r15
94 00f0 4027 eor r20,r16
95 00f2 5127 eor r21,r17
96 00f4 6227 eor r22,r18
97 00f6 7327 eor r23,r19
98 00f8 8427 eor r24,r20
99 00fa 9527 eor r25,r21
100 00fc 0E94 0000 call __floatsisf
101 0100 0E94 0000 call sqrt
102 0104 3B01 movw r6,r22
103 0106 4C01 movw r8,r24
104 0108 6091 0000 lds r22,actualPos+8
105 010c 7091 0000 lds r23,(actualPos+8)+1
106 0110 8091 0000 lds r24,(actualPos+8)+2
107 0114 9091 0000 lds r25,(actualPos+8)+3
108 0118 6E5F subi r22,lo8(-(2))
109 011a 7F4F sbci r23,hi8(-(2))
110 011c 8F4F sbci r24,hlo8(-(2))
111 011e 9F4F sbci r25,hhi8(-(2))
112 0120 2091 0000 lds r18,actualPos
113 0124 3091 0000 lds r19,(actualPos)+1
114 0128 4091 0000 lds r20,(actualPos)+2
115 012c 5091 0000 lds r21,(actualPos)+3
116 0130 2E25 eor r18,r14
117 0132 3F25 eor r19,r15
118 0134 4027 eor r20,r16
119 0136 5127 eor r21,r17
120 0138 6227 eor r22,r18
121 013a 7327 eor r23,r19
122 013c 8427 eor r24,r20
123 013e 9527 eor r25,r21
124 0140 0E94 0000 call __floatsisf
125 0144 0E94 0000 call sqrt
126 0148 9B01 movw r18,r22
127 014a AC01 movw r20,r24
128 014c C401 movw r24,r8
129 014e B301 movw r22,r6
130 0150 0E94 0000 call __subsf3
131 0154 7B01 movw r14,r22
132 0156 8C01 movw r16,r24
133 0158 CC24 clr r12
134 015a B7FC sbrc r11,7
135 015c C094 com r12
136 015e DC2C mov r13,r12
137 0160 C601 movw r24,r12
138 0162 B501 movw r22,r10
139 0164 0E94 0000 call __floatsisf
140 0168 9B01 movw r18,r22
141 016a AC01 movw r20,r24
142 016c C801 movw r24,r16
143 016e B701 movw r22,r14
144 0170 0E94 0000 call __mulsf3
145 0174 20E0 ldi r18,lo8(0x41200000)
146 0176 30E0 ldi r19,hi8(0x41200000)
147 0178 40E2 ldi r20,hlo8(0x41200000)
148 017a 51E4 ldi r21,hhi8(0x41200000)
149 017c 0E94 0000 call __divsf3
150 0180 0E94 0000 call __fixsfsi
151 0184 3B01 movw r6,r22
152 0186 4C01 movw r8,r24
153 0188 6093 0000 sts zwn,r22
154 018c 7093 0000 sts (zwn)+1,r23
155 0190 8093 0000 sts (zwn)+2,r24
156 0194 9093 0000 sts (zwn)+3,r25
157 0198 2091 0000 lds r18,gps_p
158 019c 3091 0000 lds r19,(gps_p)+1
159 01a0 6091 0000 lds r22,target_y
160 01a4 7091 0000 lds r23,(target_y)+1
161 01a8 8091 0000 lds r24,(target_y)+2
162 01ac 9091 0000 lds r25,(target_y)+3
163 01b0 E090 0000 lds r14,actualPos+4
164 01b4 F090 0000 lds r15,(actualPos+4)+1
165 01b8 0091 0000 lds r16,(actualPos+4)+2
166 01bc 1091 0000 lds r17,(actualPos+4)+3
167 01c0 6E19 sub r22,r14
168 01c2 7F09 sbc r23,r15
169 01c4 800B sbc r24,r16
170 01c6 910B sbc r25,r17
171 01c8 4427 clr r20
172 01ca 37FD sbrc r19,7
173 01cc 4095 com r20
174 01ce 542F mov r21,r20
175 01d0 0E94 0000 call __mulsi3
176 01d4 2AE0 ldi r18,lo8(10)
177 01d6 30E0 ldi r19,hi8(10)
178 01d8 40E0 ldi r20,hlo8(10)
179 01da 50E0 ldi r21,hhi8(10)
180 01dc 0E94 0000 call __divmodsi4
181 01e0 5901 movw r10,r18
182 01e2 6A01 movw r12,r20
183 01e4 2093 0000 sts zwe,r18
184 01e8 3093 0000 sts (zwe)+1,r19
185 01ec 4093 0000 sts (zwe)+2,r20
186 01f0 5093 0000 sts (zwe)+3,r21
187 01f4 6091 0000 lds r22,gps_d
188 01f8 7091 0000 lds r23,(gps_d)+1
189 01fc 8827 clr r24
190 01fe 77FD sbrc r23,7
191 0200 8095 com r24
192 0202 982F mov r25,r24
193 0204 2091 0000 lds r18,actualPos+12
194 0208 3091 0000 lds r19,(actualPos+12)+1
195 020c 4091 0000 lds r20,(actualPos+12)+2
196 0210 5091 0000 lds r21,(actualPos+12)+3
197 0214 0E94 0000 call __mulsi3
198 0218 2DEF ldi r18,lo8(-3)
199 021a 3FEF ldi r19,hi8(-3)
200 021c 4FEF ldi r20,hlo8(-3)
201 021e 5FEF ldi r21,hhi8(-3)
202 0220 0E94 0000 call __divmodsi4
203 0224 7901 movw r14,r18
204 0226 8A01 movw r16,r20
205 0228 2093 0000 sts zwn2,r18
206 022c 3093 0000 sts (zwn2)+1,r19
207 0230 4093 0000 sts (zwn2)+2,r20
208 0234 5093 0000 sts (zwn2)+3,r21
209 0238 6091 0000 lds r22,gps_d
210 023c 7091 0000 lds r23,(gps_d)+1
211 0240 8827 clr r24
212 0242 77FD sbrc r23,7
213 0244 8095 com r24
214 0246 982F mov r25,r24
215 0248 2091 0000 lds r18,actualPos+16
216 024c 3091 0000 lds r19,(actualPos+16)+1
217 0250 4091 0000 lds r20,(actualPos+16)+2
218 0254 5091 0000 lds r21,(actualPos+16)+3
219 0258 0E94 0000 call __mulsi3
220 025c 2DEF ldi r18,lo8(-3)
221 025e 3FEF ldi r19,hi8(-3)
222 0260 4FEF ldi r20,hlo8(-3)
223 0262 5FEF ldi r21,hhi8(-3)
224 0264 0E94 0000 call __divmodsi4
225 0268 2093 0000 sts zwe2,r18
226 026c 3093 0000 sts (zwe2)+1,r19
227 0270 4093 0000 sts (zwe2)+2,r20
228 0274 5093 0000 sts (zwe2)+3,r21
229 0278 B301 movw r22,r6
230 027a 6E0D add r22,r14
231 027c 7F1D adc r23,r15
232 027e 7093 0000 sts (GPS_Nick)+1,r23
233 0282 6093 0000 sts GPS_Nick,r22
234 0286 2A0D add r18,r10
235 0288 3B1D adc r19,r11
236 028a 3093 0000 sts (GPS_Roll)+1,r19
237 028e 2093 0000 sts GPS_Roll,r18
238 0292 8091 0000 lds r24,gpsmax
239 0296 9091 0000 lds r25,(gpsmax)+1
240 029a 8617 cp r24,r22
241 029c 9707 cpc r25,r23
242 029e 04F4 brge .L7
243 02a0 8091 0000 lds r24,gpsmax
244 02a4 9091 0000 lds r25,(gpsmax)+1
245 02a8 00C0 rjmp .L16
246 .L7:
247 02aa 8091 0000 lds r24,gpsmax
248 02ae 9091 0000 lds r25,(gpsmax)+1
249 02b2 9095 com r25
250 02b4 8195 neg r24
251 02b6 9F4F sbci r25,lo8(-1)
252 02b8 6817 cp r22,r24
253 02ba 7907 cpc r23,r25
254 02bc 04F4 brge .L9
255 02be 8091 0000 lds r24,gpsmax
256 02c2 9091 0000 lds r25,(gpsmax)+1
257 02c6 9095 com r25
258 02c8 8195 neg r24
259 02ca 9F4F sbci r25,lo8(-1)
260 .L16:
261 02cc 9093 0000 sts (GPS_Nick)+1,r25
262 02d0 8093 0000 sts GPS_Nick,r24
263 .L9:
264 02d4 8091 0000 lds r24,gpsmax
265 02d8 9091 0000 lds r25,(gpsmax)+1
266 02dc 8217 cp r24,r18
267 02de 9307 cpc r25,r19
268 02e0 04F4 brge .L11
269 02e2 8091 0000 lds r24,gpsmax
270 02e6 9091 0000 lds r25,(gpsmax)+1
271 02ea 00C0 rjmp .L17
272 .L11:
273 02ec 8091 0000 lds r24,gpsmax
274 02f0 9091 0000 lds r25,(gpsmax)+1
275 02f4 9095 com r25
276 02f6 8195 neg r24
277 02f8 9F4F sbci r25,lo8(-1)
278 02fa 2817 cp r18,r24
279 02fc 3907 cpc r19,r25
280 02fe 04F4 brge .L15
281 0300 8091 0000 lds r24,gpsmax
282 0304 9091 0000 lds r25,(gpsmax)+1
283 0308 9095 com r25
284 030a 8195 neg r24
285 030c 9F4F sbci r25,lo8(-1)
286 .L17:
287 030e 9093 0000 sts (GPS_Roll)+1,r25
288 0312 8093 0000 sts GPS_Roll,r24
289 0316 00C0 rjmp .L15
290 .L2:
291 0318 85E0 ldi r24,lo8(5)
292 031a 90E0 ldi r25,hi8(5)
293 031c 9093 0000 sts (gps_getpos)+1,r25
294 0320 8093 0000 sts gps_getpos,r24
295 0324 1092 0000 sts (GPS_Nick)+1,__zero_reg__
296 0328 1092 0000 sts GPS_Nick,__zero_reg__
297 032c 1092 0000 sts (GPS_Roll)+1,__zero_reg__
298 0330 1092 0000 sts GPS_Roll,__zero_reg__
299 .L15:
300 /* epilogue: frame size=0 */
301 0334 1F91 pop r17
302 0336 0F91 pop r16
303 0338 FF90 pop r15
304 033a EF90 pop r14
305 033c DF90 pop r13
306 033e CF90 pop r12
307 0340 BF90 pop r11
308 0342 AF90 pop r10
309 0344 9F90 pop r9
310 0346 8F90 pop r8
311 0348 7F90 pop r7
312 034a 6F90 pop r6
313 034c 0895 ret
314 /* epilogue end (size=13) */
315 /* function gps_main size 423 (398) */
317 .global target_x
318 .global target_x
319 .section .bss
322 target_x:
323 0000 0000 0000 .skip 4,0
324 .global target_y
325 .global target_y
328 target_y:
329 0004 0000 0000 .skip 4,0
330 .global target_z
331 .global target_z
334 target_z:
335 0008 0000 0000 .skip 4,0
336 .global alpha
337 .global alpha
340 alpha:
341 000c 0000 .skip 2,0
342 .global zwn
343 .global zwn
346 zwn:
347 000e 0000 0000 .skip 4,0
348 .global zwe
349 .global zwe
352 zwe:
353 0012 0000 0000 .skip 4,0
354 .global zwn1
355 .global zwn1
358 zwn1:
359 0016 0000 0000 .skip 4,0
360 .global zwe1
361 .global zwe1
364 zwe1:
365 001a 0000 0000 .skip 4,0
366 .global zwn2
367 .global zwn2
370 zwn2:
371 001e 0000 0000 .skip 4,0
372 .global zwe2
373 .global zwe2
376 zwe2:
377 0022 0000 0000 .skip 4,0
378 .global gps_getpos
379 .data
382 gps_getpos:
383 0000 0500 .word 5
384 .global gps_home_x
385 .global gps_home_x
386 .section .bss
389 gps_home_x:
390 0026 0000 0000 .skip 4,0
391 .global gps_home_y
392 .global gps_home_y
395 gps_home_y:
396 002a 0000 0000 .skip 4,0
397 .global komp_dreh
398 .global komp_dreh
401 komp_dreh:
402 002e 0000 .skip 2,0
403 .global gpsmax
404 .data
407 gpsmax:
408 0002 2300 .word 35
409 .global GPS_Nick
410 .global GPS_Nick
411 .section .bss
414 GPS_Nick:
415 0030 0000 .skip 2,0
416 .global GPS_Roll
417 .global GPS_Roll
420 GPS_Roll:
421 0032 0000 .skip 2,0
422 .comm DiffNick,2,1
423 .comm DiffRoll,2,1
424 .comm SenderOkay,1,1
425 .comm CosinusNickWinkel,1,1
426 .comm CosinusRollWinkel,1,1
427 .comm durchschnitt_northing,4,1
428 .comm durchschnitt_easting,4,1
429 .comm gps_p,2,1
430 .comm gps_d,2,1
431 .comm skal,2,1
432 .comm gps_gethome,2,1
433 .comm RemoteTasten,1,1
434 .comm Timeout,1,1
435 .comm IntegralNick,4,1
436 .comm IntegralNick2,4,1
437 .comm IntegralRoll,4,1
438 .comm IntegralRoll2,4,1
439 .comm Mess_IntegralNick,4,1
440 .comm Mess_IntegralNick2,4,1
441 .comm Mess_IntegralRoll,4,1
442 .comm Mess_IntegralRoll2,4,1
443 .comm Integral_Gier,4,1
444 .comm Mess_Integral_Gier,4,1
445 .comm h,1,1
446 .comm m,1,1
447 .comm s,1,1
448 .comm Motor_Vorne,1,1
449 .comm Motor_Hinten,1,1
450 .comm Motor_Rechts,1,1
451 .comm Motor_Links,1,1
452 .comm Count,1,1
453 .comm MotorWert,5,1
454 .comm StickNick,2,1
455 .comm StickRoll,2,1
456 .comm StickGier,2,1
457 .comm MotorenEin,1,1
458 /* File "GPS.c": code 423 = 0x01a7 ( 398), prologues 12, epilogues 13 */
DEFINED SYMBOLS
*ABS*:00000000 GPS.c
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccZtEoZ3.s:3 *ABS*:0000003f __SREG__
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccZtEoZ3.s:4 *ABS*:0000003e __SP_H__
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccZtEoZ3.s:5 *ABS*:0000003d __SP_L__
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccZtEoZ3.s:6 *ABS*:00000000 __tmp_reg__
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccZtEoZ3.s:7 *ABS*:00000001 __zero_reg__
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccZtEoZ3.s:13 .text:00000000 gps_main
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccZtEoZ3.s:382 .data:00000000 gps_getpos
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccZtEoZ3.s:322 .bss:00000000 target_x
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccZtEoZ3.s:328 .bss:00000004 target_y
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccZtEoZ3.s:334 .bss:00000008 target_z
*COM*:00000002 gps_p
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccZtEoZ3.s:346 .bss:0000000e zwn
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccZtEoZ3.s:352 .bss:00000012 zwe
*COM*:00000002 gps_d
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccZtEoZ3.s:370 .bss:0000001e zwn2
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccZtEoZ3.s:376 .bss:00000022 zwe2
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccZtEoZ3.s:414 .bss:00000030 GPS_Nick
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccZtEoZ3.s:420 .bss:00000032 GPS_Roll
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccZtEoZ3.s:407 .data:00000002 gpsmax
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccZtEoZ3.s:340 .bss:0000000c alpha
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccZtEoZ3.s:358 .bss:00000016 zwn1
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccZtEoZ3.s:364 .bss:0000001a zwe1
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccZtEoZ3.s:389 .bss:00000026 gps_home_x
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccZtEoZ3.s:395 .bss:0000002a gps_home_y
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccZtEoZ3.s:401 .bss:0000002e komp_dreh
*COM*:00000002 DiffNick
*COM*:00000002 DiffRoll
*COM*:00000001 SenderOkay
*COM*:00000001 CosinusNickWinkel
*COM*:00000001 CosinusRollWinkel
*COM*:00000004 durchschnitt_northing
*COM*:00000004 durchschnitt_easting
*COM*:00000002 skal
*COM*:00000002 gps_gethome
*COM*:00000001 RemoteTasten
*COM*:00000001 Timeout
*COM*:00000004 IntegralNick
*COM*:00000004 IntegralNick2
*COM*:00000004 IntegralRoll
*COM*:00000004 IntegralRoll2
*COM*:00000004 Mess_IntegralNick
*COM*:00000004 Mess_IntegralNick2
*COM*:00000004 Mess_IntegralRoll
*COM*:00000004 Mess_IntegralRoll2
*COM*:00000004 Integral_Gier
*COM*:00000004 Mess_Integral_Gier
*COM*:00000001 h
*COM*:00000001 m
*COM*:00000001 s
*COM*:00000001 Motor_Vorne
*COM*:00000001 Motor_Hinten
*COM*:00000001 Motor_Rechts
*COM*:00000001 Motor_Links
*COM*:00000001 Count
*COM*:00000005 MotorWert
*COM*:00000002 StickNick
*COM*:00000002 StickRoll
*COM*:00000002 StickGier
*COM*:00000001 MotorenEin
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
Poti1
actualPos
beeptime
__floatsisf
sqrt
__subsf3
__mulsf3
__divsf3
__fixsfsi
__mulsi3
__divmodsi4