GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 1 1 .file "main.c" 2 __SREG__ = 0x3f 3 __SP_H__ = 0x3e 4 __SP_L__ = 0x3d 5 __CCP__ = 0x34 6 __tmp_reg__ = 0 7 __zero_reg__ = 1 8 .text 9 .type writeFlashPage, @function 10 writeFlashPage: 11 /* prologue: function */ 12 /* frame size = 0 */ 13 0000 81E0 ldi r24,lo8(1) 14 0002 8093 0000 sts didWriteSomething,r24 15 /* #APP */ 16 ; 145 "main.c" 1 17 0006 F894 cli 18 ; 0 "" 2 19 /* #NOAPP */ 20 0008 E091 0000 lds r30,currentAddress 21 000c F091 0000 lds r31,(currentAddress)+1 22 0010 3297 sbiw r30,2 23 0012 85E0 ldi r24,lo8(5) 24 /* #APP */ 25 ; 146 "main.c" 1 26 0014 8093 5700 sts 87, r24 27 0018 E895 spm 28 29 ; 0 "" 2 30 /* #NOAPP */ 31 .L2: 32 001a 07B6 in __tmp_reg__,87-32 33 001c 00FC sbrc __tmp_reg__,0 34 001e 00C0 rjmp .L2 35 /* #APP */ 36 ; 148 "main.c" 1 37 0020 7894 sei 38 ; 0 "" 2 39 /* epilogue start */ 40 /* #NOAPP */ 41 0022 0895 ret 42 .size writeFlashPage, .-writeFlashPage 43 .type writeWordToPageBuffer, @function 44 writeWordToPageBuffer: 45 /* prologue: function */ 46 /* frame size = 0 */ 47 0024 9C01 movw r18,r24 48 0026 E091 0000 lds r30,currentAddress 49 002a F091 0000 lds r31,(currentAddress)+1 50 002e 3097 sbiw r30,0 51 0030 01F0 breq .L5 52 0032 E430 cpi r30,4 53 0034 F105 cpc r31,__zero_reg__ 54 0036 01F0 breq .L6 55 0038 87E1 ldi r24,hi8(6012) 56 003a EC37 cpi r30,lo8(6012) 57 003c F807 cpc r31,r24 GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 2 58 003e 01F4 brne .L7 59 0040 2091 0000 lds r18,vectorTemp 60 0044 3091 0000 lds r19,(vectorTemp)+1 61 0048 2E5B subi r18,lo8(-(1090)) 62 004a 3B4F sbci r19,hi8(-(1090)) 63 004c 00C0 rjmp .L8 64 .L7: 65 004e 87E1 ldi r24,hi8(6014) 66 0050 EE37 cpi r30,lo8(6014) 67 0052 F807 cpc r31,r24 68 0054 01F4 brne .L8 69 0056 2091 0000 lds r18,vectorTemp+2 70 005a 3091 0000 lds r19,(vectorTemp+2)+1 71 005e 2D5B subi r18,lo8(-(1091)) 72 0060 3B4F sbci r19,hi8(-(1091)) 73 0062 00C0 rjmp .L8 74 .L6: 75 0064 2FEB ldi r18,lo8(-13377) 76 0066 3BEC ldi r19,hi8(-13377) 77 .L8: 78 /* #APP */ 79 ; 185 "main.c" 1 80 0068 F894 cli 81 ; 0 "" 2 82 /* #NOAPP */ 83 006a 81E0 ldi r24,lo8(1) 84 /* #APP */ 85 ; 186 "main.c" 1 86 006c 0901 movw r0, r18 87 006e 8093 5700 sts 87, r24 88 0072 E895 spm 89 0074 1124 clr r1 90 91 ; 0 "" 2 92 ; 187 "main.c" 1 93 0076 7894 sei 94 ; 0 "" 2 95 /* #NOAPP */ 96 0078 3296 adiw r30,2 97 007a F093 0000 sts (currentAddress)+1,r31 98 007e E093 0000 sts currentAddress,r30 99 /* epilogue start */ 100 0082 0895 ret 101 .L5: 102 0084 81E1 ldi r24,lo8(17) 103 /* #APP */ 104 ; 183 "main.c" 1 105 0086 8093 5700 sts 87, r24 106 008a E895 spm 107 108 ; 0 "" 2 109 /* #NOAPP */ 110 008c 00C0 rjmp .L6 111 .size writeWordToPageBuffer, .-writeWordToPageBuffer 112 .type fillFlashWithVectors, @function 113 fillFlashWithVectors: 114 008e CF93 push r28 GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 3 115 0090 DF93 push r29 116 /* prologue: function */ 117 /* frame size = 0 */ 118 0092 C091 0000 lds r28,currentAddress 119 0096 D091 0000 lds r29,(currentAddress)+1 120 009a CF73 andi r28,lo8(63) 121 009c D070 andi r29,hi8(63) 122 .L11: 123 009e 8FEF ldi r24,lo8(-1) 124 00a0 9FEF ldi r25,hi8(-1) 125 00a2 00D0 rcall writeWordToPageBuffer 126 00a4 2296 adiw r28,2 127 00a6 C034 cpi r28,64 128 00a8 D105 cpc r29,__zero_reg__ 129 00aa 04F0 brlt .L11 130 00ac 00D0 rcall writeFlashPage 131 /* epilogue start */ 132 00ae DF91 pop r29 133 00b0 CF91 pop r28 134 00b2 0895 ret 135 .size fillFlashWithVectors, .-fillFlashWithVectors 136 .section .init3,"ax",@progbits 137 .global PushMagicWord 138 .type PushMagicWord, @function 139 PushMagicWord: 140 /* prologue: naked */ 141 /* frame size = 0 */ 142 /* #APP */ 143 ; 285 "main.c" 1 144 0000 00EB ldi r16, 0xB0 145 ; 0 "" 2 146 ; 286 "main.c" 1 147 0002 0F93 push r16 148 ; 0 "" 2 149 ; 287 "main.c" 1 150 0004 07E0 ldi r16, 0x07 151 ; 0 "" 2 152 ; 288 "main.c" 1 153 0006 0F93 push r16 154 ; 0 "" 2 155 /* epilogue start */ 156 /* #NOAPP */ 157 .size PushMagicWord, .-PushMagicWord 158 .text 159 .global main 160 .type main, @function 161 main: 162 /* prologue: function */ 163 /* frame size = 0 */ 164 00b4 88E1 ldi r24,lo8(24) 165 /* #APP */ 166 ; 358 "main.c" 1 167 00b6 0FB6 in __tmp_reg__, __SREG__ 168 00b8 F894 cli 169 00ba 81BD out 33, r24 170 00bc 11BC out 33, __zero_reg__ 171 00be 0FBE out __SREG__,__tmp_reg__ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 4 172 173 ; 0 "" 2 174 /* #NOAPP */ 175 00c0 E0E0 ldi r30,lo8(0) 176 00c2 F0E0 ldi r31,hi8(0) 177 /* #APP */ 178 ; 306 "main.c" 1 179 00c4 8591 lpm r24, Z+ 180 00c6 9491 lpm r25, Z 181 182 ; 0 "" 2 183 /* #NOAPP */ 184 00c8 8F5B subi r24,lo8(-13377) 185 00ca 9B4C sbci r25,hi8(-13377) 186 00cc 01F4 brne .L16 187 00ce E4E0 ldi r30,lo8(4) 188 00d0 F0E0 ldi r31,hi8(4) 189 /* #APP */ 190 ; 307 "main.c" 1 191 00d2 8591 lpm r24, Z+ 192 00d4 9491 lpm r25, Z 193 194 ; 0 "" 2 195 /* #NOAPP */ 196 00d6 8F5B subi r24,lo8(-13377) 197 00d8 9B4C sbci r25,hi8(-13377) 198 00da 01F0 breq .L17 199 .L16: 200 00dc 00D0 rcall fillFlashWithVectors 201 .L17: 202 00de 1092 0000 sts (currentAddress)+1,__zero_reg__ 203 00e2 1092 0000 sts currentAddress,__zero_reg__ 204 00e6 AC9A sbi 53-32,4 205 00e8 8BB7 in r24,91-32 206 00ea 8062 ori r24,lo8(32) 207 00ec 8BBF out 91-32,r24 208 00ee BB9A sbi 55-32,3 209 00f0 88E8 ldi r24,lo8(5000) 210 00f2 93E1 ldi r25,hi8(5000) 211 .L18: 212 00f4 ECE9 ldi r30,lo8(412) 213 00f6 F1E0 ldi r31,hi8(412) 214 /* #APP */ 215 ; 105 "/usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/include/util/delay_bas 216 00f8 3197 1: sbiw r30,1 217 00fa 01F4 brne 1b 218 ; 0 "" 2 219 /* #NOAPP */ 220 00fc 0197 sbiw r24,1 221 00fe 01F4 brne .L18 222 0100 BB98 cbi 55-32,3 223 /* #APP */ 224 ; 299 "main.c" 1 225 0102 7894 sei 226 ; 0 "" 2 227 /* #NOAPP */ 228 0104 EE24 clr r14 GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 5 229 0106 FF24 clr r15 230 .L72: 231 0108 1091 0000 lds r17,usbRxLen 232 010c 1350 subi r17,lo8(-(-3)) 233 010e 17FD sbrc r17,7 234 0110 00C0 rjmp .L19 235 0112 8091 0000 lds r24,usbInputBufOffset 236 0116 CCE0 ldi r28,lo8(12) 237 0118 D0E0 ldi r29,hi8(12) 238 011a C81B sub r28,r24 239 011c D109 sbc r29,__zero_reg__ 240 011e C050 subi r28,lo8(-(usbRxBuf)) 241 0120 D040 sbci r29,hi8(-(usbRxBuf)) 242 0122 8091 0000 lds r24,usbRxToken 243 0126 8D32 cpi r24,lo8(45) 244 0128 01F0 breq .+2 245 012a 00C0 rjmp .L20 246 012c 1830 cpi r17,lo8(8) 247 012e 01F0 breq .+2 248 0130 00C0 rjmp .L21 249 0132 83EC ldi r24,lo8(-61) 250 0134 8093 0000 sts usbTxBuf,r24 251 0138 8AE5 ldi r24,lo8(90) 252 013a 8093 0000 sts usbTxLen,r24 253 013e 1092 0000 sts usbMsgFlags,__zero_reg__ 254 0142 2881 ld r18,Y 255 0144 822F mov r24,r18 256 0146 8076 andi r24,lo8(96) 257 0148 9981 ldd r25,Y+1 258 014a 8823 tst r24 259 014c 01F0 breq .L22 260 014e 9923 tst r25 261 0150 01F4 brne .L23 262 0152 80E0 ldi r24,lo8(replyBuffer.1675) 263 0154 90E0 ldi r25,hi8(replyBuffer.1675) 264 0156 9093 0000 sts (usbMsgPtr)+1,r25 265 015a 8093 0000 sts usbMsgPtr,r24 266 015e 24E0 ldi r18,lo8(4) 267 0160 00C0 rjmp .L24 268 .L23: 269 0162 9130 cpi r25,lo8(1) 270 0164 01F4 brne .L25 271 0166 8A81 ldd r24,Y+2 272 0168 8093 0000 sts writeLength,r24 273 016c 8C81 ldd r24,Y+4 274 016e 9D81 ldd r25,Y+5 275 0170 9093 0000 sts (currentAddress)+1,r25 276 0174 8093 0000 sts currentAddress,r24 277 0178 27FD sbrc r18,7 278 017a 00C0 rjmp .L26 279 017c 9FEF ldi r25,lo8(-1) 280 017e 00C0 rjmp .L27 281 .L25: 282 0180 8091 0000 lds r24,events 283 0184 9230 cpi r25,lo8(2) 284 0186 01F4 brne .L28 285 0188 8160 ori r24,lo8(1) GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 6 286 018a 00C0 rjmp .L76 287 .L28: 288 018c 8460 ori r24,lo8(4) 289 .L76: 290 018e 8093 0000 sts events,r24 291 0192 20E0 ldi r18,lo8(0) 292 0194 00C0 rjmp .L24 293 .L22: 294 0196 8A81 ldd r24,Y+2 295 0198 1092 0000 sts usbTxBuf+9,__zero_reg__ 296 019c 9923 tst r25 297 019e 01F4 brne .L29 298 01a0 1092 0000 sts usbTxBuf+10,__zero_reg__ 299 01a4 80E0 ldi r24,lo8(usbTxBuf+9) 300 01a6 90E0 ldi r25,hi8(usbTxBuf+9) 301 01a8 22E0 ldi r18,lo8(2) 302 01aa 00C0 rjmp .L30 303 .L29: 304 01ac 9530 cpi r25,lo8(5) 305 01ae 01F4 brne .L31 306 01b0 8093 0000 sts usbNewDeviceAddr,r24 307 01b4 00C0 rjmp .L39 308 .L31: 309 01b6 9630 cpi r25,lo8(6) 310 01b8 01F4 brne .L32 311 01ba 8B81 ldd r24,Y+3 312 01bc 8130 cpi r24,lo8(1) 313 01be 01F4 brne .L33 314 01c0 80E0 ldi r24,lo8(usbDescriptorDevice) 315 01c2 90E0 ldi r25,hi8(usbDescriptorDevice) 316 01c4 00C0 rjmp .L74 317 .L33: 318 01c6 8230 cpi r24,lo8(2) 319 01c8 01F4 brne .L35 320 01ca 80E0 ldi r24,lo8(usbDescriptorConfiguration) 321 01cc 90E0 ldi r25,hi8(usbDescriptorConfiguration) 322 .L74: 323 01ce 9093 0000 sts (usbMsgPtr)+1,r25 324 01d2 8093 0000 sts usbMsgPtr,r24 325 01d6 22E1 ldi r18,lo8(18) 326 01d8 00C0 rjmp .L34 327 .L35: 328 01da 8330 cpi r24,lo8(3) 329 01dc 01F4 brne .L36 330 01de 8A81 ldd r24,Y+2 331 01e0 8823 tst r24 332 01e2 01F4 brne .L36 333 01e4 80E0 ldi r24,lo8(usbDescriptorString0) 334 01e6 90E0 ldi r25,hi8(usbDescriptorString0) 335 01e8 9093 0000 sts (usbMsgPtr)+1,r25 336 01ec 8093 0000 sts usbMsgPtr,r24 337 01f0 24E0 ldi r18,lo8(4) 338 01f2 00C0 rjmp .L34 339 .L36: 340 01f4 20E0 ldi r18,lo8(0) 341 .L34: 342 01f6 80E4 ldi r24,lo8(64) GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 7 343 01f8 8093 0000 sts usbMsgFlags,r24 344 01fc 00C0 rjmp .L24 345 .L32: 346 01fe 9830 cpi r25,lo8(8) 347 0200 01F4 brne .L37 348 0202 80E0 ldi r24,lo8(usbConfiguration) 349 0204 90E0 ldi r25,hi8(usbConfiguration) 350 0206 00C0 rjmp .L75 351 .L37: 352 0208 9930 cpi r25,lo8(9) 353 020a 01F4 brne .L38 354 020c 8093 0000 sts usbConfiguration,r24 355 0210 00C0 rjmp .L39 356 .L38: 357 0212 9A30 cpi r25,lo8(10) 358 0214 01F4 brne .L39 359 0216 80E0 ldi r24,lo8(usbTxBuf+9) 360 0218 90E0 ldi r25,hi8(usbTxBuf+9) 361 .L75: 362 021a 21E0 ldi r18,lo8(1) 363 021c 00C0 rjmp .L30 364 .L39: 365 021e 80E0 ldi r24,lo8(usbTxBuf+9) 366 0220 90E0 ldi r25,hi8(usbTxBuf+9) 367 0222 20E0 ldi r18,lo8(0) 368 .L30: 369 0224 9093 0000 sts (usbMsgPtr)+1,r25 370 0228 8093 0000 sts usbMsgPtr,r24 371 022c 00C0 rjmp .L24 372 .L26: 373 022e 9E81 ldd r25,Y+6 374 .L27: 375 0230 80E8 ldi r24,lo8(-128) 376 0232 8093 0000 sts usbMsgFlags,r24 377 0236 00C0 rjmp .L40 378 .L24: 379 0238 8F81 ldd r24,Y+7 380 023a 8823 tst r24 381 023c 01F4 brne .L41 382 023e 9E81 ldd r25,Y+6 383 0240 9217 cp r25,r18 384 0242 00F0 brlo .L40 385 .L41: 386 0244 922F mov r25,r18 387 .L40: 388 0246 9093 0000 sts usbMsgLen,r25 389 024a 00C0 rjmp .L21 390 .L20: 391 024c 8091 0000 lds r24,usbMsgFlags 392 0250 87FF sbrs r24,7 393 0252 00C0 rjmp .L21 394 0254 8091 0000 lds r24,writeLength 395 0258 811B sub r24,r17 396 025a 8093 0000 sts writeLength,r24 397 .L46: 398 025e 8091 0000 lds r24,currentAddress 399 0262 9091 0000 lds r25,(currentAddress)+1 GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 8 400 0266 0097 sbiw r24,0 401 0268 01F4 brne .L42 402 026a 8881 ld r24,Y 403 026c 9981 ldd r25,Y+1 404 026e 9093 0000 sts (vectorTemp)+1,r25 405 0272 8093 0000 sts vectorTemp,r24 406 0276 00C0 rjmp .L43 407 .L42: 408 0278 8430 cpi r24,4 409 027a 9105 cpc r25,__zero_reg__ 410 027c 01F4 brne .L44 411 027e 8881 ld r24,Y 412 0280 9981 ldd r25,Y+1 413 0282 9093 0000 sts (vectorTemp+2)+1,r25 414 0286 8093 0000 sts vectorTemp+2,r24 415 028a 00C0 rjmp .L43 416 .L44: 417 028c 8A57 subi r24,lo8(6010) 418 028e 9741 sbci r25,hi8(6010) 419 0290 00F0 brlo .L43 420 0292 81E1 ldi r24,lo8(17) 421 /* #APP */ 422 ; 262 "main.c" 1 423 0294 8093 5700 sts 87, r24 424 0298 E895 spm 425 426 ; 0 "" 2 427 /* #NOAPP */ 428 029a 00C0 rjmp .L45 429 .L43: 430 029c 8881 ld r24,Y 431 029e 9981 ldd r25,Y+1 432 02a0 00D0 rcall writeWordToPageBuffer 433 02a2 1250 subi r17,lo8(-(-2)) 434 02a4 01F0 breq .L45 435 02a6 2296 adiw r28,2 436 02a8 00C0 rjmp .L46 437 .L45: 438 02aa 8091 0000 lds r24,writeLength 439 02ae 8823 tst r24 440 02b0 01F4 brne .L21 441 02b2 8091 0000 lds r24,events 442 02b6 8260 ori r24,lo8(2) 443 02b8 8093 0000 sts events,r24 444 02bc 1092 0000 sts usbMsgLen,__zero_reg__ 445 .L21: 446 02c0 1092 0000 sts usbRxLen,__zero_reg__ 447 .L19: 448 02c4 8091 0000 lds r24,usbTxLen 449 02c8 84FF sbrs r24,4 450 02ca 00C0 rjmp .L47 451 02cc 8091 0000 lds r24,usbMsgLen 452 02d0 8F3F cpi r24,lo8(-1) 453 02d2 01F0 breq .L47 454 02d4 182F mov r17,r24 455 02d6 8930 cpi r24,lo8(9) 456 02d8 00F0 brlo .L48 GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 9 457 02da 18E0 ldi r17,lo8(8) 458 .L48: 459 02dc 811B sub r24,r17 460 02de 8093 0000 sts usbMsgLen,r24 461 02e2 8091 0000 lds r24,usbTxBuf 462 02e6 98E8 ldi r25,lo8(-120) 463 02e8 8927 eor r24,r25 464 02ea 8093 0000 sts usbTxBuf,r24 465 02ee 1123 tst r17 466 02f0 01F0 breq .L49 467 02f2 E091 0000 lds r30,usbMsgPtr 468 02f6 F091 0000 lds r31,(usbMsgPtr)+1 469 02fa 8091 0000 lds r24,usbMsgFlags 470 02fe 86FF sbrs r24,6 471 0300 00C0 rjmp .L50 472 0302 912F mov r25,r17 473 0304 A0E0 ldi r26,lo8(usbTxBuf+1) 474 0306 B0E0 ldi r27,hi8(usbTxBuf+1) 475 .L51: 476 /* #APP */ 477 ; 504 "usbdrv/usbdrv.c" 1 478 0308 8491 lpm r24, Z 479 480 ; 0 "" 2 481 /* #NOAPP */ 482 030a 8D93 st X+,r24 483 030c 3196 adiw r30,1 484 030e 9150 subi r25,lo8(-(-1)) 485 0310 01F4 brne .L51 486 0312 00C0 rjmp .L52 487 .L50: 488 0314 912F mov r25,r17 489 0316 A0E0 ldi r26,lo8(usbTxBuf+1) 490 0318 B0E0 ldi r27,hi8(usbTxBuf+1) 491 .L53: 492 031a 8191 ld r24,Z+ 493 031c 8D93 st X+,r24 494 031e 9150 subi r25,lo8(-(-1)) 495 0320 01F4 brne .L53 496 .L52: 497 0322 F093 0000 sts (usbMsgPtr)+1,r31 498 0326 E093 0000 sts usbMsgPtr,r30 499 .L49: 500 032a 80E0 ldi r24,lo8(usbTxBuf+1) 501 032c 90E0 ldi r25,hi8(usbTxBuf+1) 502 032e 612F mov r22,r17 503 0330 00D0 rcall usbCrc16Append 504 0332 612F mov r22,r17 505 0334 6C5F subi r22,lo8(-(4)) 506 0336 6C30 cpi r22,lo8(12) 507 0338 01F0 breq .L54 508 033a 8FEF ldi r24,lo8(-1) 509 033c 8093 0000 sts usbMsgLen,r24 510 .L54: 511 0340 6093 0000 sts usbTxLen,r22 512 .L47: 513 0344 94E1 ldi r25,lo8(20) GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 10 514 .L56: 515 0346 86B3 in r24,54-32 516 0348 8871 andi r24,lo8(24) 517 034a 01F4 brne .L55 518 034c 9150 subi r25,lo8(-(-1)) 519 034e 01F4 brne .L56 520 0350 1092 0000 sts usbNewDeviceAddr,__zero_reg__ 521 0354 1092 0000 sts usbDeviceAddr,__zero_reg__ 522 .L55: 523 0358 10E0 ldi r17,lo8(0) 524 035a 9923 tst r25 525 035c 01F4 brne .L57 526 035e 11E0 ldi r17,lo8(1) 527 .L57: 528 0360 8091 0000 lds r24,wasReset.1562 529 0364 8117 cp r24,r17 530 0366 01F0 breq .L58 531 0368 1123 tst r17 532 036a 01F4 brne .L59 533 /* #APP */ 534 ; 557 "usbdrv/usbdrv.c" 1 535 036c F894 cli 536 ; 0 "" 2 537 /* #NOAPP */ 538 036e 00D0 rcall calibrateOscillator 539 /* #APP */ 540 ; 557 "usbdrv/usbdrv.c" 1 541 0370 7894 sei 542 ; 0 "" 2 543 /* #NOAPP */ 544 .L59: 545 0372 1093 0000 sts wasReset.1562,r17 546 .L58: 547 0376 8CE9 ldi r24,lo8(412) 548 0378 91E0 ldi r25,hi8(412) 549 /* #APP */ 550 ; 105 "/usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/include/util/delay_bas 551 037a 0197 1: sbiw r24,1 552 037c 01F4 brne 1b 553 ; 0 "" 2 554 /* #NOAPP */ 555 037e 8091 0000 lds r24,events 556 0382 8823 tst r24 557 0384 01F0 breq .L60 558 0386 EE24 clr r14 559 0388 FF24 clr r15 560 038a 00C0 rjmp .L61 561 .L60: 562 038c 0894 sec 563 038e E11C adc r14,__zero_reg__ 564 0390 F11C adc r15,__zero_reg__ 565 .L61: 566 0392 182F mov r17,r24 567 0394 80FF sbrs r24,0 568 0396 00C0 rjmp .L62 569 /* #APP */ 570 ; 130 "main.c" 1 GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 11 571 0398 F894 cli 572 ; 0 "" 2 573 /* #NOAPP */ 574 039a E0E8 ldi r30,lo8(6016) 575 039c F7E1 ldi r31,hi8(6016) 576 .L64: 577 039e E054 subi r30,lo8(-(-64)) 578 03a0 F040 sbci r31,hi8(-(-64)) 579 03a2 83E0 ldi r24,lo8(3) 580 /* #APP */ 581 ; 134 "main.c" 1 582 03a4 8093 5700 sts 87, r24 583 03a8 E895 spm 584 585 ; 0 "" 2 586 /* #NOAPP */ 587 .L63: 588 03aa 07B6 in __tmp_reg__,87-32 589 03ac 00FC sbrc __tmp_reg__,0 590 03ae 00C0 rjmp .L63 591 03b0 3097 sbiw r30,0 592 03b2 01F4 brne .L64 593 03b4 1092 0000 sts (currentAddress)+1,__zero_reg__ 594 03b8 1092 0000 sts currentAddress,__zero_reg__ 595 03bc 00D0 rcall fillFlashWithVectors 596 /* #APP */ 597 ; 139 "main.c" 1 598 03be 7894 sei 599 ; 0 "" 2 600 /* #NOAPP */ 601 .L62: 602 03c0 11FF sbrs r17,1 603 03c2 00C0 rjmp .L65 604 03c4 8AE3 ldi r24,lo8(8250) 605 03c6 90E2 ldi r25,hi8(8250) 606 /* #APP */ 607 ; 105 "/usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/include/util/delay_bas 608 03c8 0197 1: sbiw r24,1 609 03ca 01F4 brne 1b 610 ; 0 "" 2 611 /* #NOAPP */ 612 03cc 8091 0000 lds r24,currentAddress 613 03d0 9091 0000 lds r25,(currentAddress)+1 614 03d4 8F73 andi r24,lo8(63) 615 03d6 9070 andi r25,hi8(63) 616 03d8 892B or r24,r25 617 03da 01F0 breq .L66 618 03dc 00D0 rcall fillFlashWithVectors 619 03de 00C0 rjmp .L65 620 .L66: 621 03e0 00D0 rcall writeFlashPage 622 .L65: 623 03e2 12FF sbrs r17,2 624 03e4 00C0 rjmp .L67 625 03e6 8091 0000 lds r24,didWriteSomething 626 03ea 8823 tst r24 627 03ec 01F4 brne .L68 GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 12 628 03ee 00C0 rjmp .L69 629 .L70: 630 03f0 00D0 rcall fillFlashWithVectors 631 .L68: 632 03f2 8091 0000 lds r24,currentAddress 633 03f6 9091 0000 lds r25,(currentAddress)+1 634 03fa 8058 subi r24,lo8(6016) 635 03fc 9741 sbci r25,hi8(6016) 636 03fe 00F0 brlo .L70 637 .L69: 638 0400 82E2 ldi r24,lo8(-24286) 639 0402 91EA ldi r25,hi8(-24286) 640 /* #APP */ 641 ; 105 "/usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/include/util/delay_bas 642 0404 0197 1: sbiw r24,1 643 0406 01F4 brne 1b 644 ; 0 "" 2 645 /* #NOAPP */ 646 0408 00C0 rjmp .L71 647 .L67: 648 040a 1092 0000 sts events,__zero_reg__ 649 040e 80E5 ldi r24,lo8(-15536) 650 0410 E816 cp r14,r24 651 0412 83EC ldi r24,hi8(-15536) 652 0414 F806 cpc r15,r24 653 0416 00F4 brsh .+2 654 0418 00C0 rjmp .L72 655 .L71: 656 /* #APP */ 657 ; 342 "main.c" 1 658 041a F894 cli 659 ; 0 "" 2 660 /* #NOAPP */ 661 041c 1BBE out 91-32,__zero_reg__ 662 041e 15BA out 53-32,__zero_reg__ 663 0420 1092 5F02 sts 607,__zero_reg__ 664 0424 1092 5E02 sts 606,__zero_reg__ 665 /* #APP */ 666 ; 351 "main.c" 1 667 0428 00C0 rjmp __vectors - 4 668 ; 0 "" 2 669 /* epilogue start */ 670 /* #NOAPP */ 671 042a 0895 ret 672 .size main, .-main 673 .global usbTxLen 674 .data 675 .type usbTxLen, @object 676 .size usbTxLen, 1 677 usbTxLen: 678 0000 5A .byte 90 679 .global usbDescriptorString0 680 .section .progmem.data,"a",@progbits 681 .type usbDescriptorString0, @object 682 .size usbDescriptorString0, 4 683 usbDescriptorString0: 684 0000 04 .byte 4 GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 13 685 0001 03 .byte 3 686 0002 09 .byte 9 687 0003 04 .byte 4 688 .global usbDescriptorDevice 689 .type usbDescriptorDevice, @object 690 .size usbDescriptorDevice, 18 691 usbDescriptorDevice: 692 0004 12 .byte 18 693 0005 01 .byte 1 694 0006 10 .byte 16 695 0007 01 .byte 1 696 0008 FF .byte -1 697 0009 00 .byte 0 698 000a 00 .byte 0 699 000b 08 .byte 8 700 000c D0 .byte -48 701 000d 16 .byte 22 702 000e 53 .byte 83 703 000f 07 .byte 7 704 0010 02 .byte 2 705 0011 01 .byte 1 706 0012 00 .byte 0 707 0013 00 .byte 0 708 0014 00 .byte 0 709 0015 01 .byte 1 710 .global usbDescriptorConfiguration 711 .type usbDescriptorConfiguration, @object 712 .size usbDescriptorConfiguration, 18 713 usbDescriptorConfiguration: 714 0016 09 .byte 9 715 0017 02 .byte 2 716 0018 12 .byte 18 717 0019 00 .byte 0 718 001a 01 .byte 1 719 001b 01 .byte 1 720 001c 00 .byte 0 721 001d 80 .byte -128 722 001e 32 .byte 50 723 001f 09 .byte 9 724 0020 04 .byte 4 725 0021 00 .byte 0 726 0022 00 .byte 0 727 0023 00 .byte 0 728 0024 00 .byte 0 729 0025 00 .byte 0 730 0026 00 .byte 0 731 0027 00 .byte 0 732 .lcomm events,1 733 .lcomm didWriteSomething,1 734 .data 735 .type usbMsgLen, @object 736 .size usbMsgLen, 1 737 usbMsgLen: 738 0001 FF .byte -1 739 .type replyBuffer.1675, @object 740 .size replyBuffer.1675, 4 741 replyBuffer.1675: GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 14 742 0002 17 .byte 23 743 0003 7A .byte 122 744 0004 40 .byte 64 745 0005 08 .byte 8 746 .lcomm wasReset.1562,1 747 .lcomm usbMsgFlags,1 748 .lcomm writeLength,1 749 .lcomm vectorTemp,4 750 .lcomm currentAddress,2 751 .comm usbMsgPtr,2,1 752 .comm usbRxToken,1,1 753 .comm usbConfiguration,1,1 754 .comm usbRxBuf,22,1 755 .comm usbInputBufOffset,1,1 756 .comm usbDeviceAddr,1,1 757 .comm usbNewDeviceAddr,1,1 758 .comm usbRxLen,1,1 759 .comm usbCurrentTok,1,1 760 .comm usbTxBuf,11,1 761 .global __do_copy_data 762 .global __do_clear_bss GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s page 15 DEFINED SYMBOLS *ABS*:00000000 main.c /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:2 *ABS*:0000003f __SREG__ /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:3 *ABS*:0000003e __SP_H__ /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:4 *ABS*:0000003d __SP_L__ /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:5 *ABS*:00000034 __CCP__ /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:6 *ABS*:00000000 __tmp_reg__ /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:7 *ABS*:00000001 __zero_reg__ /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:10 .text:00000000 writeFlashPage /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:732 .bss:00000001 didWriteSomething /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:749 .bss:00000009 currentAddress /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:44 .text:00000024 writeWordToPageBuffer /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:748 .bss:00000005 vectorTemp /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:113 .text:0000008e fillFlashWithVectors /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:139 .init3:00000000 PushMagicWord /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:161 .text:000000b4 main *COM*:00000001 usbRxLen *COM*:00000001 usbInputBufOffset *COM*:00000016 usbRxBuf *COM*:00000001 usbRxToken *COM*:0000000b usbTxBuf /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:677 .data:00000000 usbTxLen /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:746 .bss:00000003 usbMsgFlags /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:741 .data:00000002 replyBuffer.1675 *COM*:00000002 usbMsgPtr /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:747 .bss:00000004 writeLength .bss:00000000 events *COM*:00000001 usbNewDeviceAddr /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:691 .progmem.data:00000004 usbDescriptorDevice /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:713 .progmem.data:00000016 usbDescriptorConfiguration /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:683 .progmem.data:00000000 usbDescriptorString0 *COM*:00000001 usbConfiguration /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:737 .data:00000001 usbMsgLen *COM*:00000001 usbDeviceAddr /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccPobqmk.s:733 .bss:00000002 wasReset.1562 *COM*:00000001 usbCurrentTok UNDEFINED SYMBOLS usbCrc16Append calibrateOscillator __vectors __do_copy_data __do_clear_bss