GAS LISTING /tmp/ccNeS3nq.s page 1 1 .file "sht21.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.ShtCrc,"ax",@progbits 9 .global ShtCrc 10 .type ShtCrc, @function 11 ShtCrc: 12 /* prologue: function */ 13 /* frame size = 0 */ 14 /* stack size = 0 */ 15 .L__stack_usage = 0 16 0000 9C01 movw r18,r24 17 0002 482F mov r20,r24 18 0004 FC01 movw r30,r24 19 0006 90E0 ldi r25,0 20 0008 51E3 ldi r21,lo8(49) 21 .L2: 22 000a 8E2F mov r24,r30 23 000c 841B sub r24,r20 24 000e 8617 cp r24,r22 25 0010 00F4 brsh .L10 26 0012 8191 ld r24,Z+ 27 0014 9827 eor r25,r24 28 0016 88E0 ldi r24,lo8(8) 29 .L5: 30 0018 97FF sbrs r25,7 31 001a 00C0 rjmp .L3 32 001c 990F lsl r25 33 001e 9527 eor r25,r21 34 0020 00C0 rjmp .L4 35 .L3: 36 0022 990F lsl r25 37 .L4: 38 0024 8150 subi r24,lo8(-(-1)) 39 0026 01F4 brne .L5 40 0028 00C0 rjmp .L2 41 .L10: 42 002a F901 movw r30,r18 43 002c E60F add r30,r22 44 002e F11D adc r31,__zero_reg__ 45 0030 41E0 ldi r20,lo8(1) 46 0032 50E0 ldi r21,0 47 0034 8081 ld r24,Z 48 0036 8913 cpse r24,r25 49 0038 00C0 rjmp .L7 50 003a 40E0 ldi r20,0 51 003c 50E0 ldi r21,0 52 .L7: 53 003e 8827 clr r24 54 0040 9927 clr r25 55 0042 841B sub r24,r20 56 0044 950B sbc r25,r21 57 0046 0895 ret GAS LISTING /tmp/ccNeS3nq.s page 2 58 .size ShtCrc, .-ShtCrc 59 .section .text.ShtCommand,"ax",@progbits 60 .global ShtCommand 61 .type ShtCommand, @function 62 ShtCommand: 63 0000 4F92 push r4 64 0002 5F92 push r5 65 0004 6F92 push r6 66 0006 7F92 push r7 67 0008 8F92 push r8 68 000a 9F92 push r9 69 000c AF92 push r10 70 000e BF92 push r11 71 0010 CF92 push r12 72 0012 DF92 push r13 73 0014 EF92 push r14 74 0016 FF92 push r15 75 0018 0F93 push r16 76 001a 1F93 push r17 77 001c CF93 push r28 78 001e DF93 push r29 79 0020 00D0 rcall . 80 0022 1F92 push __zero_reg__ 81 0024 1F92 push __zero_reg__ 82 0026 CDB7 in r28,__SP_L__ 83 0028 DEB7 in r29,__SP_H__ 84 /* prologue: function */ 85 /* frame size = 5 */ 86 /* stack size = 21 */ 87 .L__stack_usage = 21 88 002a 8D83 std Y+5,r24 89 002c 2B01 movw r4,r22 90 002e 44EF ldi r20,lo8(-12) 91 0030 51E0 ldi r21,lo8(1) 92 0032 60E0 ldi r22,0 93 0034 70E0 ldi r23,0 94 0036 80E0 ldi r24,lo8(sht_mutex) 95 0038 90E0 ldi r25,hi8(sht_mutex) 96 003a 0E94 0000 call NutEventWait 97 003e 3C01 movw r6,r24 98 0040 892B or r24,r25 99 0042 01F0 breq .+2 100 0044 00C0 rjmp .L27 101 0046 8D81 ldd r24,Y+5 102 0048 863E cpi r24,lo8(-26) 103 004a 01F4 brne .+2 104 004c 00C0 rjmp .L14 105 004e 00F4 brsh .L15 106 0050 833E cpi r24,lo8(-29) 107 0052 01F0 breq .L16 108 0054 853E cpi r24,lo8(-27) 109 0056 01F0 breq .L16 110 0058 00C0 rjmp .L13 111 .L15: 112 005a 873E cpi r24,lo8(-25) 113 005c 01F4 brne .+2 114 005e 00C0 rjmp .L17 GAS LISTING /tmp/ccNeS3nq.s page 3 115 0060 8E3F cpi r24,lo8(-2) 116 0062 01F0 breq .+2 117 0064 00C0 rjmp .L13 118 0066 5AE0 ldi r21,lo8(10) 119 0068 A52E mov r10,r21 120 006a B12C mov r11,__zero_reg__ 121 006c C12C mov r12,__zero_reg__ 122 006e D12C mov r13,__zero_reg__ 123 0070 E12C mov r14,__zero_reg__ 124 0072 F12C mov r15,__zero_reg__ 125 0074 00E0 ldi r16,0 126 0076 10E0 ldi r17,0 127 0078 21E0 ldi r18,lo8(1) 128 007a 30E0 ldi r19,0 129 007c AE01 movw r20,r28 130 007e 4B5F subi r20,-5 131 0080 5F4F sbci r21,-1 132 0082 60E4 ldi r22,lo8(64) 133 0084 80E0 ldi r24,lo8(AVRTwiBus) 134 0086 90E0 ldi r25,hi8(AVRTwiBus) 135 0088 0E94 0000 call NutTwiMasterTranceive 136 008c 8C01 movw r16,r24 137 008e 6FE0 ldi r22,lo8(15) 138 0090 70E0 ldi r23,0 139 0092 80E0 ldi r24,0 140 0094 90E0 ldi r25,0 141 0096 0E94 0000 call NutSleep 142 009a 00C0 rjmp .L19 143 .L16: 144 009c 3AE5 ldi r19,lo8(90) 145 009e A32E mov r10,r19 146 00a0 B12C mov r11,__zero_reg__ 147 00a2 C12C mov r12,__zero_reg__ 148 00a4 D12C mov r13,__zero_reg__ 149 00a6 43E0 ldi r20,lo8(3) 150 00a8 E42E mov r14,r20 151 00aa F12C mov r15,__zero_reg__ 152 00ac 8E01 movw r16,r28 153 00ae 0F5F subi r16,-1 154 00b0 1F4F sbci r17,-1 155 00b2 21E0 ldi r18,lo8(1) 156 00b4 30E0 ldi r19,0 157 00b6 AE01 movw r20,r28 158 00b8 4B5F subi r20,-5 159 00ba 5F4F sbci r21,-1 160 00bc 60E4 ldi r22,lo8(64) 161 00be 80E0 ldi r24,lo8(AVRTwiBus) 162 00c0 90E0 ldi r25,hi8(AVRTwiBus) 163 00c2 0E94 0000 call NutTwiMasterTranceive 164 00c6 0397 sbiw r24,3 165 00c8 01F0 breq .+2 166 00ca 00C0 rjmp .L13 167 00cc 62E0 ldi r22,lo8(2) 168 00ce C801 movw r24,r16 169 00d0 0E94 0000 call ShtCrc 170 00d4 8C01 movw r16,r24 171 00d6 8981 ldd r24,Y+1 GAS LISTING /tmp/ccNeS3nq.s page 4 172 00d8 9A81 ldd r25,Y+2 173 00da 9827 eor r25,r24 174 00dc 8927 eor r24,r25 175 00de 9827 eor r25,r24 176 00e0 F201 movw r30,r4 177 00e2 9183 std Z+1,r25 178 00e4 8083 st Z,r24 179 00e6 00C0 rjmp .L19 180 .L17: 181 00e8 94E6 ldi r25,lo8(100) 182 00ea 892E mov r8,r25 183 00ec 912C mov r9,__zero_reg__ 184 00ee A12C mov r10,__zero_reg__ 185 00f0 B12C mov r11,__zero_reg__ 186 00f2 CC24 clr r12 187 00f4 C394 inc r12 188 00f6 D12C mov r13,__zero_reg__ 189 00f8 CE01 movw r24,r28 190 00fa 0196 adiw r24,1 191 00fc 7C01 movw r14,r24 192 00fe 01E0 ldi r16,lo8(1) 193 0100 27EE ldi r18,lo8(-25) 194 0102 30E0 ldi r19,0 195 0104 40E0 ldi r20,0 196 0106 50E0 ldi r21,0 197 0108 60E4 ldi r22,lo8(64) 198 010a 80E0 ldi r24,lo8(AVRTwiBus) 199 010c 90E0 ldi r25,hi8(AVRTwiBus) 200 010e 0E94 0000 call NutTwiMasterRegRead 201 0112 8C01 movw r16,r24 202 0114 0197 sbiw r24,1 203 0116 01F4 brne .L19 204 0118 8981 ldd r24,Y+1 205 011a F201 movw r30,r4 206 011c 8083 st Z,r24 207 011e 00C0 rjmp .L20 208 .L14: 209 0120 8983 std Y+1,r24 210 0122 F201 movw r30,r4 211 0124 8081 ld r24,Z 212 0126 8A83 std Y+2,r24 213 0128 84E6 ldi r24,lo8(100) 214 012a A82E mov r10,r24 215 012c B12C mov r11,__zero_reg__ 216 012e C12C mov r12,__zero_reg__ 217 0130 D12C mov r13,__zero_reg__ 218 0132 E12C mov r14,__zero_reg__ 219 0134 F12C mov r15,__zero_reg__ 220 0136 00E0 ldi r16,0 221 0138 10E0 ldi r17,0 222 013a 22E0 ldi r18,lo8(2) 223 013c 30E0 ldi r19,0 224 013e AE01 movw r20,r28 225 0140 4F5F subi r20,-1 226 0142 5F4F sbci r21,-1 227 0144 60E4 ldi r22,lo8(64) 228 0146 80E0 ldi r24,lo8(AVRTwiBus) GAS LISTING /tmp/ccNeS3nq.s page 5 229 0148 90E0 ldi r25,hi8(AVRTwiBus) 230 014a 0E94 0000 call NutTwiMasterTranceive 231 014e 8C01 movw r16,r24 232 .L19: 233 0150 1016 cp __zero_reg__,r16 234 0152 1106 cpc __zero_reg__,r17 235 0154 04F0 brlt .L20 236 .L21: 237 0156 3801 movw r6,r16 238 .L20: 239 0158 80E0 ldi r24,lo8(sht_mutex) 240 015a 90E0 ldi r25,hi8(sht_mutex) 241 015c 0E94 0000 call NutEventPost 242 0160 00C0 rjmp .L27 243 .L13: 244 0162 0FEF ldi r16,lo8(-1) 245 0164 1FEF ldi r17,lo8(-1) 246 0166 00C0 rjmp .L21 247 .L27: 248 0168 C301 movw r24,r6 249 /* epilogue start */ 250 016a 0F90 pop __tmp_reg__ 251 016c 0F90 pop __tmp_reg__ 252 016e 0F90 pop __tmp_reg__ 253 0170 0F90 pop __tmp_reg__ 254 0172 0F90 pop __tmp_reg__ 255 0174 DF91 pop r29 256 0176 CF91 pop r28 257 0178 1F91 pop r17 258 017a 0F91 pop r16 259 017c FF90 pop r15 260 017e EF90 pop r14 261 0180 DF90 pop r13 262 0182 CF90 pop r12 263 0184 BF90 pop r11 264 0186 AF90 pop r10 265 0188 9F90 pop r9 266 018a 8F90 pop r8 267 018c 7F90 pop r7 268 018e 6F90 pop r6 269 0190 5F90 pop r5 270 0192 4F90 pop r4 271 0194 0895 ret 272 .size ShtCommand, .-ShtCommand 273 .section .text.ShtRead,"ax",@progbits 274 .global ShtRead 275 .type ShtRead, @function 276 ShtRead: 277 0000 EF92 push r14 278 0002 FF92 push r15 279 0004 1F93 push r17 280 0006 CF93 push r28 281 0008 DF93 push r29 282 000a 1F92 push __zero_reg__ 283 000c 1F92 push __zero_reg__ 284 000e CDB7 in r28,__SP_L__ 285 0010 DEB7 in r29,__SP_H__ GAS LISTING /tmp/ccNeS3nq.s page 6 286 /* prologue: function */ 287 /* frame size = 2 */ 288 /* stack size = 7 */ 289 .L__stack_usage = 7 290 0012 182F mov r17,r24 291 0014 7B01 movw r14,r22 292 0016 1A82 std Y+2,__zero_reg__ 293 0018 1982 std Y+1,__zero_reg__ 294 001a BE01 movw r22,r28 295 001c 6F5F subi r22,-1 296 001e 7F4F sbci r23,-1 297 0020 0E94 0000 call ShtCommand 298 0024 AC01 movw r20,r24 299 0026 892B or r24,r25 300 0028 01F4 brne .L31 301 002a 2981 ldd r18,Y+1 302 002c 3A81 ldd r19,Y+2 303 002e 2C7F andi r18,252 304 0030 133E cpi r17,lo8(-29) 305 0032 01F4 brne .L32 306 0034 A4EA ldi r26,lo8(-92) 307 0036 B4E4 ldi r27,lo8(68) 308 0038 0E94 0000 call __umulhisi3 309 003c 8D54 subi r24,77 310 003e 9241 sbci r25,18 311 0040 00C0 rjmp .L33 312 .L32: 313 0042 153E cpi r17,lo8(-27) 314 0044 01F4 brne .L31 315 0046 A4ED ldi r26,lo8(-44) 316 0048 B0E3 ldi r27,lo8(48) 317 004a 0E94 0000 call __umulhisi3 318 004e 8855 subi r24,88 319 0050 9240 sbci r25,2 320 .L33: 321 0052 F701 movw r30,r14 322 0054 9183 std Z+1,r25 323 0056 8083 st Z,r24 324 .L31: 325 0058 CA01 movw r24,r20 326 /* epilogue start */ 327 005a 0F90 pop __tmp_reg__ 328 005c 0F90 pop __tmp_reg__ 329 005e DF91 pop r29 330 0060 CF91 pop r28 331 0062 1F91 pop r17 332 0064 FF90 pop r15 333 0066 EF90 pop r14 334 0068 0895 ret 335 .size ShtRead, .-ShtRead 336 .section .text.ShtInit,"ax",@progbits 337 .global ShtInit 338 .type ShtInit, @function 339 ShtInit: 340 0000 CF93 push r28 341 0002 DF93 push r29 342 0004 1F92 push __zero_reg__ GAS LISTING /tmp/ccNeS3nq.s page 7 343 0006 1F92 push __zero_reg__ 344 0008 CDB7 in r28,__SP_L__ 345 000a DEB7 in r29,__SP_H__ 346 /* prologue: function */ 347 /* frame size = 2 */ 348 /* stack size = 4 */ 349 .L__stack_usage = 4 350 000c 80E0 ldi r24,lo8(sht_mutex) 351 000e 90E0 ldi r25,hi8(sht_mutex) 352 0010 0E94 0000 call NutEventPost 353 0014 BE01 movw r22,r28 354 0016 6F5F subi r22,-1 355 0018 7F4F sbci r23,-1 356 001a 8EEF ldi r24,lo8(-2) 357 001c 0E94 0000 call ShtCommand 358 0020 97FD sbrc r25,7 359 0022 00C0 rjmp .L35 360 0024 BE01 movw r22,r28 361 0026 6F5F subi r22,-1 362 0028 7F4F sbci r23,-1 363 002a 87EE ldi r24,lo8(-25) 364 002c 0E94 0000 call ShtCommand 365 0030 8981 ldd r24,Y+1 366 0032 9A81 ldd r25,Y+2 367 0034 8E77 andi r24,126 368 0036 9A83 std Y+2,r25 369 0038 8983 std Y+1,r24 370 003a BE01 movw r22,r28 371 003c 6F5F subi r22,-1 372 003e 7F4F sbci r23,-1 373 0040 86EE ldi r24,lo8(-26) 374 0042 0E94 0000 call ShtCommand 375 .L35: 376 /* epilogue start */ 377 0046 0F90 pop __tmp_reg__ 378 0048 0F90 pop __tmp_reg__ 379 004a DF91 pop r29 380 004c CF91 pop r28 381 004e 0895 ret 382 .size ShtInit, .-ShtInit 383 .comm sht_mutex,2,1 384 .ident "GCC: (GNU) 5.3.0" 385 .global __do_clear_bss GAS LISTING /tmp/ccNeS3nq.s page 8 DEFINED SYMBOLS *ABS*:0000000000000000 sht21.c /tmp/ccNeS3nq.s:2 *ABS*:000000000000003e __SP_H__ /tmp/ccNeS3nq.s:3 *ABS*:000000000000003d __SP_L__ /tmp/ccNeS3nq.s:4 *ABS*:000000000000003f __SREG__ /tmp/ccNeS3nq.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/ccNeS3nq.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/ccNeS3nq.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/ccNeS3nq.s:11 .text.ShtCrc:0000000000000000 ShtCrc /tmp/ccNeS3nq.s:62 .text.ShtCommand:0000000000000000 ShtCommand *COM*:0000000000000002 sht_mutex /tmp/ccNeS3nq.s:276 .text.ShtRead:0000000000000000 ShtRead /tmp/ccNeS3nq.s:339 .text.ShtInit:0000000000000000 ShtInit UNDEFINED SYMBOLS NutEventWait AVRTwiBus NutTwiMasterTranceive NutSleep NutTwiMasterRegRead NutEventPost __umulhisi3 __do_clear_bss