Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
93 | salvo | 1 | 1 .file "uart.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 __vector_22 |
||
12 | 13 __vector_22: |
||
13 | 14 /* prologue: frame size=0 */ |
||
14 | 15 0000 1F92 push __zero_reg__ |
||
15 | 16 0002 0F92 push __tmp_reg__ |
||
16 | 17 0004 0FB6 in __tmp_reg__,__SREG__ |
||
17 | 18 0006 0F92 push __tmp_reg__ |
||
18 | 19 0008 1124 clr __zero_reg__ |
||
19 | 20 000a 8F93 push r24 |
||
20 | 21 000c 9F93 push r25 |
||
21 | 22 000e EF93 push r30 |
||
22 | 23 0010 FF93 push r31 |
||
23 | 24 /* prologue end (size=9) */ |
||
24 | 25 0012 8091 0000 lds r24,UebertragungAbgeschlossen |
||
25 | 26 0016 8823 tst r24 |
||
26 | 27 0018 01F4 brne .L2 |
||
27 | 28 001a 8091 0000 lds r24,ptr.1956 |
||
28 | 29 001e 9091 0000 lds r25,(ptr.1956)+1 |
||
29 | 30 0022 0196 adiw r24,1 |
||
30 | 31 0024 9093 0000 sts (ptr.1956)+1,r25 |
||
31 | 32 0028 8093 0000 sts ptr.1956,r24 |
||
32 | 33 002c FC01 movw r30,r24 |
||
33 | 34 002e E050 subi r30,lo8(-(SendeBuffer)) |
||
34 | 35 0030 F040 sbci r31,hi8(-(SendeBuffer)) |
||
35 | 36 0032 E081 ld r30,Z |
||
36 | 37 0034 ED30 cpi r30,lo8(13) |
||
37 | 38 0036 01F0 breq .L4 |
||
38 | 39 0038 8639 cpi r24,150 |
||
39 | 40 003a 9105 cpc r25,__zero_reg__ |
||
40 | 41 003c 01F4 brne .L6 |
||
41 | 42 .L4: |
||
42 | 43 003e 1092 0000 sts (ptr.1956)+1,__zero_reg__ |
||
43 | 44 0042 1092 0000 sts ptr.1956,__zero_reg__ |
||
44 | 45 0046 81E0 ldi r24,lo8(1) |
||
45 | 46 0048 8093 0000 sts UebertragungAbgeschlossen,r24 |
||
46 | 47 .L6: |
||
47 | 48 004c E093 C600 sts 198,r30 |
||
48 | 49 0050 00C0 rjmp .L8 |
||
49 | 50 .L2: |
||
50 | 51 0052 1092 0000 sts (ptr.1956)+1,__zero_reg__ |
||
51 | 52 0056 1092 0000 sts ptr.1956,__zero_reg__ |
||
52 | 53 .L8: |
||
53 | 54 /* epilogue: frame size=0 */ |
||
54 | 55 005a FF91 pop r31 |
||
55 | 56 005c EF91 pop r30 |
||
56 | 57 005e 9F91 pop r25 |
||
57 | 58 0060 8F91 pop r24 |
||
58 | 59 0062 0F90 pop __tmp_reg__ |
||
59 | 60 0064 0FBE out __SREG__,__tmp_reg__ |
||
60 | 61 0066 0F90 pop __tmp_reg__ |
||
61 | 62 0068 1F90 pop __zero_reg__ |
||
62 | 63 006a 1895 reti |
||
63 | 64 /* epilogue end (size=9) */ |
||
64 | 65 /* function __vector_22 size 54 (36) */ |
||
65 | 67 .global __vector_20 |
||
66 | 69 __vector_20: |
||
67 | 70 /* prologue: frame size=0 */ |
||
68 | 71 006c 1F92 push __zero_reg__ |
||
69 | 72 006e 0F92 push __tmp_reg__ |
||
70 | 73 0070 0FB6 in __tmp_reg__,__SREG__ |
||
71 | 74 0072 0F92 push __tmp_reg__ |
||
72 | 75 0074 1124 clr __zero_reg__ |
||
73 | 76 0076 2F93 push r18 |
||
74 | 77 0078 3F93 push r19 |
||
75 | 78 007a 4F93 push r20 |
||
76 | 79 007c 8F93 push r24 |
||
77 | 80 007e 9F93 push r25 |
||
78 | 81 0080 AF93 push r26 |
||
79 | 82 0082 BF93 push r27 |
||
80 | 83 0084 CF93 push r28 |
||
81 | 84 0086 DF93 push r29 |
||
82 | 85 0088 EF93 push r30 |
||
83 | 86 008a FF93 push r31 |
||
84 | 87 /* prologue end (size=16) */ |
||
85 | 88 008c 8091 C600 lds r24,198 |
||
86 | 89 0090 8093 0000 sts SioTmp,r24 |
||
87 | 90 0094 4091 0000 lds r20,buf_ptr.1972 |
||
88 | 91 0098 4639 cpi r20,lo8(-106) |
||
89 | 92 009a 00F0 brlo .L10 |
||
90 | 93 009c 1092 0000 sts UartState.1973,__zero_reg__ |
||
91 | 94 .L10: |
||
92 | 95 00a0 8091 0000 lds r24,SioTmp |
||
93 | 96 00a4 8D30 cpi r24,lo8(13) |
||
94 | 97 00a6 01F0 breq .+2 |
||
95 | 98 00a8 00C0 rjmp .L12 |
||
96 | 99 00aa 8091 0000 lds r24,UartState.1973 |
||
97 | 100 00ae 8230 cpi r24,lo8(2) |
||
98 | 101 00b0 01F0 breq .+2 |
||
99 | 102 00b2 00C0 rjmp .L12 |
||
100 | 103 00b4 1092 0000 sts UartState.1973,__zero_reg__ |
||
101 | 104 00b8 A42F mov r26,r20 |
||
102 | 105 00ba BB27 clr r27 |
||
103 | 106 00bc FD01 movw r30,r26 |
||
104 | 107 00be E050 subi r30,lo8(-(RxdBuffer-2)) |
||
105 | 108 00c0 F040 sbci r31,hi8(-(RxdBuffer-2)) |
||
106 | 109 00c2 3081 ld r19,Z |
||
107 | 110 00c4 ED01 movw r28,r26 |
||
108 | 111 00c6 C050 subi r28,lo8(-(RxdBuffer-1)) |
||
109 | 112 00c8 D040 sbci r29,hi8(-(RxdBuffer-1)) |
||
110 | 113 00ca 2881 ld r18,Y |
||
111 | 114 00cc 8091 0000 lds r24,crc.1969 |
||
112 | 115 00d0 9091 0000 lds r25,(crc.1969)+1 |
||
113 | 116 00d4 831B sub r24,r19 |
||
114 | 117 00d6 9109 sbc r25,__zero_reg__ |
||
115 | 118 00d8 821B sub r24,r18 |
||
116 | 119 00da 9109 sbc r25,__zero_reg__ |
||
117 | 120 00dc 9F70 andi r25,hi8(4095) |
||
118 | 121 00de 9093 0000 sts (crc.1969)+1,r25 |
||
119 | 122 00e2 8093 0000 sts crc.1969,r24 |
||
120 | 123 00e6 9C01 movw r18,r24 |
||
121 | 124 00e8 96E0 ldi r25,6 |
||
122 | 125 00ea 3695 1: lsr r19 |
||
123 | 126 00ec 2795 ror r18 |
||
124 | 127 00ee 9A95 dec r25 |
||
125 | 128 00f0 01F4 brne 1b |
||
126 | 129 00f2 235C subi r18,lo8(-(61)) |
||
127 | 130 00f4 2093 0000 sts crc1.1970,r18 |
||
128 | 131 00f8 982F mov r25,r24 |
||
129 | 132 00fa 9F73 andi r25,lo8(63) |
||
130 | 133 00fc 935C subi r25,lo8(-(61)) |
||
131 | 134 00fe 9093 0000 sts crc2.1971,r25 |
||
132 | 135 0102 8081 ld r24,Z |
||
133 | 136 0104 2817 cp r18,r24 |
||
134 | 137 0106 01F4 brne .L15 |
||
135 | 138 0108 8881 ld r24,Y |
||
136 | 139 010a 9817 cp r25,r24 |
||
137 | 140 010c 01F4 brne .L15 |
||
138 | 141 010e 91E0 ldi r25,lo8(1) |
||
139 | 142 0110 00C0 rjmp .L18 |
||
140 | 143 .L15: |
||
141 | 144 0112 8091 0000 lds r24,CntCrcError |
||
142 | 145 0116 8F5F subi r24,lo8(-(1)) |
||
143 | 146 0118 8093 0000 sts CntCrcError,r24 |
||
144 | 147 011c 90E0 ldi r25,lo8(0) |
||
145 | 148 .L18: |
||
146 | 149 011e 8091 0000 lds r24,NeuerDatensatzEmpfangen |
||
147 | 150 0122 8823 tst r24 |
||
148 | 151 0124 01F0 breq .+2 |
||
149 | 152 0126 00C0 rjmp .L33 |
||
150 | 153 0128 9923 tst r25 |
||
151 | 154 012a 01F4 brne .+2 |
||
152 | 155 012c 00C0 rjmp .L33 |
||
153 | 156 012e 81E0 ldi r24,lo8(1) |
||
154 | 157 0130 8093 0000 sts NeuerDatensatzEmpfangen,r24 |
||
155 | 158 0134 4093 0000 sts AnzahlEmpfangsBytes,r20 |
||
156 | 159 0138 A050 subi r26,lo8(-(RxdBuffer)) |
||
157 | 160 013a B040 sbci r27,hi8(-(RxdBuffer)) |
||
158 | 161 013c 8DE0 ldi r24,lo8(13) |
||
159 | 162 013e 8C93 st X,r24 |
||
160 | 163 0140 8091 0000 lds r24,RxdBuffer+2 |
||
161 | 164 0144 8235 cpi r24,lo8(82) |
||
162 | 165 0146 01F0 breq .+2 |
||
163 | 166 0148 00C0 rjmp .L33 |
||
164 | 167 014a 88E1 ldi r24,lo8(24) |
||
165 | 168 014c 90E0 ldi r25,hi8(24) |
||
166 | 169 014e 2CE0 ldi r18,lo8(12) |
||
167 | 170 /* #APP */ |
||
168 | 171 0150 0FB6 in __tmp_reg__,__SREG__ |
||
169 | 172 0152 F894 cli |
||
170 | 173 0154 A895 wdr |
||
171 | 174 0156 8093 6000 sts 96,r24 |
||
172 | 175 015a 0FBE out __SREG__,__tmp_reg__ |
||
173 | 176 015c 2093 6000 sts 96,r18 |
||
174 | 177 /* #NOAPP */ |
||
175 | 178 0160 00C0 rjmp .L33 |
||
176 | 179 .L12: |
||
177 | 180 0162 8091 0000 lds r24,UartState.1973 |
||
178 | 181 0166 8130 cpi r24,lo8(1) |
||
179 | 182 0168 01F0 breq .L25 |
||
180 | 183 016a 8130 cpi r24,lo8(1) |
||
181 | 184 016c 00F0 brlo .L24 |
||
182 | 185 016e 8230 cpi r24,lo8(2) |
||
183 | 186 0170 01F4 brne .L34 |
||
184 | 187 0172 00C0 rjmp .L26 |
||
185 | 188 .L24: |
||
186 | 189 0174 8091 0000 lds r24,SioTmp |
||
187 | 190 0178 8332 cpi r24,lo8(35) |
||
188 | 191 017a 01F4 brne .L27 |
||
189 | 192 017c 8091 0000 lds r24,NeuerDatensatzEmpfangen |
||
190 | 193 0180 8823 tst r24 |
||
191 | 194 0182 01F4 brne .L27 |
||
192 | 195 0184 81E0 ldi r24,lo8(1) |
||
193 | 196 0186 8093 0000 sts UartState.1973,r24 |
||
194 | 197 .L27: |
||
195 | 198 018a 8091 0000 lds r24,SioTmp |
||
196 | 199 018e 8093 0000 sts RxdBuffer,r24 |
||
197 | 200 0192 81E0 ldi r24,lo8(1) |
||
198 | 201 0194 8093 0000 sts buf_ptr.1972,r24 |
||
199 | 202 0198 8091 0000 lds r24,SioTmp |
||
200 | 203 019c 9927 clr r25 |
||
201 | 204 019e 00C0 rjmp .L35 |
||
202 | 205 .L25: |
||
203 | 206 01a0 82E0 ldi r24,lo8(2) |
||
204 | 207 01a2 8093 0000 sts UartState.1973,r24 |
||
205 | 208 01a6 E42F mov r30,r20 |
||
206 | 209 01a8 FF27 clr r31 |
||
207 | 210 01aa 8091 0000 lds r24,SioTmp |
||
208 | 211 01ae E050 subi r30,lo8(-(RxdBuffer)) |
||
209 | 212 01b0 F040 sbci r31,hi8(-(RxdBuffer)) |
||
210 | 213 01b2 8083 st Z,r24 |
||
211 | 214 .L37: |
||
212 | 215 01b4 4F5F subi r20,lo8(-(1)) |
||
213 | 216 01b6 4093 0000 sts buf_ptr.1972,r20 |
||
214 | 217 .L36: |
||
215 | 218 01ba 2091 0000 lds r18,SioTmp |
||
216 | 219 01be 8091 0000 lds r24,crc.1969 |
||
217 | 220 01c2 9091 0000 lds r25,(crc.1969)+1 |
||
218 | 221 01c6 820F add r24,r18 |
||
219 | 222 01c8 911D adc r25,__zero_reg__ |
||
220 | 223 .L35: |
||
221 | 224 01ca 9093 0000 sts (crc.1969)+1,r25 |
||
222 | 225 01ce 8093 0000 sts crc.1969,r24 |
||
223 | 226 01d2 00C0 rjmp .L33 |
||
224 | 227 .L26: |
||
225 | 228 01d4 E42F mov r30,r20 |
||
226 | 229 01d6 FF27 clr r31 |
||
227 | 230 01d8 8091 0000 lds r24,SioTmp |
||
228 | 231 01dc E050 subi r30,lo8(-(RxdBuffer)) |
||
229 | 232 01de F040 sbci r31,hi8(-(RxdBuffer)) |
||
230 | 233 01e0 8083 st Z,r24 |
||
231 | 234 01e2 4639 cpi r20,lo8(-106) |
||
232 | 235 01e4 00F0 brlo .L37 |
||
233 | 236 01e6 1092 0000 sts UartState.1973,__zero_reg__ |
||
234 | 237 01ea 00C0 rjmp .L36 |
||
235 | 238 .L34: |
||
236 | 239 01ec 1092 0000 sts UartState.1973,__zero_reg__ |
||
237 | 240 .L33: |
||
238 | 241 /* epilogue: frame size=0 */ |
||
239 | 242 01f0 FF91 pop r31 |
||
240 | 243 01f2 EF91 pop r30 |
||
241 | 244 01f4 DF91 pop r29 |
||
242 | 245 01f6 CF91 pop r28 |
||
243 | 246 01f8 BF91 pop r27 |
||
244 | 247 01fa AF91 pop r26 |
||
245 | 248 01fc 9F91 pop r25 |
||
246 | 249 01fe 8F91 pop r24 |
||
247 | 250 0200 4F91 pop r20 |
||
248 | 251 0202 3F91 pop r19 |
||
249 | 252 0204 2F91 pop r18 |
||
250 | 253 0206 0F90 pop __tmp_reg__ |
||
251 | 254 0208 0FBE out __SREG__,__tmp_reg__ |
||
252 | 255 020a 0F90 pop __tmp_reg__ |
||
253 | 256 020c 1F90 pop __zero_reg__ |
||
254 | 257 020e 1895 reti |
||
255 | 258 /* epilogue end (size=16) */ |
||
256 | 259 /* function __vector_20 size 215 (183) */ |
||
257 | 261 .global AddCRC |
||
258 | 263 AddCRC: |
||
259 | 264 /* prologue: frame size=0 */ |
||
260 | 265 /* prologue end (size=0) */ |
||
261 | 266 0210 DC01 movw r26,r24 |
||
262 | 267 0212 20E0 ldi r18,lo8(0) |
||
263 | 268 0214 30E0 ldi r19,hi8(0) |
||
264 | 269 0216 40E0 ldi r20,lo8(0) |
||
265 | 270 0218 50E0 ldi r21,hi8(0) |
||
266 | 271 021a E0E0 ldi r30,lo8(SendeBuffer) |
||
267 | 272 021c F0E0 ldi r31,hi8(SendeBuffer) |
||
268 | 273 021e 00C0 rjmp .L39 |
||
269 | 274 .L40: |
||
270 | 275 0220 8191 ld r24,Z+ |
||
271 | 276 0222 280F add r18,r24 |
||
272 | 277 0224 311D adc r19,__zero_reg__ |
||
273 | 278 0226 4F5F subi r20,lo8(-(1)) |
||
274 | 279 0228 5F4F sbci r21,hi8(-(1)) |
||
275 | 280 .L39: |
||
276 | 281 022a 4A17 cp r20,r26 |
||
277 | 282 022c 5B07 cpc r21,r27 |
||
278 | 283 022e 01F4 brne .L40 |
||
279 | 284 0230 3F70 andi r19,hi8(4095) |
||
280 | 285 0232 C901 movw r24,r18 |
||
281 | 286 0234 36E0 ldi r19,6 |
||
282 | 287 0236 9695 1: lsr r25 |
||
283 | 288 0238 8795 ror r24 |
||
284 | 289 023a 3A95 dec r19 |
||
285 | 290 023c 01F4 brne 1b |
||
286 | 291 023e 835C subi r24,lo8(-(61)) |
||
287 | 292 0240 FD01 movw r30,r26 |
||
288 | 293 0242 E050 subi r30,lo8(-(SendeBuffer)) |
||
289 | 294 0244 F040 sbci r31,hi8(-(SendeBuffer)) |
||
290 | 295 0246 8083 st Z,r24 |
||
291 | 296 0248 1196 adiw r26,1 |
||
292 | 297 024a 2F73 andi r18,lo8(63) |
||
293 | 298 024c 235C subi r18,lo8(-(61)) |
||
294 | 299 024e FD01 movw r30,r26 |
||
295 | 300 0250 E050 subi r30,lo8(-(SendeBuffer)) |
||
296 | 301 0252 F040 sbci r31,hi8(-(SendeBuffer)) |
||
297 | 302 0254 2083 st Z,r18 |
||
298 | 303 0256 A050 subi r26,lo8(-(SendeBuffer+1)) |
||
299 | 304 0258 B040 sbci r27,hi8(-(SendeBuffer+1)) |
||
300 | 305 025a 8DE0 ldi r24,lo8(13) |
||
301 | 306 025c 8C93 st X,r24 |
||
302 | 307 025e 1092 0000 sts UebertragungAbgeschlossen,__zero_reg__ |
||
303 | 308 0262 8091 0000 lds r24,SendeBuffer |
||
304 | 309 0266 8093 C600 sts 198,r24 |
||
305 | 310 /* epilogue: frame size=0 */ |
||
306 | 311 026a 0895 ret |
||
307 | 312 /* epilogue end (size=1) */ |
||
308 | 313 /* function AddCRC size 47 (46) */ |
||
309 | 315 .global SendOutData |
||
310 | 317 SendOutData: |
||
311 | 318 /* prologue: frame size=0 */ |
||
312 | 319 026c EF92 push r14 |
||
313 | 320 026e FF92 push r15 |
||
314 | 321 0270 0F93 push r16 |
||
315 | 322 0272 1F93 push r17 |
||
316 | 323 0274 CF93 push r28 |
||
317 | 324 0276 DF93 push r29 |
||
318 | 325 /* prologue end (size=6) */ |
||
319 | 326 0278 7A01 movw r14,r20 |
||
320 | 327 027a 722F mov r23,r18 |
||
321 | 328 027c 93E2 ldi r25,lo8(35) |
||
322 | 329 027e 9093 0000 sts SendeBuffer,r25 |
||
323 | 330 0282 6093 0000 sts SendeBuffer+1,r22 |
||
324 | 331 0286 8093 0000 sts SendeBuffer+2,r24 |
||
325 | 332 028a 03E0 ldi r16,lo8(3) |
||
326 | 333 028c 10E0 ldi r17,hi8(3) |
||
327 | 334 028e 60E0 ldi r22,lo8(0) |
||
328 | 335 0290 A0E0 ldi r26,lo8(SendeBuffer+3) |
||
329 | 336 0292 B0E0 ldi r27,hi8(SendeBuffer+3) |
||
330 | 337 0294 00C0 rjmp .L44 |
||
331 | 338 .L45: |
||
332 | 339 0296 F701 movw r30,r14 |
||
333 | 340 0298 E60F add r30,r22 |
||
334 | 341 029a F11D adc r31,__zero_reg__ |
||
335 | 342 029c 9081 ld r25,Z |
||
336 | 343 029e 6F5F subi r22,lo8(-(1)) |
||
337 | 344 02a0 7150 subi r23,lo8(-(-1)) |
||
338 | 345 02a2 01F4 brne .L46 |
||
339 | 346 02a4 E0E0 ldi r30,lo8(0) |
||
340 | 347 02a6 40E0 ldi r20,lo8(0) |
||
341 | 348 02a8 00C0 rjmp .L48 |
||
342 | 349 .L46: |
||
343 | 350 02aa F701 movw r30,r14 |
||
344 | 351 02ac E60F add r30,r22 |
||
345 | 352 02ae F11D adc r31,__zero_reg__ |
||
346 | 353 02b0 4081 ld r20,Z |
||
347 | 354 02b2 6F5F subi r22,lo8(-(1)) |
||
348 | 355 02b4 7150 subi r23,lo8(-(-1)) |
||
349 | 356 02b6 01F4 brne .L49 |
||
350 | 357 02b8 E0E0 ldi r30,lo8(0) |
||
351 | 358 02ba 00C0 rjmp .L48 |
||
352 | 359 .L49: |
||
353 | 360 02bc F701 movw r30,r14 |
||
354 | 361 02be E60F add r30,r22 |
||
355 | 362 02c0 F11D adc r31,__zero_reg__ |
||
356 | 363 02c2 E081 ld r30,Z |
||
357 | 364 02c4 6F5F subi r22,lo8(-(1)) |
||
358 | 365 02c6 7150 subi r23,lo8(-(-1)) |
||
359 | 366 .L48: |
||
360 | 367 02c8 892F mov r24,r25 |
||
361 | 368 02ca 8695 lsr r24 |
||
362 | 369 02cc 8695 lsr r24 |
||
363 | 370 02ce 835C subi r24,lo8(-(61)) |
||
364 | 371 02d0 8C93 st X,r24 |
||
365 | 372 02d2 5527 clr r21 |
||
366 | 373 02d4 892F mov r24,r25 |
||
367 | 374 02d6 9927 clr r25 |
||
368 | 375 02d8 8370 andi r24,lo8(3) |
||
369 | 376 02da 9070 andi r25,hi8(3) |
||
370 | 377 02dc 24E0 ldi r18,4 |
||
371 | 378 02de 880F 1: lsl r24 |
||
372 | 379 02e0 991F rol r25 |
||
373 | 380 02e2 2A95 dec r18 |
||
374 | 381 02e4 01F4 brne 1b |
||
375 | 382 02e6 9A01 movw r18,r20 |
||
376 | 383 02e8 94E0 ldi r25,4 |
||
377 | 384 02ea 3695 1: lsr r19 |
||
378 | 385 02ec 2795 ror r18 |
||
379 | 386 02ee 9A95 dec r25 |
||
380 | 387 02f0 01F4 brne 1b |
||
381 | 388 02f2 822B or r24,r18 |
||
382 | 389 02f4 835C subi r24,lo8(-(61)) |
||
383 | 390 02f6 ED01 movw r28,r26 |
||
384 | 391 02f8 8983 std Y+1,r24 |
||
385 | 392 02fa 4F70 andi r20,lo8(15) |
||
386 | 393 02fc 5070 andi r21,hi8(15) |
||
387 | 394 02fe 440F lsl r20 |
||
388 | 395 0300 551F rol r21 |
||
389 | 396 0302 440F lsl r20 |
||
390 | 397 0304 551F rol r21 |
||
391 | 398 0306 8E2F mov r24,r30 |
||
392 | 399 0308 8295 swap r24 |
||
393 | 400 030a 8695 lsr r24 |
||
394 | 401 030c 8695 lsr r24 |
||
395 | 402 030e 8370 andi r24,0x3 |
||
396 | 403 0310 842B or r24,r20 |
||
397 | 404 0312 835C subi r24,lo8(-(61)) |
||
398 | 405 0314 8A83 std Y+2,r24 |
||
399 | 406 0316 EF73 andi r30,lo8(63) |
||
400 | 407 0318 E35C subi r30,lo8(-(61)) |
||
401 | 408 031a EB83 std Y+3,r30 |
||
402 | 409 031c 0C5F subi r16,lo8(-(4)) |
||
403 | 410 031e 1F4F sbci r17,hi8(-(4)) |
||
404 | 411 0320 1496 adiw r26,4 |
||
405 | 412 .L44: |
||
406 | 413 0322 7723 tst r23 |
||
407 | 414 0324 01F0 breq .+2 |
||
408 | 415 0326 00C0 rjmp .L45 |
||
409 | 416 0328 C801 movw r24,r16 |
||
410 | 417 032a 0E94 0000 call AddCRC |
||
411 | 418 /* epilogue: frame size=0 */ |
||
412 | 419 032e DF91 pop r29 |
||
413 | 420 0330 CF91 pop r28 |
||
414 | 421 0332 1F91 pop r17 |
||
415 | 422 0334 0F91 pop r16 |
||
416 | 423 0336 FF90 pop r15 |
||
417 | 424 0338 EF90 pop r14 |
||
418 | 425 033a 0895 ret |
||
419 | 426 /* epilogue end (size=7) */ |
||
420 | 427 /* function SendOutData size 106 (93) */ |
||
421 | 429 .global Decode64 |
||
422 | 431 Decode64: |
||
423 | 432 /* prologue: frame size=0 */ |
||
424 | 433 033c 1F93 push r17 |
||
425 | 434 033e CF93 push r28 |
||
426 | 435 0340 DF93 push r29 |
||
427 | 436 /* prologue end (size=3) */ |
||
428 | 437 0342 EC01 movw r28,r24 |
||
429 | 438 0344 70E0 ldi r23,lo8(0) |
||
430 | 439 0346 A22F mov r26,r18 |
||
431 | 440 0348 BB27 clr r27 |
||
432 | 441 034a 1297 sbiw r26,2 |
||
433 | 442 034c 00C0 rjmp .L54 |
||
434 | 443 .L55: |
||
435 | 444 034e E42F mov r30,r20 |
||
436 | 445 0350 FF27 clr r31 |
||
437 | 446 0352 E050 subi r30,lo8(-(RxdBuffer)) |
||
438 | 447 0354 F040 sbci r31,hi8(-(RxdBuffer)) |
||
439 | 448 0356 3081 ld r19,Z |
||
440 | 449 0358 4F5F subi r20,lo8(-(1)) |
||
441 | 450 035a E42F mov r30,r20 |
||
442 | 451 035c FF27 clr r31 |
||
443 | 452 035e E050 subi r30,lo8(-(RxdBuffer)) |
||
444 | 453 0360 F040 sbci r31,hi8(-(RxdBuffer)) |
||
445 | 454 0362 5081 ld r21,Z |
||
446 | 455 0364 4F5F subi r20,lo8(-(1)) |
||
447 | 456 0366 E42F mov r30,r20 |
||
448 | 457 0368 FF27 clr r31 |
||
449 | 458 036a E050 subi r30,lo8(-(RxdBuffer)) |
||
450 | 459 036c F040 sbci r31,hi8(-(RxdBuffer)) |
||
451 | 460 036e 1081 ld r17,Z |
||
452 | 461 0370 4F5F subi r20,lo8(-(1)) |
||
453 | 462 0372 E42F mov r30,r20 |
||
454 | 463 0374 FF27 clr r31 |
||
455 | 464 0376 E050 subi r30,lo8(-(RxdBuffer)) |
||
456 | 465 0378 F040 sbci r31,hi8(-(RxdBuffer)) |
||
457 | 466 037a 2081 ld r18,Z |
||
458 | 467 037c 4F5F subi r20,lo8(-(1)) |
||
459 | 468 037e 842F mov r24,r20 |
||
460 | 469 0380 9927 clr r25 |
||
461 | 470 0382 A817 cp r26,r24 |
||
462 | 471 0384 B907 cpc r27,r25 |
||
463 | 472 0386 04F0 brlt .L60 |
||
464 | 473 0388 5D53 subi r21,lo8(-(-61)) |
||
465 | 474 038a FE01 movw r30,r28 |
||
466 | 475 038c E70F add r30,r23 |
||
467 | 476 038e F11D adc r31,__zero_reg__ |
||
468 | 477 0390 3D53 subi r19,lo8(-(-61)) |
||
469 | 478 0392 330F lsl r19 |
||
470 | 479 0394 330F lsl r19 |
||
471 | 480 0396 852F mov r24,r21 |
||
472 | 481 0398 8295 swap r24 |
||
473 | 482 039a 8F70 andi r24,0x0f |
||
474 | 483 039c 382B or r19,r24 |
||
475 | 484 039e 3083 st Z,r19 |
||
476 | 485 03a0 6130 cpi r22,lo8(1) |
||
477 | 486 03a2 01F0 breq .L60 |
||
478 | 487 03a4 912F mov r25,r17 |
||
479 | 488 03a6 9D53 subi r25,lo8(-(-61)) |
||
480 | 489 03a8 7F5F subi r23,lo8(-(1)) |
||
481 | 490 03aa FE01 movw r30,r28 |
||
482 | 491 03ac E70F add r30,r23 |
||
483 | 492 03ae F11D adc r31,__zero_reg__ |
||
484 | 493 03b0 7150 subi r23,lo8(-(-1)) |
||
485 | 494 03b2 5295 swap r21 |
||
486 | 495 03b4 507F andi r21,0xf0 |
||
487 | 496 03b6 892F mov r24,r25 |
||
488 | 497 03b8 8695 lsr r24 |
||
489 | 498 03ba 8695 lsr r24 |
||
490 | 499 03bc 582B or r21,r24 |
||
491 | 500 03be 5083 st Z,r21 |
||
492 | 501 03c0 6350 subi r22,lo8(-(-3)) |
||
493 | 502 03c2 6F3F cpi r22,lo8(-1) |
||
494 | 503 03c4 01F0 breq .L60 |
||
495 | 504 03c6 7E5F subi r23,lo8(-(2)) |
||
496 | 505 03c8 FE01 movw r30,r28 |
||
497 | 506 03ca E70F add r30,r23 |
||
498 | 507 03cc F11D adc r31,__zero_reg__ |
||
499 | 508 03ce 9295 swap r25 |
||
500 | 509 03d0 990F lsl r25 |
||
501 | 510 03d2 990F lsl r25 |
||
502 | 511 03d4 907C andi r25,0xc0 |
||
503 | 512 03d6 2D53 subi r18,lo8(-(-61)) |
||
504 | 513 03d8 922B or r25,r18 |
||
505 | 514 03da 9083 st Z,r25 |
||
506 | 515 03dc 7F5F subi r23,lo8(-(1)) |
||
507 | 516 .L54: |
||
508 | 517 03de 6623 tst r22 |
||
509 | 518 03e0 01F0 breq .+2 |
||
510 | 519 03e2 00C0 rjmp .L55 |
||
511 | 520 .L60: |
||
512 | 521 /* epilogue: frame size=0 */ |
||
513 | 522 03e4 DF91 pop r29 |
||
514 | 523 03e6 CF91 pop r28 |
||
515 | 524 03e8 1F91 pop r17 |
||
516 | 525 03ea 0895 ret |
||
517 | 526 /* epilogue end (size=4) */ |
||
518 | 527 /* function Decode64 size 88 (81) */ |
||
519 | 529 .global uart_putchar |
||
520 | 531 uart_putchar: |
||
521 | 532 /* prologue: frame size=0 */ |
||
522 | 533 03ec 1F93 push r17 |
||
523 | 534 /* prologue end (size=1) */ |
||
524 | 535 03ee 182F mov r17,r24 |
||
525 | 536 03f0 8A30 cpi r24,lo8(10) |
||
526 | 537 03f2 01F4 brne .L66 |
||
527 | 538 03f4 8DE0 ldi r24,lo8(13) |
||
528 | 539 03f6 0E94 0000 call uart_putchar |
||
529 | 540 .L66: |
||
530 | 541 03fa 8091 C000 lds r24,192 |
||
531 | 542 03fe 85FF sbrs r24,5 |
||
532 | 543 0400 00C0 rjmp .L66 |
||
533 | 544 0402 1093 C600 sts 198,r17 |
||
534 | 545 0406 80E0 ldi r24,lo8(0) |
||
535 | 546 0408 90E0 ldi r25,hi8(0) |
||
536 | 547 /* epilogue: frame size=0 */ |
||
537 | 548 040a 1F91 pop r17 |
||
538 | 549 040c 0895 ret |
||
539 | 550 /* epilogue end (size=2) */ |
||
540 | 551 /* function uart_putchar size 17 (14) */ |
||
541 | 553 .global WriteProgramData |
||
542 | 555 WriteProgramData: |
||
543 | 556 /* prologue: frame size=0 */ |
||
544 | 557 /* prologue end (size=0) */ |
||
545 | 558 /* epilogue: frame size=0 */ |
||
546 | 559 040e 0895 ret |
||
547 | 560 /* epilogue end (size=1) */ |
||
548 | 561 /* function WriteProgramData size 1 (0) */ |
||
549 | 563 .global UART_Init |
||
550 | 565 UART_Init: |
||
551 | 566 /* prologue: frame size=0 */ |
||
552 | 567 /* prologue end (size=0) */ |
||
553 | 568 0410 E1EC ldi r30,lo8(193) |
||
554 | 569 0412 F0E0 ldi r31,hi8(193) |
||
555 | 570 0414 88E1 ldi r24,lo8(24) |
||
556 | 571 0416 8083 st Z,r24 |
||
557 | 572 0418 A0EC ldi r26,lo8(192) |
||
558 | 573 041a B0E0 ldi r27,hi8(192) |
||
559 | 574 041c 8C91 ld r24,X |
||
560 | 575 041e 8260 ori r24,lo8(2) |
||
561 | 576 0420 8C93 st X,r24 |
||
562 | 577 0422 8081 ld r24,Z |
||
563 | 578 0424 8068 ori r24,lo8(-128) |
||
564 | 579 0426 8083 st Z,r24 |
||
565 | 580 0428 8081 ld r24,Z |
||
566 | 581 042a 8064 ori r24,lo8(64) |
||
567 | 582 042c 8083 st Z,r24 |
||
568 | 583 042e 8AE2 ldi r24,lo8(42) |
||
569 | 584 0430 8093 C400 sts 196,r24 |
||
570 | 585 0434 88EC ldi r24,lo8(200) |
||
571 | 586 0436 90E0 ldi r25,hi8(200) |
||
572 | 587 0438 0E94 0000 call SetDelay |
||
573 | 588 043c 9093 0000 sts (Debug_Timer)+1,r25 |
||
574 | 589 0440 8093 0000 sts Debug_Timer,r24 |
||
575 | 590 /* epilogue: frame size=0 */ |
||
576 | 591 0444 0895 ret |
||
577 | 592 /* epilogue end (size=1) */ |
||
578 | 593 /* function UART_Init size 27 (26) */ |
||
579 | 595 .global DatenUebertragung |
||
580 | 597 DatenUebertragung: |
||
581 | 598 /* prologue: frame size=0 */ |
||
582 | 599 /* prologue end (size=0) */ |
||
583 | 600 0446 8091 0000 lds r24,UebertragungAbgeschlossen |
||
584 | 601 044a 8823 tst r24 |
||
585 | 602 044c 01F4 brne .+2 |
||
586 | 603 044e 00C0 rjmp .L90 |
||
587 | 604 0450 8091 0000 lds r24,DebugGetAnforderung |
||
588 | 605 0454 8823 tst r24 |
||
589 | 606 0456 01F0 breq .L76 |
||
590 | 607 0458 8091 0000 lds r24,UebertragungAbgeschlossen |
||
591 | 608 045c 8823 tst r24 |
||
592 | 609 045e 01F0 breq .L76 |
||
593 | 610 0460 2BE0 ldi r18,lo8(11) |
||
594 | 611 0462 40E0 ldi r20,lo8(DebugIn) |
||
595 | 612 0464 50E0 ldi r21,hi8(DebugIn) |
||
596 | 613 0466 6091 0000 lds r22,MeineSlaveAdresse |
||
597 | 614 046a 87E4 ldi r24,lo8(71) |
||
598 | 615 046c 0E94 0000 call SendOutData |
||
599 | 616 0470 1092 0000 sts DebugGetAnforderung,__zero_reg__ |
||
600 | 617 .L76: |
||
601 | 618 0474 8091 0000 lds r24,Debug_Timer |
||
602 | 619 0478 9091 0000 lds r25,(Debug_Timer)+1 |
||
603 | 620 047c 0E94 0000 call CheckDelay |
||
604 | 621 0480 8823 tst r24 |
||
605 | 622 0482 01F4 brne .L79 |
||
606 | 623 0484 8091 0000 lds r24,DebugDataAnforderung |
||
607 | 624 0488 8823 tst r24 |
||
608 | 625 048a 01F0 breq .L81 |
||
609 | 626 .L79: |
||
610 | 627 048c 8091 0000 lds r24,UebertragungAbgeschlossen |
||
611 | 628 0490 8823 tst r24 |
||
612 | 629 0492 01F0 breq .L81 |
||
613 | 630 0494 22E3 ldi r18,lo8(50) |
||
614 | 631 0496 40E0 ldi r20,lo8(DebugOut) |
||
615 | 632 0498 50E0 ldi r21,hi8(DebugOut) |
||
616 | 633 049a 6091 0000 lds r22,MeineSlaveAdresse |
||
617 | 634 049e 84E4 ldi r24,lo8(68) |
||
618 | 635 04a0 0E94 0000 call SendOutData |
||
619 | 636 04a4 1092 0000 sts DebugDataAnforderung,__zero_reg__ |
||
620 | 637 04a8 8AEF ldi r24,lo8(250) |
||
621 | 638 04aa 90E0 ldi r25,hi8(250) |
||
622 | 639 04ac 0E94 0000 call SetDelay |
||
623 | 640 04b0 9093 0000 sts (Debug_Timer)+1,r25 |
||
624 | 641 04b4 8093 0000 sts Debug_Timer,r24 |
||
625 | 642 .L81: |
||
626 | 643 04b8 8091 0000 lds r24,DebugDisplayAnforderung |
||
627 | 644 04bc 8823 tst r24 |
||
628 | 645 04be 01F0 breq .L83 |
||
629 | 646 04c0 8091 0000 lds r24,UebertragungAbgeschlossen |
||
630 | 647 04c4 8823 tst r24 |
||
631 | 648 04c6 01F0 breq .L83 |
||
632 | 649 04c8 0E94 0000 call Menu |
||
633 | 650 04cc 1092 0000 sts DebugDisplayAnforderung,__zero_reg__ |
||
634 | 651 04d0 8091 0000 lds r24,dis_zeile.2217 |
||
635 | 652 04d4 8F5F subi r24,lo8(-(1)) |
||
636 | 653 04d6 8093 0000 sts dis_zeile.2217,r24 |
||
637 | 654 04da 8430 cpi r24,lo8(4) |
||
638 | 655 04dc 01F4 brne .L86 |
||
639 | 656 04de 1092 0000 sts dis_zeile.2217,__zero_reg__ |
||
640 | 657 .L86: |
||
641 | 658 04e2 8091 0000 lds r24,dis_zeile.2217 |
||
642 | 659 04e6 44E1 ldi r20,lo8(20) |
||
643 | 660 04e8 849F mul r24,r20 |
||
644 | 661 04ea A001 movw r20,r0 |
||
645 | 662 04ec 1124 clr r1 |
||
646 | 663 04ee 4050 subi r20,lo8(-(DisplayBuff)) |
||
647 | 664 04f0 5040 sbci r21,hi8(-(DisplayBuff)) |
||
648 | 665 04f2 24E1 ldi r18,lo8(20) |
||
649 | 666 04f4 60E0 ldi r22,lo8(0) |
||
650 | 667 04f6 805D subi r24,lo8(-(48)) |
||
651 | 668 04f8 0E94 0000 call SendOutData |
||
652 | 669 .L83: |
||
653 | 670 04fc 8091 0000 lds r24,GetVersionAnforderung |
||
654 | 671 0500 8823 tst r24 |
||
655 | 672 0502 01F0 breq .L90 |
||
656 | 673 0504 8091 0000 lds r24,UebertragungAbgeschlossen |
||
657 | 674 0508 8823 tst r24 |
||
658 | 675 050a 01F0 breq .L90 |
||
659 | 676 050c 2AE0 ldi r18,lo8(10) |
||
660 | 677 050e 40E0 ldi r20,lo8(VersionInfo) |
||
661 | 678 0510 50E0 ldi r21,hi8(VersionInfo) |
||
662 | 679 0512 6091 0000 lds r22,MeineSlaveAdresse |
||
663 | 680 0516 86E5 ldi r24,lo8(86) |
||
664 | 681 0518 0E94 0000 call SendOutData |
||
665 | 682 051c 1092 0000 sts GetVersionAnforderung,__zero_reg__ |
||
666 | 683 .L90: |
||
667 | 684 0520 0895 ret |
||
668 | 685 /* epilogue: frame size=0 */ |
||
669 | 686 /* epilogue: noreturn */ |
||
670 | 687 /* epilogue end (size=0) */ |
||
671 | 688 /* function DatenUebertragung size 110 (110) */ |
||
672 | 690 .global BearbeiteRxDaten |
||
673 | 692 BearbeiteRxDaten: |
||
674 | 693 /* prologue: frame size=2 */ |
||
675 | 694 0522 1F93 push r17 |
||
676 | 695 0524 CF93 push r28 |
||
677 | 696 0526 DF93 push r29 |
||
678 | 697 0528 CDB7 in r28,__SP_L__ |
||
679 | 698 052a DEB7 in r29,__SP_H__ |
||
680 | 699 052c 2297 sbiw r28,2 |
||
681 | 700 052e 0FB6 in __tmp_reg__,__SREG__ |
||
682 | 701 0530 F894 cli |
||
683 | 702 0532 DEBF out __SP_H__,r29 |
||
684 | 703 0534 0FBE out __SREG__,__tmp_reg__ |
||
685 | 704 0536 CDBF out __SP_L__,r28 |
||
686 | 705 /* prologue end (size=11) */ |
||
687 | 706 0538 8091 0000 lds r24,NeuerDatensatzEmpfangen |
||
688 | 707 053c 8823 tst r24 |
||
689 | 708 053e 01F4 brne .+2 |
||
690 | 709 0540 00C0 rjmp .L107 |
||
691 | 710 0542 8FEF ldi r24,lo8(-1) |
||
692 | 711 0544 8093 0000 sts PcZugriff,r24 |
||
693 | 712 0548 8091 0000 lds r24,RxdBuffer+2 |
||
694 | 713 054c 8137 cpi r24,lo8(113) |
||
695 | 714 054e 00F4 brsh .L102 |
||
696 | 715 0550 8C36 cpi r24,lo8(108) |
||
697 | 716 0552 00F0 brlo .+2 |
||
698 | 717 0554 00C0 rjmp .L98 |
||
699 | 718 0556 8736 cpi r24,lo8(103) |
||
700 | 719 0558 01F4 brne .+2 |
||
701 | 720 055a 00C0 rjmp .L96 |
||
702 | 721 055c 8836 cpi r24,lo8(104) |
||
703 | 722 055e 01F0 breq .L97 |
||
704 | 723 0560 8336 cpi r24,lo8(99) |
||
705 | 724 0562 01F0 breq .+2 |
||
706 | 725 0564 00C0 rjmp .L94 |
||
707 | 726 0566 00C0 rjmp .L95 |
||
708 | 727 .L102: |
||
709 | 728 0568 8437 cpi r24,lo8(116) |
||
710 | 729 056a 01F0 breq .L100 |
||
711 | 730 056c 8637 cpi r24,lo8(118) |
||
712 | 731 056e 01F0 breq .L101 |
||
713 | 732 0570 8137 cpi r24,lo8(113) |
||
714 | 733 0572 01F0 breq .+2 |
||
715 | 734 0574 00C0 rjmp .L94 |
||
716 | 735 0576 00C0 rjmp .L99 |
||
717 | 736 .L95: |
||
718 | 737 0578 2091 0000 lds r18,AnzahlEmpfangsBytes |
||
719 | 738 057c 43E0 ldi r20,lo8(3) |
||
720 | 739 057e 6BE0 ldi r22,lo8(11) |
||
721 | 740 0580 80E0 ldi r24,lo8(DebugIn) |
||
722 | 741 0582 90E0 ldi r25,hi8(DebugIn) |
||
723 | 742 0584 0E94 0000 call Decode64 |
||
724 | 743 0588 8091 0000 lds r24,RemoteTasten |
||
725 | 744 058c 9091 0000 lds r25,DebugIn+2 |
||
726 | 745 0590 892B or r24,r25 |
||
727 | 746 0592 8093 0000 sts RemoteTasten,r24 |
||
728 | 747 0596 81E0 ldi r24,lo8(1) |
||
729 | 748 0598 8093 0000 sts DebugDataAnforderung,r24 |
||
730 | 749 059c 00C0 rjmp .L94 |
||
731 | 750 .L97: |
||
732 | 751 059e 2091 0000 lds r18,AnzahlEmpfangsBytes |
||
733 | 752 05a2 43E0 ldi r20,lo8(3) |
||
734 | 753 05a4 62E0 ldi r22,lo8(2) |
||
735 | 754 05a6 CE01 movw r24,r28 |
||
736 | 755 05a8 0196 adiw r24,1 |
||
737 | 756 05aa 0E94 0000 call Decode64 |
||
738 | 757 05ae 8091 0000 lds r24,RemoteTasten |
||
739 | 758 05b2 9981 ldd r25,Y+1 |
||
740 | 759 05b4 892B or r24,r25 |
||
741 | 760 05b6 8093 0000 sts RemoteTasten,r24 |
||
742 | 761 05ba 81E0 ldi r24,lo8(1) |
||
743 | 762 05bc 8093 0000 sts DebugDisplayAnforderung,r24 |
||
744 | 763 05c0 00C0 rjmp .L94 |
||
745 | 764 .L100: |
||
746 | 765 05c2 2091 0000 lds r18,AnzahlEmpfangsBytes |
||
747 | 766 05c6 43E0 ldi r20,lo8(3) |
||
748 | 767 05c8 64E0 ldi r22,lo8(4) |
||
749 | 768 05ca 80E0 ldi r24,lo8(MotorTest) |
||
750 | 769 05cc 90E0 ldi r25,hi8(MotorTest) |
||
751 | 770 05ce 0E94 0000 call Decode64 |
||
752 | 771 05d2 00C0 rjmp .L94 |
||
753 | 772 .L101: |
||
754 | 773 05d4 81E0 ldi r24,lo8(1) |
||
755 | 774 05d6 8093 0000 sts GetVersionAnforderung,r24 |
||
756 | 775 05da 00C0 rjmp .L94 |
||
757 | 776 .L96: |
||
758 | 777 05dc 81E0 ldi r24,lo8(1) |
||
759 | 778 05de 8093 0000 sts DebugGetAnforderung,r24 |
||
760 | 779 05e2 00C0 rjmp .L94 |
||
761 | 780 .L99: |
||
762 | 781 05e4 2091 0000 lds r18,AnzahlEmpfangsBytes |
||
763 | 782 05e8 43E0 ldi r20,lo8(3) |
||
764 | 783 05ea 62E0 ldi r22,lo8(2) |
||
765 | 784 05ec CE01 movw r24,r28 |
||
766 | 785 05ee 0196 adiw r24,1 |
||
767 | 786 05f0 0E94 0000 call Decode64 |
||
768 | 787 05f4 8981 ldd r24,Y+1 |
||
769 | 788 05f6 8F3F cpi r24,lo8(-1) |
||
770 | 789 05f8 01F0 breq .L103 |
||
771 | 790 05fa 8630 cpi r24,lo8(6) |
||
772 | 791 05fc 00F0 brlo .L105 |
||
773 | 792 05fe 85E0 ldi r24,lo8(5) |
||
774 | 793 0600 8983 std Y+1,r24 |
||
775 | 794 .L105: |
||
776 | 795 0602 4AE3 ldi r20,lo8(58) |
||
777 | 796 0604 60E0 ldi r22,lo8(EE_Parameter) |
||
778 | 797 0606 70E0 ldi r23,hi8(EE_Parameter) |
||
779 | 798 0608 8981 ldd r24,Y+1 |
||
780 | 799 060a 0E94 0000 call ReadParameterSet |
||
781 | 800 060e 8981 ldd r24,Y+1 |
||
782 | 801 0610 2AE3 ldi r18,lo8(58) |
||
783 | 802 0612 40E0 ldi r20,lo8(EE_Parameter) |
||
784 | 803 0614 50E0 ldi r21,hi8(EE_Parameter) |
||
785 | 804 0616 6091 0000 lds r22,MeineSlaveAdresse |
||
786 | 805 061a 00C0 rjmp .L108 |
||
787 | 806 .L103: |
||
788 | 807 061c 1091 0000 lds r17,MeineSlaveAdresse |
||
789 | 808 0620 0E94 0000 call GetActiveParamSetNumber |
||
790 | 809 0624 2AE3 ldi r18,lo8(58) |
||
791 | 810 0626 40E0 ldi r20,lo8(EE_Parameter) |
||
792 | 811 0628 50E0 ldi r21,hi8(EE_Parameter) |
||
793 | 812 062a 612F mov r22,r17 |
||
794 | 813 .L108: |
||
795 | 814 062c 855B subi r24,lo8(-(75)) |
||
796 | 815 062e 0E94 0000 call SendOutData |
||
797 | 816 0632 00C0 rjmp .L94 |
||
798 | 817 .L98: |
||
799 | 818 0634 2091 0000 lds r18,AnzahlEmpfangsBytes |
||
800 | 819 0638 43E0 ldi r20,lo8(3) |
||
801 | 820 063a 6AE3 ldi r22,lo8(58) |
||
802 | 821 063c 80E0 ldi r24,lo8(EE_Parameter) |
||
803 | 822 063e 90E0 ldi r25,hi8(EE_Parameter) |
||
804 | 823 0640 0E94 0000 call Decode64 |
||
805 | 824 0644 8091 0000 lds r24,RxdBuffer+2 |
||
806 | 825 0648 4AE3 ldi r20,lo8(58) |
||
807 | 826 064a 60E0 ldi r22,lo8(EE_Parameter) |
||
808 | 827 064c 70E0 ldi r23,hi8(EE_Parameter) |
||
809 | 828 064e 8B56 subi r24,lo8(-(-107)) |
||
810 | 829 0650 0E94 0000 call WriteParameterSet |
||
811 | 830 0654 8091 0000 lds r24,RxdBuffer+2 |
||
812 | 831 0658 8B56 subi r24,lo8(-(-107)) |
||
813 | 832 065a A0E0 ldi r26,lo8(EEPromArray+2) |
||
814 | 833 065c B0E0 ldi r27,hi8(EEPromArray+2) |
||
815 | 834 /* #APP */ |
||
816 | 835 065e 082E mov __tmp_reg__,r24 |
||
817 | 836 0660 0E94 0000 call __eeprom_write_byte_1F2021 |
||
818 | 837 /* #NOAPP */ |
||
819 | 838 0664 0E94 0000 call GetActiveParamSetNumber |
||
820 | 839 0668 9927 clr r25 |
||
821 | 840 066a 0E94 0000 call Piep |
||
822 | 841 .L94: |
||
823 | 842 066e 1092 0000 sts NeuerDatensatzEmpfangen,__zero_reg__ |
||
824 | 843 .L107: |
||
825 | 844 /* epilogue: frame size=2 */ |
||
826 | 845 0672 2296 adiw r28,2 |
||
827 | 846 0674 0FB6 in __tmp_reg__,__SREG__ |
||
828 | 847 0676 F894 cli |
||
829 | 848 0678 DEBF out __SP_H__,r29 |
||
830 | 849 067a 0FBE out __SREG__,__tmp_reg__ |
||
831 | 850 067c CDBF out __SP_L__,r28 |
||
832 | 851 067e DF91 pop r29 |
||
833 | 852 0680 CF91 pop r28 |
||
834 | 853 0682 1F91 pop r17 |
||
835 | 854 0684 0895 ret |
||
836 | 855 /* epilogue end (size=10) */ |
||
837 | 856 /* function BearbeiteRxDaten size 179 (158) */ |
||
838 | 858 .global DebugGetAnforderung |
||
839 | 859 .global DebugGetAnforderung |
||
840 | 860 .section .bss |
||
841 | 863 DebugGetAnforderung: |
||
842 | 864 0000 00 .skip 1,0 |
||
843 | 865 .global DebugDisplayAnforderung |
||
844 | 866 .global DebugDisplayAnforderung |
||
845 | 869 DebugDisplayAnforderung: |
||
846 | 870 0001 00 .skip 1,0 |
||
847 | 871 .global DebugDataAnforderung |
||
848 | 872 .global DebugDataAnforderung |
||
849 | 875 DebugDataAnforderung: |
||
850 | 876 0002 00 .skip 1,0 |
||
851 | 877 .global GetVersionAnforderung |
||
852 | 878 .global GetVersionAnforderung |
||
853 | 881 GetVersionAnforderung: |
||
854 | 882 0003 00 .skip 1,0 |
||
855 | 883 .global SioTmp |
||
856 | 884 .global SioTmp |
||
857 | 887 SioTmp: |
||
858 | 888 0004 00 .skip 1,0 |
||
859 | 889 .global NeuerDatensatzEmpfangen |
||
860 | 890 .global NeuerDatensatzEmpfangen |
||
861 | 893 NeuerDatensatzEmpfangen: |
||
862 | 894 0005 00 .skip 1,0 |
||
863 | 895 .global NeueKoordinateEmpfangen |
||
864 | 896 .global NeueKoordinateEmpfangen |
||
865 | 899 NeueKoordinateEmpfangen: |
||
866 | 900 0006 00 .skip 1,0 |
||
867 | 901 .global UebertragungAbgeschlossen |
||
868 | 902 .data |
||
869 | 905 UebertragungAbgeschlossen: |
||
870 | 906 0000 01 .byte 1 |
||
871 | 907 .global CntCrcError |
||
872 | 908 .global CntCrcError |
||
873 | 909 .section .bss |
||
874 | 912 CntCrcError: |
||
875 | 913 0007 00 .skip 1,0 |
||
876 | 914 .global AnzahlEmpfangsBytes |
||
877 | 915 .global AnzahlEmpfangsBytes |
||
878 | 918 AnzahlEmpfangsBytes: |
||
879 | 919 0008 00 .skip 1,0 |
||
880 | 920 .global PC_DebugTimeout |
||
881 | 921 .global PC_DebugTimeout |
||
882 | 924 PC_DebugTimeout: |
||
883 | 925 0009 00 .skip 1,0 |
||
884 | 926 .global PcZugriff |
||
885 | 927 .data |
||
886 | 930 PcZugriff: |
||
887 | 931 0001 64 .byte 100 |
||
888 | 932 .global MotorTest |
||
889 | 933 .global MotorTest |
||
890 | 934 .section .bss |
||
891 | 937 MotorTest: |
||
892 | 938 000a 0000 0000 .skip 4,0 |
||
893 | 939 .lcomm dis_zeile.2217,1 |
||
894 | 940 .lcomm UartState.1973,1 |
||
895 | 941 .lcomm buf_ptr.1972,1 |
||
896 | 942 .lcomm crc2.1971,1 |
||
897 | 943 .lcomm crc1.1970,1 |
||
898 | 944 .lcomm crc.1969,2 |
||
899 | 945 .lcomm ptr.1956,2 |
||
900 | 946 .comm DiffNick,2,1 |
||
901 | 947 .comm DiffRoll,2,1 |
||
902 | 948 .comm SenderOkay,1,1 |
||
903 | 949 .comm CosinusNickWinkel,1,1 |
||
904 | 950 .comm CosinusRollWinkel,1,1 |
||
905 | 951 .comm SendeBuffer,150,1 |
||
906 | 952 .comm RxdBuffer,150,1 |
||
907 | 953 .comm MeineSlaveAdresse,1,1 |
||
908 | 954 .comm Debug_Timer,2,1 |
||
909 | 955 .comm DebugOut,50,1 |
||
910 | 956 .comm DebugIn,11,1 |
||
911 | 957 .comm VersionInfo,10,1 |
||
912 | 958 .comm RemoteTasten,1,1 |
||
913 | 959 .comm Timeout,1,1 |
||
914 | 960 .comm IntegralNick,4,1 |
||
915 | 961 .comm IntegralNick2,4,1 |
||
916 | 962 .comm IntegralRoll,4,1 |
||
917 | 963 .comm IntegralRoll2,4,1 |
||
918 | 964 .comm Mess_IntegralNick,4,1 |
||
919 | 965 .comm Mess_IntegralNick2,4,1 |
||
920 | 966 .comm Mess_IntegralRoll,4,1 |
||
921 | 967 .comm Mess_IntegralRoll2,4,1 |
||
922 | 968 .comm Integral_Gier,4,1 |
||
923 | 969 .comm Mess_Integral_Gier,4,1 |
||
924 | 970 .comm h,1,1 |
||
925 | 971 .comm m,1,1 |
||
926 | 972 .comm s,1,1 |
||
927 | 973 .comm Motor_Vorne,1,1 |
||
928 | 974 .comm Motor_Hinten,1,1 |
||
929 | 975 .comm Motor_Rechts,1,1 |
||
930 | 976 .comm Motor_Links,1,1 |
||
931 | 977 .comm Count,1,1 |
||
932 | 978 .comm MotorWert,5,1 |
||
933 | 979 .comm StickNick,2,1 |
||
934 | 980 .comm StickRoll,2,1 |
||
935 | 981 .comm StickGier,2,1 |
||
936 | 982 .comm MotorenEin,1,1 |
||
937 | 983 .comm NMEABuffer,150,1 |
||
938 | 984 /* File "uart.c": code 844 = 0x034c ( 747), prologues 46, epilogues 51 */ |
||
939 | DEFINED SYMBOLS |
||
940 | *ABS*:00000000 uart.c |
||
941 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:3 *ABS*:0000003f __SREG__ |
||
942 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:4 *ABS*:0000003e __SP_H__ |
||
943 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:5 *ABS*:0000003d __SP_L__ |
||
944 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:6 *ABS*:00000000 __tmp_reg__ |
||
945 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:7 *ABS*:00000001 __zero_reg__ |
||
946 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:13 .text:00000000 __vector_22 |
||
947 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:905 .data:00000000 UebertragungAbgeschlossen |
||
948 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:944 .bss:00000015 ptr.1956 |
||
949 | *COM*:00000096 SendeBuffer |
||
950 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:69 .text:0000006c __vector_20 |
||
951 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:887 .bss:00000004 SioTmp |
||
952 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:940 .bss:00000010 buf_ptr.1972 |
||
953 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:939 .bss:0000000f UartState.1973 |
||
954 | *COM*:00000096 RxdBuffer |
||
955 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:943 .bss:00000013 crc.1969 |
||
956 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:942 .bss:00000012 crc1.1970 |
||
957 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:941 .bss:00000011 crc2.1971 |
||
958 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:912 .bss:00000007 CntCrcError |
||
959 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:893 .bss:00000005 NeuerDatensatzEmpfangen |
||
960 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:918 .bss:00000008 AnzahlEmpfangsBytes |
||
961 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:263 .text:00000210 AddCRC |
||
962 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:317 .text:0000026c SendOutData |
||
963 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:431 .text:0000033c Decode64 |
||
964 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:531 .text:000003ec uart_putchar |
||
965 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:555 .text:0000040e WriteProgramData |
||
966 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:565 .text:00000410 UART_Init |
||
967 | *COM*:00000002 Debug_Timer |
||
968 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:597 .text:00000446 DatenUebertragung |
||
969 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:863 .bss:00000000 DebugGetAnforderung |
||
970 | *COM*:0000000b DebugIn |
||
971 | *COM*:00000001 MeineSlaveAdresse |
||
972 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:875 .bss:00000002 DebugDataAnforderung |
||
973 | *COM*:00000032 DebugOut |
||
974 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:869 .bss:00000001 DebugDisplayAnforderung |
||
975 | .bss:0000000e dis_zeile.2217 |
||
976 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:881 .bss:00000003 GetVersionAnforderung |
||
977 | *COM*:0000000a VersionInfo |
||
978 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:692 .text:00000522 BearbeiteRxDaten |
||
979 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:930 .data:00000001 PcZugriff |
||
980 | *COM*:00000001 RemoteTasten |
||
981 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:937 .bss:0000000a MotorTest |
||
982 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:899 .bss:00000006 NeueKoordinateEmpfangen |
||
983 | C:\DOKUME~1\peter\LOKALE~1\Temp/ccLlXWfC.s:924 .bss:00000009 PC_DebugTimeout |
||
984 | *COM*:00000002 DiffNick |
||
985 | *COM*:00000002 DiffRoll |
||
986 | *COM*:00000001 SenderOkay |
||
987 | *COM*:00000001 CosinusNickWinkel |
||
988 | *COM*:00000001 CosinusRollWinkel |
||
989 | *COM*:00000001 Timeout |
||
990 | *COM*:00000004 IntegralNick |
||
991 | *COM*:00000004 IntegralNick2 |
||
992 | *COM*:00000004 IntegralRoll |
||
993 | *COM*:00000004 IntegralRoll2 |
||
994 | *COM*:00000004 Mess_IntegralNick |
||
995 | *COM*:00000004 Mess_IntegralNick2 |
||
996 | *COM*:00000004 Mess_IntegralRoll |
||
997 | *COM*:00000004 Mess_IntegralRoll2 |
||
998 | *COM*:00000004 Integral_Gier |
||
999 | *COM*:00000004 Mess_Integral_Gier |
||
1000 | *COM*:00000001 h |
||
1001 | *COM*:00000001 m |
||
1002 | *COM*:00000001 s |
||
1003 | *COM*:00000001 Motor_Vorne |
||
1004 | *COM*:00000001 Motor_Hinten |
||
1005 | *COM*:00000001 Motor_Rechts |
||
1006 | *COM*:00000001 Motor_Links |
||
1007 | *COM*:00000001 Count |
||
1008 | *COM*:00000005 MotorWert |
||
1009 | *COM*:00000002 StickNick |
||
1010 | *COM*:00000002 StickRoll |
||
1011 | *COM*:00000002 StickGier |
||
1012 | *COM*:00000001 MotorenEin |
||
1013 | *COM*:00000096 NMEABuffer |
||
1014 | |||
1015 | UNDEFINED SYMBOLS |
||
1016 | __do_copy_data |
||
1017 | __do_clear_bss |
||
1018 | SetDelay |
||
1019 | CheckDelay |
||
1020 | Menu |
||
1021 | DisplayBuff |
||
1022 | EE_Parameter |
||
1023 | ReadParameterSet |
||
1024 | GetActiveParamSetNumber |
||
1025 | WriteParameterSet |
||
1026 | EEPromArray |
||
1027 | __eeprom_write_byte_1F2021 |
||
1028 | Piep |