Subversion Repositories FlightCtrl

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
93 salvo 1
   1               		.file	"rc.c"
2
   2               		.arch atmega644
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
  10               		.text
11
  11               	.global	rc_sum_init
12
  13               	rc_sum_init:
13
  14               	/* prologue: frame size=0 */
14
  15               	/* prologue end (size=0) */
15
  16 0000 83EC      		ldi r24,lo8(-61)
16
  17 0002 8093 8100 		sts 129,r24
17
  18 0006 EFE6      		ldi r30,lo8(111)
18
  19 0008 F0E0      		ldi r31,hi8(111)
19
  20 000a 8081      		ld r24,Z
20
  21 000c 8062      		ori r24,lo8(32)
21
  22 000e 8083      		st Z,r24
22
  23 0010 1092 0000 		sts (AdNeutralGier)+1,__zero_reg__
23
  24 0014 1092 0000 		sts AdNeutralGier,__zero_reg__
24
  25 0018 1092 0000 		sts (AdNeutralRoll)+1,__zero_reg__
25
  26 001c 1092 0000 		sts AdNeutralRoll,__zero_reg__
26
  27 0020 1092 0000 		sts (AdNeutralNick)+1,__zero_reg__
27
  28 0024 1092 0000 		sts AdNeutralNick,__zero_reg__
28
  29               	/* epilogue: frame size=0 */
29
  30 0028 0895      		ret
30
  31               	/* epilogue end (size=1) */
31
  32               	/* function rc_sum_init size 21 (20) */
32
  34               	.global	__vector_12
33
  36               	__vector_12:
34
  37               	/* prologue: frame size=0 */
35
  38 002a 1F92      		push __zero_reg__
36
  39 002c 0F92      		push __tmp_reg__
37
  40 002e 0FB6      		in __tmp_reg__,__SREG__
38
  41 0030 0F92      		push __tmp_reg__
39
  42 0032 1124      		clr __zero_reg__
40
  43 0034 0F93      		push r16
41
  44 0036 1F93      		push r17
42
  45 0038 2F93      		push r18
43
  46 003a 3F93      		push r19
44
  47 003c 4F93      		push r20
45
  48 003e 5F93      		push r21
46
  49 0040 6F93      		push r22
47
  50 0042 7F93      		push r23
48
  51 0044 8F93      		push r24
49
  52 0046 9F93      		push r25
50
  53 0048 AF93      		push r26
51
  54 004a BF93      		push r27
52
  55 004c CF93      		push r28
53
  56 004e DF93      		push r29
54
  57 0050 EF93      		push r30
55
  58 0052 FF93      		push r31
56
  59               	/* prologue end (size=21) */
57
  60 0054 2091 8600 		lds r18,134
58
  61 0058 3091 8700 		lds r19,(134)+1
59
  62 005c 8091 0000 		lds r24,AltICR.1945
60
  63 0060 9091 0000 		lds r25,(AltICR.1945)+1
61
  64 0064 281B      		sub r18,r24
62
  65 0066 390B      		sbc r19,r25
63
  66 0068 8091 8600 		lds r24,134
64
  67 006c 9091 8700 		lds r25,(134)+1
65
  68 0070 9093 0000 		sts (AltICR.1945)+1,r25
66
  69 0074 8093 0000 		sts AltICR.1945,r24
67
  70 0078 C901      		movw r24,r18
68
  71 007a 8D5D      		subi r24,lo8(-(-1501))
69
  72 007c 9540      		sbci r25,hi8(-(-1501))
70
  73 007e 8356      		subi r24,lo8(6499)
71
  74 0080 9941      		sbci r25,hi8(6499)
72
  75 0082 00F4      		brsh .L4
73
  76 0084 81E0      		ldi r24,lo8(1)
74
  77 0086 90E0      		ldi r25,hi8(1)
75
  78 0088 9093 0000 		sts (index.1947)+1,r25
76
  79 008c 8093 0000 		sts index.1947,r24
77
  80 0090 1092 0000 		sts NewPpmData,__zero_reg__
78
  81 0094 00C0      		rjmp .L18
79
  82               	.L4:
80
  83 0096 C091 0000 		lds r28,index.1947
81
  84 009a D091 0000 		lds r29,(index.1947)+1
82
  85 009e CA30      		cpi r28,10
83
  86 00a0 D105      		cpc r29,__zero_reg__
84
  87 00a2 04F0      		brlt .+2
85
  88 00a4 00C0      		rjmp .L18
86
  89 00a6 C901      		movw r24,r18
87
  90 00a8 8B5F      		subi r24,lo8(-(-251))
88
  91 00aa 9040      		sbci r25,hi8(-(-251))
89
  92 00ac 845B      		subi r24,lo8(436)
90
  93 00ae 9140      		sbci r25,hi8(436)
91
  94 00b0 00F0      		brlo .+2
92
  95 00b2 00C0      		rjmp .L8
93
  96 00b4 A901      		movw r20,r18
94
  97 00b6 425D      		subi r20,lo8(-(-466))
95
  98 00b8 5140      		sbci r21,hi8(-(-466))
96
  99 00ba FE01      		movw r30,r28
97
 100 00bc EE0F      		lsl r30
98
 101 00be FF1F      		rol r31
99
 102 00c0 E050      		subi r30,lo8(-(PPM_in))
100
 103 00c2 F040      		sbci r31,hi8(-(PPM_in))
101
 104 00c4 8081      		ld r24,Z
102
 105 00c6 9181      		ldd r25,Z+1
103
 106 00c8 FA01      		movw r30,r20
104
 107 00ca E81B      		sub r30,r24
105
 108 00cc F90B      		sbc r31,r25
106
 109 00ce CF01      		movw r24,r30
107
 110 00d0 F7FF      		sbrs r31,7
108
 111 00d2 00C0      		rjmp .L11
109
 112 00d4 9095      		com r25
110
 113 00d6 8195      		neg r24
111
 114 00d8 9F4F      		sbci r25,lo8(-1)
112
 115               	.L11:
113
 116 00da 0697      		sbiw r24,6
114
 117 00dc 04F4      		brge .L10
115
 118 00de 8091 0000 		lds r24,SenderOkay
116
 119 00e2 883C      		cpi r24,lo8(-56)
117
 120 00e4 00F4      		brsh .L10
118
 121 00e6 8091 0000 		lds r24,SenderOkay
119
 122 00ea 865F      		subi r24,lo8(-(10))
120
 123 00ec 8093 0000 		sts SenderOkay,r24
121
 124               	.L10:
122
 125 00f0 FE01      		movw r30,r28
123
 126 00f2 EE0F      		lsl r30
124
 127 00f4 FF1F      		rol r31
125
 128 00f6 8F01      		movw r16,r30
126
 129 00f8 0050      		subi r16,lo8(-(PPM_in))
127
 130 00fa 1040      		sbci r17,hi8(-(PPM_in))
128
 131 00fc D801      		movw r26,r16
129
 132 00fe 2D91      		ld r18,X+
130
 133 0100 3C91      		ld r19,X
131
 134 0102 C901      		movw r24,r18
132
 135 0104 880F      		lsl r24
133
 136 0106 991F      		rol r25
134
 137 0108 820F      		add r24,r18
135
 138 010a 931F      		adc r25,r19
136
 139 010c 840F      		add r24,r20
137
 140 010e 951F      		adc r25,r21
138
 141 0110 64E0      		ldi r22,lo8(4)
139
 142 0112 70E0      		ldi r23,hi8(4)
140
 143 0114 0E94 0000 		call __divmodhi4
141
 144 0118 D801      		movw r26,r16
142
 145 011a 8D91      		ld r24,X+
143
 146 011c 9C91      		ld r25,X
144
 147 011e 1197      		sbiw r26,1
145
 148 0120 9B01      		movw r18,r22
146
 149 0122 281B      		sub r18,r24
147
 150 0124 390B      		sbc r19,r25
148
 151 0126 E050      		subi r30,lo8(-(PPM_diff))
149
 152 0128 F040      		sbci r31,hi8(-(PPM_diff))
150
 153 012a 3183      		std Z+1,r19
151
 154 012c 2083      		st Z,r18
152
 155 012e 1196      		adiw r26,1
153
 156 0130 7C93      		st X,r23
154
 157 0132 6E93      		st -X,r22
155
 158               	.L8:
156
 159 0134 FE01      		movw r30,r28
157
 160 0136 3196      		adiw r30,1
158
 161 0138 F093 0000 		sts (index.1947)+1,r31
159
 162 013c E093 0000 		sts index.1947,r30
160
 163 0140 E630      		cpi r30,6
161
 164 0142 F105      		cpc r31,__zero_reg__
162
 165 0144 01F4      		brne .L14
163
 166 0146 5C9A      		sbi 43-0x20,4
164
 167 0148 00C0      		rjmp .L16
165
 168               	.L14:
166
 169 014a 5C98      		cbi 43-0x20,4
167
 170 014c 3797      		sbiw r30,7
168
 171 014e 01F4      		brne .L16
169
 172 0150 5B9A      		sbi 43-0x20,3
170
 173 0152 00C0      		rjmp .L18
171
 174               	.L16:
172
 175 0154 5B98      		cbi 43-0x20,3
173
 176               	.L18:
174
 177               	/* epilogue: frame size=0 */
175
 178 0156 FF91      		pop r31
176
 179 0158 EF91      		pop r30
177
 180 015a DF91      		pop r29
178
 181 015c CF91      		pop r28
179
 182 015e BF91      		pop r27
180
 183 0160 AF91      		pop r26
181
 184 0162 9F91      		pop r25
182
 185 0164 8F91      		pop r24
183
 186 0166 7F91      		pop r23
184
 187 0168 6F91      		pop r22
185
 188 016a 5F91      		pop r21
186
 189 016c 4F91      		pop r20
187
 190 016e 3F91      		pop r19
188
 191 0170 2F91      		pop r18
189
 192 0172 1F91      		pop r17
190
 193 0174 0F91      		pop r16
191
 194 0176 0F90      		pop __tmp_reg__
192
 195 0178 0FBE      		out __SREG__,__tmp_reg__
193
 196 017a 0F90      		pop __tmp_reg__
194
 197 017c 1F90      		pop __zero_reg__
195
 198 017e 1895      		reti
196
 199               	/* epilogue end (size=21) */
197
 200               	/* function __vector_12 size 175 (133) */
198
 202               	.global	NewPpmData
199
 203               		.data
200
 206               	NewPpmData:
201
 207 0000 01        		.byte	1
202
 208               		.lcomm index.1947,2
203
 209               		.lcomm AltICR.1945,2
204
 210               		.comm PPM_in,22,1
205
 211               		.comm PPM_diff,22,1
206
 212               		.comm DiffNick,2,1
207
 213               		.comm DiffRoll,2,1
208
 214               		.comm SenderOkay,1,1
209
 215               		.comm CosinusNickWinkel,1,1
210
 216               		.comm CosinusRollWinkel,1,1
211
 217               		.comm RemoteTasten,1,1
212
 218               		.comm Timeout,1,1
213
 219               		.comm IntegralNick,4,1
214
 220               		.comm IntegralNick2,4,1
215
 221               		.comm IntegralRoll,4,1
216
 222               		.comm IntegralRoll2,4,1
217
 223               		.comm Mess_IntegralNick,4,1
218
 224               		.comm Mess_IntegralNick2,4,1
219
 225               		.comm Mess_IntegralRoll,4,1
220
 226               		.comm Mess_IntegralRoll2,4,1
221
 227               		.comm Integral_Gier,4,1
222
 228               		.comm Mess_Integral_Gier,4,1
223
 229               		.comm h,1,1
224
 230               		.comm m,1,1
225
 231               		.comm s,1,1
226
 232               		.comm Motor_Vorne,1,1
227
 233               		.comm Motor_Hinten,1,1
228
 234               		.comm Motor_Rechts,1,1
229
 235               		.comm Motor_Links,1,1
230
 236               		.comm Count,1,1
231
 237               		.comm MotorWert,5,1
232
 238               		.comm StickNick,2,1
233
 239               		.comm StickRoll,2,1
234
 240               		.comm StickGier,2,1
235
 241               		.comm MotorenEin,1,1
236
 242               	/* File "rc.c": code  196 = 0x00c4 ( 153), prologues  21, epilogues  22 */
237
DEFINED SYMBOLS
238
                            *ABS*:00000000 rc.c
239
C:\DOKUME~1\peter\LOKALE~1\Temp/cc06sVjW.s:3      *ABS*:0000003f __SREG__
240
C:\DOKUME~1\peter\LOKALE~1\Temp/cc06sVjW.s:4      *ABS*:0000003e __SP_H__
241
C:\DOKUME~1\peter\LOKALE~1\Temp/cc06sVjW.s:5      *ABS*:0000003d __SP_L__
242
C:\DOKUME~1\peter\LOKALE~1\Temp/cc06sVjW.s:6      *ABS*:00000000 __tmp_reg__
243
C:\DOKUME~1\peter\LOKALE~1\Temp/cc06sVjW.s:7      *ABS*:00000001 __zero_reg__
244
C:\DOKUME~1\peter\LOKALE~1\Temp/cc06sVjW.s:13     .text:00000000 rc_sum_init
245
C:\DOKUME~1\peter\LOKALE~1\Temp/cc06sVjW.s:36     .text:0000002a __vector_12
246
C:\DOKUME~1\peter\LOKALE~1\Temp/cc06sVjW.s:208    .bss:00000002 AltICR.1945
247
                             .bss:00000000 index.1947
248
C:\DOKUME~1\peter\LOKALE~1\Temp/cc06sVjW.s:206    .data:00000000 NewPpmData
249
                            *COM*:00000016 PPM_in
250
                            *COM*:00000001 SenderOkay
251
                            *COM*:00000016 PPM_diff
252
                            *COM*:00000002 DiffNick
253
                            *COM*:00000002 DiffRoll
254
                            *COM*:00000001 CosinusNickWinkel
255
                            *COM*:00000001 CosinusRollWinkel
256
                            *COM*:00000001 RemoteTasten
257
                            *COM*:00000001 Timeout
258
                            *COM*:00000004 IntegralNick
259
                            *COM*:00000004 IntegralNick2
260
                            *COM*:00000004 IntegralRoll
261
                            *COM*:00000004 IntegralRoll2
262
                            *COM*:00000004 Mess_IntegralNick
263
                            *COM*:00000004 Mess_IntegralNick2
264
                            *COM*:00000004 Mess_IntegralRoll
265
                            *COM*:00000004 Mess_IntegralRoll2
266
                            *COM*:00000004 Integral_Gier
267
                            *COM*:00000004 Mess_Integral_Gier
268
                            *COM*:00000001 h
269
                            *COM*:00000001 m
270
                            *COM*:00000001 s
271
                            *COM*:00000001 Motor_Vorne
272
                            *COM*:00000001 Motor_Hinten
273
                            *COM*:00000001 Motor_Rechts
274
                            *COM*:00000001 Motor_Links
275
                            *COM*:00000001 Count
276
                            *COM*:00000005 MotorWert
277
                            *COM*:00000002 StickNick
278
                            *COM*:00000002 StickRoll
279
                            *COM*:00000002 StickGier
280
                            *COM*:00000001 MotorenEin
281
 
282
UNDEFINED SYMBOLS
283
__do_copy_data
284
__do_clear_bss
285
AdNeutralGier
286
AdNeutralRoll
287
AdNeutralNick
288
__divmodhi4