GAS LISTING /tmp/ccS7Aefz.s page 1 1 .file "owibus0gpio.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.Gpio_Setup,"ax",@progbits 9 .type Gpio_Setup, @function 10 Gpio_Setup: 11 /* prologue: function */ 12 /* frame size = 0 */ 13 /* stack size = 0 */ 14 .L__stack_usage = 0 15 0000 8EEF ldi r24,lo8(-2) 16 0002 9FEF ldi r25,lo8(-1) 17 0004 0895 ret 18 .size Gpio_Setup, .-Gpio_Setup 19 .section .text.Gpio_OwiTransaction,"ax",@progbits 20 .type Gpio_OwiTransaction, @function 21 Gpio_OwiTransaction: 22 0000 AF92 push r10 23 0002 BF92 push r11 24 0004 CF92 push r12 25 0006 DF92 push r13 26 0008 EF92 push r14 27 000a FF92 push r15 28 000c 0F93 push r16 29 000e 1F93 push r17 30 0010 CF93 push r28 31 0012 DF93 push r29 32 0014 1F92 push __zero_reg__ 33 0016 CDB7 in r28,__SP_L__ 34 0018 DEB7 in r29,__SP_H__ 35 /* prologue: function */ 36 /* frame size = 1 */ 37 /* stack size = 11 */ 38 .L__stack_usage = 11 39 001a FC01 movw r30,r24 40 001c 8281 ldd r24,Z+2 41 001e 9381 ldd r25,Z+3 42 0020 A481 ldd r26,Z+4 43 0022 B581 ldd r27,Z+5 44 0024 8170 andi r24,1 45 0026 9927 clr r25 46 0028 AA27 clr r26 47 002a BB27 clr r27 48 002c 24E1 ldi r18,lo8(20) 49 002e 289F mul r18,r24 50 0030 F001 movw r30,r0 51 0032 299F mul r18,r25 52 0034 F00D add r31,r0 53 0036 1124 clr __zero_reg__ 54 0038 8AE0 ldi r24,lo8(10) 55 003a 6802 muls r22,r24 56 003c E00D add r30,r0 57 003e F11D adc r31,r1 GAS LISTING /tmp/ccS7Aefz.s page 2 58 0040 1124 clr __zero_reg__ 59 0042 E050 subi r30,lo8(-(owi_timervalues_250ns)) 60 0044 F040 sbci r31,hi8(-(owi_timervalues_250ns)) 61 0046 0085 ldd r16,Z+8 62 0048 1185 ldd r17,Z+9 63 004a E680 ldd r14,Z+6 64 004c F780 ldd r15,Z+7 65 004e 2081 ld r18,Z 66 0050 3181 ldd r19,Z+1 67 0052 4423 tst r20 68 0054 01F0 breq .L3 69 0056 8281 ldd r24,Z+2 70 0058 9381 ldd r25,Z+3 71 005a BC01 movw r22,r24 72 005c 621B sub r22,r18 73 005e 730B sbc r23,r19 74 0060 6B01 movw r12,r22 75 0062 D694 lsr r13 76 0064 C794 ror r12 77 0066 D694 lsr r13 78 0068 C794 ror r12 79 006a 5701 movw r10,r14 80 006c 00C0 rjmp .L7 81 .L3: 82 006e 8481 ldd r24,Z+4 83 0070 9581 ldd r25,Z+5 84 0072 BC01 movw r22,r24 85 0074 621B sub r22,r18 86 0076 730B sbc r23,r19 87 0078 6B01 movw r12,r22 88 007a D694 lsr r13 89 007c C794 ror r12 90 007e D694 lsr r13 91 0080 C794 ror r12 92 0082 5801 movw r10,r16 93 .L7: 94 0084 A81A sub r10,r24 95 0086 B90A sbc r11,r25 96 0088 B694 lsr r11 97 008a A794 ror r10 98 008c B694 lsr r11 99 008e A794 ror r10 100 0090 60E0 ldi r22,0 101 0092 70E0 ldi r23,0 102 0094 CB01 movw r24,r22 103 0096 4983 std Y+1,r20 104 0098 0E94 0000 call NutSleep 105 009c B601 movw r22,r12 106 009e DD0C lsl r13 107 00a0 880B sbc r24,r24 108 00a2 990B sbc r25,r25 109 00a4 0E94 0000 call NutMicroDelay 110 00a8 B501 movw r22,r10 111 00aa BB0C lsl r11 112 00ac 880B sbc r24,r24 113 00ae 990B sbc r25,r25 114 00b0 4981 ldd r20,Y+1 GAS LISTING /tmp/ccS7Aefz.s page 3 115 00b2 4423 tst r20 116 00b4 01F0 breq .L5 117 00b6 0E94 0000 call NutMicroDelay 118 00ba B801 movw r22,r16 119 00bc 6E19 sub r22,r14 120 00be 7F09 sbc r23,r15 121 00c0 7695 lsr r23 122 00c2 6795 ror r22 123 00c4 7695 lsr r23 124 00c6 6795 ror r22 125 00c8 80E0 ldi r24,0 126 00ca 90E0 ldi r25,0 127 .L5: 128 00cc 0E94 0000 call NutMicroDelay 129 00d0 80E0 ldi r24,0 130 00d2 90E0 ldi r25,0 131 /* epilogue start */ 132 00d4 0F90 pop __tmp_reg__ 133 00d6 DF91 pop r29 134 00d8 CF91 pop r28 135 00da 1F91 pop r17 136 00dc 0F91 pop r16 137 00de FF90 pop r15 138 00e0 EF90 pop r14 139 00e2 DF90 pop r13 140 00e4 CF90 pop r12 141 00e6 BF90 pop r11 142 00e8 AF90 pop r10 143 00ea 0895 ret 144 .size Gpio_OwiTransaction, .-Gpio_OwiTransaction 145 .section .text.Gpio_OwiTouchReset,"ax",@progbits 146 .type Gpio_OwiTouchReset, @function 147 Gpio_OwiTouchReset: 148 /* prologue: function */ 149 /* frame size = 0 */ 150 /* stack size = 0 */ 151 .L__stack_usage = 0 152 0000 41E0 ldi r20,lo8(1) 153 0002 60E0 ldi r22,0 154 0004 0C94 0000 jmp Gpio_OwiTransaction 155 .size Gpio_OwiTouchReset, .-Gpio_OwiTouchReset 156 .section .text.Gpio_OwiReadBlock,"ax",@progbits 157 .type Gpio_OwiReadBlock, @function 158 Gpio_OwiReadBlock: 159 0000 CF92 push r12 160 0002 DF92 push r13 161 0004 EF92 push r14 162 0006 FF92 push r15 163 0008 0F93 push r16 164 000a 1F93 push r17 165 000c CF93 push r28 166 000e DF93 push r29 167 /* prologue: function */ 168 /* frame size = 0 */ 169 /* stack size = 8 */ 170 .L__stack_usage = 8 171 0010 7C01 movw r14,r24 GAS LISTING /tmp/ccS7Aefz.s page 4 172 0012 8B01 movw r16,r22 173 0014 C42E mov r12,r20 174 0016 4695 lsr r20 175 0018 4695 lsr r20 176 001a 4695 lsr r20 177 001c 50E0 ldi r21,0 178 001e 4F5F subi r20,-1 179 0020 5F4F sbci r21,-1 180 0022 60E0 ldi r22,0 181 0024 70E0 ldi r23,0 182 0026 C801 movw r24,r16 183 0028 0E94 0000 call memset 184 002c C0E0 ldi r28,0 185 002e D0E0 ldi r29,0 186 0030 D12C mov r13,__zero_reg__ 187 .L11: 188 0032 CC15 cp r28,r12 189 0034 DD05 cpc r29,r13 190 0036 04F4 brge .L15 191 0038 41E0 ldi r20,lo8(1) 192 003a 61E0 ldi r22,lo8(1) 193 003c C701 movw r24,r14 194 003e 0E94 0000 call Gpio_OwiTransaction 195 0042 97FD sbrc r25,7 196 0044 00C0 rjmp .L14 197 0046 FE01 movw r30,r28 198 0048 23E0 ldi r18,3 199 1: 200 004a F595 asr r31 201 004c E795 ror r30 202 004e 2A95 dec r18 203 0050 01F4 brne 1b 204 0052 E00F add r30,r16 205 0054 F11F adc r31,r17 206 0056 9E01 movw r18,r28 207 0058 2770 andi r18,7 208 005a 3327 clr r19 209 005c 00C0 rjmp 2f 210 1: 211 005e 880F lsl r24 212 2: 213 0060 2A95 dec r18 214 0062 02F4 brpl 1b 215 0064 9081 ld r25,Z 216 0066 892B or r24,r25 217 0068 8083 st Z,r24 218 006a 2196 adiw r28,1 219 006c 00C0 rjmp .L11 220 .L15: 221 006e 80E0 ldi r24,0 222 0070 90E0 ldi r25,0 223 0072 00C0 rjmp .L12 224 .L14: 225 0074 8CEF ldi r24,lo8(-4) 226 0076 9FEF ldi r25,lo8(-1) 227 .L12: 228 /* epilogue start */ GAS LISTING /tmp/ccS7Aefz.s page 5 229 0078 DF91 pop r29 230 007a CF91 pop r28 231 007c 1F91 pop r17 232 007e 0F91 pop r16 233 0080 FF90 pop r15 234 0082 EF90 pop r14 235 0084 DF90 pop r13 236 0086 CF90 pop r12 237 0088 0895 ret 238 .size Gpio_OwiReadBlock, .-Gpio_OwiReadBlock 239 .section .text.Gpio_OwiWriteBlock,"ax",@progbits 240 .type Gpio_OwiWriteBlock, @function 241 Gpio_OwiWriteBlock: 242 0000 AF92 push r10 243 0002 BF92 push r11 244 0004 CF92 push r12 245 0006 DF92 push r13 246 0008 EF92 push r14 247 000a FF92 push r15 248 000c 0F93 push r16 249 000e 1F93 push r17 250 0010 CF93 push r28 251 0012 DF93 push r29 252 /* prologue: function */ 253 /* frame size = 0 */ 254 /* stack size = 10 */ 255 .L__stack_usage = 10 256 0014 7C01 movw r14,r24 257 0016 6B01 movw r12,r22 258 0018 C0E0 ldi r28,0 259 001a D0E0 ldi r29,0 260 001c 042F mov r16,r20 261 001e 10E0 ldi r17,0 262 0020 AA24 clr r10 263 0022 A394 inc r10 264 0024 B12C mov r11,__zero_reg__ 265 .L17: 266 0026 C017 cp r28,r16 267 0028 D107 cpc r29,r17 268 002a 04F4 brge .L21 269 002c FE01 movw r30,r28 270 002e 83E0 ldi r24,3 271 1: 272 0030 F595 asr r31 273 0032 E795 ror r30 274 0034 8A95 dec r24 275 0036 01F4 brne 1b 276 0038 EC0D add r30,r12 277 003a FD1D adc r31,r13 278 003c CE01 movw r24,r28 279 003e 8770 andi r24,7 280 0040 9927 clr r25 281 0042 9501 movw r18,r10 282 0044 00C0 rjmp 2f 283 1: 284 0046 220F lsl r18 285 0048 331F rol r19 GAS LISTING /tmp/ccS7Aefz.s page 6 286 2: 287 004a 8A95 dec r24 288 004c 02F4 brpl 1b 289 004e 4081 ld r20,Z 290 0050 4223 and r20,r18 291 0052 61E0 ldi r22,lo8(1) 292 0054 C701 movw r24,r14 293 0056 0E94 0000 call Gpio_OwiTransaction 294 005a 97FD sbrc r25,7 295 005c 00C0 rjmp .L20 296 005e 2196 adiw r28,1 297 0060 00C0 rjmp .L17 298 .L21: 299 0062 80E0 ldi r24,0 300 0064 90E0 ldi r25,0 301 0066 00C0 rjmp .L18 302 .L20: 303 0068 8CEF ldi r24,lo8(-4) 304 006a 9FEF ldi r25,lo8(-1) 305 .L18: 306 /* epilogue start */ 307 006c DF91 pop r29 308 006e CF91 pop r28 309 0070 1F91 pop r17 310 0072 0F91 pop r16 311 0074 FF90 pop r15 312 0076 EF90 pop r14 313 0078 DF90 pop r13 314 007a CF90 pop r12 315 007c BF90 pop r11 316 007e AF90 pop r10 317 0080 0895 ret 318 .size Gpio_OwiWriteBlock, .-Gpio_OwiWriteBlock 319 .global owiBus0Gpio 320 .data 321 .type owiBus0Gpio, @object 322 .size owiBus0Gpio, 14 323 owiBus0Gpio: 324 0000 0000 .word 0 325 0002 00 .byte 0 326 0003 00 .byte 0 327 0004 00 .byte 0 328 0005 00 .byte 0 329 0006 0000 .word gs(Gpio_Setup) 330 0008 0000 .word gs(Gpio_OwiTouchReset) 331 000a 0000 .word gs(Gpio_OwiReadBlock) 332 000c 0000 .word gs(Gpio_OwiWriteBlock) 333 .ident "GCC: (GNU) 5.3.0" 334 .global __do_copy_data GAS LISTING /tmp/ccS7Aefz.s page 7 DEFINED SYMBOLS *ABS*:0000000000000000 owibus0gpio.c /tmp/ccS7Aefz.s:2 *ABS*:000000000000003e __SP_H__ /tmp/ccS7Aefz.s:3 *ABS*:000000000000003d __SP_L__ /tmp/ccS7Aefz.s:4 *ABS*:000000000000003f __SREG__ /tmp/ccS7Aefz.s:5 *ABS*:000000000000003b __RAMPZ__ /tmp/ccS7Aefz.s:6 *ABS*:0000000000000000 __tmp_reg__ /tmp/ccS7Aefz.s:7 *ABS*:0000000000000001 __zero_reg__ /tmp/ccS7Aefz.s:10 .text.Gpio_Setup:0000000000000000 Gpio_Setup /tmp/ccS7Aefz.s:21 .text.Gpio_OwiTransaction:0000000000000000 Gpio_OwiTransaction /tmp/ccS7Aefz.s:147 .text.Gpio_OwiTouchReset:0000000000000000 Gpio_OwiTouchReset /tmp/ccS7Aefz.s:158 .text.Gpio_OwiReadBlock:0000000000000000 Gpio_OwiReadBlock /tmp/ccS7Aefz.s:241 .text.Gpio_OwiWriteBlock:0000000000000000 Gpio_OwiWriteBlock /tmp/ccS7Aefz.s:323 .data:0000000000000000 owiBus0Gpio UNDEFINED SYMBOLS owi_timervalues_250ns NutSleep NutMicroDelay memset __do_copy_data