GAS LISTING /tmp/cc8zHL1d.s page 1 1 .file "i2cbus.c" 2 __SP_H__ = 0x3e 3 __SP_L__ = 0x3d 4 __SREG__ = 0x3f 5 __RAMPZ__ = 0x3b 6 __tmp_reg__ = 0 7 __zero_reg__ = 1 8 .section .text.NutRegisterI2cSlave,"ax",@progbits 9 .global NutRegisterI2cSlave 10 .type NutRegisterI2cSlave, @function 11 NutRegisterI2cSlave: 12 0000 0F93 push r16 13 0002 1F93 push r17 14 0004 CF93 push r28 15 0006 DF93 push r29 16 /* prologue: function */ 17 /* frame size = 0 */ 18 /* stack size = 4 */ 19 .L__stack_usage = 4 20 0008 8C01 movw r16,r24 21 000a EB01 movw r28,r22 22 000c 8A89 ldd r24,Y+18 23 000e 80FD sbrc r24,0 24 0010 00C0 rjmp .L2 25 0012 EA81 ldd r30,Y+2 26 0014 FB81 ldd r31,Y+3 27 0016 CB01 movw r24,r22 28 0018 1995 eicall 29 001a 0097 sbiw r24,0 30 001c 01F4 brne .L4 31 001e 8A89 ldd r24,Y+18 32 0020 8160 ori r24,lo8(1) 33 0022 8A8B std Y+18,r24 34 0024 CE01 movw r24,r28 35 0026 4396 adiw r24,19 36 0028 0E94 0000 call NutEventPost 37 .L2: 38 002c F801 movw r30,r16 39 002e D183 std Z+1,r29 40 0030 C083 st Z,r28 41 0032 80E0 ldi r24,0 42 0034 90E0 ldi r25,0 43 .L4: 44 /* epilogue start */ 45 0036 DF91 pop r29 46 0038 CF91 pop r28 47 003a 1F91 pop r17 48 003c 0F91 pop r16 49 003e 0895 ret 50 .size NutRegisterI2cSlave, .-NutRegisterI2cSlave 51 .section .text.NutI2cBusRate,"ax",@progbits 52 .global NutI2cBusRate 53 .type NutI2cBusRate, @function 54 NutI2cBusRate: 55 0000 CF92 push r12 56 0002 DF92 push r13 57 0004 EF92 push r14 GAS LISTING /tmp/cc8zHL1d.s page 2 58 0006 FF92 push r15 59 0008 CF93 push r28 60 000a DF93 push r29 61 /* prologue: function */ 62 /* frame size = 0 */ 63 /* stack size = 6 */ 64 .L__stack_usage = 6 65 000c EC01 movw r28,r24 66 000e CE84 ldd r12,Y+14 67 0010 DF84 ldd r13,Y+15 68 0012 E888 ldd r14,Y+16 69 0014 F988 ldd r15,Y+17 70 0016 4F3F cpi r20,-1 71 0018 8FEF ldi r24,-1 72 001a 5807 cpc r21,r24 73 001c 6807 cpc r22,r24 74 001e 7807 cpc r23,r24 75 0020 01F0 breq .L7 76 0022 4E87 std Y+14,r20 77 0024 5F87 std Y+15,r21 78 0026 688B std Y+16,r22 79 0028 798B std Y+17,r23 80 002a EC81 ldd r30,Y+4 81 002c FD81 ldd r31,Y+5 82 002e CE01 movw r24,r28 83 0030 1995 eicall 84 0032 892B or r24,r25 85 0034 01F0 breq .L7 86 0036 CE86 std Y+14,r12 87 0038 DF86 std Y+15,r13 88 003a E88A std Y+16,r14 89 003c F98A std Y+17,r15 90 003e CC24 clr r12 91 0040 CA94 dec r12 92 0042 DC2C mov r13,r12 93 0044 7601 movw r14,r12 94 .L7: 95 0046 C701 movw r24,r14 96 0048 B601 movw r22,r12 97 /* epilogue start */ 98 004a DF91 pop r29 99 004c CF91 pop r28 100 004e FF90 pop r15 101 0050 EF90 pop r14 102 0052 DF90 pop r13 103 0054 CF90 pop r12 104 0056 0895 ret 105 .size NutI2cBusRate, .-NutI2cBusRate 106 .section .text.NutI2cBusTimeout,"ax",@progbits 107 .global NutI2cBusTimeout 108 .type NutI2cBusTimeout, @function 109 NutI2cBusTimeout: 110 0000 0F93 push r16 111 0002 1F93 push r17 112 /* prologue: function */ 113 /* frame size = 0 */ 114 /* stack size = 2 */ GAS LISTING /tmp/cc8zHL1d.s page 3 115 .L__stack_usage = 2 116 0004 FC01 movw r30,r24 117 0006 0285 ldd r16,Z+10 118 0008 1385 ldd r17,Z+11 119 000a 2485 ldd r18,Z+12 120 000c 3585 ldd r19,Z+13 121 000e 4F3F cpi r20,-1 122 0010 FFEF ldi r31,-1 123 0012 5F07 cpc r21,r31 124 0014 6F07 cpc r22,r31 125 0016 7F07 cpc r23,r31 126 0018 01F0 breq .L15 127 001a FC01 movw r30,r24 128 001c 4287 std Z+10,r20 129 001e 5387 std Z+11,r21 130 0020 6487 std Z+12,r22 131 0022 7587 std Z+13,r23 132 .L15: 133 0024 C901 movw r24,r18 134 0026 B801 movw r22,r16 135 /* epilogue start */ 136 0028 1F91 pop r17 137 002a 0F91 pop r16 138 002c 0895 ret 139 .size NutI2cBusTimeout, .-NutI2cBusTimeout 140 .section .text.NutI2cBusScan,"ax",@progbits 141 .global NutI2cBusScan 142 .type NutI2cBusScan, @function 143 NutI2cBusScan: 144 0000 8F92 push r8 145 0002 9F92 push r9 146 0004 AF92 push r10 147 0006 BF92 push r11 148 0008 CF92 push r12 149 000a DF92 push r13 150 000c FF92 push r15 151 000e 0F93 push r16 152 0010 1F93 push r17 153 0012 CF93 push r28 154 0014 DF93 push r29 155 /* prologue: function */ 156 /* frame size = 0 */ 157 /* stack size = 11 */ 158 .L__stack_usage = 11 159 0016 EC01 movw r28,r24 160 0018 8B01 movw r16,r22 161 001a 5A01 movw r10,r20 162 001c 8A89 ldd r24,Y+18 163 001e 982F mov r25,r24 164 0020 9170 andi r25,lo8(1) 165 0022 F92E mov r15,r25 166 0024 80FF sbrs r24,0 167 0026 00C0 rjmp .L20 168 .L22: 169 0028 6E01 movw r12,r28 170 002a 83E1 ldi r24,19 171 002c C80E add r12,r24 GAS LISTING /tmp/cc8zHL1d.s page 4 172 002e D11C adc r13,__zero_reg__ 173 0030 00C0 rjmp .L21 174 .L20: 175 0032 EC81 ldd r30,Y+4 176 0034 FD81 ldd r31,Y+5 177 0036 CE01 movw r24,r28 178 0038 1995 eicall 179 003a 892B or r24,r25 180 003c 01F0 breq .L22 181 .L27: 182 003e 8FEF ldi r24,lo8(-1) 183 0040 9FEF ldi r25,lo8(-1) 184 0042 00C0 rjmp .L23 185 .L29: 186 0044 F110 cpse r15,__zero_reg__ 187 0046 00C0 rjmp .L24 188 .L28: 189 0048 EE81 ldd r30,Y+6 190 004a FF81 ldd r31,Y+7 191 004c B801 movw r22,r16 192 004e CE01 movw r24,r28 193 0050 1995 eicall 194 0052 4C01 movw r8,r24 195 0054 FF20 tst r15 196 0056 01F0 breq .L26 197 0058 C601 movw r24,r12 198 005a 0E94 0000 call NutEventPost 199 .L26: 200 005e 8928 or r8,r9 201 0060 01F0 breq .L30 202 0062 0F5F subi r16,-1 203 0064 1F4F sbci r17,-1 204 .L21: 205 0066 A016 cp r10,r16 206 0068 B106 cpc r11,r17 207 006a 04F4 brge .L29 208 006c 00C0 rjmp .L27 209 .L24: 210 006e 4A85 ldd r20,Y+10 211 0070 5B85 ldd r21,Y+11 212 0072 6C85 ldd r22,Y+12 213 0074 7D85 ldd r23,Y+13 214 0076 C601 movw r24,r12 215 0078 0E94 0000 call NutEventWait 216 007c 892B or r24,r25 217 007e 01F0 breq .L28 218 0080 00C0 rjmp .L27 219 .L30: 220 0082 C801 movw r24,r16 221 .L23: 222 /* epilogue start */ 223 0084 DF91 pop r29 224 0086 CF91 pop r28 225 0088 1F91 pop r17 226 008a 0F91 pop r16 227 008c FF90 pop r15 228 008e DF90 pop r13 GAS LISTING /tmp/cc8zHL1d.s page 5 229 0090 CF90 pop r12 230 0092 BF90 pop r11 231 0094 AF90 pop r10 232 0096 9F90 pop r9 233 0098 8F90 pop r8 234 009a 0895 ret 235 .size NutI2cBusScan, .-NutI2cBusScan 236 .section .text.NutI2cSlaveAddress,"ax",@progbits 237 .global NutI2cSlaveAddress 238 .type NutI2cSlaveAddress, @function 239 NutI2cSlaveAddress: 240 /* prologue: function */ 241 /* frame size = 0 */ 242 /* stack size = 0 */ 243 .L__stack_usage = 0 244 0000 FC01 movw r30,r24 245 0002 8281 ldd r24,Z+2 246 0004 9381 ldd r25,Z+3 247 0006 6F3F cpi r22,-1 248 0008 2FEF ldi r18,-1 249 000a 7207 cpc r23,r18 250 000c 01F0 breq .L35 251 000e 7383 std Z+3,r23 252 0010 6283 std Z+2,r22 253 .L35: 254 0012 0895 ret 255 .size NutI2cSlaveAddress, .-NutI2cSlaveAddress 256 .section .text.NutI2cSlaveTimeout,"ax",@progbits 257 .global NutI2cSlaveTimeout 258 .type NutI2cSlaveTimeout, @function 259 NutI2cSlaveTimeout: 260 0000 0F93 push r16 261 0002 1F93 push r17 262 /* prologue: function */ 263 /* frame size = 0 */ 264 /* stack size = 2 */ 265 .L__stack_usage = 2 266 0004 FC01 movw r30,r24 267 0006 0481 ldd r16,Z+4 268 0008 1581 ldd r17,Z+5 269 000a 2681 ldd r18,Z+6 270 000c 3781 ldd r19,Z+7 271 000e 4F3F cpi r20,-1 272 0010 FFEF ldi r31,-1 273 0012 5F07 cpc r21,r31 274 0014 6F07 cpc r22,r31 275 0016 7F07 cpc r23,r31 276 0018 01F0 breq .L40 277 001a FC01 movw r30,r24 278 001c 4483 std Z+4,r20 279 001e 5583 std Z+5,r21 280 0020 6683 std Z+6,r22 281 0022 7783 std Z+7,r23 282 .L40: 283 0024 C901 movw r24,r18 284 0026 B801 movw r22,r16 285 /* epilogue start */ GAS LISTING /tmp/cc8zHL1d.s page 6 286 0028 1F91 pop r17 287 002a 0F91 pop r16 288 002c 0895 ret 289 .size NutI2cSlaveTimeout, .-NutI2cSlaveTimeout 290 .section .text.NutI2cMasterTransceive,"ax",@progbits 291 .global NutI2cMasterTransceive 292 .type NutI2cMasterTransceive, @function 293 NutI2cMasterTransceive: 294 0000 4F92 push r4 295 0002 5F92 push r5 296 0004 6F92 push r6 297 0006 7F92 push r7 298 0008 8F92 push r8 299 000a 9F92 push r9 300 000c AF92 push r10 301 000e BF92 push r11 302 0010 CF92 push r12 303 0012 DF92 push r13 304 0014 EF92 push r14 305 0016 FF92 push r15 306 0018 0F93 push r16 307 001a 1F93 push r17 308 001c CF93 push r28 309 001e DF93 push r29 310 0020 CDB7 in r28,__SP_L__ 311 0022 DEB7 in r29,__SP_H__ 312 0024 2C97 sbiw r28,12 313 0026 0FB6 in __tmp_reg__,__SREG__ 314 0028 F894 cli 315 002a DEBF out __SP_H__,r29 316 002c 0FBE out __SREG__,__tmp_reg__ 317 002e CDBF out __SP_L__,r28 318 /* prologue: function */ 319 /* frame size = 12 */ 320 /* stack size = 28 */ 321 .L__stack_usage = 28 322 0030 5C01 movw r10,r24 323 0032 3B01 movw r6,r22 324 0034 4A01 movw r8,r20 325 0036 2901 movw r4,r18 326 0038 DC01 movw r26,r24 327 003a ED90 ld r14,X+ 328 003c FC90 ld r15,X 329 003e 6701 movw r12,r14 330 0040 B3E1 ldi r27,19 331 0042 CB0E add r12,r27 332 0044 D11C adc r13,__zero_reg__ 333 0046 F701 movw r30,r14 334 0048 4285 ldd r20,Z+10 335 004a 5385 ldd r21,Z+11 336 004c 6485 ldd r22,Z+12 337 004e 7585 ldd r23,Z+13 338 0050 C601 movw r24,r12 339 0052 0E94 0000 call NutEventWait 340 0056 0097 sbiw r24,0 341 0058 01F0 breq .L45 342 005a 25E0 ldi r18,lo8(5) GAS LISTING /tmp/cc8zHL1d.s page 7 343 005c 30E0 ldi r19,0 344 005e 3093 0000 sts errno+1,r19 345 0062 2093 0000 sts errno,r18 346 0066 00C0 rjmp .L46 347 .L45: 348 0068 7A82 std Y+2,r7 349 006a 6982 std Y+1,r6 350 006c 9C82 std Y+4,r9 351 006e 8B82 std Y+3,r8 352 0070 1E82 std Y+6,__zero_reg__ 353 0072 1D82 std Y+5,__zero_reg__ 354 0074 5886 std Y+8,r5 355 0076 4F82 std Y+7,r4 356 0078 1A87 std Y+10,r17 357 007a 0987 std Y+9,r16 358 007c 1C86 std Y+12,__zero_reg__ 359 007e 1B86 std Y+11,__zero_reg__ 360 0080 D701 movw r26,r14 361 0082 1896 adiw r26,8 362 0084 ED91 ld r30,X+ 363 0086 FC91 ld r31,X 364 0088 1997 sbiw r26,8+1 365 008a BE01 movw r22,r28 366 008c 6F5F subi r22,-1 367 008e 7F4F sbci r23,-1 368 0090 C501 movw r24,r10 369 0092 1995 eicall 370 0094 C601 movw r24,r12 371 0096 0E94 0000 call NutEventPost 372 009a 8B85 ldd r24,Y+11 373 009c 9C85 ldd r25,Y+12 374 .L46: 375 /* epilogue start */ 376 009e 2C96 adiw r28,12 377 00a0 0FB6 in __tmp_reg__,__SREG__ 378 00a2 F894 cli 379 00a4 DEBF out __SP_H__,r29 380 00a6 0FBE out __SREG__,__tmp_reg__ 381 00a8 CDBF out __SP_L__,r28 382 00aa DF91 pop r29 383 00ac CF91 pop r28 384 00ae 1F91 pop r17 385 00b0 0F91 pop r16 386 00b2 FF90 pop r15 387 00b4 EF90 pop r14 388 00b6 DF90 pop r13 389 00b8 CF90 pop r12 390 00ba BF90 pop r11 391 00bc AF90 pop r10 392 00be 9F90 pop r9 393 00c0 8F90 pop r8 394 00c2 7F90 pop r7 395 00c4 6F90 pop r6 396 00c6 5F90 pop r5 397 00c8 4F90 pop r4 398 00ca 0895 ret 399 .size NutI2cMasterTransceive, .-NutI2cMasterTransceive GAS LISTING /tmp/cc8zHL1d.s page 8 400 .ident "GCC: (GNU) 5.3.0" GAS LISTING /tmp/cc8zHL1d.s page 9 DEFINED SYMBOLS *ABS*:0000000000000000 i2cbus.c /tmp/cc8zHL1d.s:2 *ABS*:000000000000003e __SP_H__ /tmp/cc8zHL1d.s:3 *ABS*:000000000000003d __SP_L__ /tmp/cc8zHL1d.s:4 *ABS*:000000000000003f __SREG__ /tmp/cc8zHL1d.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/cc8zHL1d.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/cc8zHL1d.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/cc8zHL1d.s:11 .text.NutRegisterI2cSlave:0000000000000000 NutRegisterI2cSlave /tmp/cc8zHL1d.s:54 .text.NutI2cBusRate:0000000000000000 NutI2cBusRate /tmp/cc8zHL1d.s:109 .text.NutI2cBusTimeout:0000000000000000 NutI2cBusTimeout /tmp/cc8zHL1d.s:143 .text.NutI2cBusScan:0000000000000000 NutI2cBusScan /tmp/cc8zHL1d.s:239 .text.NutI2cSlaveAddress:0000000000000000 NutI2cSlaveAddress /tmp/cc8zHL1d.s:259 .text.NutI2cSlaveTimeout:0000000000000000 NutI2cSlaveTimeout /tmp/cc8zHL1d.s:293 .text.NutI2cMasterTransceive:0000000000000000 NutI2cMasterTransceive UNDEFINED SYMBOLS NutEventPost NutEventWait errno