Subversion Repositories FlightCtrl

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
21 user 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.1970
60
  63 0060 9091 0000 		lds r25,(AltICR.1970)+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.1970)+1,r25
66
  69 0074 8093 0000 		sts AltICR.1970,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.1972)+1,r25
76
  79 008c 8093 0000 		sts index.1972,r24
77
  80 0090 1092 0000 		sts NewPpmData,__zero_reg__
78
  81 0094 00C0      		rjmp .L14
79
  82               	.L4:
80
  83 0096 C091 0000 		lds r28,index.1972
81
  84 009a D091 0000 		lds r29,(index.1972)+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 .L14
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 2196      		adiw r28,1
157
 160 0136 D093 0000 		sts (index.1972)+1,r29
158
 161 013a C093 0000 		sts index.1972,r28
159
 162               	.L14:
160
 163               	/* epilogue: frame size=0 */
161
 164 013e FF91      		pop r31
162
 165 0140 EF91      		pop r30
163
 166 0142 DF91      		pop r29
164
 167 0144 CF91      		pop r28
165
 168 0146 BF91      		pop r27
166
 169 0148 AF91      		pop r26
167
 170 014a 9F91      		pop r25
168
 171 014c 8F91      		pop r24
169
 172 014e 7F91      		pop r23
170
 173 0150 6F91      		pop r22
171
 174 0152 5F91      		pop r21
172
 175 0154 4F91      		pop r20
173
 176 0156 3F91      		pop r19
174
 177 0158 2F91      		pop r18
175
 178 015a 1F91      		pop r17
176
 179 015c 0F91      		pop r16
177
 180 015e 0F90      		pop __tmp_reg__
178
 181 0160 0FBE      		out __SREG__,__tmp_reg__
179
 182 0162 0F90      		pop __tmp_reg__
180
 183 0164 1F90      		pop __zero_reg__
181
 184 0166 1895      		reti
182
 185               	/* epilogue end (size=21) */
183
 186               	/* function __vector_12 size 162 (120) */
184
 188               	.global	NewPpmData
185
 189               		.data
186
 192               	NewPpmData:
187
 193 0000 01        		.byte	1
188
 194               		.lcomm index.1972,2
189
 195               		.lcomm AltICR.1970,2
190
 196               		.comm PPM_in,22,1
191
 197               		.comm PPM_diff,22,1
192
 198               		.comm DiffNick,2,1
193
 199               		.comm DiffRoll,2,1
194
 200               		.comm SenderOkay,1,1
195
 201               		.comm CosinusNickWinkel,1,1
196
 202               		.comm CosinusRollWinkel,1,1
197
 203               		.comm durchschnitt_northing,4,1
198
 204               		.comm durchschnitt_easting,4,1
199
 205               		.comm gps_p,2,1
200
 206               		.comm gps_d,2,1
201
 207               		.comm skal,2,1
202
 208               		.comm RemoteTasten,1,1
203
 209               		.comm Timeout,1,1
204
 210               		.comm IntegralNick,4,1
205
 211               		.comm IntegralNick2,4,1
206
 212               		.comm IntegralRoll,4,1
207
 213               		.comm IntegralRoll2,4,1
208
 214               		.comm Mess_IntegralNick,4,1
209
 215               		.comm Mess_IntegralNick2,4,1
210
 216               		.comm Mess_IntegralRoll,4,1
211
 217               		.comm Mess_IntegralRoll2,4,1
212
 218               		.comm Integral_Gier,4,1
213
 219               		.comm Mess_Integral_Gier,4,1
214
 220               		.comm h,1,1
215
 221               		.comm m,1,1
216
 222               		.comm s,1,1
217
 223               		.comm Motor_Vorne,1,1
218
 224               		.comm Motor_Hinten,1,1
219
 225               		.comm Motor_Rechts,1,1
220
 226               		.comm Motor_Links,1,1
221
 227               		.comm Count,1,1
222
 228               		.comm MotorWert,5,1
223
 229               		.comm StickNick,2,1
224
 230               		.comm StickRoll,2,1
225
 231               		.comm StickGier,2,1
226
 232               		.comm MotorenEin,1,1
227
 233               	/* File "rc.c": code  183 = 0x00b7 ( 140), prologues  21, epilogues  22 */
228
DEFINED SYMBOLS
229
                            *ABS*:00000000 rc.c
230
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccaNWzml.s:3      *ABS*:0000003f __SREG__
231
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccaNWzml.s:4      *ABS*:0000003e __SP_H__
232
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccaNWzml.s:5      *ABS*:0000003d __SP_L__
233
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccaNWzml.s:6      *ABS*:00000000 __tmp_reg__
234
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccaNWzml.s:7      *ABS*:00000001 __zero_reg__
235
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccaNWzml.s:13     .text:00000000 rc_sum_init
236
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccaNWzml.s:36     .text:0000002a __vector_12
237
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccaNWzml.s:194    .bss:00000002 AltICR.1970
238
                             .bss:00000000 index.1972
239
C:\DOKUME~1\CHRIST~1\LOKALE~1\Temp/ccaNWzml.s:192    .data:00000000 NewPpmData
240
                            *COM*:00000016 PPM_in
241
                            *COM*:00000001 SenderOkay
242
                            *COM*:00000016 PPM_diff
243
                            *COM*:00000002 DiffNick
244
                            *COM*:00000002 DiffRoll
245
                            *COM*:00000001 CosinusNickWinkel
246
                            *COM*:00000001 CosinusRollWinkel
247
                            *COM*:00000004 durchschnitt_northing
248
                            *COM*:00000004 durchschnitt_easting
249
                            *COM*:00000002 gps_p
250
                            *COM*:00000002 gps_d
251
                            *COM*:00000002 skal
252
                            *COM*:00000001 RemoteTasten
253
                            *COM*:00000001 Timeout
254
                            *COM*:00000004 IntegralNick
255
                            *COM*:00000004 IntegralNick2
256
                            *COM*:00000004 IntegralRoll
257
                            *COM*:00000004 IntegralRoll2
258
                            *COM*:00000004 Mess_IntegralNick
259
                            *COM*:00000004 Mess_IntegralNick2
260
                            *COM*:00000004 Mess_IntegralRoll
261
                            *COM*:00000004 Mess_IntegralRoll2
262
                            *COM*:00000004 Integral_Gier
263
                            *COM*:00000004 Mess_Integral_Gier
264
                            *COM*:00000001 h
265
                            *COM*:00000001 m
266
                            *COM*:00000001 s
267
                            *COM*:00000001 Motor_Vorne
268
                            *COM*:00000001 Motor_Hinten
269
                            *COM*:00000001 Motor_Rechts
270
                            *COM*:00000001 Motor_Links
271
                            *COM*:00000001 Count
272
                            *COM*:00000005 MotorWert
273
                            *COM*:00000002 StickNick
274
                            *COM*:00000002 StickRoll
275
                            *COM*:00000002 StickGier
276
                            *COM*:00000001 MotorenEin
277
 
278
UNDEFINED SYMBOLS
279
__do_copy_data
280
__do_clear_bss
281
AdNeutralGier
282
AdNeutralRoll
283
AdNeutralNick
284
__divmodhi4