Subversion Repositories Projects

Rev

Blame | Last modification | View Log | RSS feed

   1                            .file   "twimaster.c"
   2                    __SREG__ = 0x3f
   3                    __SP_H__ = 0x3e
   4                    __SP_L__ = 0x3d
   5                    __tmp_reg__ = 0
   6                    __zero_reg__ = 1
   7                            .global __do_copy_data
   8                            .global __do_clear_bss
   9                            .text
  10                    .global I2C_Init
  12                    I2C_Init:
  13                    /* prologue: frame size=0 */
  14                    /* prologue end (size=0) */
  15 0000 2FB7                  in r18,95-0x20
  16                    /* #APP */
  17 0002 F894                  cli
  18                    /* #NOAPP */
  19 0004 3998                  cbi 39-0x20,1
  20 0006 389A                  sbi 39-0x20,0
  21 0008 98B1                  in r25,40-0x20
  22 000a 9360                  ori r25,lo8(3)
  23 000c 98B9                  out 40-0x20,r25
  24 000e 9091 B900             lds r25,185
  25 0012 9C7F                  andi r25,lo8(-4)
  26 0014 9093 B900             sts 185,r25
  27 0018 9AE2                  ldi r25,lo8(42)
  28 001a 9093 B800             sts 184,r25
  29 001e 1092 0000             sts twi_state,__zero_reg__
  30 0022 1092 0000             sts motor_write,__zero_reg__
  31 0026 1092 0000             sts motor_read,__zero_reg__
  32 002a 8823                  tst r24
  33 002c 01F0                  breq .L2
  34 002e E0E0                  ldi r30,lo8(Motor)
  35 0030 F0E0                  ldi r31,hi8(Motor)
  36                    .L4:
  37 0032 1082                  st Z,__zero_reg__
  38 0034 1182                  std Z+1,__zero_reg__
  39 0036 1282                  std Z+2,__zero_reg__
  40 0038 1382                  std Z+3,__zero_reg__
  41 003a 1482                  std Z+4,__zero_reg__
  42 003c 1582                  std Z+5,__zero_reg__
  43 003e 1682                  std Z+6,__zero_reg__
  44 0040 1782                  std Z+7,__zero_reg__
  45 0042 3896                  adiw r30,8
  46 0044 80E0                  ldi r24,hi8(Motor+96)
  47 0046 E030                  cpi r30,lo8(Motor+96)
  48 0048 F807                  cpc r31,r24
  49 004a 01F4                  brne .L4
  50                    .L2:
  51                    /* #APP */
  52 004c 7894                  sei
  53                    /* #NOAPP */
  54 004e 2FBF                  out 95-0x20,r18
  55                    /* epilogue: frame size=0 */
  56 0050 0895                  ret
  57                    /* epilogue end (size=1) */
  58                    /* function I2C_Init size 43 (42) */
  60                    .global I2C_Reset
  62                    I2C_Reset:
  63                    /* prologue: frame size=0 */
  64 0052 EF92                  push r14
  65 0054 FF92                  push r15
  66 0056 0F93                  push r16
  67 0058 1F93                  push r17
  68                    /* prologue end (size=4) */
  69 005a 1092 0000             sts twi_state,__zero_reg__
  70 005e 0CEB                  ldi r16,lo8(188)
  71 0060 10E0                  ldi r17,hi8(188)
  72 0062 84E9                  ldi r24,lo8(-108)
  73 0064 F801                  movw r30,r16
  74 0066 8083                  st Z,r24
  75 0068 80E8                  ldi r24,lo8(-128)
  76 006a 8083                  st Z,r24
  77 006c 1092 BD00             sts 189,__zero_reg__
  78 0070 1092 BA00             sts 186,__zero_reg__
  79 0074 8BEB                  ldi r24,lo8(187)
  80 0076 E82E                  mov r14,r24
  81 0078 F12C                  mov r15,__zero_reg__
  82 007a F701                  movw r30,r14
  83 007c 1082                  st Z,__zero_reg__
  84 007e 1092 B900             sts 185,__zero_reg__
  85 0082 1092 B800             sts 184,__zero_reg__
  86 0086 1092 0000             sts I2C_TransferActive,__zero_reg__
  87 008a 80E0                  ldi r24,lo8(0)
  88 008c 0E94 0000             call I2C_Init
  89 0090 F701                  movw r30,r14
  90 0092 1082                  st Z,__zero_reg__
  91 0094 85E8                  ldi r24,lo8(-123)
  92 0096 F801                  movw r30,r16
  93 0098 8083                  st Z,r24
  94 009a 8091 0000             lds r24,BLFlags
  95 009e 8260                  ori r24,lo8(2)
  96 00a0 8093 0000             sts BLFlags,r24
  97                    /* epilogue: frame size=0 */
  98 00a4 1F91                  pop r17
  99 00a6 0F91                  pop r16
 100 00a8 FF90                  pop r15
 101 00aa EF90                  pop r14
 102 00ac 0895                  ret
 103                    /* epilogue end (size=5) */
 104                    /* function I2C_Reset size 46 (37) */
 106                    .global __vector_26
 108                    __vector_26:
 109                    /* prologue: frame size=0 */
 110 00ae 1F92                  push __zero_reg__
 111 00b0 0F92                  push __tmp_reg__
 112 00b2 0FB6                  in __tmp_reg__,__SREG__
 113 00b4 0F92                  push __tmp_reg__
 114 00b6 1124                  clr __zero_reg__
 115 00b8 2F93                  push r18
 116 00ba 3F93                  push r19
 117 00bc 4F93                  push r20
 118 00be 8F93                  push r24
 119 00c0 9F93                  push r25
 120 00c2 AF93                  push r26
 121 00c4 BF93                  push r27
 122 00c6 EF93                  push r30
 123 00c8 FF93                  push r31
 124                    /* prologue end (size=14) */
 125 00ca 8091 0000             lds r24,twi_state
 126 00ce 8F5F                  subi r24,lo8(-(1))
 127 00d0 8093 0000             sts twi_state,r24
 128 00d4 8150                  subi r24,lo8(-(-1))
 129 00d6 E82F                  mov r30,r24
 130 00d8 F0E0                  ldi r31,lo8(0)
 131 00da E731                  cpi r30,23
 132 00dc F105                  cpc r31,__zero_reg__
 133 00de 00F0                  brlo .+2
 134 00e0 00C0                  rjmp .L10
 135 00e2 E050                  subi r30,lo8(-(gs(.L23)))
****  Warning:expression dangerous with linker stubs
 136 00e4 F040                  sbci r31,hi8(-(gs(.L23)))
****  Warning:expression dangerous with linker stubs
 137 00e6 0C94 0000             jmp __tablejump2__
 138                            .data
 139                            .section .progmem.gcc_sw_table, "a", @progbits
 140                            .p2align 1
 141                    .L23:
 142                            .data
 143                            .section .progmem.gcc_sw_table, "a", @progbits
 144                            .p2align 1
 145 0000 0000                  .word gs(.L11)
 146 0002 0000                  .word gs(.L12)
 147 0004 0000                  .word gs(.L13)
 148 0006 0000                  .word gs(.L14)
 149 0008 0000                  .word gs(.L15)
 150 000a 0000                  .word gs(.L16)
 151 000c 0000                  .word gs(.L17)
 152 000e 0000                  .word gs(.L10)
 153 0010 0000                  .word gs(.L10)
 154 0012 0000                  .word gs(.L10)
 155 0014 0000                  .word gs(.L10)
 156 0016 0000                  .word gs(.L10)
 157 0018 0000                  .word gs(.L10)
 158 001a 0000                  .word gs(.L10)
 159 001c 0000                  .word gs(.L10)
 160 001e 0000                  .word gs(.L10)
 161 0020 0000                  .word gs(.L10)
 162 0022 0000                  .word gs(.L10)
 163 0024 0000                  .word gs(.L18)
 164 0026 0000                  .word gs(.L19)
 165 0028 0000                  .word gs(.L20)
 166 002a 0000                  .word gs(.L21)
 167 002c 0000                  .word gs(.L22)
 168                            .text
 169                    .L11:
 170 00ea 81E0                  ldi r24,lo8(1)
 171 00ec 8093 0000             sts I2C_TransferActive,r24
 172 00f0 00C0                  rjmp .L24
 173                    .L25:
 174 00f2 8091 0000             lds r24,motor_write
 175 00f6 8F5F                  subi r24,lo8(-(1))
 176 00f8 8093 0000             sts motor_write,r24
 177                    .L24:
 178 00fc E091 0000             lds r30,motor_write
 179 0100 F0E0                  ldi r31,lo8(0)
 180 0102 EE0F                  lsl r30
 181 0104 FF1F                  rol r31
 182 0106 EE0F                  lsl r30
 183 0108 FF1F                  rol r31
 184 010a E050                  subi r30,lo8(-(Mixer))
 185 010c F040                  sbci r31,hi8(-(Mixer))
 186 010e 8585                  ldd r24,Z+13
 187 0110 1816                  cp __zero_reg__,r24
 188 0112 04F0                  brlt .L26
 189 0114 8091 0000             lds r24,motor_write
 190 0118 8C30                  cpi r24,lo8(12)
 191 011a 00F0                  brlo .L25
 192                    .L26:
 193 011c 8091 0000             lds r24,motor_write
 194 0120 8C30                  cpi r24,lo8(12)
 195 0122 00F0                  brlo .L28
 196 0124 1092 0000             sts (BLConfig_WriteMask)+1,__zero_reg__
 197 0128 1092 0000             sts BLConfig_WriteMask,__zero_reg__
 198 012c 1092 0000             sts motor_write,__zero_reg__
 199 0130 85E0                  ldi r24,lo8(5)
 200 0132 8093 0000             sts twi_state,r24
 201 0136 8091 0000             lds r24,motor_read
 202 013a 880F                  lsl r24
 203 013c 8D5A                  subi r24,lo8(-(83))
 204 013e 00C0                  rjmp .L92
 205                    .L28:
 206 0140 8091 0000             lds r24,motor_write
 207 0144 880F                  lsl r24
 208 0146 8E5A                  subi r24,lo8(-(82))
 209                    .L92:
 210 0148 8093 BB00             sts 187,r24
 211 014c 85E8                  ldi r24,lo8(-123)
 212 014e 00C0                  rjmp .L88
 213                    .L12:
 214 0150 E091 0000             lds r30,motor_write
 215 0154 F0E0                  ldi r31,lo8(0)
 216 0156 A3E0                  ldi r26,3
 217 0158 EE0F          1:      lsl r30
 218 015a FF1F                  rol r31
 219 015c AA95                  dec r26
 220 015e 01F4                  brne 1b
 221 0160 E050                  subi r30,lo8(-(Motor))
 222 0162 F040                  sbci r31,hi8(-(Motor))
 223 0164 8181                  ldd r24,Z+1
 224 0166 8093 BB00             sts 187,r24
 225 016a 85E8                  ldi r24,lo8(-123)
 226 016c 8093 BC00             sts 188,r24
 227 0170 E091 0000             lds r30,motor_write
 228 0174 F0E0                  ldi r31,lo8(0)
 229 0176 EE0F                  lsl r30
 230 0178 FF1F                  rol r31
 231 017a EE0F                  lsl r30
 232 017c FF1F                  rol r31
 233 017e EE0F                  lsl r30
 234 0180 FF1F                  rol r31
 235 0182 E050                  subi r30,lo8(-(Motor))
 236 0184 F040                  sbci r31,hi8(-(Motor))
 237 0186 8081                  ld r24,Z
 238 0188 80FF                  sbrs r24,0
 239 018a 00C0                  rjmp .L40
 240 018c E091 0000             lds r30,motor_write
 241 0190 F0E0                  ldi r31,lo8(0)
 242 0192 EE0F                  lsl r30
 243 0194 FF1F                  rol r31
 244 0196 EE0F                  lsl r30
 245 0198 FF1F                  rol r31
 246 019a EE0F                  lsl r30
 247 019c FF1F                  rol r31
 248 019e E050                  subi r30,lo8(-(Motor))
 249 01a0 F040                  sbci r31,hi8(-(Motor))
 250 01a2 8281                  ldd r24,Z+2
 251 01a4 8823                  tst r24
 252 01a6 01F0                  breq .L33
 253 01a8 8091 0000             lds r24,RequiredMotors
 254 01ac 8730                  cpi r24,lo8(7)
 255 01ae 00F4                  brsh .+2
 256 01b0 00C0                  rjmp .L84
 257                    .L33:
 258 01b2 8091 0000             lds r24,BLConfig_WriteMask
 259 01b6 9091 0000             lds r25,(BLConfig_WriteMask)+1
 260 01ba 892B                  or r24,r25
 261 01bc 01F0                  breq .+2
 262 01be 00C0                  rjmp .L84
 263 01c0 8091 0000             lds r24,BLConfig_ReadMask
 264 01c4 9091 0000             lds r25,(BLConfig_ReadMask)+1
 265 01c8 892B                  or r24,r25
 266 01ca 01F0                  breq .+2
 267 01cc 00C0                  rjmp .L84
 268 01ce 00C0                  rjmp .L40
 269                    .L13:
 270 01d0 4091 0000             lds r20,motor_write
 271 01d4 2091 0000             lds r18,BLConfig_ReadMask
 272 01d8 3091 0000             lds r19,(BLConfig_ReadMask)+1
 273 01dc 81E0                  ldi r24,lo8(1)
 274 01de 90E0                  ldi r25,hi8(1)
 275 01e0 00C0                  rjmp 2f
 276 01e2 880F          1:      lsl r24
 277 01e4 991F                  rol r25
 278 01e6 4A95          2:      dec r20
 279 01e8 02F4                  brpl 1b
 280 01ea 8223                  and r24,r18
 281 01ec 9323                  and r25,r19
 282 01ee 892B                  or r24,r25
 283 01f0 01F0                  breq .L37
 284 01f2 E091 0000             lds r30,motor_write
 285 01f6 F0E0                  ldi r31,lo8(0)
 286 01f8 EE0F                  lsl r30
 287 01fa FF1F                  rol r31
 288 01fc EE0F                  lsl r30
 289 01fe FF1F                  rol r31
 290 0200 EE0F                  lsl r30
 291 0202 FF1F                  rol r31
 292 0204 E050                  subi r30,lo8(-(Motor))
 293 0206 F040                  sbci r31,hi8(-(Motor))
 294 0208 80E1                  ldi r24,lo8(16)
 295 020a 8483                  std Z+4,r24
 296 020c 00C0                  rjmp .L39
 297                    .L37:
 298 020e E091 0000             lds r30,motor_write
 299 0212 F0E0                  ldi r31,lo8(0)
 300 0214 43E0                  ldi r20,3
 301 0216 EE0F          1:      lsl r30
 302 0218 FF1F                  rol r31
 303 021a 4A95                  dec r20
 304 021c 01F4                  brne 1b
 305 021e E050                  subi r30,lo8(-(Motor))
 306 0220 F040                  sbci r31,hi8(-(Motor))
 307 0222 1482                  std Z+4,__zero_reg__
 308                    .L39:
 309 0224 E091 0000             lds r30,motor_write
 310 0228 A091 0000             lds r26,motor_write
 311 022c F0E0                  ldi r31,lo8(0)
 312 022e 33E0                  ldi r19,3
 313 0230 EE0F          1:      lsl r30
 314 0232 FF1F                  rol r31
 315 0234 3A95                  dec r19
 316 0236 01F4                  brne 1b
 317 0238 E050                  subi r30,lo8(-(Motor))
 318 023a F040                  sbci r31,hi8(-(Motor))
 319 023c 9481                  ldd r25,Z+4
 320 023e 990F                  lsl r25
 321 0240 990F                  lsl r25
 322 0242 990F                  lsl r25
 323 0244 B0E0                  ldi r27,lo8(0)
 324 0246 23E0                  ldi r18,3
 325 0248 AA0F          1:      lsl r26
 326 024a BB1F                  rol r27
 327 024c 2A95                  dec r18
 328 024e 01F4                  brne 1b
 329 0250 A050                  subi r26,lo8(-(Motor))
 330 0252 B040                  sbci r27,hi8(-(Motor))
 331 0254 FD01                  movw r30,r26
 332 0256 8281                  ldd r24,Z+2
 333 0258 8770                  andi r24,lo8(7)
 334 025a 982B                  or r25,r24
 335 025c 9093 BB00             sts 187,r25
 336 0260 85E8                  ldi r24,lo8(-123)
 337 0262 8093 BC00             sts 188,r24
 338 0266 4091 0000             lds r20,motor_write
 339 026a 2091 0000             lds r18,BLConfig_WriteMask
 340 026e 3091 0000             lds r19,(BLConfig_WriteMask)+1
 341 0272 81E0                  ldi r24,lo8(1)
 342 0274 90E0                  ldi r25,hi8(1)
 343 0276 00C0                  rjmp 2f
 344 0278 880F          1:      lsl r24
 345 027a 991F                  rol r25
 346 027c 4A95          2:      dec r20
 347 027e 02F4                  brpl 1b
 348 0280 8223                  and r24,r18
 349 0282 9323                  and r25,r19
 350 0284 892B                  or r24,r25
 351 0286 01F0                  breq .L40
 352 0288 80E0                  ldi r24,lo8(BLConfig)
 353 028a 90E0                  ldi r25,hi8(BLConfig)
 354 028c 9093 0000             sts (pBuff.1961)+1,r25
 355 0290 8093 0000             sts pBuff.1961,r24
 356 0294 88E0                  ldi r24,lo8(8)
 357 0296 8093 0000             sts BuffLen.1962,r24
 358 029a 00C0                  rjmp .L84
 359                    .L40:
 360 029c 84E0                  ldi r24,lo8(4)
 361 029e 00C0                  rjmp .L90
 362                    .L14:
 363 02a0 E091 0000             lds r30,pBuff.1961
 364 02a4 F091 0000             lds r31,(pBuff.1961)+1
 365 02a8 8191                  ld r24,Z+
 366 02aa 8093 BB00             sts 187,r24
 367 02ae 85E8                  ldi r24,lo8(-123)
 368 02b0 8093 BC00             sts 188,r24
 369 02b4 F093 0000             sts (pBuff.1961)+1,r31
 370 02b8 E093 0000             sts pBuff.1961,r30
 371 02bc 8091 0000             lds r24,BuffLen.1962
 372 02c0 8150                  subi r24,lo8(-(-1))
 373 02c2 8093 0000             sts BuffLen.1962,r24
 374 02c6 8823                  tst r24
 375 02c8 01F4                  brne .+2
 376 02ca 00C0                  rjmp .L84
 377 02cc 83E0                  ldi r24,lo8(3)
 378 02ce 00C0                  rjmp .L90
 379                    .L15:
 380 02d0 8091 B900             lds r24,185
 381 02d4 8033                  cpi r24,lo8(48)
 382 02d6 01F4                  brne .L43
 383 02d8 8091 0000             lds r24,missing_motor.1959
 384 02dc 8823                  tst r24
 385 02de 01F4                  brne .L45
 386 02e0 8091 0000             lds r24,motor_write
 387 02e4 8F5F                  subi r24,lo8(-(1))
 388 02e6 8093 0000             sts missing_motor.1959,r24
 389                    .L45:
 390 02ea E091 0000             lds r30,motor_write
 391 02ee F0E0                  ldi r31,lo8(0)
 392 02f0 93E0                  ldi r25,3
 393 02f2 EE0F          1:      lsl r30
 394 02f4 FF1F                  rol r31
 395 02f6 9A95                  dec r25
 396 02f8 01F4                  brne 1b
 397 02fa E050                  subi r30,lo8(-(Motor))
 398 02fc F040                  sbci r31,hi8(-(Motor))
 399 02fe 8381                  ldd r24,Z+3
 400 0300 8F77                  andi r24,lo8(127)
 401 0302 8F37                  cpi r24,lo8(127)
 402 0304 01F0                  breq .L43
 403 0306 E091 0000             lds r30,motor_write
 404 030a F0E0                  ldi r31,lo8(0)
 405 030c 83E0                  ldi r24,3
 406 030e EE0F          1:      lsl r30
 407 0310 FF1F                  rol r31
 408 0312 8A95                  dec r24
 409 0314 01F4                  brne 1b
 410 0316 E050                  subi r30,lo8(-(Motor))
 411 0318 F040                  sbci r31,hi8(-(Motor))
 412 031a 8381                  ldd r24,Z+3
 413 031c 8F5F                  subi r24,lo8(-(1))
 414 031e 8383                  std Z+3,r24
 415                    .L43:
 416 0320 1092 0000             sts twi_state,__zero_reg__
 417 0324 84E9                  ldi r24,lo8(-108)
 418 0326 8093 BC00             sts 188,r24
 419 032a 8AE0                  ldi r24,lo8(10)
 420 032c 90E0                  ldi r25,hi8(10)
 421 032e 9093 0000             sts (I2CTimeout)+1,r25
 422 0332 8093 0000             sts I2CTimeout,r24
 423 0336 8091 0000             lds r24,motor_write
 424 033a 8F5F                  subi r24,lo8(-(1))
 425 033c 8093 0000             sts motor_write,r24
 426 0340 1092 0000             sts twi_state,__zero_reg__
 427 0344 00C0                  rjmp .L93
 428                    .L16:
 429 0346 8091 B900             lds r24,185
 430 034a 8034                  cpi r24,lo8(64)
 431 034c 01F0                  breq .L48
 432 034e E091 0000             lds r30,motor_read
 433 0352 F0E0                  ldi r31,lo8(0)
 434 0354 B3E0                  ldi r27,3
 435 0356 EE0F          1:      lsl r30
 436 0358 FF1F                  rol r31
 437 035a BA95                  dec r27
 438 035c 01F4                  brne 1b
 439 035e E050                  subi r30,lo8(-(Motor))
 440 0360 F040                  sbci r31,hi8(-(Motor))
 441 0362 8381                  ldd r24,Z+3
 442 0364 8F77                  andi r24,lo8(127)
 443 0366 8383                  std Z+3,r24
 444 0368 8091 0000             lds r24,motor_read
 445 036c 8F5F                  subi r24,lo8(-(1))
 446 036e 8093 0000             sts motor_read,r24
 447 0372 8091 0000             lds r24,motor_read
 448 0376 8C30                  cpi r24,lo8(12)
 449 0378 00F0                  brlo .L50
 450 037a 1092 0000             sts motor_read,__zero_reg__
 451 037e 1092 0000             sts (BLConfig_ReadMask)+1,__zero_reg__
 452 0382 1092 0000             sts BLConfig_ReadMask,__zero_reg__
 453 0386 8091 0000             lds r24,motor_read_temperature.1960
 454 038a 8F5F                  subi r24,lo8(-(1))
 455 038c 8093 0000             sts motor_read_temperature.1960,r24
 456 0390 8C30                  cpi r24,lo8(12)
 457 0392 00F0                  brlo .L50
 458 0394 1092 0000             sts motor_read_temperature.1960,__zero_reg__
 459 0398 8091 0000             lds r24,BLFlags
 460 039c 8D7F                  andi r24,lo8(-3)
 461 039e 8093 0000             sts BLFlags,r24
 462                    .L50:
 463 03a2 8091 0000             lds r24,BLFlags
 464 03a6 8160                  ori r24,lo8(1)
 465 03a8 8093 0000             sts BLFlags,r24
 466 03ac 1092 0000             sts twi_state,__zero_reg__
 467 03b0 84E9                  ldi r24,lo8(-108)
 468 03b2 8093 BC00             sts 188,r24
 469 03b6 1092 0000             sts I2C_TransferActive,__zero_reg__
 470 03ba 00C0                  rjmp .L53
 471                    .L48:
 472 03bc E091 0000             lds r30,motor_read
 473 03c0 F0E0                  ldi r31,lo8(0)
 474 03c2 A3E0                  ldi r26,3
 475 03c4 EE0F          1:      lsl r30
 476 03c6 FF1F                  rol r31
 477 03c8 AA95                  dec r26
 478 03ca 01F4                  brne 1b
 479 03cc E050                  subi r30,lo8(-(Motor))
 480 03ce F040                  sbci r31,hi8(-(Motor))
 481 03d0 8381                  ldd r24,Z+3
 482 03d2 8068                  ori r24,lo8(-128)
 483 03d4 8383                  std Z+3,r24
 484 03d6 E091 0000             lds r30,motor_read
 485 03da F0E0                  ldi r31,lo8(0)
 486 03dc EE0F                  lsl r30
 487 03de FF1F                  rol r31
 488 03e0 EE0F                  lsl r30
 489 03e2 FF1F                  rol r31
 490 03e4 EE0F                  lsl r30
 491 03e6 FF1F                  rol r31
 492 03e8 E050                  subi r30,lo8(-(Motor))
 493 03ea F040                  sbci r31,hi8(-(Motor))
 494 03ec 8081                  ld r24,Z
 495 03ee 80FF                  sbrs r24,0
 496 03f0 00C0                  rjmp .L54
 497 03f2 E091 0000             lds r30,motor_read
 498 03f6 F0E0                  ldi r31,lo8(0)
 499 03f8 EE0F                  lsl r30
 500 03fa FF1F                  rol r31
 501 03fc EE0F                  lsl r30
 502 03fe FF1F                  rol r31
 503 0400 EE0F                  lsl r30
 504 0402 FF1F                  rol r31
 505 0404 E050                  subi r30,lo8(-(Motor))
 506 0406 F040                  sbci r31,hi8(-(Motor))
 507 0408 8481                  ldd r24,Z+4
 508 040a 8823                  tst r24
 509 040c 01F0                  breq .L57
 510 040e 8031                  cpi r24,lo8(16)
 511 0410 01F4                  brne .L56
 512 0412 80E0                  ldi r24,lo8(BLConfig)
 513 0414 90E0                  ldi r25,hi8(BLConfig)
 514 0416 9093 0000             sts (pBuff.1961)+1,r25
 515 041a 8093 0000             sts pBuff.1961,r24
 516 041e 88E0                  ldi r24,lo8(8)
 517 0420 00C0                  rjmp .L85
 518                    .L57:
 519 0422 8091 0000             lds r24,motor_read
 520 0426 90E0                  ldi r25,lo8(0)
 521 0428 880F                  lsl r24
 522 042a 991F                  rol r25
 523 042c 880F                  lsl r24
 524 042e 991F                  rol r25
 525 0430 880F                  lsl r24
 526 0432 991F                  rol r25
 527 0434 8050                  subi r24,lo8(-(Motor+5))
 528 0436 9040                  sbci r25,hi8(-(Motor+5))
 529 0438 9093 0000             sts (pBuff.1961)+1,r25
 530 043c 8093 0000             sts pBuff.1961,r24
 531 0440 9091 0000             lds r25,motor_read
 532 0444 8091 0000             lds r24,motor_read_temperature.1960
 533 0448 9817                  cp r25,r24
 534 044a 01F4                  brne .L63
 535 044c 83E0                  ldi r24,lo8(3)
 536 044e 00C0                  rjmp .L85
 537                    .L54:
 538 0450 8091 0000             lds r24,motor_read
 539 0454 90E0                  ldi r25,lo8(0)
 540 0456 43E0                  ldi r20,3
 541 0458 880F          1:      lsl r24
 542 045a 991F                  rol r25
 543 045c 4A95                  dec r20
 544 045e 01F4                  brne 1b
 545 0460 8050                  subi r24,lo8(-(Motor+5))
 546 0462 9040                  sbci r25,hi8(-(Motor+5))
 547 0464 9093 0000             sts (pBuff.1961)+1,r25
 548 0468 8093 0000             sts pBuff.1961,r24
 549 046c 8091 0000             lds r24,BLFlags
 550 0470 81FD                  sbrc r24,1
 551 0472 00C0                  rjmp .L61
 552 0474 9091 0000             lds r25,motor_read
 553 0478 8091 0000             lds r24,motor_read_temperature.1960
 554 047c 9817                  cp r25,r24
 555 047e 01F4                  brne .L63
 556                    .L61:
 557 0480 82E0                  ldi r24,lo8(2)
 558 0482 00C0                  rjmp .L85
 559                    .L63:
 560 0484 81E0                  ldi r24,lo8(1)
 561                    .L85:
 562 0486 8093 0000             sts BuffLen.1962,r24
 563                    .L56:
 564 048a 8091 0000             lds r24,BuffLen.1962
 565 048e 8130                  cpi r24,lo8(1)
 566 0490 01F4                  brne .L64
 567 0492 85E8                  ldi r24,lo8(-123)
 568 0494 00C0                  rjmp .L86
 569                    .L64:
 570 0496 85EC                  ldi r24,lo8(-59)
 571                    .L86:
 572 0498 8093 BC00             sts 188,r24
 573                    .L53:
 574 049c 8091 0000             lds r24,missing_motor.1959
 575 04a0 8093 0000             sts MissingMotor,r24
 576 04a4 1092 0000             sts missing_motor.1959,__zero_reg__
 577 04a8 00C0                  rjmp .L84
 578                    .L17:
 579 04aa E091 0000             lds r30,pBuff.1961
 580 04ae F091 0000             lds r31,(pBuff.1961)+1
 581 04b2 8091 BB00             lds r24,187
 582 04b6 8193                  st Z+,r24
 583 04b8 F093 0000             sts (pBuff.1961)+1,r31
 584 04bc E093 0000             sts pBuff.1961,r30
 585 04c0 8091 0000             lds r24,BuffLen.1962
 586 04c4 8150                  subi r24,lo8(-(-1))
 587 04c6 8093 0000             sts BuffLen.1962,r24
 588 04ca 8230                  cpi r24,lo8(2)
 589 04cc 00F0                  brlo .L66
 590 04ce 85EC                  ldi r24,lo8(-59)
 591 04d0 00C0                  rjmp .L87
 592                    .L66:
 593 04d2 8130                  cpi r24,lo8(1)
 594 04d4 01F4                  brne .L69
 595 04d6 85E8                  ldi r24,lo8(-123)
 596 04d8 00C0                  rjmp .L87
 597                    .L69:
 598 04da 8091 0000             lds r24,BLFlags
 599 04de 81FF                  sbrs r24,1
 600 04e0 00C0                  rjmp .L71
 601 04e2 8091 0000             lds r24,FC_StatusFlags
 602 04e6 80FD                  sbrc r24,0
 603 04e8 00C0                  rjmp .L73
 604 04ea E091 0000             lds r30,motor_read
 605 04ee F0E0                  ldi r31,lo8(0)
 606 04f0 33E0                  ldi r19,3
 607 04f2 EE0F          1:      lsl r30
 608 04f4 FF1F                  rol r31
 609 04f6 3A95                  dec r19
 610 04f8 01F4                  brne 1b
 611 04fa E050                  subi r30,lo8(-(Motor))
 612 04fc F040                  sbci r31,hi8(-(Motor))
 613 04fe 8681                  ldd r24,Z+6
 614 0500 8A3F                  cpi r24,lo8(-6)
 615 0502 01F4                  brne .L73
 616 0504 E091 0000             lds r30,motor_read
 617 0508 F0E0                  ldi r31,lo8(0)
 618 050a 23E0                  ldi r18,3
 619 050c EE0F          1:      lsl r30
 620 050e FF1F                  rol r31
 621 0510 2A95                  dec r18
 622 0512 01F4                  brne 1b
 623 0514 E050                  subi r30,lo8(-(Motor))
 624 0516 F040                  sbci r31,hi8(-(Motor))
 625 0518 8081                  ld r24,Z
 626 051a 8160                  ori r24,lo8(1)
 627 051c 8083                  st Z,r24
 628 051e 00C0                  rjmp .L71
 629                    .L73:
 630 0520 E091 0000             lds r30,motor_read
 631 0524 F0E0                  ldi r31,lo8(0)
 632 0526 93E0                  ldi r25,3
 633 0528 EE0F          1:      lsl r30
 634 052a FF1F                  rol r31
 635 052c 9A95                  dec r25
 636 052e 01F4                  brne 1b
 637 0530 E050                  subi r30,lo8(-(Motor))
 638 0532 F040                  sbci r31,hi8(-(Motor))
 639 0534 1082                  st Z,__zero_reg__
 640                    .L71:
 641 0536 8091 0000             lds r24,motor_read
 642 053a 8F5F                  subi r24,lo8(-(1))
 643 053c 8093 0000             sts motor_read,r24
 644 0540 8091 0000             lds r24,motor_read
 645 0544 8C30                  cpi r24,lo8(12)
 646 0546 00F0                  brlo .L76
 647 0548 1092 0000             sts motor_read,__zero_reg__
 648 054c 1092 0000             sts (BLConfig_ReadMask)+1,__zero_reg__
 649 0550 1092 0000             sts BLConfig_ReadMask,__zero_reg__
 650 0554 8091 0000             lds r24,motor_read_temperature.1960
 651 0558 8F5F                  subi r24,lo8(-(1))
 652 055a 8093 0000             sts motor_read_temperature.1960,r24
 653 055e 8C30                  cpi r24,lo8(12)
 654 0560 00F0                  brlo .L76
 655 0562 1092 0000             sts motor_read_temperature.1960,__zero_reg__
 656 0566 8091 0000             lds r24,BLFlags
 657 056a 8D7F                  andi r24,lo8(-3)
 658 056c 8093 0000             sts BLFlags,r24
 659                    .L76:
 660 0570 1092 0000             sts twi_state,__zero_reg__
 661 0574 84E9                  ldi r24,lo8(-108)
 662 0576 8093 BC00             sts 188,r24
 663 057a 8091 0000             lds r24,BLFlags
 664 057e 8160                  ori r24,lo8(1)
 665 0580 8093 0000             sts BLFlags,r24
 666 0584 00C0                  rjmp .L91
 667                    .L87:
 668 0586 8093 BC00             sts 188,r24
 669 058a 86E0                  ldi r24,lo8(6)
 670                    .L90:
 671 058c 8093 0000             sts twi_state,r24
 672 0590 00C0                  rjmp .L84
 673                    .L18:
 674 0592 88E9                  ldi r24,lo8(-104)
 675 0594 00C0                  rjmp .L92
 676                    .L19:
 677 0596 8091 0000             lds r24,dac_channel
 678 059a 880F                  lsl r24
 679 059c 805F                  subi r24,lo8(-(16))
 680 059e 00C0                  rjmp .L92
 681                    .L20:
 682 05a0 8091 0000             lds r24,dac_channel
 683 05a4 8130                  cpi r24,lo8(1)
 684 05a6 01F0                  breq .L80
 685 05a8 8130                  cpi r24,lo8(1)
 686 05aa 00F0                  brlo .L79
 687 05ac 8230                  cpi r24,lo8(2)
 688 05ae 01F0                  breq .+2
 689 05b0 00C0                  rjmp .L84
 690 05b2 00C0                  rjmp .L81
 691                    .L79:
 692 05b4 8091 0000             lds r24,AnalogOffsetNick
 693 05b8 00C0                  rjmp .L92
 694                    .L80:
 695 05ba 8091 0000             lds r24,AnalogOffsetRoll
 696 05be 00C0                  rjmp .L92
 697                    .L81:
 698 05c0 8091 0000             lds r24,AnalogOffsetGier
 699 05c4 00C0                  rjmp .L92
 700                    .L21:
 701 05c6 80E8                  ldi r24,lo8(-128)
 702 05c8 00C0                  rjmp .L92
 703                    .L22:
 704 05ca 1092 0000             sts twi_state,__zero_reg__
 705 05ce 84E9                  ldi r24,lo8(-108)
 706 05d0 8093 BC00             sts 188,r24
 707 05d4 1092 0000             sts I2C_TransferActive,__zero_reg__
 708 05d8 8AE0                  ldi r24,lo8(10)
 709 05da 90E0                  ldi r25,hi8(10)
 710 05dc 9093 0000             sts (I2CTimeout)+1,r25
 711 05e0 8093 0000             sts I2CTimeout,r24
 712 05e4 8091 0000             lds r24,dac_channel
 713 05e8 8230                  cpi r24,lo8(2)
 714 05ea 00F4                  brsh .L82
 715 05ec 8091 0000             lds r24,dac_channel
 716 05f0 8F5F                  subi r24,lo8(-(1))
 717 05f2 8093 0000             sts dac_channel,r24
 718 05f6 82E1                  ldi r24,lo8(18)
 719 05f8 8093 0000             sts twi_state,r24
 720                    .L93:
 721 05fc 8091 0000             lds r24,BLFlags
 722 0600 8E7F                  andi r24,lo8(-2)
 723 0602 8093 0000             sts BLFlags,r24
 724 0606 85EA                  ldi r24,lo8(-91)
 725                    .L88:
 726 0608 8093 BC00             sts 188,r24
 727 060c 00C0                  rjmp .L84
 728                    .L82:
 729 060e 1092 0000             sts dac_channel,__zero_reg__
 730 0612 8091 0000             lds r24,BLFlags
 731 0616 8160                  ori r24,lo8(1)
 732 0618 8093 0000             sts BLFlags,r24
 733 061c 00C0                  rjmp .L84
 734                    .L10:
 735 061e 1092 0000             sts twi_state,__zero_reg__
 736 0622 84E9                  ldi r24,lo8(-108)
 737 0624 8093 BC00             sts 188,r24
 738 0628 8091 0000             lds r24,BLFlags
 739 062c 8160                  ori r24,lo8(1)
 740 062e 8093 0000             sts BLFlags,r24
 741 0632 8AE0                  ldi r24,lo8(10)
 742 0634 90E0                  ldi r25,hi8(10)
 743 0636 9093 0000             sts (I2CTimeout)+1,r25
 744 063a 8093 0000             sts I2CTimeout,r24
 745 063e 1092 0000             sts motor_write,__zero_reg__
 746 0642 1092 0000             sts motor_read,__zero_reg__
 747                    .L91:
 748 0646 1092 0000             sts I2C_TransferActive,__zero_reg__
 749                    .L84:
 750                    /* epilogue: frame size=0 */
 751 064a FF91                  pop r31
 752 064c EF91                  pop r30
 753 064e BF91                  pop r27
 754 0650 AF91                  pop r26
 755 0652 9F91                  pop r25
 756 0654 8F91                  pop r24
 757 0656 4F91                  pop r20
 758 0658 3F91                  pop r19
 759 065a 2F91                  pop r18
 760 065c 0F90                  pop __tmp_reg__
 761 065e 0FBE                  out __SREG__,__tmp_reg__
 762 0660 0F90                  pop __tmp_reg__
 763 0662 1F90                  pop __zero_reg__
 764 0664 1895                  reti
 765                    /* epilogue end (size=14) */
 766                    /* function __vector_26 size 757 (729) */
 768                    .global I2C_ReadBLConfig
 770                    I2C_ReadBLConfig:
 771                    /* prologue: frame size=0 */
 772 0666 0F93                  push r16
 773 0668 1F93                  push r17
 774 066a CF93                  push r28
 775 066c DF93                  push r29
 776                    /* prologue end (size=4) */
 777 066e 982F                  mov r25,r24
 778 0670 8091 0000             lds r24,MotorenEin
 779 0674 8823                  tst r24
 780 0676 01F0                  breq .+2
 781 0678 00C0                  rjmp .L95
 782 067a 8091 0000             lds r24,PC_MotortestActive
 783 067e 8823                  tst r24
 784 0680 01F0                  breq .+2
 785 0682 00C0                  rjmp .L95
 786 0684 9D30                  cpi r25,lo8(13)
 787 0686 00F0                  brlo .+2
 788 0688 00C0                  rjmp .L98
 789 068a 9923                  tst r25
 790 068c 01F4                  brne .L100
 791 068e 86E0                  ldi r24,lo8(6)
 792 0690 90E0                  ldi r25,hi8(6)
 793 0692 00C0                  rjmp .L102
 794                    .L100:
 795 0694 C92F                  mov r28,r25
 796 0696 D0E0                  ldi r29,lo8(0)
 797 0698 2197                  sbiw r28,1
 798 069a FE01                  movw r30,r28
 799 069c 13E0                  ldi r17,3
 800 069e EE0F          1:      lsl r30
 801 06a0 FF1F                  rol r31
 802 06a2 1A95                  dec r17
 803 06a4 01F4                  brne 1b
 804 06a6 E050                  subi r30,lo8(-(Motor))
 805 06a8 F040                  sbci r31,hi8(-(Motor))
 806 06aa 8381                  ldd r24,Z+3
 807 06ac 87FF                  sbrs r24,7
 808 06ae 00C0                  rjmp .L98
 809 06b0 8081                  ld r24,Z
 810 06b2 80FD                  sbrc r24,0
 811 06b4 00C0                  rjmp .L104
 812 06b6 83E0                  ldi r24,lo8(3)
 813 06b8 90E0                  ldi r25,hi8(3)
 814 06ba 00C0                  rjmp .L102
 815                    .L104:
 816 06bc 80ED                  ldi r24,lo8(2000)
 817 06be 97E0                  ldi r25,hi8(2000)
 818 06c0 0E94 0000             call SetDelay
 819 06c4 8C01                  movw r16,r24
 820                    .L106:
 821 06c6 8091 0000             lds r24,BLFlags
 822 06ca 80FD                  sbrc r24,0
 823 06cc 00C0                  rjmp .L107
 824 06ce C801                  movw r24,r16
 825 06d0 0E94 0000             call CheckDelay
 826 06d4 8823                  tst r24
 827 06d6 01F0                  breq .L106
 828                    .L107:
 829 06d8 81E0                  ldi r24,lo8(1)
 830 06da 90E0                  ldi r25,hi8(1)
 831 06dc 00C0                  rjmp 2f
 832 06de 880F          1:      lsl r24
 833 06e0 991F                  rol r25
 834 06e2 CA95          2:      dec r28
 835 06e4 02F4                  brpl 1b
 836 06e6 9093 0000             sts (BLConfig_ReadMask)+1,r25
 837 06ea 8093 0000             sts BLConfig_ReadMask,r24
 838 06ee E0E0                  ldi r30,lo8(Motor+1)
 839 06f0 F0E0                  ldi r31,hi8(Motor+1)
 840 06f2 40E0                  ldi r20,lo8(0)
 841 06f4 50E0                  ldi r21,hi8(0)
 842                    .L109:
 843 06f6 2091 0000             lds r18,BLConfig_ReadMask
 844 06fa 3091 0000             lds r19,(BLConfig_ReadMask)+1
 845 06fe 81E0                  ldi r24,lo8(1)
 846 0700 90E0                  ldi r25,hi8(1)
 847 0702 042E                  mov r0,r20
 848 0704 00C0                  rjmp 2f
 849 0706 880F          1:      lsl r24
 850 0708 991F                  rol r25
 851 070a 0A94          2:      dec r0
 852 070c 02F4                  brpl 1b
 853 070e 8223                  and r24,r18
 854 0710 9323                  and r25,r19
 855 0712 892B                  or r24,r25
 856 0714 01F0                  breq .L110
 857 0716 1082                  st Z,__zero_reg__
 858 0718 1182                  std Z+1,__zero_reg__
 859                    .L110:
 860 071a 4F5F                  subi r20,lo8(-(1))
 861 071c 5F4F                  sbci r21,hi8(-(1))
 862 071e 3896                  adiw r30,8
 863 0720 4C30                  cpi r20,12
 864 0722 5105                  cpc r21,__zero_reg__
 865 0724 01F4                  brne .L109
 866 0726 1092 0000             sts motor_read,__zero_reg__
 867 072a 1092 0000             sts BLConfig,__zero_reg__
 868 072e 1092 0000             sts BLConfig+7,__zero_reg__
 869                    .L113:
 870 0732 1092 0000             sts twi_state,__zero_reg__
 871 0736 8091 0000             lds r24,BLFlags
 872 073a 8E7F                  andi r24,lo8(-2)
 873 073c 8093 0000             sts BLFlags,r24
 874 0740 85EA                  ldi r24,lo8(-91)
 875 0742 8093 BC00             sts 188,r24
 876                    .L114:
 877 0746 8091 0000             lds r24,BLFlags
 878 074a 80FD                  sbrc r24,0
 879 074c 00C0                  rjmp .L115
 880 074e C801                  movw r24,r16
 881 0750 0E94 0000             call CheckDelay
 882 0754 8823                  tst r24
 883 0756 01F0                  breq .L114
 884                    .L115:
 885 0758 8091 0000             lds r24,BLConfig_ReadMask
 886 075c 9091 0000             lds r25,(BLConfig_ReadMask)+1
 887 0760 892B                  or r24,r25
 888 0762 01F0                  breq .L117
 889 0764 C801                  movw r24,r16
 890 0766 0E94 0000             call CheckDelay
 891 076a 8823                  tst r24
 892 076c 01F0                  breq .L113
 893                    .L117:
 894 076e 8091 0000             lds r24,BLConfig
 895 0772 8230                  cpi r24,lo8(2)
 896 0774 01F0                  breq .L119
 897 0776 84E0                  ldi r24,lo8(4)
 898 0778 90E0                  ldi r25,hi8(4)
 899 077a 00C0                  rjmp .L102
 900                    .L119:
 901 077c 67E0                  ldi r22,lo8(7)
 902 077e 70E0                  ldi r23,hi8(7)
 903 0780 80E0                  ldi r24,lo8(BLConfig)
 904 0782 90E0                  ldi r25,hi8(BLConfig)
 905 0784 0E94 0000             call RAM_Checksum
 906 0788 9091 0000             lds r25,BLConfig+7
 907 078c 8917                  cp r24,r25
 908 078e 01F0                  breq .L121
 909 0790 85E0                  ldi r24,lo8(5)
 910 0792 90E0                  ldi r25,hi8(5)
 911 0794 00C0                  rjmp .L102
 912                    .L121:
 913 0796 80E0                  ldi r24,lo8(0)
 914 0798 90E0                  ldi r25,hi8(0)
 915 079a 00C0                  rjmp .L102
 916                    .L95:
 917 079c 81E0                  ldi r24,lo8(1)
 918 079e 90E0                  ldi r25,hi8(1)
 919 07a0 00C0                  rjmp .L102
 920                    .L98:
 921 07a2 82E0                  ldi r24,lo8(2)
 922 07a4 90E0                  ldi r25,hi8(2)
 923                    .L102:
 924                    /* epilogue: frame size=0 */
 925 07a6 DF91                  pop r29
 926 07a8 CF91                  pop r28
 927 07aa 1F91                  pop r17
 928 07ac 0F91                  pop r16
 929 07ae 0895                  ret
 930                    /* epilogue end (size=5) */
 931                    /* function I2C_ReadBLConfig size 166 (157) */
 933                    .global I2C_WriteBLConfig
 935                    I2C_WriteBLConfig:
 936                    /* prologue: frame size=0 */
 937 07b0 1F93                  push r17
 938 07b2 CF93                  push r28
 939 07b4 DF93                  push r29
 940                    /* prologue end (size=3) */
 941 07b6 182F                  mov r17,r24
 942 07b8 8091 0000             lds r24,MotorenEin
 943 07bc 8823                  tst r24
 944 07be 01F0                  breq .+2
 945 07c0 00C0                  rjmp .L130
 946 07c2 8091 0000             lds r24,PC_MotortestActive
 947 07c6 8823                  tst r24
 948 07c8 01F0                  breq .+2
 949 07ca 00C0                  rjmp .L130
 950 07cc 1D30                  cpi r17,lo8(13)
 951 07ce 00F0                  brlo .+2
 952 07d0 00C0                  rjmp .L133
 953 07d2 1123                  tst r17
 954 07d4 01F0                  breq .L135
 955 07d6 E12F                  mov r30,r17
 956 07d8 F0E0                  ldi r31,lo8(0)
 957 07da 83E0                  ldi r24,3
 958 07dc EE0F          1:      lsl r30
 959 07de FF1F                  rol r31
 960 07e0 8A95                  dec r24
 961 07e2 01F4                  brne 1b
 962 07e4 E050                  subi r30,lo8(-(Motor-8))
 963 07e6 F040                  sbci r31,hi8(-(Motor-8))
 964 07e8 8381                  ldd r24,Z+3
 965 07ea 87FF                  sbrs r24,7
 966 07ec 00C0                  rjmp .L133
 967 07ee 8081                  ld r24,Z
 968 07f0 80FD                  sbrc r24,0
 969 07f2 00C0                  rjmp .L135
 970 07f4 83E0                  ldi r24,lo8(3)
 971 07f6 90E0                  ldi r25,hi8(3)
 972 07f8 00C0                  rjmp .L139
 973                    .L135:
 974 07fa 8091 0000             lds r24,BLConfig
 975 07fe 8230                  cpi r24,lo8(2)
 976 0800 01F0                  breq .L140
 977 0802 84E0                  ldi r24,lo8(4)
 978 0804 90E0                  ldi r25,hi8(4)
 979 0806 00C0                  rjmp .L139
 980                    .L140:
 981 0808 67E0                  ldi r22,lo8(7)
 982 080a 70E0                  ldi r23,hi8(7)
 983 080c 80E0                  ldi r24,lo8(BLConfig)
 984 080e 90E0                  ldi r25,hi8(BLConfig)
 985 0810 0E94 0000             call RAM_Checksum
 986 0814 9091 0000             lds r25,BLConfig+7
 987 0818 8917                  cp r24,r25
 988 081a 01F0                  breq .L142
 989 081c 85E0                  ldi r24,lo8(5)
 990 081e 90E0                  ldi r25,hi8(5)
 991 0820 00C0                  rjmp .L139
 992                    .L142:
 993 0822 80ED                  ldi r24,lo8(2000)
 994 0824 97E0                  ldi r25,hi8(2000)
 995 0826 0E94 0000             call SetDelay
 996 082a EC01                  movw r28,r24
 997                    .L144:
 998 082c 8091 0000             lds r24,BLFlags
 999 0830 80FD                  sbrc r24,0
 1000 0832 00C0                 rjmp .L145
 1001 0834 CE01                 movw r24,r28
 1002 0836 0E94 0000            call CheckDelay
 1003 083a 8823                 tst r24
 1004 083c 01F0                 breq .L144
 1005                   .L145:
 1006 083e 1123                 tst r17
 1007 0840 01F4                 brne .L147
 1008 0842 8FEF                 ldi r24,lo8(255)
 1009 0844 90E0                 ldi r25,hi8(255)
 1010 0846 00C0                 rjmp .L167
 1011                   .L147:
 1012 0848 212F                 mov r18,r17
 1013 084a 30E0                 ldi r19,lo8(0)
 1014 084c 2150                 subi r18,lo8(-(-1))
 1015 084e 3040                 sbci r19,hi8(-(-1))
 1016 0850 81E0                 ldi r24,lo8(1)
 1017 0852 90E0                 ldi r25,hi8(1)
 1018 0854 00C0                 rjmp 2f
 1019 0856 880F         1:      lsl r24
 1020 0858 991F                 rol r25
 1021 085a 2A95         2:      dec r18
 1022 085c 02F4                 brpl 1b
 1023                   .L167:
 1024 085e 9093 0000            sts (BLConfig_WriteMask)+1,r25
 1025 0862 8093 0000            sts BLConfig_WriteMask,r24
 1026 0866 E0E0                 ldi r30,lo8(Motor+1)
 1027 0868 F0E0                 ldi r31,hi8(Motor+1)
 1028 086a 40E0                 ldi r20,lo8(0)
 1029 086c 50E0                 ldi r21,hi8(0)
 1030                   .L150:
 1031 086e 2091 0000            lds r18,BLConfig_WriteMask
 1032 0872 3091 0000            lds r19,(BLConfig_WriteMask)+1
 1033 0876 81E0                 ldi r24,lo8(1)
 1034 0878 90E0                 ldi r25,hi8(1)
 1035 087a 042E                 mov r0,r20
 1036 087c 00C0                 rjmp 2f
 1037 087e 880F         1:      lsl r24
 1038 0880 991F                 rol r25
 1039 0882 0A94         2:      dec r0
 1040 0884 02F4                 brpl 1b
 1041 0886 8223                 and r24,r18
 1042 0888 9323                 and r25,r19
 1043 088a 892B                 or r24,r25
 1044 088c 01F0                 breq .L151
 1045 088e 1082                 st Z,__zero_reg__
 1046 0890 1182                 std Z+1,__zero_reg__
 1047                   .L151:
 1048 0892 4F5F                 subi r20,lo8(-(1))
 1049 0894 5F4F                 sbci r21,hi8(-(1))
 1050 0896 3896                 adiw r30,8
 1051 0898 4C30                 cpi r20,12
 1052 089a 5105                 cpc r21,__zero_reg__
 1053 089c 01F4                 brne .L150
 1054 089e 1092 0000            sts motor_write,__zero_reg__
 1055                   .L154:
 1056 08a2 1092 0000            sts twi_state,__zero_reg__
 1057 08a6 8091 0000            lds r24,BLFlags
 1058 08aa 8E7F                 andi r24,lo8(-2)
 1059 08ac 8093 0000            sts BLFlags,r24
 1060 08b0 85EA                 ldi r24,lo8(-91)
 1061 08b2 8093 BC00            sts 188,r24
 1062                   .L155:
 1063 08b6 8091 0000            lds r24,BLFlags
 1064 08ba 80FD                 sbrc r24,0
 1065 08bc 00C0                 rjmp .L156
 1066 08be CE01                 movw r24,r28
 1067 08c0 0E94 0000            call CheckDelay
 1068 08c4 8823                 tst r24
 1069 08c6 01F0                 breq .L155
 1070                   .L156:
 1071 08c8 8091 0000            lds r24,BLConfig_WriteMask
 1072 08cc 9091 0000            lds r25,(BLConfig_WriteMask)+1
 1073 08d0 892B                 or r24,r25
 1074 08d2 01F0                 breq .L158
 1075 08d4 CE01                 movw r24,r28
 1076 08d6 0E94 0000            call CheckDelay
 1077 08da 8823                 tst r24
 1078 08dc 01F0                 breq .L154
 1079                   .L158:
 1080 08de 8091 0000            lds r24,BLConfig_WriteMask
 1081 08e2 9091 0000            lds r25,(BLConfig_WriteMask)+1
 1082 08e6 892B                 or r24,r25
 1083 08e8 01F4                 brne .L133
 1084 08ea 80E0                 ldi r24,lo8(0)
 1085 08ec 90E0                 ldi r25,hi8(0)
 1086 08ee 00C0                 rjmp .L139
 1087                   .L130:
 1088 08f0 81E0                 ldi r24,lo8(1)
 1089 08f2 90E0                 ldi r25,hi8(1)
 1090 08f4 00C0                 rjmp .L139
 1091                   .L133:
 1092 08f6 82E0                 ldi r24,lo8(2)
 1093 08f8 90E0                 ldi r25,hi8(2)
 1094                   .L139:
 1095                   /* epilogue: frame size=0 */
 1096 08fa DF91                 pop r29
 1097 08fc CF91                 pop r28
 1098 08fe 1F91                 pop r17
 1099 0900 0895                 ret
 1100                   /* epilogue end (size=4) */
 1101                   /* function I2C_WriteBLConfig size 170 (163) */
 1103                   .global twi_state
 1104                   .global twi_state
 1105                           .section .bss
 1108                   twi_state:
 1109 0000 00                   .skip 1,0
 1110                   .global dac_channel
 1111                   .global dac_channel
 1114                   dac_channel:
 1115 0001 00                   .skip 1,0
 1116                   .global motor_write
 1117                   .global motor_write
 1120                   motor_write:
 1121 0002 00                   .skip 1,0
 1122                   .global motor_read
 1123                   .global motor_read
 1126                   motor_read:
 1127 0003 00                   .skip 1,0
 1128                   .global I2C_TransferActive
 1129                   .global I2C_TransferActive
 1132                   I2C_TransferActive:
 1133 0004 00                   .skip 1,0
 1134                   .global I2CTimeout
 1135                           .data
 1138                   I2CTimeout:
 1139 0000 6400                 .word   100
 1140                   .global MissingMotor
 1141                   .global MissingMotor
 1142                           .section .bss
 1145                   MissingMotor:
 1146 0005 00                   .skip 1,0
 1147                   .global BLFlags
 1148                   .global BLFlags
 1151                   BLFlags:
 1152 0006 00                   .skip 1,0
 1153                   .global BLConfig_WriteMask
 1154                   .global BLConfig_WriteMask
 1157                   BLConfig_WriteMask:
 1158 0007 0000                 .skip 2,0
 1159                   .global BLConfig_ReadMask
 1160                   .global BLConfig_ReadMask
 1163                   BLConfig_ReadMask:
 1164 0009 0000                 .skip 2,0
 1165                           .lcomm BuffLen.1962,1
 1166                           .lcomm pBuff.1961,2
 1167                           .lcomm motor_read_temperature.1960,1
 1168                           .lcomm missing_motor.1959,1
 1169                           .comm Motor,96,1
 1170                           .comm BLConfig,8,1
 1171                   /* File "twimaster.c": code 1182 = 0x049e (1128), prologues  25, epilogues  29 */
DEFINED SYMBOLS
                            *ABS*:00000000 twimaster.c
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:2      *ABS*:0000003f __SREG__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:3      *ABS*:0000003e __SP_H__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:4      *ABS*:0000003d __SP_L__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:5      *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:6      *ABS*:00000001 __zero_reg__
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:12     .text:00000000 I2C_Init
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1108   .bss:00000000 twi_state
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1120   .bss:00000002 motor_write
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1126   .bss:00000003 motor_read
                            *COM*:00000060 Motor
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:62     .text:00000052 I2C_Reset
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1132   .bss:00000004 I2C_TransferActive
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1151   .bss:00000006 BLFlags
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:108    .text:000000ae __vector_26
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1157   .bss:00000007 BLConfig_WriteMask
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1163   .bss:00000009 BLConfig_ReadMask
                            *COM*:00000008 BLConfig
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1165   .bss:0000000c pBuff.1961
                             .bss:0000000b BuffLen.1962
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1167   .bss:0000000f missing_motor.1959
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1138   .data:00000000 I2CTimeout
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1166   .bss:0000000e motor_read_temperature.1960
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1145   .bss:00000005 MissingMotor
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:1114   .bss:00000001 dac_channel
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:770    .text:00000666 I2C_ReadBLConfig
C:\DOCUME~1\Owner\LOCALS~1\Temp/ccShu0uf.s:935    .text:000007b0 I2C_WriteBLConfig

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__tablejump2__
Mixer
RequiredMotors
FC_StatusFlags
AnalogOffsetNick
AnalogOffsetRoll
AnalogOffsetGier
MotorenEin
PC_MotortestActive
SetDelay
CheckDelay
RAM_Checksum