Subversion Repositories FlightCtrl

Rev

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

   1                            .file   "capacity.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 update_timer
  11                    .global update_timer
  12                            .section .bss
  15                    update_timer:
  16 0000 0000                  .skip 2,0
  17                            .text
  18                    .global Capacity_Init
  20                    Capacity_Init:
  21                    /* prologue: frame size=0 */
  22                    /* prologue end (size=0) */
  23 0000 1092 0000             sts (Capacity)+1,__zero_reg__
  24 0004 1092 0000             sts Capacity,__zero_reg__
  25 0008 1092 0000             sts (Capacity+4)+1,__zero_reg__
  26 000c 1092 0000             sts Capacity+4,__zero_reg__
  27 0010 1092 0000             sts (Capacity+2)+1,__zero_reg__
  28 0014 1092 0000             sts Capacity+2,__zero_reg__
  29 0018 1092 0000             sts Capacity+8,__zero_reg__
  30 001c 9091 0000             lds r25,EE_Parameter+41
  31 0020 84E6                  ldi r24,lo8(100)
  32 0022 989F                  mul r25,r24
  33 0024 C001                  movw r24,r0
  34 0026 1124                  clr r1
  35 0028 9093 0000             sts (Capacity+6)+1,r25
  36 002c 8093 0000             sts Capacity+6,r24
  37 0030 8AE0                  ldi r24,lo8(10)
  38 0032 90E0                  ldi r25,hi8(10)
  39 0034 0E94 0000             call SetDelay
  40 0038 9093 0000             sts (update_timer)+1,r25
  41 003c 8093 0000             sts update_timer,r24
  42                    /* epilogue: frame size=0 */
  43 0040 0895                  ret
  44                    /* epilogue end (size=1) */
  45                    /* function Capacity_Init size 33 (32) */
  47                            .lcomm SubCounter.0,2
  48                            .lcomm CurrentOffset.1,2
  49                            .lcomm SumCurrentOffset.2,4
  50                    .global Capacity_Update
  52                    Capacity_Update:
  53                    /* prologue: frame size=0 */
  54 0042 CF93                  push r28
  55 0044 DF93                  push r29
  56                    /* prologue end (size=2) */
  57 0046 8091 0000             lds r24,update_timer
  58 004a 9091 0000             lds r25,(update_timer)+1
  59 004e 0E94 0000             call CheckDelay
  60 0052 8823                  tst r24
  61 0054 01F4                  brne .+2
  62 0056 00C0                  rjmp .L2
  63 0058 8091 0000             lds r24,update_timer
  64 005c 9091 0000             lds r25,(update_timer)+1
  65 0060 0A96                  adiw r24,10
  66 0062 9093 0000             sts (update_timer)+1,r25
  67 0066 8093 0000             sts update_timer,r24
  68 006a E0E0                  ldi r30,lo8(0)
  69 006c F0E0                  ldi r31,hi8(0)
  70 006e 9F01                  movw r18,r30
  71 0070 90E0                  ldi r25,lo8(0)
  72 0072 5FEF                  ldi r21,lo8(-1)
  73 0074 A0E0                  ldi r26,lo8(Motor)
  74 0076 B0E0                  ldi r27,hi8(Motor)
  75 0078 4BE0                  ldi r20,lo8(11)
  76                    .L9:
  77 007a ED01                  movw r28,r26
  78 007c 8B81                  ldd r24,Y+3
  79 007e 87FF                  sbrs r24,7
  80 0080 00C0                  rjmp .L6
  81 0082 9F5F                  subi r25,lo8(-(1))
  82 0084 8D81                  ldd r24,Y+5
  83 0086 E80F                  add r30,r24
  84 0088 F11D                  adc r31,__zero_reg__
  85 008a 8981                  ldd r24,Y+1
  86 008c 280F                  add r18,r24
  87 008e 311D                  adc r19,__zero_reg__
  88 0090 8E81                  ldd r24,Y+6
  89 0092 8517                  cp r24,r21
  90 0094 00F4                  brsh .L6
  91 0096 582F                  mov r21,r24
  92                    .L6:
  93 0098 4150                  subi r20,lo8(-(-1))
  94 009a 1896                  adiw r26,8
  95 009c 47FF                  sbrs r20,7
  96 009e 00C0                  rjmp .L9
  97 00a0 5093 0000             sts Capacity+8,r21
  98 00a4 232B                  or r18,r19
  99 00a6 01F4                  brne .L10
 100 00a8 2091 0000             lds r18,SumCurrentOffset.2
 101 00ac 3091 0000             lds r19,(SumCurrentOffset.2)+1
 102 00b0 4091 0000             lds r20,(SumCurrentOffset.2)+2
 103 00b4 5091 0000             lds r21,(SumCurrentOffset.2)+3
 104 00b8 BB27                  clr r27
 105 00ba A52F                  mov r26,r21
 106 00bc 942F                  mov r25,r20
 107 00be 832F                  mov r24,r19
 108 00c0 9093 0000             sts (CurrentOffset.1)+1,r25
 109 00c4 8093 0000             sts CurrentOffset.1,r24
 110 00c8 AA27                  clr r26
 111 00ca BB27                  clr r27
 112 00cc 281B                  sub r18,r24
 113 00ce 390B                  sbc r19,r25
 114 00d0 4A0B                  sbc r20,r26
 115 00d2 5B0B                  sbc r21,r27
 116 00d4 CF01                  movw r24,r30
 117 00d6 AA27                  clr r26
 118 00d8 BB27                  clr r27
 119 00da 280F                  add r18,r24
 120 00dc 391F                  adc r19,r25
 121 00de 4A1F                  adc r20,r26
 122 00e0 5B1F                  adc r21,r27
 123 00e2 2093 0000             sts SumCurrentOffset.2,r18
 124 00e6 3093 0000             sts (SumCurrentOffset.2)+1,r19
 125 00ea 4093 0000             sts (SumCurrentOffset.2)+2,r20
 126 00ee 5093 0000             sts (SumCurrentOffset.2)+3,r21
 127 00f2 E5E0                  ldi r30,lo8(5)
 128 00f4 F0E0                  ldi r31,hi8(5)
 129 00f6 00C0                  rjmp .L11
 130                    .L10:
 131 00f8 2091 0000             lds r18,CurrentOffset.1
 132 00fc 3091 0000             lds r19,(CurrentOffset.1)+1
 133 0100 2E17                  cp r18,r30
 134 0102 3F07                  cpc r19,r31
 135 0104 00F4                  brsh .L12
 136 0106 E21B                  sub r30,r18
 137 0108 F30B                  sbc r31,r19
 138 010a 00C0                  rjmp .L13
 139                    .L12:
 140 010c E0E0                  ldi r30,lo8(0)
 141 010e F0E0                  ldi r31,hi8(0)
 142                    .L13:
 143 0110 892F                  mov r24,r25
 144 0112 9927                  clr r25
 145 0114 880F                  add r24,r24
 146 0116 991F                  adc r25,r25
 147 0118 E80F                  add r30,r24
 148 011a F91F                  adc r31,r25
 149 011c 3596                  adiw r30,5
 150                    .L11:
 151 011e F093 0000             sts (Capacity)+1,r31
 152 0122 E093 0000             sts Capacity,r30
 153 0126 EF3F                  cpi r30,255
 154 0128 F105                  cpc r31,__zero_reg__
 155 012a 00F4                  brsh .L14
 156 012c 8091 0000             lds r24,UBat
 157 0130 9091 0000             lds r25,(UBat)+1
 158 0134 8E9F                  mul r24,r30
 159 0136 9001                  movw r18,r0
 160 0138 8F9F                  mul r24,r31
 161 013a 300D                  add r19,r0
 162 013c 9E9F                  mul r25,r30
 163 013e 300D                  add r19,r0
 164 0140 1124                  clr r1
 165 0142 C901                  movw r24,r18
 166 0144 64E6                  ldi r22,lo8(100)
 167 0146 70E0                  ldi r23,hi8(100)
 168 0148 00C0                  rjmp .L21
 169                    .L14:
 170 014a CF01                  movw r24,r30
 171 014c 9695                  lsr r25
 172 014e 8795                  ror r24
 173 0150 9695                  lsr r25
 174 0152 8795                  ror r24
 175 0154 2091 0000             lds r18,UBat
 176 0158 3091 0000             lds r19,(UBat)+1
 177 015c 289F                  mul r18,r24
 178 015e A001                  movw r20,r0
 179 0160 299F                  mul r18,r25
 180 0162 500D                  add r21,r0
 181 0164 389F                  mul r19,r24
 182 0166 500D                  add r21,r0
 183 0168 1124                  clr r1
 184 016a CA01                  movw r24,r20
 185 016c 69E1                  ldi r22,lo8(25)
 186 016e 70E0                  ldi r23,hi8(25)
 187                    .L21:
 188 0170 0E94 0000             call __udivmodhi4
 189 0174 7093 0000             sts (Capacity+2)+1,r23
 190 0178 6093 0000             sts Capacity+2,r22
 191 017c 2091 0000             lds r18,SubCounter.0
 192 0180 3091 0000             lds r19,(SubCounter.0)+1
 193 0184 2E0F                  add r18,r30
 194 0186 3F1F                  adc r19,r31
 195 0188 3093 0000             sts (SubCounter.0)+1,r19
 196 018c 2093 0000             sts SubCounter.0,r18
 197 0190 5EE0                  ldi r21,hi8(3601)
 198 0192 2131                  cpi r18,lo8(3601)
 199 0194 3507                  cpc r19,r21
 200 0196 00F4                  brsh .+2
 201 0198 00C0                  rjmp .L2
 202 019a 8091 0000             lds r24,Capacity+4
 203 019e 9091 0000             lds r25,(Capacity+4)+1
 204 01a2 0196                  adiw r24,1
 205 01a4 9093 0000             sts (Capacity+4)+1,r25
 206 01a8 8093 0000             sts Capacity+4,r24
 207 01ac 2051                  subi r18,lo8(-(-3600))
 208 01ae 3E40                  sbci r19,hi8(-(-3600))
 209 01b0 3093 0000             sts (SubCounter.0)+1,r19
 210 01b4 2093 0000             sts SubCounter.0,r18
 211 01b8 4091 0000             lds r20,EE_Parameter+41
 212 01bc 24E6                  ldi r18,lo8(100)
 213 01be 429F                  mul r20,r18
 214 01c0 9001                  movw r18,r0
 215 01c2 1124                  clr r1
 216 01c4 281B                  sub r18,r24
 217 01c6 390B                  sbc r19,r25
 218 01c8 3093 0000             sts (Capacity+6)+1,r19
 219 01cc 2093 0000             sts Capacity+6,r18
 220 01d0 1216                  cp __zero_reg__,r18
 221 01d2 1306                  cpc __zero_reg__,r19
 222 01d4 04F0                  brlt .L17
 223 01d6 C901                  movw r24,r18
 224 01d8 6AE0                  ldi r22,lo8(10)
 225 01da 70E0                  ldi r23,hi8(10)
 226 01dc 0E94 0000             call __divmodhi4
 227 01e0 892B                  or r24,r25
 228 01e2 01F4                  brne .L17
 229 01e4 4423                  tst r20
 230 01e6 01F0                  breq .L17
 231 01e8 88EE                  ldi r24,lo8(1000)
 232 01ea 93E0                  ldi r25,hi8(1000)
 233 01ec 9093 0000             sts (beeptime)+1,r25
 234 01f0 8093 0000             sts beeptime,r24
 235                    .L17:
 236 01f4 8091 0000             lds r24,Capacity+6
 237 01f8 9091 0000             lds r25,(Capacity+6)+1
 238 01fc C1E0                  ldi r28,hi8(501)
 239 01fe 853F                  cpi r24,lo8(501)
 240 0200 9C07                  cpc r25,r28
 241 0202 04F4                  brge .L2
 242 0204 64E6                  ldi r22,lo8(100)
 243 0206 70E0                  ldi r23,hi8(100)
 244 0208 0E94 0000             call __divmodhi4
 245 020c 892B                  or r24,r25
 246 020e 01F4                  brne .L2
 247 0210 4423                  tst r20
 248 0212 01F0                  breq .L2
 249 0214 80E1                  ldi r24,lo8(10000)
 250 0216 97E2                  ldi r25,hi8(10000)
 251 0218 9093 0000             sts (beeptime)+1,r25
 252 021c 8093 0000             sts beeptime,r24
 253                    .L2:
 254                    /* epilogue: frame size=0 */
 255 0220 DF91                  pop r29
 256 0222 CF91                  pop r28
 257 0224 0895                  ret
 258                    /* epilogue end (size=3) */
 259                    /* function Capacity_Update size 242 (237) */
 261                            .comm Capacity,9,1
 262                            .comm Motorsmax,8,1
 263                            .comm MotorsTmax,2,1
 264                    /* File "capacity.c": code  275 = 0x0113 ( 269), prologues   2, epilogues   4 */
DEFINED SYMBOLS
                            *ABS*:00000000 capacity.c
C:\Users\Thomas\AppData\Local\Temp/ccrLU3oU.s:3      *ABS*:0000003f __SREG__
C:\Users\Thomas\AppData\Local\Temp/ccrLU3oU.s:4      *ABS*:0000003e __SP_H__
C:\Users\Thomas\AppData\Local\Temp/ccrLU3oU.s:5      *ABS*:0000003d __SP_L__
C:\Users\Thomas\AppData\Local\Temp/ccrLU3oU.s:6      *ABS*:00000000 __tmp_reg__
C:\Users\Thomas\AppData\Local\Temp/ccrLU3oU.s:7      *ABS*:00000001 __zero_reg__
C:\Users\Thomas\AppData\Local\Temp/ccrLU3oU.s:15     .bss:00000000 update_timer
C:\Users\Thomas\AppData\Local\Temp/ccrLU3oU.s:20     .text:00000000 Capacity_Init
                            *COM*:00000009 Capacity
                             .bss:00000002 SubCounter.0
C:\Users\Thomas\AppData\Local\Temp/ccrLU3oU.s:47     .bss:00000004 CurrentOffset.1
C:\Users\Thomas\AppData\Local\Temp/ccrLU3oU.s:48     .bss:00000006 SumCurrentOffset.2
C:\Users\Thomas\AppData\Local\Temp/ccrLU3oU.s:52     .text:00000042 Capacity_Update
                            *COM*:00000008 Motorsmax
                            *COM*:00000002 MotorsTmax

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
EE_Parameter
SetDelay
CheckDelay
Motor
UBat
__udivmodhi4
__divmodhi4
beeptime