Subversion Repositories FlightCtrl

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

   1                            .file   "Spektrum.c"
   2                            .arch atmega1284p
   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                    .global SpektrumTimer
  11                    .global SpektrumTimer
  12                            .section .bss
  15                    SpektrumTimer:
  16 0000 00                    .skip 1,0
  17                            .text
  18                    .global SpektrumUartInit
  20                    SpektrumUartInit:
  21                    /* prologue: frame size=0 */
  22                    /* prologue end (size=0) */
  23 0000 4FB7                  in r20,95-0x20
  24 0002 24E1                  ldi r18,lo8(20)
  25 0004 30E0                  ldi r19,hi8(20)
  26                    /* #APP */
  27 0006 F894                  cli
  28                    /* #NOAPP */
  29 0008 8091 C900             lds r24,201
  30 000c 8F77                  andi r24,lo8(127)
  31 000e 8093 C900             sts 201,r24
  32 0012 8091 C900             lds r24,201
  33 0016 8F7B                  andi r24,lo8(-65)
  34 0018 8093 C900             sts 201,r24
  35 001c 8091 C900             lds r24,201
  36 0020 8F7D                  andi r24,lo8(-33)
  37 0022 8093 C900             sts 201,r24
  38 0026 5A9A                  sbi 43-0x20,2
  39 0028 5298                  cbi 42-0x20,2
  40 002a 5B9A                  sbi 43-0x20,3
  41 002c 539A                  sbi 42-0x20,3
  42 002e 832F                  mov r24,r19
  43 0030 9927                  clr r25
  44 0032 8093 CD00             sts 205,r24
  45 0036 2093 CC00             sts 204,r18
  46 003a 8091 C800             lds r24,200
  47 003e 8260                  ori r24,lo8(2)
  48 0040 8093 C800             sts 200,r24
  49 0044 80E1                  ldi r24,lo8(16)
  50 0046 8093 C900             sts 201,r24
  51 004a 8091 CA00             lds r24,202
  52 004e 8F77                  andi r24,lo8(127)
  53 0050 8093 CA00             sts 202,r24
  54 0054 8091 CA00             lds r24,202
  55 0058 8F7B                  andi r24,lo8(-65)
  56 005a 8093 CA00             sts 202,r24
  57 005e 8091 CA00             lds r24,202
  58 0062 8F7D                  andi r24,lo8(-33)
  59 0064 8093 CA00             sts 202,r24
  60 0068 8091 CA00             lds r24,202
  61 006c 8F7E                  andi r24,lo8(-17)
  62 006e 8093 CA00             sts 202,r24
  63 0072 8091 CA00             lds r24,202
  64 0076 877F                  andi r24,lo8(-9)
  65 0078 8093 CA00             sts 202,r24
  66 007c 8091 C900             lds r24,201
  67 0080 8B7F                  andi r24,lo8(-5)
  68 0082 8093 C900             sts 201,r24
  69 0086 8091 CA00             lds r24,202
  70 008a 8460                  ori r24,lo8(4)
  71 008c 8093 CA00             sts 202,r24
  72 0090 8091 CA00             lds r24,202
  73 0094 8260                  ori r24,lo8(2)
  74 0096 8093 CA00             sts 202,r24
  75                    .L7:
  76 009a 8091 C800             lds r24,200
  77 009e 87FF                  sbrs r24,7
  78 00a0 00C0                  rjmp .L6
  79 00a2 8091 CE00             lds r24,206
  80 00a6 00C0                  rjmp .L7
  81                    .L6:
  82 00a8 8091 C900             lds r24,201
  83 00ac 8068                  ori r24,lo8(-128)
  84 00ae 8093 C900             sts 201,r24
  85 00b2 4FBF                  out 95-0x20,r20
  86                    /* epilogue: frame size=0 */
  87 00b4 0895                  ret
  88                    /* epilogue end (size=1) */
  89                    /* function SpektrumUartInit size 92 (91) */
  91                            .lcomm Sync.0,1
  92                            .lcomm FrameCnt.1,1
  93                            .lcomm ByteHigh.2,1
  94                            .data
  97                    ReSync.3:
  98 0000 01                    .byte   1
  99                            .lcomm Frame2.4,1
 100                            .text
 101                    .global SpektrumParser
 103                    SpektrumParser:
 104                    /* prologue: frame size=0 */
 105 00b6 EF92                  push r14
 106 00b8 FF92                  push r15
 107 00ba 0F93                  push r16
 108 00bc 1F93                  push r17
 109 00be CF93                  push r28
 110 00c0 DF93                  push r29
 111                    /* prologue end (size=6) */
 112 00c2 482F                  mov r20,r24
 113 00c4 00E0                  ldi r16,lo8(0)
 114 00c6 10E0                  ldi r17,hi8(0)
 115 00c8 8091 0000             lds r24,ReSync.3
 116 00cc 8130                  cpi r24,lo8(1)
 117 00ce 01F4                  brne .L9
 118 00d0 1092 0000             sts ReSync.3,__zero_reg__
 119 00d4 84E4                  ldi r24,lo8(68)
 120 00d6 8093 0000             sts SpektrumTimer,r24
 121 00da 1092 0000             sts FrameCnt.1,__zero_reg__
 122 00de 1092 0000             sts Sync.0,__zero_reg__
 123 00e2 1092 0000             sts ByteHigh.2,__zero_reg__
 124 00e6 00C0                  rjmp .L8
 125                    .L9:
 126 00e8 8091 0000             lds r24,SpektrumTimer
 127 00ec 8823                  tst r24
 128 00ee 01F4                  brne .L11
 129 00f0 21E0                  ldi r18,lo8(1)
 130 00f2 30E0                  ldi r19,hi8(1)
 131 00f4 00C0                  rjmp .L12
 132                    .L11:
 133 00f6 9801                  movw r18,r16
 134                    .L12:
 135 00f8 9091 0000             lds r25,Sync.0
 136 00fc 9923                  tst r25
 137 00fe 01F4                  brne .L13
 138 0100 232B                  or r18,r19
 139 0102 01F0                  breq .L14
 140 0104 81E0                  ldi r24,lo8(1)
 141 0106 00C0                  rjmp .L49
 142                    .L14:
 143 0108 84E4                  ldi r24,lo8(68)
 144 010a 8093 0000             sts SpektrumTimer,r24
 145 010e 9093 0000             sts FrameCnt.1,r25
 146 0112 9093 0000             sts Sync.0,r25
 147 0116 9093 0000             sts ByteHigh.2,r25
 148 011a 00C0                  rjmp .L16
 149                    .L13:
 150 011c 9130                  cpi r25,lo8(1)
 151 011e 01F4                  brne .L17
 152 0120 232B                  or r18,r19
 153 0122 01F0                  breq .+2
 154 0124 00C0                  rjmp .L23
 155 0126 82E0                  ldi r24,lo8(2)
 156                    .L49:
 157 0128 8093 0000             sts Sync.0,r24
 158 012c 8091 0000             lds r24,FrameCnt.1
 159 0130 8F5F                  subi r24,lo8(-(1))
 160 0132 8093 0000             sts FrameCnt.1,r24
 161 0136 83E0                  ldi r24,lo8(3)
 162 0138 00C0                  rjmp .L47
 163                    .L17:
 164 013a 9230                  cpi r25,lo8(2)
 165 013c 01F4                  brne .L19
 166 013e 232B                  or r18,r19
 167 0140 01F0                  breq .+2
 168 0142 00C0                  rjmp .L23
 169 0144 83E0                  ldi r24,lo8(3)
 170 0146 8093 0000             sts SpektrumTimer,r24
 171 014a 4093 0000             sts ByteHigh.2,r20
 172 014e 9091 0000             lds r25,FrameCnt.1
 173 0152 9230                  cpi r25,lo8(2)
 174 0154 01F4                  brne .L20
 175 0156 1092 0000             sts Frame2.4,__zero_reg__
 176 015a 47FF                  sbrs r20,7
 177 015c 00C0                  rjmp .L20
 178 015e 81E0                  ldi r24,lo8(1)
 179 0160 8093 0000             sts Frame2.4,r24
 180                    .L20:
 181 0164 83E0                  ldi r24,lo8(3)
 182 0166 8093 0000             sts Sync.0,r24
 183 016a 9F5F                  subi r25,lo8(-(1))
 184 016c 9093 0000             sts FrameCnt.1,r25
 185 0170 00C0                  rjmp .L16
 186                    .L19:
 187 0172 9330                  cpi r25,lo8(3)
 188 0174 01F0                  breq .+2
 189 0176 00C0                  rjmp .L23
 190 0178 232B                  or r18,r19
 191 017a 01F0                  breq .+2
 192 017c 00C0                  rjmp .L23
 193 017e 9093 0000             sts SpektrumTimer,r25
 194 0182 82E0                  ldi r24,lo8(2)
 195 0184 8093 0000             sts Sync.0,r24
 196 0188 8091 0000             lds r24,FrameCnt.1
 197 018c 8F5F                  subi r24,lo8(-(1))
 198 018e 8093 0000             sts FrameCnt.1,r24
 199 0192 2091 0000             lds r18,ByteHigh.2
 200 0196 822F                  mov r24,r18
 201 0198 9927                  clr r25
 202 019a 782F                  mov r23,r24
 203 019c 6627                  clr r22
 204 019e 842F                  mov r24,r20
 205 01a0 9927                  clr r25
 206 01a2 682B                  or r22,r24
 207 01a4 792B                  or r23,r25
 208 01a6 8091 0000             lds r24,EE_Parameter+39
 209 01aa 8130                  cpi r24,lo8(1)
 210 01ac 01F4                  brne .L24
 211 01ae 7370                  andi r23,hi8(1023)
 212 01b0 CB01                  movw r24,r22
 213 01b2 8050                  subi r24,lo8(-(-512))
 214 01b4 9240                  sbci r25,hi8(-(-512))
 215 01b6 63E0                  ldi r22,lo8(3)
 216 01b8 70E0                  ldi r23,hi8(3)
 217 01ba 0E94 0000             call __divmodhi4
 218 01be 00C0                  rjmp .L48
 219                    .L24:
 220 01c0 8230                  cpi r24,lo8(2)
 221 01c2 01F4                  brne .L26
 222 01c4 7770                  andi r23,hi8(2047)
 223 01c6 CB01                  movw r24,r22
 224 01c8 8050                  subi r24,lo8(-(-1024))
 225 01ca 9440                  sbci r25,hi8(-(-1024))
 226 01cc 66E0                  ldi r22,lo8(6)
 227 01ce 70E0                  ldi r23,hi8(6)
 228 01d0 0E94 0000             call __divmodhi4
 229 01d4 2695                  lsr r18
 230 01d6 2695                  lsr r18
 231 01d8 2695                  lsr r18
 232 01da 00C0                  rjmp .L46
 233                    .L26:
 234 01dc 7370                  andi r23,hi8(1023)
 235 01de 6856                  subi r22,lo8(-(-360))
 236 01e0 7140                  sbci r23,hi8(-(-360))
 237 01e2 CB01                  movw r24,r22
 238 01e4 77FD                  sbrc r23,7
 239 01e6 0196                  adiw r24,1
 240                    .L28:
 241 01e8 BC01                  movw r22,r24
 242 01ea 7595                  asr r23
 243 01ec 6795                  ror r22
 244                    .L48:
 245 01ee 2695                  lsr r18
 246 01f0 2695                  lsr r18
 247                    .L46:
 248 01f2 022F                  mov r16,r18
 249 01f4 1127                  clr r17
 250 01f6 0F70                  andi r16,lo8(15)
 251 01f8 1070                  andi r17,hi8(15)
 252 01fa 0F5F                  subi r16,lo8(-(1))
 253 01fc 1F4F                  sbci r17,hi8(-(1))
 254 01fe 0D30                  cpi r16,13
 255 0200 1105                  cpc r17,__zero_reg__
 256 0202 00F0                  brlo .+2
 257 0204 00C0                  rjmp .L29
 258 0206 7801                  movw r14,r16
 259 0208 E00E                  add r14,r16
 260 020a F11E                  adc r15,r17
 261 020c F701                  movw r30,r14
 262 020e E050                  subi r30,lo8(-(PPM_in))
 263 0210 F040                  sbci r31,hi8(-(PPM_in))
 264 0212 8081                  ld r24,Z
 265 0214 9181                  ldd r25,Z+1
 266 0216 9B01                  movw r18,r22
 267 0218 281B                  sub r18,r24
 268 021a 390B                  sbc r19,r25
 269 021c C901                  movw r24,r18
 270 021e 37FF                  sbrs r19,7
 271 0220 00C0                  rjmp .L31
 272 0222 9095                  com r25
 273 0224 8195                  neg r24
 274 0226 9F4F                  sbci r25,lo8(-1)
 275                    .L31:
 276 0228 0697                  sbiw r24,6
 277 022a 04F4                  brge .L30
 278 022c 8091 0000             lds r24,SenderOkay
 279 0230 883C                  cpi r24,lo8(-56)
 280 0232 00F4                  brsh .L32
 281 0234 8091 0000             lds r24,SenderOkay
 282 0238 865F                  subi r24,lo8(-(10))
 283 023a 8093 0000             sts SenderOkay,r24
 284 023e 00C0                  rjmp .L30
 285                    .L32:
 286 0240 88EC                  ldi r24,lo8(-56)
 287 0242 8093 0000             sts SenderOkay,r24
 288 0246 8091 6F00             lds r24,111
 289 024a 8F7D                  andi r24,lo8(-33)
 290 024c 8093 6F00             sts 111,r24
 291                    .L30:
 292 0250 F701                  movw r30,r14
 293 0252 E050                  subi r30,lo8(-(PPM_in))
 294 0254 F040                  sbci r31,hi8(-(PPM_in))
 295 0256 8081                  ld r24,Z
 296 0258 9181                  ldd r25,Z+1
 297 025a 9C01                  movw r18,r24
 298 025c 220F                  lsl r18
 299 025e 331F                  rol r19
 300 0260 280F                  add r18,r24
 301 0262 391F                  adc r19,r25
 302 0264 260F                  add r18,r22
 303 0266 371F                  adc r19,r23
 304 0268 37FF                  sbrs r19,7
 305 026a 00C0                  rjmp .L34
 306 026c 2D5F                  subi r18,lo8(-(3))
 307 026e 3F4F                  sbci r19,hi8(-(3))
 308                    .L34:
 309 0270 E901                  movw r28,r18
 310 0272 D595                  asr r29
 311 0274 C795                  ror r28
 312 0276 D595                  asr r29
 313 0278 C795                  ror r28
 314 027a CB01                  movw r24,r22
 315 027c 0196                  adiw r24,1
 316 027e 8C17                  cp r24,r28
 317 0280 9D07                  cpc r25,r29
 318 0282 04F4                  brge .L35
 319 0284 2197                  sbiw r28,1
 320 0286 00C0                  rjmp .L36
 321                    .L35:
 322 0288 6150                  subi r22,lo8(-(-1))
 323 028a 7040                  sbci r23,hi8(-(-1))
 324 028c C617                  cp r28,r22
 325 028e D707                  cpc r29,r23
 326 0290 04F4                  brge .L36
 327 0292 2196                  adiw r28,1
 328                    .L36:
 329 0294 8091 0000             lds r24,SenderOkay
 330 0298 843B                  cpi r24,lo8(-76)
 331 029a 00F0                  brlo .L38
 332 029c F701                  movw r30,r14
 333 029e E050                  subi r30,lo8(-(PPM_in))
 334 02a0 F040                  sbci r31,hi8(-(PPM_in))
 335 02a2 8081                  ld r24,Z
 336 02a4 9181                  ldd r25,Z+1
 337 02a6 FE01                  movw r30,r28
 338 02a8 E81B                  sub r30,r24
 339 02aa F90B                  sbc r31,r25
 340 02ac CF01                  movw r24,r30
 341 02ae 63E0                  ldi r22,lo8(3)
 342 02b0 70E0                  ldi r23,hi8(3)
 343 02b2 0E94 0000             call __divmodhi4
 344 02b6 CB01                  movw r24,r22
 345 02b8 880F                  lsl r24
 346 02ba 991F                  rol r25
 347 02bc 860F                  add r24,r22
 348 02be 971F                  adc r25,r23
 349 02c0 20E0                  ldi r18,lo8(PPM_diff)
 350 02c2 30E0                  ldi r19,hi8(PPM_diff)
 351 02c4 E20E                  add r14,r18
 352 02c6 F31E                  adc r15,r19
 353 02c8 F701                  movw r30,r14
 354 02ca 9183                  std Z+1,r25
 355 02cc 8083                  st Z,r24
 356 02ce 00C0                  rjmp .L39
 357                    .L38:
 358 02d0 20E0                  ldi r18,lo8(PPM_diff)
 359 02d2 30E0                  ldi r19,hi8(PPM_diff)
 360 02d4 E20E                  add r14,r18
 361 02d6 F31E                  adc r15,r19
 362 02d8 F701                  movw r30,r14
 363 02da 1182                  std Z+1,__zero_reg__
 364 02dc 1082                  st Z,__zero_reg__
 365                    .L39:
 366 02de 000F                  add r16,r16
 367 02e0 111F                  adc r17,r17
 368 02e2 0050                  subi r16,lo8(-(PPM_in))
 369 02e4 1040                  sbci r17,hi8(-(PPM_in))
 370 02e6 F801                  movw r30,r16
 371 02e8 D183                  std Z+1,r29
 372 02ea C083                  st Z,r28
 373 02ec 00C0                  rjmp .L16
 374                    .L29:
 375 02ee 0231                  cpi r16,18
 376 02f0 1105                  cpc r17,__zero_reg__
 377 02f2 00F0                  brlo .L16
 378 02f4 81E0                  ldi r24,lo8(1)
 379 02f6 8093 0000             sts ReSync.3,r24
 380 02fa 00C0                  rjmp .L16
 381                    .L23:
 382 02fc 81E0                  ldi r24,lo8(1)
 383 02fe 8093 0000             sts ReSync.3,r24
 384 0302 1092 0000             sts FrameCnt.1,__zero_reg__
 385 0306 1092 0000             sts Frame2.4,__zero_reg__
 386 030a 84E4                  ldi r24,lo8(68)
 387                    .L47:
 388 030c 8093 0000             sts SpektrumTimer,r24
 389                    .L16:
 390 0310 8091 0000             lds r24,FrameCnt.1
 391 0314 8031                  cpi r24,lo8(16)
 392 0316 00F0                  brlo .L8
 393 0318 8091 0000             lds r24,Frame2.4
 394 031c 8823                  tst r24
 395 031e 01F4                  brne .L44
 396 0320 8091 0000             lds r24,ReSync.3
 397 0324 8823                  tst r24
 398 0326 01F4                  brne .L44
 399 0328 8093 0000             sts NewPpmData,r24
 400                    .L44:
 401 032c 1092 0000             sts FrameCnt.1,__zero_reg__
 402 0330 1092 0000             sts Frame2.4,__zero_reg__
 403 0334 1092 0000             sts Sync.0,__zero_reg__
 404 0338 84E4                  ldi r24,lo8(68)
 405 033a 8093 0000             sts SpektrumTimer,r24
 406                    .L8:
 407                    /* epilogue: frame size=0 */
 408 033e E6E0                  ldi r30,6
 409 0340 CDB7                  in r28,__SP_L__
 410 0342 DEB7                  in r29,__SP_H__
 411 0344 0C94 0000             jmp __epilogue_restores__+24
 412                    /* epilogue end (size=5) */
 413                    /* function SpektrumParser size 334 (323) */
 415                            .comm Motorsmax,8,1
 416                            .comm MotorsTmax,2,1
 417                    /* File "Spektrum.c": code  426 = 0x01aa ( 414), prologues   6, epilogues   6 */
DEFINED SYMBOLS
                            *ABS*:00000000 Spektrum.c
C:\Users\Thomas\AppData\Local\Temp/cc2kRcfW.s:3      *ABS*:0000003f __SREG__
C:\Users\Thomas\AppData\Local\Temp/cc2kRcfW.s:4      *ABS*:0000003e __SP_H__
C:\Users\Thomas\AppData\Local\Temp/cc2kRcfW.s:5      *ABS*:0000003d __SP_L__
C:\Users\Thomas\AppData\Local\Temp/cc2kRcfW.s:6      *ABS*:00000000 __tmp_reg__
C:\Users\Thomas\AppData\Local\Temp/cc2kRcfW.s:7      *ABS*:00000001 __zero_reg__
C:\Users\Thomas\AppData\Local\Temp/cc2kRcfW.s:15     .bss:00000000 SpektrumTimer
C:\Users\Thomas\AppData\Local\Temp/cc2kRcfW.s:20     .text:00000000 SpektrumUartInit
                             .bss:00000001 Sync.0
C:\Users\Thomas\AppData\Local\Temp/cc2kRcfW.s:91     .bss:00000002 FrameCnt.1
C:\Users\Thomas\AppData\Local\Temp/cc2kRcfW.s:92     .bss:00000003 ByteHigh.2
C:\Users\Thomas\AppData\Local\Temp/cc2kRcfW.s:97     .data:00000000 ReSync.3
C:\Users\Thomas\AppData\Local\Temp/cc2kRcfW.s:93     .bss:00000004 Frame2.4
C:\Users\Thomas\AppData\Local\Temp/cc2kRcfW.s:103    .text:000000b6 SpektrumParser
                            *COM*:00000008 Motorsmax
                            *COM*:00000002 MotorsTmax

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
EE_Parameter
__divmodhi4
PPM_in
SenderOkay
PPM_diff
NewPpmData
__epilogue_restores__