Subversion Repositories Projects

Rev

Blame | Last modification | View Log | RSS feed

   1                            .file   "twimaster.c"
   2                            .arch atmega644p
   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                            .text
  11                    .global i2c_init
  13                    i2c_init:
  14                    /* prologue: frame size=0 */
  15                    /* prologue end (size=0) */
  16 0000 1092 B900             sts 185,__zero_reg__
  17 0004 8AE2                  ldi r24,lo8(42)
  18 0006 8093 B800             sts 184,r24
  19                    /* epilogue: frame size=0 */
  20 000a 0895                  ret
  21                    /* epilogue end (size=1) */
  22                    /* function i2c_init size 6 (5) */
  24                    .global i2c_start
  26                    i2c_start:
  27                    /* prologue: frame size=0 */
  28                    /* prologue end (size=0) */
  29 000c 85EA                  ldi r24,lo8(-91)
  30 000e 8093 BC00             sts 188,r24
  31 0012 80E0                  ldi r24,lo8(0)
  32 0014 90E0                  ldi r25,hi8(0)
  33                    /* epilogue: frame size=0 */
  34 0016 0895                  ret
  35                    /* epilogue end (size=1) */
  36                    /* function i2c_start size 6 (5) */
  38                    .global i2c_stop
  40                    i2c_stop:
  41                    /* prologue: frame size=0 */
  42                    /* prologue end (size=0) */
  43 0018 84E9                  ldi r24,lo8(-108)
  44 001a 8093 BC00             sts 188,r24
  45                    /* epilogue: frame size=0 */
  46 001e 0895                  ret
  47                    /* epilogue end (size=1) */
  48                    /* function i2c_stop size 4 (3) */
  50                    .global i2c_write_byte
  52                    i2c_write_byte:
  53                    /* prologue: frame size=0 */
  54                    /* prologue end (size=0) */
  55 0020 1092 B900             sts 185,__zero_reg__
  56 0024 8093 BB00             sts 187,r24
  57 0028 85E8                  ldi r24,lo8(-123)
  58 002a 8093 BC00             sts 188,r24
  59 002e 80E0                  ldi r24,lo8(0)
  60 0030 90E0                  ldi r25,hi8(0)
  61                    /* epilogue: frame size=0 */
  62 0032 0895                  ret
  63                    /* epilogue end (size=1) */
  64                    /* function i2c_write_byte size 10 (9) */
  66                    .global __vector_26
  68                    __vector_26:
  69                    /* prologue: frame size=0 */
  70 0034 1F92                  push __zero_reg__
  71 0036 0F92                  push __tmp_reg__
  72 0038 0FB6                  in __tmp_reg__,__SREG__
  73 003a 0F92                  push __tmp_reg__
  74 003c 1124                  clr __zero_reg__
  75 003e 8F93                  push r24
  76 0040 9F93                  push r25
  77 0042 EF93                  push r30
  78 0044 FF93                  push r31
  79                    /* prologue end (size=9) */
  80 0046 8091 0000             lds r24,twi_state
  81 004a 8F5F                  subi r24,lo8(-(1))
  82 004c 8093 0000             sts twi_state,r24
  83 0050 8150                  subi r24,lo8(-(-1))
  84 0052 8330                  cpi r24,lo8(3)
  85 0054 01F0                  breq .L14
  86 0056 8430                  cpi r24,lo8(4)
  87 0058 00F4                  brsh .L19
  88 005a 8130                  cpi r24,lo8(1)
  89 005c 01F0                  breq .L12
  90 005e 8230                  cpi r24,lo8(2)
  91 0060 00F4                  brsh .L13
  92 0062 00C0                  rjmp .L38
  93                    .L19:
  94 0064 8530                  cpi r24,lo8(5)
  95 0066 01F0                  breq .L16
  96 0068 8530                  cpi r24,lo8(5)
  97 006a 00F0                  brlo .L17
  98 006c 8630                  cpi r24,lo8(6)
  99 006e 01F0                  breq .L17
 100 0070 8730                  cpi r24,lo8(7)
 101 0072 01F0                  breq .+2
 102 0074 00C0                  rjmp .L10
 103 0076 00C0                  rjmp .L18
 104                    .L38:
 105 0078 8091 0000             lds r24,motor
 106 007c 880F                  lsl r24
 107 007e 8E5A                  subi r24,lo8(-(82))
 108 0080 00C0                  rjmp .L39
 109                    .L12:
 110 0082 8091 0000             lds r24,motor
 111 0086 8F5F                  subi r24,lo8(-(1))
 112 0088 8093 0000             sts motor,r24
 113 008c 8150                  subi r24,lo8(-(-1))
 114 008e 00C0                  rjmp .L47
 115                    .L20:
 116 0090 8091 0000             lds r24,Motor_Vorne
 117                    .L39:
 118 0094 1092 B900             sts 185,__zero_reg__
 119 0098 8093 BB00             sts 187,r24
 120 009c 85E8                  ldi r24,lo8(-123)
 121                    .L40:
 122 009e 8093 BC00             sts 188,r24
 123 00a2 00C0                  rjmp .L10
 124                    .L13:
 125 00a4 84E9                  ldi r24,lo8(-108)
 126 00a6 8093 BC00             sts 188,r24
 127 00aa 8091 0000             lds r24,motor
 128 00ae 8430                  cpi r24,lo8(4)
 129 00b0 00F4                  brsh .L24
 130 00b2 1092 0000             sts twi_state,__zero_reg__
 131 00b6 00C0                  rjmp .L26
 132                    .L24:
 133 00b8 1092 0000             sts motor,__zero_reg__
 134                    .L26:
 135 00bc 85EA                  ldi r24,lo8(-91)
 136 00be 00C0                  rjmp .L40
 137                    .L14:
 138 00c0 8091 0000             lds r24,motorread
 139 00c4 880F                  lsl r24
 140 00c6 8D5A                  subi r24,lo8(-(83))
 141 00c8 00C0                  rjmp .L39
 142                    .L16:
 143 00ca 8091 BB00             lds r24,187
 144 00ce E091 0000             lds r30,motorread
 145 00d2 FF27                  clr r31
 146 00d4 E050                  subi r30,lo8(-(motor_rx))
 147 00d6 F040                  sbci r31,hi8(-(motor_rx))
 148 00d8 8083                  st Z,r24
 149                    .L17:
 150 00da 8091 0000             lds r24,motorread
 151                    .L47:
 152 00de 8130                  cpi r24,lo8(1)
 153 00e0 01F0                  breq .L32
 154 00e2 8130                  cpi r24,lo8(1)
 155 00e4 00F0                  brlo .L20
 156 00e6 8230                  cpi r24,lo8(2)
 157 00e8 01F0                  breq .L33
 158 00ea 8330                  cpi r24,lo8(3)
 159 00ec 01F4                  brne .L10
 160 00ee 00C0                  rjmp .L34
 161                    .L32:
 162 00f0 8091 0000             lds r24,Motor_Hinten
 163 00f4 00C0                  rjmp .L39
 164                    .L33:
 165 00f6 8091 0000             lds r24,Motor_Rechts
 166 00fa 00C0                  rjmp .L39
 167                    .L34:
 168 00fc 8091 0000             lds r24,Motor_Links
 169 0100 00C0                  rjmp .L39
 170                    .L18:
 171 0102 8091 0000             lds r24,motorread
 172 0106 9091 BB00             lds r25,187
 173 010a E82F                  mov r30,r24
 174 010c FF27                  clr r31
 175 010e E050                  subi r30,lo8(-(motor_rx))
 176 0110 F040                  sbci r31,hi8(-(motor_rx))
 177 0112 9483                  std Z+4,r25
 178 0114 8F5F                  subi r24,lo8(-(1))
 179 0116 8093 0000             sts motorread,r24
 180 011a 8430                  cpi r24,lo8(4)
 181 011c 00F0                  brlo .L35
 182 011e 1092 0000             sts motorread,__zero_reg__
 183                    .L35:
 184 0122 84E9                  ldi r24,lo8(-108)
 185 0124 8093 BC00             sts 188,r24
 186 0128 8AE0                  ldi r24,lo8(10)
 187 012a 90E0                  ldi r25,hi8(10)
 188 012c 9093 0000             sts (I2CTimeout)+1,r25
 189 0130 8093 0000             sts I2CTimeout,r24
 190 0134 1092 0000             sts twi_state,__zero_reg__
 191                    .L10:
 192 0138 8091 BC00             lds r24,188
 193 013c 8068                  ori r24,lo8(-128)
 194 013e 8093 BC00             sts 188,r24
 195                    /* epilogue: frame size=0 */
 196 0142 FF91                  pop r31
 197 0144 EF91                  pop r30
 198 0146 9F91                  pop r25
 199 0148 8F91                  pop r24
 200 014a 0F90                  pop __tmp_reg__
 201 014c 0FBE                  out __SREG__,__tmp_reg__
 202 014e 0F90                  pop __tmp_reg__
 203 0150 1F90                  pop __zero_reg__
 204 0152 1895                  reti
 205                    /* epilogue end (size=9) */
 206                    /* function __vector_26 size 144 (126) */
 208                    .global i2c_reset
 210                    i2c_reset:
 211                    /* prologue: frame size=0 */
 212                    /* prologue end (size=0) */
 213 0154 4CEB                  ldi r20,lo8(188)
 214 0156 50E0                  ldi r21,hi8(188)
 215 0158 84E9                  ldi r24,lo8(-108)
 216 015a DA01                  movw r26,r20
 217 015c 8C93                  st X,r24
 218 015e 1092 0000             sts twi_state,__zero_reg__
 219 0162 2BEB                  ldi r18,lo8(187)
 220 0164 30E0                  ldi r19,hi8(187)
 221 0166 F901                  movw r30,r18
 222 0168 8081                  ld r24,Z
 223 016a 1092 0000             sts motor,__zero_reg__
 224 016e 80E8                  ldi r24,lo8(-128)
 225 0170 8C93                  st X,r24
 226 0172 1092 BD00             sts 189,__zero_reg__
 227 0176 1092 BA00             sts 186,__zero_reg__
 228 017a 1082                  st Z,__zero_reg__
 229 017c E9EB                  ldi r30,lo8(185)
 230 017e F0E0                  ldi r31,hi8(185)
 231 0180 1082                  st Z,__zero_reg__
 232 0182 A8EB                  ldi r26,lo8(184)
 233 0184 B0E0                  ldi r27,hi8(184)
 234 0186 1C92                  st X,__zero_reg__
 235 0188 1082                  st Z,__zero_reg__
 236 018a 8AE2                  ldi r24,lo8(42)
 237 018c 8C93                  st X,r24
 238 018e 85EA                  ldi r24,lo8(-91)
 239 0190 DA01                  movw r26,r20
 240 0192 8C93                  st X,r24
 241 0194 1082                  st Z,__zero_reg__
 242 0196 F901                  movw r30,r18
 243 0198 1082                  st Z,__zero_reg__
 244 019a 85E8                  ldi r24,lo8(-123)
 245 019c 8C93                  st X,r24
 246                    /* epilogue: frame size=0 */
 247 019e 0895                  ret
 248                    /* epilogue end (size=1) */
 249                    /* function i2c_reset size 38 (37) */
 251                    .global twi_state
 252                    .global twi_state
 253                            .section .bss
 256                    twi_state:
 257 0000 00                    .skip 1,0
 258                    .global motor
 259                    .global motor
 262                    motor:
 263 0001 00                    .skip 1,0
 264                    .global motorread
 265                    .global motorread
 268                    motorread:
 269 0002 00                    .skip 1,0
 270                            .comm motor_rx,8,1
 271                    /* File "twimaster.c": code  208 = 0x00d0 ( 185), prologues   9, epilogues  14 */
DEFINED SYMBOLS
                            *ABS*:00000000 twimaster.c
C:\Users\gunterl\AppData\Local\Temp/ccG704Yc.s:3      *ABS*:0000003f __SREG__
C:\Users\gunterl\AppData\Local\Temp/ccG704Yc.s:4      *ABS*:0000003e __SP_H__
C:\Users\gunterl\AppData\Local\Temp/ccG704Yc.s:5      *ABS*:0000003d __SP_L__
C:\Users\gunterl\AppData\Local\Temp/ccG704Yc.s:6      *ABS*:00000000 __tmp_reg__
C:\Users\gunterl\AppData\Local\Temp/ccG704Yc.s:7      *ABS*:00000001 __zero_reg__
C:\Users\gunterl\AppData\Local\Temp/ccG704Yc.s:13     .text:00000000 i2c_init
C:\Users\gunterl\AppData\Local\Temp/ccG704Yc.s:26     .text:0000000c i2c_start
C:\Users\gunterl\AppData\Local\Temp/ccG704Yc.s:40     .text:00000018 i2c_stop
C:\Users\gunterl\AppData\Local\Temp/ccG704Yc.s:52     .text:00000020 i2c_write_byte
C:\Users\gunterl\AppData\Local\Temp/ccG704Yc.s:68     .text:00000034 __vector_26
C:\Users\gunterl\AppData\Local\Temp/ccG704Yc.s:256    .bss:00000000 twi_state
C:\Users\gunterl\AppData\Local\Temp/ccG704Yc.s:262    .bss:00000001 motor
C:\Users\gunterl\AppData\Local\Temp/ccG704Yc.s:268    .bss:00000002 motorread
                            *COM*:00000008 motor_rx
C:\Users\gunterl\AppData\Local\Temp/ccG704Yc.s:210    .text:00000154 i2c_reset

UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
Motor_Vorne
Motor_Hinten
Motor_Rechts
Motor_Links
I2CTimeout