Go to most recent revision | Blame | Last modification | View Log | RSS feed
1 .file "Spektrum.c"
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .text
10 .global SpektrumUartInit
12 SpektrumUartInit:
13 /* prologue: frame size=0 */
14 /* prologue end (size=0) */
15 0000 9FB7 in r25,95-0x20
16 /* #APP */
17 0002 F894 cli
18 /* #NOAPP */
19 0004 8091 C900 lds r24,201
20 0008 8F77 andi r24,lo8(127)
21 000a 8093 C900 sts 201,r24
22 000e 8091 C900 lds r24,201
23 0012 8F7B andi r24,lo8(-65)
24 0014 8093 C900 sts 201,r24
25 0018 8091 C900 lds r24,201
26 001c 8F7D andi r24,lo8(-33)
27 001e 8093 C900 sts 201,r24
28 0022 5A9A sbi 43-0x20,2
29 0024 5298 cbi 42-0x20,2
30 0026 5B9A sbi 43-0x20,3
31 0028 539A sbi 42-0x20,3
32 002a 1092 CD00 sts 205,__zero_reg__
33 002e 84E1 ldi r24,lo8(20)
34 0030 8093 CC00 sts 204,r24
35 0034 8091 C800 lds r24,200
36 0038 8260 ori r24,lo8(2)
37 003a 8093 C800 sts 200,r24
38 003e 80E1 ldi r24,lo8(16)
39 0040 8093 C900 sts 201,r24
40 0044 8091 CA00 lds r24,202
41 0048 8F77 andi r24,lo8(127)
42 004a 8093 CA00 sts 202,r24
43 004e 8091 CA00 lds r24,202
44 0052 8F7B andi r24,lo8(-65)
45 0054 8093 CA00 sts 202,r24
46 0058 8091 CA00 lds r24,202
47 005c 8F7D andi r24,lo8(-33)
48 005e 8093 CA00 sts 202,r24
49 0062 8091 CA00 lds r24,202
50 0066 8F7E andi r24,lo8(-17)
51 0068 8093 CA00 sts 202,r24
52 006c 8091 CA00 lds r24,202
53 0070 877F andi r24,lo8(-9)
54 0072 8093 CA00 sts 202,r24
55 0076 8091 C900 lds r24,201
56 007a 8B7F andi r24,lo8(-5)
57 007c 8093 C900 sts 201,r24
58 0080 8091 CA00 lds r24,202
59 0084 8460 ori r24,lo8(4)
60 0086 8093 CA00 sts 202,r24
61 008a 8091 CA00 lds r24,202
62 008e 8260 ori r24,lo8(2)
63 0090 8093 CA00 sts 202,r24
64 0094 00C0 rjmp .L2
65 .L3:
66 0096 8091 CE00 lds r24,206
67 .L2:
68 009a 8091 C800 lds r24,200
69 009e 87FD sbrc r24,7
70 00a0 00C0 rjmp .L3
71 00a2 8091 C900 lds r24,201
72 00a6 8068 ori r24,lo8(-128)
73 00a8 8093 C900 sts 201,r24
74 00ac 9FBF out 95-0x20,r25
75 /* epilogue: frame size=0 */
76 00ae 0895 ret
77 /* epilogue end (size=1) */
78 /* function SpektrumUartInit size 89 (88) */
80 .global SpektrumParser
82 SpektrumParser:
83 /* prologue: frame size=0 */
84 00b0 0F93 push r16
85 00b2 1F93 push r17
86 00b4 CF93 push r28
87 00b6 DF93 push r29
88 /* prologue end (size=4) */
89 00b8 982F mov r25,r24
90 00ba 8091 0000 lds r24,ReSync.2543
91 00be 8130 cpi r24,lo8(1)
92 00c0 01F4 brne .L7
93 00c2 1092 0000 sts ReSync.2543,__zero_reg__
94 00c6 84E4 ldi r24,lo8(68)
95 00c8 8093 0000 sts SpektrumTimer,r24
96 00cc 1092 0000 sts FrameCnt.2541,__zero_reg__
97 00d0 1092 0000 sts Sync.2540,__zero_reg__
98 00d4 1092 0000 sts ByteHigh.2542,__zero_reg__
99 00d8 00C0 rjmp .L50
100 .L7:
101 00da 20E0 ldi r18,lo8(0)
102 00dc 8091 0000 lds r24,SpektrumTimer
103 00e0 8823 tst r24
104 00e2 01F4 brne .L10
105 00e4 21E0 ldi r18,lo8(1)
106 .L10:
107 00e6 8091 0000 lds r24,Sync.2540
108 00ea 8823 tst r24
109 00ec 01F4 brne .L11
110 00ee 2223 tst r18
111 00f0 01F0 breq .L13
112 00f2 81E0 ldi r24,lo8(1)
113 00f4 00C0 rjmp .L54
114 .L13:
115 00f6 84E4 ldi r24,lo8(68)
116 00f8 8093 0000 sts SpektrumTimer,r24
117 00fc 1092 0000 sts FrameCnt.2541,__zero_reg__
118 0100 1092 0000 sts Sync.2540,__zero_reg__
119 0104 1092 0000 sts ByteHigh.2542,__zero_reg__
120 0108 00C0 rjmp .L15
121 .L11:
122 010a 8130 cpi r24,lo8(1)
123 010c 01F4 brne .L16
124 010e 2223 tst r18
125 0110 01F0 breq .+2
126 0112 00C0 rjmp .L25
127 0114 82E0 ldi r24,lo8(2)
128 .L54:
129 0116 8093 0000 sts Sync.2540,r24
130 011a 8091 0000 lds r24,FrameCnt.2541
131 011e 8F5F subi r24,lo8(-(1))
132 0120 8093 0000 sts FrameCnt.2541,r24
133 0124 83E0 ldi r24,lo8(3)
134 0126 00C0 rjmp .L53
135 .L16:
136 0128 8230 cpi r24,lo8(2)
137 012a 01F4 brne .L19
138 012c 2223 tst r18
139 012e 01F0 breq .+2
140 0130 00C0 rjmp .L25
141 0132 83E0 ldi r24,lo8(3)
142 0134 8093 0000 sts SpektrumTimer,r24
143 0138 9093 0000 sts ByteHigh.2542,r25
144 013c 2091 0000 lds r18,FrameCnt.2541
145 0140 2230 cpi r18,lo8(2)
146 0142 01F4 brne .L22
147 0144 1092 0000 sts Frame2.2544,__zero_reg__
148 0148 97FF sbrs r25,7
149 014a 00C0 rjmp .L22
150 014c 81E0 ldi r24,lo8(1)
151 014e 8093 0000 sts Frame2.2544,r24
152 .L22:
153 0152 83E0 ldi r24,lo8(3)
154 0154 8093 0000 sts Sync.2540,r24
155 0158 2F5F subi r18,lo8(-(1))
156 015a 2093 0000 sts FrameCnt.2541,r18
157 015e 00C0 rjmp .L15
158 .L19:
159 0160 8330 cpi r24,lo8(3)
160 0162 01F0 breq .+2
161 0164 00C0 rjmp .L25
162 0166 2223 tst r18
163 0168 01F0 breq .+2
164 016a 00C0 rjmp .L25
165 016c 8093 0000 sts SpektrumTimer,r24
166 0170 82E0 ldi r24,lo8(2)
167 0172 8093 0000 sts Sync.2540,r24
168 0176 8091 0000 lds r24,FrameCnt.2541
169 017a 8F5F subi r24,lo8(-(1))
170 017c 8093 0000 sts FrameCnt.2541,r24
171 0180 4091 0000 lds r20,ByteHigh.2542
172 0184 292F mov r18,r25
173 0186 30E0 ldi r19,lo8(0)
174 0188 842F mov r24,r20
175 018a 90E0 ldi r25,lo8(0)
176 018c 982F mov r25,r24
177 018e 8827 clr r24
178 0190 282B or r18,r24
179 0192 392B or r19,r25
180 0194 8091 0000 lds r24,EE_Parameter+39
181 0198 8130 cpi r24,lo8(1)
182 019a 01F4 brne .L28
183 019c 3370 andi r19,hi8(1023)
184 019e C901 movw r24,r18
185 01a0 8050 subi r24,lo8(-(-512))
186 01a2 9240 sbci r25,hi8(-(-512))
187 01a4 63E0 ldi r22,lo8(3)
188 01a6 70E0 ldi r23,hi8(3)
189 01a8 00C0 rjmp .L51
190 .L28:
191 01aa 8230 cpi r24,lo8(2)
192 01ac 01F4 brne .L31
193 01ae 3770 andi r19,hi8(2047)
194 01b0 C901 movw r24,r18
195 01b2 8050 subi r24,lo8(-(-1024))
196 01b4 9440 sbci r25,hi8(-(-1024))
197 01b6 66E0 ldi r22,lo8(6)
198 01b8 70E0 ldi r23,hi8(6)
199 01ba 0E94 0000 call __divmodhi4
200 01be EB01 movw r28,r22
201 01c0 4695 lsr r20
202 01c2 4695 lsr r20
203 01c4 4695 lsr r20
204 01c6 00C0 rjmp .L52
205 .L31:
206 01c8 3370 andi r19,hi8(1023)
207 01ca C901 movw r24,r18
208 01cc 8856 subi r24,lo8(-(-360))
209 01ce 9140 sbci r25,hi8(-(-360))
210 01d0 62E0 ldi r22,lo8(2)
211 01d2 70E0 ldi r23,hi8(2)
212 .L51:
213 01d4 0E94 0000 call __divmodhi4
214 01d8 EB01 movw r28,r22
215 01da 4695 lsr r20
216 01dc 4695 lsr r20
217 .L52:
218 01de 842F mov r24,r20
219 01e0 90E0 ldi r25,lo8(0)
220 01e2 8F70 andi r24,lo8(15)
221 01e4 9070 andi r25,hi8(15)
222 01e6 8C01 movw r16,r24
223 01e8 0F5F subi r16,lo8(-(1))
224 01ea 1F4F sbci r17,hi8(-(1))
225 01ec 0D30 cpi r16,13
226 01ee 1105 cpc r17,__zero_reg__
227 01f0 00F0 brlo .+2
228 01f2 00C0 rjmp .L15
229 01f4 F801 movw r30,r16
230 01f6 EE0F lsl r30
231 01f8 FF1F rol r31
232 01fa E050 subi r30,lo8(-(PPM_in))
233 01fc F040 sbci r31,hi8(-(PPM_in))
234 01fe 8081 ld r24,Z
235 0200 9181 ldd r25,Z+1
236 0202 9E01 movw r18,r28
237 0204 281B sub r18,r24
238 0206 390B sbc r19,r25
239 0208 C901 movw r24,r18
240 020a 37FF sbrs r19,7
241 020c 00C0 rjmp .L35
242 020e 9095 com r25
243 0210 8195 neg r24
244 0212 9F4F sbci r25,lo8(-1)
245 .L35:
246 0214 0697 sbiw r24,6
247 0216 04F4 brge .L34
248 0218 8091 0000 lds r24,SenderOkay
249 021c 883C cpi r24,lo8(-56)
250 021e 00F4 brsh .L37
251 0220 8091 0000 lds r24,SenderOkay
252 0224 865F subi r24,lo8(-(10))
253 0226 8093 0000 sts SenderOkay,r24
254 022a 00C0 rjmp .L34
255 .L37:
256 022c 88EC ldi r24,lo8(-56)
257 022e 8093 0000 sts SenderOkay,r24
258 0232 8091 6F00 lds r24,111
259 0236 8F7D andi r24,lo8(-33)
260 0238 8093 6F00 sts 111,r24
261 .L34:
262 023c F801 movw r30,r16
263 023e EE0F lsl r30
264 0240 FF1F rol r31
265 0242 E050 subi r30,lo8(-(PPM_in))
266 0244 F040 sbci r31,hi8(-(PPM_in))
267 0246 2081 ld r18,Z
268 0248 3181 ldd r19,Z+1
269 024a C901 movw r24,r18
270 024c 880F lsl r24
271 024e 991F rol r25
272 0250 820F add r24,r18
273 0252 931F adc r25,r19
274 0254 8C0F add r24,r28
275 0256 9D1F adc r25,r29
276 0258 64E0 ldi r22,lo8(4)
277 025a 70E0 ldi r23,hi8(4)
278 025c 0E94 0000 call __divmodhi4
279 0260 9B01 movw r18,r22
280 0262 CE01 movw r24,r28
281 0264 0196 adiw r24,1
282 0266 8617 cp r24,r22
283 0268 9707 cpc r25,r23
284 026a 04F4 brge .L39
285 026c 2150 subi r18,lo8(-(-1))
286 026e 3040 sbci r19,hi8(-(-1))
287 0270 00C0 rjmp .L41
288 .L39:
289 0272 2197 sbiw r28,1
290 0274 6C17 cp r22,r28
291 0276 7D07 cpc r23,r29
292 0278 04F4 brge .L41
293 027a 2F5F subi r18,lo8(-(1))
294 027c 3F4F sbci r19,hi8(-(1))
295 .L41:
296 027e 8091 0000 lds r24,SenderOkay
297 0282 E801 movw r28,r16
298 0284 CC0F lsl r28
299 0286 DD1F rol r29
300 0288 843B cpi r24,lo8(-76)
301 028a 00F0 brlo .L43
302 028c FE01 movw r30,r28
303 028e E050 subi r30,lo8(-(PPM_in))
304 0290 F040 sbci r31,hi8(-(PPM_in))
305 0292 8081 ld r24,Z
306 0294 9181 ldd r25,Z+1
307 0296 A901 movw r20,r18
308 0298 481B sub r20,r24
309 029a 590B sbc r21,r25
310 029c CA01 movw r24,r20
311 029e 63E0 ldi r22,lo8(3)
312 02a0 70E0 ldi r23,hi8(3)
313 02a2 0E94 0000 call __divmodhi4
314 02a6 CB01 movw r24,r22
315 02a8 880F lsl r24
316 02aa 991F rol r25
317 02ac 860F add r24,r22
318 02ae 971F adc r25,r23
319 02b0 C050 subi r28,lo8(-(PPM_diff))
320 02b2 D040 sbci r29,hi8(-(PPM_diff))
321 02b4 9983 std Y+1,r25
322 02b6 8883 st Y,r24
323 02b8 00C0 rjmp .L45
324 .L43:
325 02ba C050 subi r28,lo8(-(PPM_diff))
326 02bc D040 sbci r29,hi8(-(PPM_diff))
327 02be 1982 std Y+1,__zero_reg__
328 02c0 1882 st Y,__zero_reg__
329 .L45:
330 02c2 000F lsl r16
331 02c4 111F rol r17
332 02c6 0050 subi r16,lo8(-(PPM_in))
333 02c8 1040 sbci r17,hi8(-(PPM_in))
334 02ca F801 movw r30,r16
335 02cc 3183 std Z+1,r19
336 02ce 2083 st Z,r18
337 02d0 00C0 rjmp .L15
338 .L25:
339 02d2 81E0 ldi r24,lo8(1)
340 02d4 8093 0000 sts ReSync.2543,r24
341 02d8 1092 0000 sts FrameCnt.2541,__zero_reg__
342 02dc 1092 0000 sts Frame2.2544,__zero_reg__
343 02e0 84E4 ldi r24,lo8(68)
344 .L53:
345 02e2 8093 0000 sts SpektrumTimer,r24
346 .L15:
347 02e6 8091 0000 lds r24,FrameCnt.2541
348 02ea 8031 cpi r24,lo8(16)
349 02ec 00F0 brlo .L50
350 02ee 8091 0000 lds r24,Frame2.2544
351 02f2 8823 tst r24
352 02f4 01F4 brne .L47
353 02f6 8091 0000 lds r24,ReSync.2543
354 02fa 8823 tst r24
355 02fc 01F4 brne .L47
356 02fe 1092 0000 sts NewPpmData,__zero_reg__
357 .L47:
358 0302 1092 0000 sts FrameCnt.2541,__zero_reg__
359 0306 1092 0000 sts Frame2.2544,__zero_reg__
360 030a 1092 0000 sts Sync.2540,__zero_reg__
361 030e 84E4 ldi r24,lo8(68)
362 0310 8093 0000 sts SpektrumTimer,r24
363 .L50:
364 /* epilogue: frame size=0 */
365 0314 DF91 pop r29
366 0316 CF91 pop r28
367 0318 1F91 pop r17
368 031a 0F91 pop r16
369 031c 0895 ret
370 /* epilogue end (size=5) */
371 /* function SpektrumParser size 315 (306) */
373 .global SpektrumTimer
374 .global SpektrumTimer
375 .section .bss
378 SpektrumTimer:
379 0000 00 .skip 1,0
380 .lcomm Frame2.2544,1
381 .data
384 ReSync.2543:
385 0000 01 .byte 1
386 .lcomm ByteHigh.2542,1
387 .lcomm FrameCnt.2541,1
388 .lcomm Sync.2540,1
389 /* File "Spektrum.c": code 404 = 0x0194 ( 394), prologues 4, epilogues 6 */
DEFINED SYMBOLS
*ABS*:00000000 Spektrum.c
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:5 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:6 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:12 .text:00000000 SpektrumUartInit
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:82 .text:000000b0 SpektrumParser
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:384 .data:00000000 ReSync.2543
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:378 .bss:00000000 SpektrumTimer
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:386 .bss:00000003 FrameCnt.2541
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:387 .bss:00000004 Sync.2540
C:\DOCUME~1\Owner\LOCALS~1\Temp/cctPB7zO.s:380 .bss:00000002 ByteHigh.2542
.bss:00000001 Frame2.2544
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
EE_Parameter
__divmodhi4
PPM_in
SenderOkay
PPM_diff
NewPpmData