GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.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//ccSfrgTC.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 ; 188 "main.c" 1 80 0068 F894 cli 81 ; 0 "" 2 82 /* #NOAPP */ 83 006a 81E0 ldi r24,lo8(1) 84 /* #APP */ 85 ; 189 "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 ; 190 "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 ; 186 "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//ccSfrgTC.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 ; 290 "main.c" 1 144 0000 00EB ldi r16, 0xB0 145 ; 0 "" 2 146 ; 291 "main.c" 1 147 0002 0F93 push r16 148 ; 0 "" 2 149 ; 292 "main.c" 1 150 0004 07E0 ldi r16, 0x07 151 ; 0 "" 2 152 ; 293 "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 ; 363 "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//ccSfrgTC.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 ; 311 "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 ; 312 "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 ; 304 "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//ccSfrgTC.s page 5 229 0106 FF24 clr r15 230 .L73: 231 0108 9091 0000 lds r25,usbRxLen 232 010c 9350 subi r25,lo8(-(-3)) 233 010e 97FD sbrc r25,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 9830 cpi r25,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//ccSfrgTC.s page 6 286 018a 00C0 rjmp .L77 287 .L28: 288 018c 8460 ori r24,lo8(4) 289 .L77: 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 .L75 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 .L75: 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//ccSfrgTC.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 .L76 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 .L76: 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 192F mov r17,r25 396 025a 8917 cp r24,r25 397 025c 00F4 brsh .L42 398 025e 182F mov r17,r24 399 .L42: GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s page 8 400 0260 811B sub r24,r17 401 0262 8093 0000 sts writeLength,r24 402 .L47: 403 0266 8091 0000 lds r24,currentAddress 404 026a 9091 0000 lds r25,(currentAddress)+1 405 026e 0097 sbiw r24,0 406 0270 01F4 brne .L43 407 0272 8881 ld r24,Y 408 0274 9981 ldd r25,Y+1 409 0276 9093 0000 sts (vectorTemp)+1,r25 410 027a 8093 0000 sts vectorTemp,r24 411 027e 00C0 rjmp .L44 412 .L43: 413 0280 8430 cpi r24,4 414 0282 9105 cpc r25,__zero_reg__ 415 0284 01F4 brne .L45 416 0286 8881 ld r24,Y 417 0288 9981 ldd r25,Y+1 418 028a 9093 0000 sts (vectorTemp+2)+1,r25 419 028e 8093 0000 sts vectorTemp+2,r24 420 0292 00C0 rjmp .L44 421 .L45: 422 0294 8A57 subi r24,lo8(6010) 423 0296 9741 sbci r25,hi8(6010) 424 0298 00F0 brlo .L44 425 029a 81E1 ldi r24,lo8(17) 426 /* #APP */ 427 ; 266 "main.c" 1 428 029c 8093 5700 sts 87, r24 429 02a0 E895 spm 430 431 ; 0 "" 2 432 /* #NOAPP */ 433 02a2 00C0 rjmp .L46 434 .L44: 435 02a4 8881 ld r24,Y 436 02a6 9981 ldd r25,Y+1 437 02a8 00D0 rcall writeWordToPageBuffer 438 02aa 1250 subi r17,lo8(-(-2)) 439 02ac 01F0 breq .L46 440 02ae 2296 adiw r28,2 441 02b0 00C0 rjmp .L47 442 .L46: 443 02b2 8091 0000 lds r24,writeLength 444 02b6 8823 tst r24 445 02b8 01F4 brne .L21 446 02ba 8091 0000 lds r24,events 447 02be 8260 ori r24,lo8(2) 448 02c0 8093 0000 sts events,r24 449 02c4 1092 0000 sts usbMsgLen,__zero_reg__ 450 .L21: 451 02c8 1092 0000 sts usbRxLen,__zero_reg__ 452 .L19: 453 02cc 8091 0000 lds r24,usbTxLen 454 02d0 84FF sbrs r24,4 455 02d2 00C0 rjmp .L48 456 02d4 8091 0000 lds r24,usbMsgLen GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s page 9 457 02d8 8F3F cpi r24,lo8(-1) 458 02da 01F0 breq .L48 459 02dc 182F mov r17,r24 460 02de 8930 cpi r24,lo8(9) 461 02e0 00F0 brlo .L49 462 02e2 18E0 ldi r17,lo8(8) 463 .L49: 464 02e4 811B sub r24,r17 465 02e6 8093 0000 sts usbMsgLen,r24 466 02ea 8091 0000 lds r24,usbTxBuf 467 02ee 98E8 ldi r25,lo8(-120) 468 02f0 8927 eor r24,r25 469 02f2 8093 0000 sts usbTxBuf,r24 470 02f6 1123 tst r17 471 02f8 01F0 breq .L50 472 02fa E091 0000 lds r30,usbMsgPtr 473 02fe F091 0000 lds r31,(usbMsgPtr)+1 474 0302 8091 0000 lds r24,usbMsgFlags 475 0306 86FF sbrs r24,6 476 0308 00C0 rjmp .L51 477 030a 912F mov r25,r17 478 030c A0E0 ldi r26,lo8(usbTxBuf+1) 479 030e B0E0 ldi r27,hi8(usbTxBuf+1) 480 .L52: 481 /* #APP */ 482 ; 504 "usbdrv/usbdrv.c" 1 483 0310 8491 lpm r24, Z 484 485 ; 0 "" 2 486 /* #NOAPP */ 487 0312 8D93 st X+,r24 488 0314 3196 adiw r30,1 489 0316 9150 subi r25,lo8(-(-1)) 490 0318 01F4 brne .L52 491 031a 00C0 rjmp .L53 492 .L51: 493 031c 912F mov r25,r17 494 031e A0E0 ldi r26,lo8(usbTxBuf+1) 495 0320 B0E0 ldi r27,hi8(usbTxBuf+1) 496 .L54: 497 0322 8191 ld r24,Z+ 498 0324 8D93 st X+,r24 499 0326 9150 subi r25,lo8(-(-1)) 500 0328 01F4 brne .L54 501 .L53: 502 032a F093 0000 sts (usbMsgPtr)+1,r31 503 032e E093 0000 sts usbMsgPtr,r30 504 .L50: 505 0332 80E0 ldi r24,lo8(usbTxBuf+1) 506 0334 90E0 ldi r25,hi8(usbTxBuf+1) 507 0336 612F mov r22,r17 508 0338 00D0 rcall usbCrc16Append 509 033a 612F mov r22,r17 510 033c 6C5F subi r22,lo8(-(4)) 511 033e 6C30 cpi r22,lo8(12) 512 0340 01F0 breq .L55 513 0342 8FEF ldi r24,lo8(-1) GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s page 10 514 0344 8093 0000 sts usbMsgLen,r24 515 .L55: 516 0348 6093 0000 sts usbTxLen,r22 517 .L48: 518 034c 94E1 ldi r25,lo8(20) 519 .L57: 520 034e 86B3 in r24,54-32 521 0350 8871 andi r24,lo8(24) 522 0352 01F4 brne .L56 523 0354 9150 subi r25,lo8(-(-1)) 524 0356 01F4 brne .L57 525 0358 1092 0000 sts usbNewDeviceAddr,__zero_reg__ 526 035c 1092 0000 sts usbDeviceAddr,__zero_reg__ 527 .L56: 528 0360 10E0 ldi r17,lo8(0) 529 0362 9923 tst r25 530 0364 01F4 brne .L58 531 0366 11E0 ldi r17,lo8(1) 532 .L58: 533 0368 8091 0000 lds r24,wasReset.1562 534 036c 8117 cp r24,r17 535 036e 01F0 breq .L59 536 0370 1123 tst r17 537 0372 01F4 brne .L60 538 /* #APP */ 539 ; 557 "usbdrv/usbdrv.c" 1 540 0374 F894 cli 541 ; 0 "" 2 542 /* #NOAPP */ 543 0376 00D0 rcall calibrateOscillator 544 /* #APP */ 545 ; 557 "usbdrv/usbdrv.c" 1 546 0378 7894 sei 547 ; 0 "" 2 548 /* #NOAPP */ 549 .L60: 550 037a 1093 0000 sts wasReset.1562,r17 551 .L59: 552 037e 8CE9 ldi r24,lo8(412) 553 0380 91E0 ldi r25,hi8(412) 554 /* #APP */ 555 ; 105 "/usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/include/util/delay_bas 556 0382 0197 1: sbiw r24,1 557 0384 01F4 brne 1b 558 ; 0 "" 2 559 /* #NOAPP */ 560 0386 8091 0000 lds r24,events 561 038a 8823 tst r24 562 038c 01F0 breq .L61 563 038e EE24 clr r14 564 0390 FF24 clr r15 565 0392 00C0 rjmp .L62 566 .L61: 567 0394 0894 sec 568 0396 E11C adc r14,__zero_reg__ 569 0398 F11C adc r15,__zero_reg__ 570 .L62: GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s page 11 571 039a 182F mov r17,r24 572 039c 80FF sbrs r24,0 573 039e 00C0 rjmp .L63 574 /* #APP */ 575 ; 130 "main.c" 1 576 03a0 F894 cli 577 ; 0 "" 2 578 /* #NOAPP */ 579 03a2 E0E8 ldi r30,lo8(6016) 580 03a4 F7E1 ldi r31,hi8(6016) 581 .L65: 582 03a6 E054 subi r30,lo8(-(-64)) 583 03a8 F040 sbci r31,hi8(-(-64)) 584 03aa 83E0 ldi r24,lo8(3) 585 /* #APP */ 586 ; 134 "main.c" 1 587 03ac 8093 5700 sts 87, r24 588 03b0 E895 spm 589 590 ; 0 "" 2 591 /* #NOAPP */ 592 .L64: 593 03b2 07B6 in __tmp_reg__,87-32 594 03b4 00FC sbrc __tmp_reg__,0 595 03b6 00C0 rjmp .L64 596 03b8 3097 sbiw r30,0 597 03ba 01F4 brne .L65 598 03bc 1092 0000 sts (currentAddress)+1,__zero_reg__ 599 03c0 1092 0000 sts currentAddress,__zero_reg__ 600 03c4 00D0 rcall fillFlashWithVectors 601 /* #APP */ 602 ; 139 "main.c" 1 603 03c6 7894 sei 604 ; 0 "" 2 605 /* #NOAPP */ 606 .L63: 607 03c8 11FF sbrs r17,1 608 03ca 00C0 rjmp .L66 609 03cc 8AE3 ldi r24,lo8(8250) 610 03ce 90E2 ldi r25,hi8(8250) 611 /* #APP */ 612 ; 105 "/usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/include/util/delay_bas 613 03d0 0197 1: sbiw r24,1 614 03d2 01F4 brne 1b 615 ; 0 "" 2 616 /* #NOAPP */ 617 03d4 8091 0000 lds r24,currentAddress 618 03d8 9091 0000 lds r25,(currentAddress)+1 619 03dc 8F73 andi r24,lo8(63) 620 03de 9070 andi r25,hi8(63) 621 03e0 892B or r24,r25 622 03e2 01F0 breq .L67 623 03e4 00D0 rcall fillFlashWithVectors 624 03e6 00C0 rjmp .L66 625 .L67: 626 03e8 00D0 rcall writeFlashPage 627 .L66: GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s page 12 628 03ea 12FF sbrs r17,2 629 03ec 00C0 rjmp .L68 630 03ee 8091 0000 lds r24,didWriteSomething 631 03f2 8823 tst r24 632 03f4 01F4 brne .L69 633 03f6 00C0 rjmp .L70 634 .L71: 635 03f8 00D0 rcall fillFlashWithVectors 636 .L69: 637 03fa 8091 0000 lds r24,currentAddress 638 03fe 9091 0000 lds r25,(currentAddress)+1 639 0402 8058 subi r24,lo8(6016) 640 0404 9741 sbci r25,hi8(6016) 641 0406 00F0 brlo .L71 642 .L70: 643 0408 82E2 ldi r24,lo8(-24286) 644 040a 91EA ldi r25,hi8(-24286) 645 /* #APP */ 646 ; 105 "/usr/local/CrossPack-AVR-20100115/lib/gcc/avr/4.3.3/../../../../avr/include/util/delay_bas 647 040c 0197 1: sbiw r24,1 648 040e 01F4 brne 1b 649 ; 0 "" 2 650 /* #NOAPP */ 651 0410 00C0 rjmp .L72 652 .L68: 653 0412 1092 0000 sts events,__zero_reg__ 654 0416 80E5 ldi r24,lo8(-15536) 655 0418 E816 cp r14,r24 656 041a 83EC ldi r24,hi8(-15536) 657 041c F806 cpc r15,r24 658 041e 00F4 brsh .+2 659 0420 00C0 rjmp .L73 660 .L72: 661 /* #APP */ 662 ; 347 "main.c" 1 663 0422 F894 cli 664 ; 0 "" 2 665 /* #NOAPP */ 666 0424 1BBE out 91-32,__zero_reg__ 667 0426 15BA out 53-32,__zero_reg__ 668 0428 1092 5F02 sts 607,__zero_reg__ 669 042c 1092 5E02 sts 606,__zero_reg__ 670 /* #APP */ 671 ; 356 "main.c" 1 672 0430 00C0 rjmp __vectors - 4 673 ; 0 "" 2 674 /* epilogue start */ 675 /* #NOAPP */ 676 0432 0895 ret 677 .size main, .-main 678 .global usbTxLen 679 .data 680 .type usbTxLen, @object 681 .size usbTxLen, 1 682 usbTxLen: 683 0000 5A .byte 90 684 .global usbDescriptorString0 GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s page 13 685 .section .progmem.data,"a",@progbits 686 .type usbDescriptorString0, @object 687 .size usbDescriptorString0, 4 688 usbDescriptorString0: 689 0000 04 .byte 4 690 0001 03 .byte 3 691 0002 09 .byte 9 692 0003 04 .byte 4 693 .global usbDescriptorDevice 694 .type usbDescriptorDevice, @object 695 .size usbDescriptorDevice, 18 696 usbDescriptorDevice: 697 0004 12 .byte 18 698 0005 01 .byte 1 699 0006 10 .byte 16 700 0007 01 .byte 1 701 0008 FF .byte -1 702 0009 00 .byte 0 703 000a 00 .byte 0 704 000b 08 .byte 8 705 000c D0 .byte -48 706 000d 16 .byte 22 707 000e 53 .byte 83 708 000f 07 .byte 7 709 0010 02 .byte 2 710 0011 01 .byte 1 711 0012 00 .byte 0 712 0013 00 .byte 0 713 0014 00 .byte 0 714 0015 01 .byte 1 715 .global usbDescriptorConfiguration 716 .type usbDescriptorConfiguration, @object 717 .size usbDescriptorConfiguration, 18 718 usbDescriptorConfiguration: 719 0016 09 .byte 9 720 0017 02 .byte 2 721 0018 12 .byte 18 722 0019 00 .byte 0 723 001a 01 .byte 1 724 001b 01 .byte 1 725 001c 00 .byte 0 726 001d 80 .byte -128 727 001e 32 .byte 50 728 001f 09 .byte 9 729 0020 04 .byte 4 730 0021 00 .byte 0 731 0022 00 .byte 0 732 0023 00 .byte 0 733 0024 00 .byte 0 734 0025 00 .byte 0 735 0026 00 .byte 0 736 0027 00 .byte 0 737 .lcomm events,1 738 .lcomm didWriteSomething,1 739 .data 740 .type usbMsgLen, @object 741 .size usbMsgLen, 1 GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s page 14 742 usbMsgLen: 743 0001 FF .byte -1 744 .type replyBuffer.1675, @object 745 .size replyBuffer.1675, 4 746 replyBuffer.1675: 747 0002 17 .byte 23 748 0003 7A .byte 122 749 0004 40 .byte 64 750 0005 08 .byte 8 751 .lcomm wasReset.1562,1 752 .lcomm usbMsgFlags,1 753 .lcomm writeLength,1 754 .lcomm vectorTemp,4 755 .lcomm currentAddress,2 756 .comm usbMsgPtr,2,1 757 .comm usbRxToken,1,1 758 .comm usbConfiguration,1,1 759 .comm usbRxBuf,22,1 760 .comm usbInputBufOffset,1,1 761 .comm usbDeviceAddr,1,1 762 .comm usbNewDeviceAddr,1,1 763 .comm usbRxLen,1,1 764 .comm usbCurrentTok,1,1 765 .comm usbTxBuf,11,1 766 .global __do_copy_data 767 .global __do_clear_bss GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s page 15 DEFINED SYMBOLS *ABS*:00000000 main.c /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:2 *ABS*:0000003f __SREG__ /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:3 *ABS*:0000003e __SP_H__ /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:4 *ABS*:0000003d __SP_L__ /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:5 *ABS*:00000034 __CCP__ /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:6 *ABS*:00000000 __tmp_reg__ /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:7 *ABS*:00000001 __zero_reg__ /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:10 .text:00000000 writeFlashPage /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:737 .bss:00000001 didWriteSomething /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:754 .bss:00000009 currentAddress /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:44 .text:00000024 writeWordToPageBuffer /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:753 .bss:00000005 vectorTemp /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:113 .text:0000008e fillFlashWithVectors /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:139 .init3:00000000 PushMagicWord /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.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//ccSfrgTC.s:682 .data:00000000 usbTxLen /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:751 .bss:00000003 usbMsgFlags /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:746 .data:00000002 replyBuffer.1675 *COM*:00000002 usbMsgPtr /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:752 .bss:00000004 writeLength .bss:00000000 events *COM*:00000001 usbNewDeviceAddr /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:696 .progmem.data:00000004 usbDescriptorDevice /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:718 .progmem.data:00000016 usbDescriptorConfiguration /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:688 .progmem.data:00000000 usbDescriptorString0 *COM*:00000001 usbConfiguration /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:742 .data:00000001 usbMsgLen *COM*:00000001 usbDeviceAddr /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccSfrgTC.s:738 .bss:00000002 wasReset.1562 *COM*:00000001 usbCurrentTok UNDEFINED SYMBOLS usbCrc16Append calibrateOscillator __vectors __do_copy_data __do_clear_bss