diff options
| -rw-r--r-- | firmware/Makefile | 2 | ||||
| -rw-r--r-- | firmware/libs-device/osccal.c.lst | 20 | ||||
| -rwxr-xr-x | firmware/main.bin | bin | 8969 -> 8957 bytes | |||
| -rw-r--r-- | firmware/main.c | 30 | ||||
| -rw-r--r-- | firmware/main.c.lst | 1378 | ||||
| -rw-r--r-- | firmware/main.hex | 291 | ||||
| -rw-r--r-- | firmware/main.map | 126 | ||||
| -rw-r--r-- | firmware/main.o | bin | 5952 -> 5940 bytes | |||
| -rw-r--r-- | firmware/usbdrv/oddebug.c.lst | 16 | 
9 files changed, 916 insertions, 947 deletions
| diff --git a/firmware/Makefile b/firmware/Makefile index 4f4c077..66e5c3f 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -19,7 +19,7 @@ F_CPU = 16500000  DEVICE = attiny85  # BOOTLOADER_ADDRESS is 1800 for 8k devices, 3800 for 16k and 7800 for 32k.  # 	Can be on the start of any flash page for ATtiny85, but must be set low enough so there is space for the full boot loader -BOOTLOADER_ADDRESS = 1500 +BOOTLOADER_ADDRESS = 1700  FUSEOPT = $(FUSEOPT_t85)  LOCKOPT = -U lock:w:0x2f:m diff --git a/firmware/libs-device/osccal.c.lst b/firmware/libs-device/osccal.c.lst index 32f898a..03c6fe2 100644 --- a/firmware/libs-device/osccal.c.lst +++ b/firmware/libs-device/osccal.c.lst @@ -1,4 +1,4 @@ -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmICX6q.s 			page 1 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmBVyO8.s 			page 1     1               		.file	"osccal.c" @@ -58,7 +58,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmICX6q.s 			page    55 0046 8C17      		cp r24,r28    56 0048 9D07      		cpc r25,r29    57 004a 04F4      		brge .L6 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmICX6q.s 			page 2 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmBVyO8.s 			page 2    58 004c 01B7      		in r16,81-32 @@ -85,18 +85,18 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmICX6q.s 			page    79 0070 FF90      		pop r15    80 0072 0895      		ret    81               		.size	calibrateOscillator, .-calibrateOscillator -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmICX6q.s 			page 3 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmBVyO8.s 			page 3  DEFINED SYMBOLS                              *ABS*:00000000 osccal.c -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmICX6q.s:2      *ABS*:0000003f __SREG__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmICX6q.s:3      *ABS*:0000003e __SP_H__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmICX6q.s:4      *ABS*:0000003d __SP_L__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmICX6q.s:5      *ABS*:00000034 __CCP__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmICX6q.s:6      *ABS*:00000000 __tmp_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmICX6q.s:7      *ABS*:00000001 __zero_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmICX6q.s:11     .text:00000000 calibrateOscillator +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmBVyO8.s:2      *ABS*:0000003f __SREG__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmBVyO8.s:3      *ABS*:0000003e __SP_H__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmBVyO8.s:4      *ABS*:0000003d __SP_L__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmBVyO8.s:5      *ABS*:00000034 __CCP__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmBVyO8.s:6      *ABS*:00000000 __tmp_reg__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmBVyO8.s:7      *ABS*:00000001 __zero_reg__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccmBVyO8.s:11     .text:00000000 calibrateOscillator  UNDEFINED SYMBOLS  usbMeasureFrameLength diff --git a/firmware/main.bin b/firmware/main.binBinary files differ index 078f449..5d678b8 100755 --- a/firmware/main.bin +++ b/firmware/main.bin diff --git a/firmware/main.c b/firmware/main.c index f94498f..1b0369c 100644 --- a/firmware/main.c +++ b/firmware/main.c @@ -26,24 +26,7 @@ static void leaveBootloader() __attribute__((__noreturn__));  #define UBOOT_VERSION 1  // how many milliseconds should host wait till it sends another write?  // this needs to be above 9, but 20 is only sensible for testing -#define UBOOT_WRITE_SLEEP 20 - -// set a pin on DDRB to be an input or an output - i.e. becomeOutput(pin(3)); -#define bit(number) _BV(number) -#define pin(number) _BV(number) -#define inputs(pinmap) DDRB &= ~(pinmap) -#define outputs(pinmap) DDRB |= (pinmap) - -// turn some pins on or off -#define pinsOn(pinmap) PORTB |= (pinmap) -#define pinsOff(pinmap) PORTB &= ~(pinmap) -#define pinsToggle(pinmap) PORTB ^= pinmap - -// turn a single pin on or off -#define pinOn(pin) pinsOn(bit(pin)) -#define pinOff(pin) pinsOff(bit(pin)) -// TODO: Should be called pinToggle -#define toggle(pin) pinsToggle(bit(pin)) +#define UBOOT_WRITE_SLEEP 12  /* ------------------------------------------------------------------------ */ @@ -112,7 +95,6 @@ static addr_t  currentAddress; /* in bytes */  /* ------------------------------------------------------------------------ */ -// TODO: inline these?  static inline void eraseFlashPage(void) {      cli();      boot_page_erase(currentAddress - 2); @@ -188,7 +170,7 @@ static void fillFlashWithVectors(void) {  static uchar usbFunctionSetup(uchar data[8]) {      usbRequest_t *rq = (void *)data; -    static uchar replyBuffer[5] = { // TODO: Adjust this buffer size when trimming off those two useless bytes +    static uchar replyBuffer[5] = {          UBOOT_VERSION,          (((uint)PROGMEM_SIZE) >> 8) & 0xff,          ((uint)PROGMEM_SIZE) & 0xff, @@ -201,7 +183,6 @@ static uchar usbFunctionSetup(uchar data[8]) {          return 5;      } else if (rq->bRequest == 1) { // write page -        pinOff(0);          writeLength = rq->wValue.word;          currentAddress = rq->wIndex.word;          return USB_NO_MSG; // magical? IDK - USBaspLoader-tiny85 returns this and it works so whatever. @@ -287,7 +268,7 @@ static inline void tiny85FlashInit(void) {  }  static inline void tiny85FlashWrites(void) { -    _delay_ms(2); // TODO: why is this here? +    _delay_ms(2); // TODO: why is this here? - it just adds pointless two level deep loops seems like?      // write page to flash, interrupts will be disabled for > 4.5ms including erase      if (currentAddress % SPM_PAGESIZE) { @@ -327,12 +308,7 @@ int __attribute__((noreturn)) main(void) {      tiny85FlashInit();      currentAddress = 0; // TODO: think about if this is necessary      bootLoaderInit(); -    //odDebugInit(); -    ////DBG1(0x00, 0, 0); -    outputs(pin(0) | pin(1)); -    pinOn(0); -    pinOff(1);      if (bootLoaderCondition()){          initForUsbConnectivity(); diff --git a/firmware/main.c.lst b/firmware/main.c.lst index cb6b60c..1a0b0a7 100644 --- a/firmware/main.c.lst +++ b/firmware/main.c.lst @@ -1,4 +1,4 @@ -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 1 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s 			page 1     1               		.file	"main.c" @@ -18,7 +18,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page    15 0000 81E0      		ldi r24,lo8(1)    16 0002 8093 0000 		sts didWriteSomething,r24    17               	/* #APP */ -  18               	 ;  125 "main.c" 1 +  18               	 ;  107 "main.c" 1    19 0006 F894      		cli    20               	 ;  0 "" 2    21               	/* #NOAPP */ @@ -27,7 +27,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page    24 0010 3297      		sbiw r30,2    25 0012 85E0      		ldi r24,lo8(5)    26               	/* #APP */ -  27               	 ;  126 "main.c" 1 +  27               	 ;  108 "main.c" 1    28 0014 8093 5700 		sts 87, r24    29 0018 E895      		spm    30               		 @@ -38,7 +38,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page    35 001c 00FC      		sbrc __tmp_reg__,0    36 001e 00C0      		rjmp .L2    37               	/* #APP */ -  38               	 ;  128 "main.c" 1 +  38               	 ;  110 "main.c" 1    39 0020 7894      		sei    40               	 ;  0 "" 2    41               	/* epilogue start */ @@ -58,36 +58,36 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page    55 0030 01F4      		brne .+2    56 0032 00C0      		rjmp .L4    57 0034 2430      		cpi r18,4 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 2 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s 			page 2    58 0036 3105      		cpc r19,__zero_reg__    59 0038 01F0      		breq .L9 -  60 003a 44E1      		ldi r20,hi8(5372) -  61 003c 2C3F      		cpi r18,lo8(5372) +  60 003a 46E1      		ldi r20,hi8(5884) +  61 003c 2C3F      		cpi r18,lo8(5884)    62 003e 3407      		cpc r19,r20    63 0040 01F4      		brne .L6    64 0042 8091 0000 		lds r24,vectorTemp    65 0046 9091 0000 		lds r25,vectorTemp+1 -  66 004a 8E57      		subi r24,lo8(-(1410)) -  67 004c 9A4F      		sbci r25,hi8(-(1410)) +  66 004a 8E57      		subi r24,lo8(-(1154)) +  67 004c 9B4F      		sbci r25,hi8(-(1154))    68 004e 00C0      		rjmp .L7    69               	.L6: -  70 0050 44E1      		ldi r20,hi8(5374) -  71 0052 2E3F      		cpi r18,lo8(5374) +  70 0050 46E1      		ldi r20,hi8(5886) +  71 0052 2E3F      		cpi r18,lo8(5886)    72 0054 3407      		cpc r19,r20    73 0056 01F4      		brne .L7    74 0058 8091 0000 		lds r24,vectorTemp+2    75 005c 9091 0000 		lds r25,vectorTemp+2+1 -  76 0060 8D57      		subi r24,lo8(-(1411)) -  77 0062 9A4F      		sbci r25,hi8(-(1411)) +  76 0060 8D57      		subi r24,lo8(-(1155)) +  77 0062 9B4F      		sbci r25,hi8(-(1155))    78 0064 00C0      		rjmp .L7    79               	.L9: -  80 0066 8FE7      		ldi r24,lo8(-13697) -  81 0068 9AEC      		ldi r25,hi8(-13697) +  80 0066 8FE7      		ldi r24,lo8(-13441) +  81 0068 9BEC      		ldi r25,hi8(-13441)    82               	.L7:    83               	/* #APP */ -  84               	 ;  162 "main.c" 1 +  84               	 ;  144 "main.c" 1    85 006a F894      		cli    86               	 ;  0 "" 2    87               	/* #NOAPP */ @@ -95,14 +95,14 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page    89 0070 F091 0000 		lds r31,currentAddress+1    90 0074 21E0      		ldi r18,lo8(1)    91               	/* #APP */ -  92               	 ;  163 "main.c" 1 +  92               	 ;  145 "main.c" 1    93 0076 0C01      		movw  r0, r24    94 0078 2093 5700 		sts 87, r18    95 007c E895      		spm    96 007e 1124      		clr  r1    97               		    98               	 ;  0 "" 2 -  99               	 ;  164 "main.c" 1 +  99               	 ;  146 "main.c" 1   100 0080 7894      		sei   101               	 ;  0 "" 2   102               	/* #NOAPP */ @@ -110,7 +110,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page   104 0086 5091 0000 		lds r21,currentAddress+1   105 008a FA01      		movw r30,r20   106               	/* #APP */ - 107               	 ;  169 "main.c" 1 + 107               	 ;  151 "main.c" 1   108 008c 2591      		lpm r18, Z+   109 008e 3491      		lpm r19, Z   110               		 @@ -118,7 +118,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page   112               	/* #NOAPP */   113 0090 2823      		and r18,r24   114 0092 3923      		and r19,r25 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 3 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s 			page 3   115 0094 2817      		cp r18,r24 @@ -137,7 +137,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page   128               	.L4:   129 00b2 81E1      		ldi r24,lo8(17)   130               	/* #APP */ - 131               	 ;  160 "main.c" 1 + 131               	 ;  142 "main.c" 1   132 00b4 8093 5700 		sts 87, r24   133 00b8 E895      		spm   134               		 @@ -178,21 +178,21 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page   169               	/* prologue: naked */   170               	/* frame size = 0 */   171               	/* stack size = 0 */ -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 4 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s 			page 4   172               	.L__stack_usage = 0   173               	/* #APP */ - 174               	 ;  258 "main.c" 1 + 174               	 ;  239 "main.c" 1   175 0000 00EB      		ldi r16, 0xB0   176               	 ;  0 "" 2 - 177               	 ;  259 "main.c" 1 + 177               	 ;  240 "main.c" 1   178 0002 0F93      		push r16   179               	 ;  0 "" 2 - 180               	 ;  260 "main.c" 1 + 180               	 ;  241 "main.c" 1   181 0004 07E0      		ldi r16, 0x07   182               	 ;  0 "" 2 - 183               	 ;  261 "main.c" 1 + 183               	 ;  242 "main.c" 1   184 0006 0F93      		push r16   185               	 ;  0 "" 2   186               	/* epilogue start */ @@ -213,7 +213,7 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page   201               	.L__stack_usage = 3   202 00ec 88E1      		ldi r24,lo8(24)   203               	/* #APP */ - 204               	 ;  326 "main.c" 1 + 204               	 ;  307 "main.c" 1   205 00ee 0FB6      		in __tmp_reg__, __SREG__   206 00f0 F894      		cli   207 00f2 81BD      		out 33, r24 @@ -225,30 +225,30 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page   213 00f8 E0E0      		ldi r30,lo8(0)   214 00fa F0E0      		ldi r31,hi8(0)   215               	/* #APP */ - 216               	 ;  279 "main.c" 1 + 216               	 ;  260 "main.c" 1   217 00fc 8591      		lpm r24, Z+   218 00fe 9491      		lpm r25, Z   219               		   220               	 ;  0 "" 2   221               	/* #NOAPP */ - 222 0100 2AEC      		ldi r18,hi8(-13697) - 223 0102 8F37      		cpi r24,lo8(-13697) + 222 0100 2BEC      		ldi r18,hi8(-13441) + 223 0102 8F37      		cpi r24,lo8(-13441)   224 0104 9207      		cpc r25,r18   225 0106 01F4      		brne .L14   226 0108 E4E0      		ldi r30,lo8(4)   227 010a F0E0      		ldi r31,hi8(4)   228               	/* #APP */ -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 5 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s 			page 5 - 229               	 ;  280 "main.c" 1 + 229               	 ;  261 "main.c" 1   230 010c 8591      		lpm r24, Z+   231 010e 9491      		lpm r25, Z   232               		   233               	 ;  0 "" 2   234               	/* #NOAPP */ - 235 0110 3AEC      		ldi r19,hi8(-13697) - 236 0112 8F37      		cpi r24,lo8(-13697) + 235 0110 3BEC      		ldi r19,hi8(-13441) + 236 0112 8F37      		cpi r24,lo8(-13441)   237 0114 9307      		cpc r25,r19   238 0116 01F0      		breq .L15   239               	.L14: @@ -256,682 +256,676 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page   241               	.L15:   242 011a 1092 0000 		sts currentAddress+1,__zero_reg__   243 011e 1092 0000 		sts currentAddress,__zero_reg__ - 244 0122 87B3      		in r24,55-32 - 245 0124 8360      		ori r24,lo8(3) - 246 0126 87BB      		out 55-32,r24 - 247 0128 C09A      		sbi 56-32,0 - 248 012a C198      		cbi 56-32,1 - 249 012c AC9A      		sbi 53-32,4 - 250 012e 8BB7      		in r24,91-32 - 251 0130 8062      		ori r24,lo8(32) - 252 0132 8BBF      		out 91-32,r24 - 253 0134 BB9A      		sbi 55-32,3 - 254 0136 8FE4      		 ldi r24,lo8(1649999) - 255 0138 9DE2      	    ldi r25,hi8(1649999) - 256 013a A9E1      	    ldi r26,hlo8(1649999) - 257 013c 8150      	    1:subi r24,1 - 258 013e 9040      	    sbci r25,0 - 259 0140 A040      	    sbci r26,0 - 260 0142 01F4      	    brne 1b - 261 0144 00C0      		rjmp . - 262 0146 0000      		nop - 263 0148 BB98      		cbi 55-32,3 - 264               	/* #APP */ - 265               	 ;  272 "main.c" 1 - 266 014a 7894      		sei - 267               	 ;  0 "" 2 - 268               	/* #NOAPP */ - 269 014c EE24      		clr r14 - 270 014e FF24      		clr r15 - 271               	.L66: - 272 0150 2091 0000 		lds r18,usbRxLen - 273 0154 2350      		subi r18,lo8(-(-3)) - 274 0156 27FD      		sbrc r18,7 - 275 0158 00C0      		rjmp .L16 - 276 015a 8091 0000 		lds r24,usbInputBufOffset - 277 015e ECE0      		ldi r30,lo8(12) - 278 0160 F0E0      		ldi r31,hi8(12) - 279 0162 E81B      		sub r30,r24 - 280 0164 F109      		sbc r31,__zero_reg__ - 281 0166 E050      		subi r30,lo8(-(usbRxBuf)) - 282 0168 F040      		sbci r31,hi8(-(usbRxBuf)) - 283 016a 8091 0000 		lds r24,usbRxToken - 284 016e 8D32      		cpi r24,lo8(45) - 285 0170 01F0      		breq .+2 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 6 - - - 286 0172 00C0      		rjmp .L17 - 287 0174 2830      		cpi r18,lo8(8) - 288 0176 01F0      		breq .+2 - 289 0178 00C0      		rjmp .L18 - 290 017a 83EC      		ldi r24,lo8(-61) - 291 017c 8093 0000 		sts usbTxBuf,r24 - 292 0180 8AE5      		ldi r24,lo8(90) - 293 0182 8093 0000 		sts usbTxLen,r24 - 294 0186 1092 0000 		sts usbMsgFlags,__zero_reg__ - 295 018a 9081      		ld r25,Z - 296 018c 9076      		andi r25,lo8(96) - 297 018e 8181      		ldd r24,Z+1 - 298 0190 9923      		tst r25 - 299 0192 01F0      		breq .L19 - 300 0194 8823      		tst r24 - 301 0196 01F4      		brne .L20 - 302 0198 80E0      		ldi r24,lo8(replyBuffer.1750) - 303 019a 90E0      		ldi r25,hi8(replyBuffer.1750) - 304 019c 9093 0000 		sts usbMsgPtr+1,r25 - 305 01a0 8093 0000 		sts usbMsgPtr,r24 - 306 01a4 25E0      		ldi r18,lo8(5) - 307 01a6 00C0      		rjmp .L25 - 308               	.L20: - 309 01a8 8130      		cpi r24,lo8(1) - 310 01aa 01F4      		brne .L22 - 311 01ac C098      		cbi 56-32,0 - 312 01ae 8281      		ldd r24,Z+2 - 313 01b0 8093 0000 		sts writeLength,r24 - 314 01b4 8481      		ldd r24,Z+4 - 315 01b6 9581      		ldd r25,Z+5 - 316 01b8 9093 0000 		sts currentAddress+1,r25 - 317 01bc 8093 0000 		sts currentAddress,r24 - 318 01c0 8081      		ld r24,Z - 319 01c2 87FD      		sbrc r24,7 - 320 01c4 00C0      		rjmp .L23 - 321 01c6 2FEF      		ldi r18,lo8(-1) - 322 01c8 00C0      		rjmp .L24 - 323               	.L22: - 324 01ca 8091 0000 		lds r24,events - 325 01ce 8460      		ori r24,lo8(4) - 326 01d0 8093 0000 		sts events,r24 - 327 01d4 20E0      		ldi r18,lo8(0) - 328 01d6 00C0      		rjmp .L25 - 329               	.L19: - 330 01d8 9281      		ldd r25,Z+2 - 331 01da 1092 0000 		sts usbTxBuf+9,__zero_reg__ - 332 01de 8823      		tst r24 - 333 01e0 01F4      		brne .L26 - 334 01e2 1092 0000 		sts usbTxBuf+10,__zero_reg__ - 335 01e6 80E0      		ldi r24,lo8(usbTxBuf+9) - 336 01e8 90E0      		ldi r25,hi8(usbTxBuf+9) - 337 01ea 22E0      		ldi r18,lo8(2) - 338 01ec 00C0      		rjmp .L27 - 339               	.L26: - 340 01ee 8530      		cpi r24,lo8(5) - 341 01f0 01F4      		brne .L28 - 342 01f2 9093 0000 		sts usbNewDeviceAddr,r25 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 7 - - - 343 01f6 00C0      		rjmp .L73 - 344               	.L28: - 345 01f8 8630      		cpi r24,lo8(6) - 346 01fa 01F4      		brne .L29 - 347 01fc 8381      		ldd r24,Z+3 - 348 01fe 8130      		cpi r24,lo8(1) - 349 0200 01F4      		brne .L30 - 350 0202 80E0      		ldi r24,lo8(usbDescriptorDevice) - 351 0204 90E0      		ldi r25,hi8(usbDescriptorDevice) - 352 0206 00C0      		rjmp .L72 - 353               	.L30: - 354 0208 8230      		cpi r24,lo8(2) - 355 020a 01F4      		brne .L32 - 356 020c 80E0      		ldi r24,lo8(usbDescriptorConfiguration) - 357 020e 90E0      		ldi r25,hi8(usbDescriptorConfiguration) - 358               	.L72: - 359 0210 9093 0000 		sts usbMsgPtr+1,r25 - 360 0214 8093 0000 		sts usbMsgPtr,r24 - 361 0218 22E1      		ldi r18,lo8(18) - 362 021a 00C0      		rjmp .L31 - 363               	.L32: - 364 021c 8330      		cpi r24,lo8(3) - 365 021e 01F4      		brne .L68 - 366 0220 9923      		tst r25 - 367 0222 01F4      		brne .L33 - 368 0224 80E0      		ldi r24,lo8(usbDescriptorString0) - 369 0226 90E0      		ldi r25,hi8(usbDescriptorString0) - 370 0228 9093 0000 		sts usbMsgPtr+1,r25 - 371 022c 8093 0000 		sts usbMsgPtr,r24 - 372 0230 24E0      		ldi r18,lo8(4) - 373 0232 00C0      		rjmp .L31 - 374               	.L33: - 375 0234 9130      		cpi r25,lo8(1) - 376 0236 01F4      		brne .L34 - 377 0238 80E0      		ldi r24,lo8(usbDescriptorStringVendor) - 378 023a 90E0      		ldi r25,hi8(usbDescriptorStringVendor) - 379 023c 9093 0000 		sts usbMsgPtr+1,r25 - 380 0240 8093 0000 		sts usbMsgPtr,r24 - 381 0244 22E2      		ldi r18,lo8(34) - 382 0246 00C0      		rjmp .L31 - 383               	.L34: - 384 0248 9230      		cpi r25,lo8(2) - 385 024a 01F4      		brne .L68 - 386 024c 80E0      		ldi r24,lo8(usbDescriptorStringDevice) - 387 024e 90E0      		ldi r25,hi8(usbDescriptorStringDevice) - 388 0250 9093 0000 		sts usbMsgPtr+1,r25 - 389 0254 8093 0000 		sts usbMsgPtr,r24 - 390 0258 2CE0      		ldi r18,lo8(12) - 391 025a 00C0      		rjmp .L31 - 392               	.L68: - 393 025c 20E0      		ldi r18,lo8(0) - 394               	.L31: - 395 025e 80E4      		ldi r24,lo8(64) - 396 0260 8093 0000 		sts usbMsgFlags,r24 - 397 0264 00C0      		rjmp .L25 - 398               	.L29: - 399 0266 8830      		cpi r24,lo8(8) -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 8 - - - 400 0268 01F0      		breq .L69 - 401 026a 8930      		cpi r24,lo8(9) - 402 026c 01F4      		brne .L36 - 403 026e 9093 0000 		sts usbConfiguration,r25 - 404 0272 00C0      		rjmp .L73 - 405               	.L36: - 406 0274 8A30      		cpi r24,lo8(10) - 407 0276 01F0      		breq .L70 - 408               	.L73: - 409 0278 80E0      		ldi r24,lo8(usbTxBuf+9) - 410 027a 90E0      		ldi r25,hi8(usbTxBuf+9) - 411 027c 20E0      		ldi r18,lo8(0) - 412 027e 00C0      		rjmp .L27 - 413               	.L69: - 414 0280 80E0      		ldi r24,lo8(usbConfiguration) - 415 0282 90E0      		ldi r25,hi8(usbConfiguration) - 416 0284 00C0      		rjmp .L74 - 417               	.L70: - 418 0286 80E0      		ldi r24,lo8(usbTxBuf+9) - 419 0288 90E0      		ldi r25,hi8(usbTxBuf+9) - 420               	.L74: - 421 028a 21E0      		ldi r18,lo8(1) - 422               	.L27: - 423 028c 9093 0000 		sts usbMsgPtr+1,r25 - 424 0290 8093 0000 		sts usbMsgPtr,r24 - 425 0294 00C0      		rjmp .L25 - 426               	.L23: - 427 0296 2681      		ldd r18,Z+6 - 428               	.L24: - 429 0298 80E8      		ldi r24,lo8(-128) - 430 029a 8093 0000 		sts usbMsgFlags,r24 - 431 029e 00C0      		rjmp .L37 - 432               	.L25: - 433 02a0 8781      		ldd r24,Z+7 - 434 02a2 8823      		tst r24 - 435 02a4 01F4      		brne .L37 - 436 02a6 8681      		ldd r24,Z+6 - 437 02a8 8217      		cp r24,r18 - 438 02aa 00F4      		brsh .L37 - 439 02ac 282F      		mov r18,r24 - 440               	.L37: - 441 02ae 2093 0000 		sts usbMsgLen,r18 - 442 02b2 00C0      		rjmp .L18 - 443               	.L17: - 444 02b4 8091 0000 		lds r24,usbMsgFlags - 445 02b8 87FF      		sbrs r24,7 - 446 02ba 00C0      		rjmp .L18 - 447 02bc 8091 0000 		lds r24,writeLength - 448 02c0 821B      		sub r24,r18 - 449 02c2 8093 0000 		sts writeLength,r24 - 450 02c6 8F01      		movw r16,r30 - 451               	.L42: - 452 02c8 8091 0000 		lds r24,currentAddress - 453 02cc 9091 0000 		lds r25,currentAddress+1 - 454 02d0 0097      		sbiw r24,0 - 455 02d2 01F4      		brne .L38 - 456 02d4 D801      		movw r26,r16 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 9 - - - 457 02d6 8D91      		ld r24,X+ - 458 02d8 9C91      		ld r25,X - 459 02da 1197      		sbiw r26,1 - 460 02dc 9093 0000 		sts vectorTemp+1,r25 - 461 02e0 8093 0000 		sts vectorTemp,r24 - 462 02e4 00C0      		rjmp .L39 - 463               	.L38: - 464 02e6 8430      		cpi r24,4 - 465 02e8 9105      		cpc r25,__zero_reg__ - 466 02ea 01F4      		brne .L40 - 467 02ec F801      		movw r30,r16 - 468 02ee 8081      		ld r24,Z - 469 02f0 9181      		ldd r25,Z+1 - 470 02f2 9093 0000 		sts vectorTemp+2+1,r25 - 471 02f6 8093 0000 		sts vectorTemp+2,r24 - 472 02fa 00C0      		rjmp .L39 - 473               	.L40: - 474 02fc F4E1      		ldi r31,hi8(5370) - 475 02fe 8A3F      		cpi r24,lo8(5370) - 476 0300 9F07      		cpc r25,r31 - 477 0302 00F0      		brlo .L39 - 478 0304 81E1      		ldi r24,lo8(17) - 479               	/* #APP */ - 480               	 ;  235 "main.c" 1 - 481 0306 8093 5700 		sts 87, r24 - 482 030a E895      		spm - 483               		 - 484               	 ;  0 "" 2 - 485               	/* #NOAPP */ - 486 030c 00C0      		rjmp .L41 - 487               	.L39: - 488 030e D801      		movw r26,r16 - 489 0310 8D91      		ld r24,X+ - 490 0312 9D91      		ld r25,X+ - 491 0314 8D01      		movw r16,r26 - 492 0316 2983      		std Y+1,r18 - 493 0318 00D0      		rcall writeWordToPageBuffer - 494 031a 2981      		ldd r18,Y+1 - 495 031c 2250      		subi r18,lo8(-(-2)) - 496 031e 01F4      		brne .L42 - 497               	.L41: - 498 0320 8091 0000 		lds r24,writeLength - 499 0324 8823      		tst r24 - 500 0326 01F4      		brne .L18 - 501 0328 8091 0000 		lds r24,events - 502 032c 8260      		ori r24,lo8(2) - 503 032e 8093 0000 		sts events,r24 - 504 0332 1092 0000 		sts usbMsgLen,__zero_reg__ - 505               	.L18: - 506 0336 1092 0000 		sts usbRxLen,__zero_reg__ - 507               	.L16: - 508 033a 8091 0000 		lds r24,usbTxLen - 509 033e 84FF      		sbrs r24,4 - 510 0340 00C0      		rjmp .L43 - 511 0342 8091 0000 		lds r24,usbMsgLen - 512 0346 8F3F      		cpi r24,lo8(-1) - 513 0348 01F4      		brne .+2 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 10 - - - 514 034a 00C0      		rjmp .L43 - 515 034c 082F      		mov r16,r24 - 516 034e 8930      		cpi r24,lo8(9) - 517 0350 00F0      		brlo .L44 - 518 0352 08E0      		ldi r16,lo8(8) - 519               	.L44: - 520 0354 801B      		sub r24,r16 - 521 0356 8093 0000 		sts usbMsgLen,r24 - 522 035a 8091 0000 		lds r24,usbTxBuf - 523 035e 98E8      		ldi r25,lo8(-120) - 524 0360 8927      		eor r24,r25 - 525 0362 8093 0000 		sts usbTxBuf,r24 - 526 0366 0023      		tst r16 - 527 0368 01F0      		breq .L45 - 528 036a E091 0000 		lds r30,usbMsgPtr - 529 036e F091 0000 		lds r31,usbMsgPtr+1 - 530 0372 9091 0000 		lds r25,usbMsgFlags - 531 0376 802F      		mov r24,r16 - 532 0378 8150      		subi r24,lo8(-(-1)) - 533 037a 96FF      		sbrs r25,6 - 534 037c 00C0      		rjmp .L46 - 535 037e 90E0      		ldi r25,lo8(0) - 536 0380 8050      		subi r24,lo8(-(usbTxBuf+2)) - 537 0382 9040      		sbci r25,hi8(-(usbTxBuf+2)) - 538 0384 A0E0      		ldi r26,lo8(usbTxBuf+1) - 539 0386 B0E0      		ldi r27,hi8(usbTxBuf+1) - 540               	.L47: - 541               	/* #APP */ - 542               	 ;  504 "usbdrv/usbdrv.c" 1 - 543 0388 2491      		lpm r18, Z - 544               		 - 545               	 ;  0 "" 2 - 546               	/* #NOAPP */ - 547 038a 2D93      		st X+,r18 - 548 038c 3196      		adiw r30,1 - 549 038e A817      		cp r26,r24 - 550 0390 B907      		cpc r27,r25 - 551 0392 01F4      		brne .L47 - 552 0394 00C0      		rjmp .L48 - 553               	.L46: - 554 0396 9F01      		movw r18,r30 - 555 0398 90E0      		ldi r25,lo8(0) - 556 039a 8050      		subi r24,lo8(-(usbTxBuf+2)) - 557 039c 9040      		sbci r25,hi8(-(usbTxBuf+2)) - 558 039e A0E0      		ldi r26,lo8(usbTxBuf+1) - 559 03a0 B0E0      		ldi r27,hi8(usbTxBuf+1) - 560               	.L49: - 561 03a2 F901      		movw r30,r18 - 562 03a4 4191      		ld r20,Z+ - 563 03a6 9F01      		movw r18,r30 - 564 03a8 4D93      		st X+,r20 - 565 03aa A817      		cp r26,r24 - 566 03ac B907      		cpc r27,r25 - 567 03ae 01F4      		brne .L49 - 568               	.L48: - 569 03b0 F093 0000 		sts usbMsgPtr+1,r31 - 570 03b4 E093 0000 		sts usbMsgPtr,r30 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 11 - - - 571               	.L45: - 572 03b8 80E0      		ldi r24,lo8(usbTxBuf+1) - 573 03ba 90E0      		ldi r25,hi8(usbTxBuf+1) - 574 03bc 602F      		mov r22,r16 - 575 03be 00D0      		rcall usbCrc16Append - 576 03c0 0C5F      		subi r16,lo8(-(4)) - 577 03c2 0C30      		cpi r16,lo8(12) - 578 03c4 01F0      		breq .L50 - 579 03c6 8FEF      		ldi r24,lo8(-1) - 580 03c8 8093 0000 		sts usbMsgLen,r24 - 581               	.L50: - 582 03cc 0093 0000 		sts usbTxLen,r16 - 583               	.L43: - 584 03d0 84E1      		ldi r24,lo8(20) - 585               	.L52: - 586 03d2 96B3      		in r25,54-32 - 587 03d4 9871      		andi r25,lo8(24) - 588 03d6 01F4      		brne .L51 - 589 03d8 8150      		subi r24,lo8(-(-1)) - 590 03da 01F4      		brne .L52 - 591 03dc 1092 0000 		sts usbNewDeviceAddr,__zero_reg__ - 592 03e0 1092 0000 		sts usbDeviceAddr,__zero_reg__ - 593               	.L51: - 594 03e4 01E0      		ldi r16,lo8(1) - 595 03e6 8111      		cpse r24,__zero_reg__ - 596 03e8 00E0      		ldi r16,lo8(0) - 597               	.L53: - 598 03ea 8091 0000 		lds r24,wasReset.1698 - 599 03ee 8017      		cp r24,r16 - 600 03f0 01F0      		breq .L54 - 601 03f2 0023      		tst r16 - 602 03f4 01F4      		brne .L55 + 244 0122 AC9A      		sbi 53-32,4 + 245 0124 8BB7      		in r24,91-32 + 246 0126 8062      		ori r24,lo8(32) + 247 0128 8BBF      		out 91-32,r24 + 248 012a BB9A      		sbi 55-32,3 + 249 012c 8FE4      		 ldi r24,lo8(1649999) + 250 012e 9DE2      	    ldi r25,hi8(1649999) + 251 0130 A9E1      	    ldi r26,hlo8(1649999) + 252 0132 8150      	    1:subi r24,1 + 253 0134 9040      	    sbci r25,0 + 254 0136 A040      	    sbci r26,0 + 255 0138 01F4      	    brne 1b + 256 013a 00C0      		rjmp . + 257 013c 0000      		nop + 258 013e BB98      		cbi 55-32,3 + 259               	/* #APP */ + 260               	 ;  253 "main.c" 1 + 261 0140 7894      		sei + 262               	 ;  0 "" 2 + 263               	/* #NOAPP */ + 264 0142 EE24      		clr r14 + 265 0144 FF24      		clr r15 + 266               	.L66: + 267 0146 2091 0000 		lds r18,usbRxLen + 268 014a 2350      		subi r18,lo8(-(-3)) + 269 014c 27FD      		sbrc r18,7 + 270 014e 00C0      		rjmp .L16 + 271 0150 8091 0000 		lds r24,usbInputBufOffset + 272 0154 ECE0      		ldi r30,lo8(12) + 273 0156 F0E0      		ldi r31,hi8(12) + 274 0158 E81B      		sub r30,r24 + 275 015a F109      		sbc r31,__zero_reg__ + 276 015c E050      		subi r30,lo8(-(usbRxBuf)) + 277 015e F040      		sbci r31,hi8(-(usbRxBuf)) + 278 0160 8091 0000 		lds r24,usbRxToken + 279 0164 8D32      		cpi r24,lo8(45) + 280 0166 01F0      		breq .+2 + 281 0168 00C0      		rjmp .L17 + 282 016a 2830      		cpi r18,lo8(8) + 283 016c 01F0      		breq .+2 + 284 016e 00C0      		rjmp .L18 + 285 0170 83EC      		ldi r24,lo8(-61) +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s 			page 6 + + + 286 0172 8093 0000 		sts usbTxBuf,r24 + 287 0176 8AE5      		ldi r24,lo8(90) + 288 0178 8093 0000 		sts usbTxLen,r24 + 289 017c 1092 0000 		sts usbMsgFlags,__zero_reg__ + 290 0180 2081      		ld r18,Z + 291 0182 922F      		mov r25,r18 + 292 0184 9076      		andi r25,lo8(96) + 293 0186 8181      		ldd r24,Z+1 + 294 0188 9923      		tst r25 + 295 018a 01F0      		breq .L19 + 296 018c 8823      		tst r24 + 297 018e 01F4      		brne .L20 + 298 0190 80E0      		ldi r24,lo8(replyBuffer.1750) + 299 0192 90E0      		ldi r25,hi8(replyBuffer.1750) + 300 0194 9093 0000 		sts usbMsgPtr+1,r25 + 301 0198 8093 0000 		sts usbMsgPtr,r24 + 302 019c 25E0      		ldi r18,lo8(5) + 303 019e 00C0      		rjmp .L25 + 304               	.L20: + 305 01a0 8130      		cpi r24,lo8(1) + 306 01a2 01F4      		brne .L22 + 307 01a4 8281      		ldd r24,Z+2 + 308 01a6 8093 0000 		sts writeLength,r24 + 309 01aa 8481      		ldd r24,Z+4 + 310 01ac 9581      		ldd r25,Z+5 + 311 01ae 9093 0000 		sts currentAddress+1,r25 + 312 01b2 8093 0000 		sts currentAddress,r24 + 313 01b6 27FD      		sbrc r18,7 + 314 01b8 00C0      		rjmp .L23 + 315 01ba 2FEF      		ldi r18,lo8(-1) + 316 01bc 00C0      		rjmp .L24 + 317               	.L22: + 318 01be 8091 0000 		lds r24,events + 319 01c2 8460      		ori r24,lo8(4) + 320 01c4 8093 0000 		sts events,r24 + 321 01c8 20E0      		ldi r18,lo8(0) + 322 01ca 00C0      		rjmp .L25 + 323               	.L19: + 324 01cc 9281      		ldd r25,Z+2 + 325 01ce 1092 0000 		sts usbTxBuf+9,__zero_reg__ + 326 01d2 8823      		tst r24 + 327 01d4 01F4      		brne .L26 + 328 01d6 1092 0000 		sts usbTxBuf+10,__zero_reg__ + 329 01da 80E0      		ldi r24,lo8(usbTxBuf+9) + 330 01dc 90E0      		ldi r25,hi8(usbTxBuf+9) + 331 01de 22E0      		ldi r18,lo8(2) + 332 01e0 00C0      		rjmp .L27 + 333               	.L26: + 334 01e2 8530      		cpi r24,lo8(5) + 335 01e4 01F4      		brne .L28 + 336 01e6 9093 0000 		sts usbNewDeviceAddr,r25 + 337 01ea 00C0      		rjmp .L73 + 338               	.L28: + 339 01ec 8630      		cpi r24,lo8(6) + 340 01ee 01F4      		brne .L29 + 341 01f0 8381      		ldd r24,Z+3 + 342 01f2 8130      		cpi r24,lo8(1) +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s 			page 7 + + + 343 01f4 01F4      		brne .L30 + 344 01f6 80E0      		ldi r24,lo8(usbDescriptorDevice) + 345 01f8 90E0      		ldi r25,hi8(usbDescriptorDevice) + 346 01fa 00C0      		rjmp .L72 + 347               	.L30: + 348 01fc 8230      		cpi r24,lo8(2) + 349 01fe 01F4      		brne .L32 + 350 0200 80E0      		ldi r24,lo8(usbDescriptorConfiguration) + 351 0202 90E0      		ldi r25,hi8(usbDescriptorConfiguration) + 352               	.L72: + 353 0204 9093 0000 		sts usbMsgPtr+1,r25 + 354 0208 8093 0000 		sts usbMsgPtr,r24 + 355 020c 22E1      		ldi r18,lo8(18) + 356 020e 00C0      		rjmp .L31 + 357               	.L32: + 358 0210 8330      		cpi r24,lo8(3) + 359 0212 01F4      		brne .L68 + 360 0214 9923      		tst r25 + 361 0216 01F4      		brne .L33 + 362 0218 80E0      		ldi r24,lo8(usbDescriptorString0) + 363 021a 90E0      		ldi r25,hi8(usbDescriptorString0) + 364 021c 9093 0000 		sts usbMsgPtr+1,r25 + 365 0220 8093 0000 		sts usbMsgPtr,r24 + 366 0224 24E0      		ldi r18,lo8(4) + 367 0226 00C0      		rjmp .L31 + 368               	.L33: + 369 0228 9130      		cpi r25,lo8(1) + 370 022a 01F4      		brne .L34 + 371 022c 80E0      		ldi r24,lo8(usbDescriptorStringVendor) + 372 022e 90E0      		ldi r25,hi8(usbDescriptorStringVendor) + 373 0230 9093 0000 		sts usbMsgPtr+1,r25 + 374 0234 8093 0000 		sts usbMsgPtr,r24 + 375 0238 22E2      		ldi r18,lo8(34) + 376 023a 00C0      		rjmp .L31 + 377               	.L34: + 378 023c 9230      		cpi r25,lo8(2) + 379 023e 01F4      		brne .L68 + 380 0240 80E0      		ldi r24,lo8(usbDescriptorStringDevice) + 381 0242 90E0      		ldi r25,hi8(usbDescriptorStringDevice) + 382 0244 9093 0000 		sts usbMsgPtr+1,r25 + 383 0248 8093 0000 		sts usbMsgPtr,r24 + 384 024c 2CE0      		ldi r18,lo8(12) + 385 024e 00C0      		rjmp .L31 + 386               	.L68: + 387 0250 20E0      		ldi r18,lo8(0) + 388               	.L31: + 389 0252 80E4      		ldi r24,lo8(64) + 390 0254 8093 0000 		sts usbMsgFlags,r24 + 391 0258 00C0      		rjmp .L25 + 392               	.L29: + 393 025a 8830      		cpi r24,lo8(8) + 394 025c 01F0      		breq .L69 + 395 025e 8930      		cpi r24,lo8(9) + 396 0260 01F4      		brne .L36 + 397 0262 9093 0000 		sts usbConfiguration,r25 + 398 0266 00C0      		rjmp .L73 + 399               	.L36: +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s 			page 8 + + + 400 0268 8A30      		cpi r24,lo8(10) + 401 026a 01F0      		breq .L70 + 402               	.L73: + 403 026c 80E0      		ldi r24,lo8(usbTxBuf+9) + 404 026e 90E0      		ldi r25,hi8(usbTxBuf+9) + 405 0270 20E0      		ldi r18,lo8(0) + 406 0272 00C0      		rjmp .L27 + 407               	.L69: + 408 0274 80E0      		ldi r24,lo8(usbConfiguration) + 409 0276 90E0      		ldi r25,hi8(usbConfiguration) + 410 0278 00C0      		rjmp .L74 + 411               	.L70: + 412 027a 80E0      		ldi r24,lo8(usbTxBuf+9) + 413 027c 90E0      		ldi r25,hi8(usbTxBuf+9) + 414               	.L74: + 415 027e 21E0      		ldi r18,lo8(1) + 416               	.L27: + 417 0280 9093 0000 		sts usbMsgPtr+1,r25 + 418 0284 8093 0000 		sts usbMsgPtr,r24 + 419 0288 00C0      		rjmp .L25 + 420               	.L23: + 421 028a 2681      		ldd r18,Z+6 + 422               	.L24: + 423 028c 80E8      		ldi r24,lo8(-128) + 424 028e 8093 0000 		sts usbMsgFlags,r24 + 425 0292 00C0      		rjmp .L37 + 426               	.L25: + 427 0294 8781      		ldd r24,Z+7 + 428 0296 8823      		tst r24 + 429 0298 01F4      		brne .L37 + 430 029a 8681      		ldd r24,Z+6 + 431 029c 8217      		cp r24,r18 + 432 029e 00F4      		brsh .L37 + 433 02a0 282F      		mov r18,r24 + 434               	.L37: + 435 02a2 2093 0000 		sts usbMsgLen,r18 + 436 02a6 00C0      		rjmp .L18 + 437               	.L17: + 438 02a8 8091 0000 		lds r24,usbMsgFlags + 439 02ac 87FF      		sbrs r24,7 + 440 02ae 00C0      		rjmp .L18 + 441 02b0 8091 0000 		lds r24,writeLength + 442 02b4 821B      		sub r24,r18 + 443 02b6 8093 0000 		sts writeLength,r24 + 444 02ba 8F01      		movw r16,r30 + 445               	.L42: + 446 02bc 8091 0000 		lds r24,currentAddress + 447 02c0 9091 0000 		lds r25,currentAddress+1 + 448 02c4 0097      		sbiw r24,0 + 449 02c6 01F4      		brne .L38 + 450 02c8 D801      		movw r26,r16 + 451 02ca 8D91      		ld r24,X+ + 452 02cc 9C91      		ld r25,X + 453 02ce 1197      		sbiw r26,1 + 454 02d0 9093 0000 		sts vectorTemp+1,r25 + 455 02d4 8093 0000 		sts vectorTemp,r24 + 456 02d8 00C0      		rjmp .L39 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s 			page 9 + + + 457               	.L38: + 458 02da 8430      		cpi r24,4 + 459 02dc 9105      		cpc r25,__zero_reg__ + 460 02de 01F4      		brne .L40 + 461 02e0 F801      		movw r30,r16 + 462 02e2 8081      		ld r24,Z + 463 02e4 9181      		ldd r25,Z+1 + 464 02e6 9093 0000 		sts vectorTemp+2+1,r25 + 465 02ea 8093 0000 		sts vectorTemp+2,r24 + 466 02ee 00C0      		rjmp .L39 + 467               	.L40: + 468 02f0 F6E1      		ldi r31,hi8(5882) + 469 02f2 8A3F      		cpi r24,lo8(5882) + 470 02f4 9F07      		cpc r25,r31 + 471 02f6 00F0      		brlo .L39 + 472 02f8 81E1      		ldi r24,lo8(17) + 473               	/* #APP */ + 474               	 ;  216 "main.c" 1 + 475 02fa 8093 5700 		sts 87, r24 + 476 02fe E895      		spm + 477               		 + 478               	 ;  0 "" 2 + 479               	/* #NOAPP */ + 480 0300 00C0      		rjmp .L41 + 481               	.L39: + 482 0302 D801      		movw r26,r16 + 483 0304 8D91      		ld r24,X+ + 484 0306 9D91      		ld r25,X+ + 485 0308 8D01      		movw r16,r26 + 486 030a 2983      		std Y+1,r18 + 487 030c 00D0      		rcall writeWordToPageBuffer + 488 030e 2981      		ldd r18,Y+1 + 489 0310 2250      		subi r18,lo8(-(-2)) + 490 0312 01F4      		brne .L42 + 491               	.L41: + 492 0314 8091 0000 		lds r24,writeLength + 493 0318 8823      		tst r24 + 494 031a 01F4      		brne .L18 + 495 031c 8091 0000 		lds r24,events + 496 0320 8260      		ori r24,lo8(2) + 497 0322 8093 0000 		sts events,r24 + 498 0326 1092 0000 		sts usbMsgLen,__zero_reg__ + 499               	.L18: + 500 032a 1092 0000 		sts usbRxLen,__zero_reg__ + 501               	.L16: + 502 032e 8091 0000 		lds r24,usbTxLen + 503 0332 84FF      		sbrs r24,4 + 504 0334 00C0      		rjmp .L43 + 505 0336 8091 0000 		lds r24,usbMsgLen + 506 033a 8F3F      		cpi r24,lo8(-1) + 507 033c 01F4      		brne .+2 + 508 033e 00C0      		rjmp .L43 + 509 0340 082F      		mov r16,r24 + 510 0342 8930      		cpi r24,lo8(9) + 511 0344 00F0      		brlo .L44 + 512 0346 08E0      		ldi r16,lo8(8) + 513               	.L44: +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s 			page 10 + + + 514 0348 801B      		sub r24,r16 + 515 034a 8093 0000 		sts usbMsgLen,r24 + 516 034e 8091 0000 		lds r24,usbTxBuf + 517 0352 98E8      		ldi r25,lo8(-120) + 518 0354 8927      		eor r24,r25 + 519 0356 8093 0000 		sts usbTxBuf,r24 + 520 035a 0023      		tst r16 + 521 035c 01F0      		breq .L45 + 522 035e E091 0000 		lds r30,usbMsgPtr + 523 0362 F091 0000 		lds r31,usbMsgPtr+1 + 524 0366 9091 0000 		lds r25,usbMsgFlags + 525 036a 802F      		mov r24,r16 + 526 036c 8150      		subi r24,lo8(-(-1)) + 527 036e 96FF      		sbrs r25,6 + 528 0370 00C0      		rjmp .L46 + 529 0372 90E0      		ldi r25,lo8(0) + 530 0374 8050      		subi r24,lo8(-(usbTxBuf+2)) + 531 0376 9040      		sbci r25,hi8(-(usbTxBuf+2)) + 532 0378 A0E0      		ldi r26,lo8(usbTxBuf+1) + 533 037a B0E0      		ldi r27,hi8(usbTxBuf+1) + 534               	.L47: + 535               	/* #APP */ + 536               	 ;  504 "usbdrv/usbdrv.c" 1 + 537 037c 2491      		lpm r18, Z + 538               		 + 539               	 ;  0 "" 2 + 540               	/* #NOAPP */ + 541 037e 2D93      		st X+,r18 + 542 0380 3196      		adiw r30,1 + 543 0382 A817      		cp r26,r24 + 544 0384 B907      		cpc r27,r25 + 545 0386 01F4      		brne .L47 + 546 0388 00C0      		rjmp .L48 + 547               	.L46: + 548 038a 9F01      		movw r18,r30 + 549 038c 90E0      		ldi r25,lo8(0) + 550 038e 8050      		subi r24,lo8(-(usbTxBuf+2)) + 551 0390 9040      		sbci r25,hi8(-(usbTxBuf+2)) + 552 0392 A0E0      		ldi r26,lo8(usbTxBuf+1) + 553 0394 B0E0      		ldi r27,hi8(usbTxBuf+1) + 554               	.L49: + 555 0396 F901      		movw r30,r18 + 556 0398 4191      		ld r20,Z+ + 557 039a 9F01      		movw r18,r30 + 558 039c 4D93      		st X+,r20 + 559 039e A817      		cp r26,r24 + 560 03a0 B907      		cpc r27,r25 + 561 03a2 01F4      		brne .L49 + 562               	.L48: + 563 03a4 F093 0000 		sts usbMsgPtr+1,r31 + 564 03a8 E093 0000 		sts usbMsgPtr,r30 + 565               	.L45: + 566 03ac 80E0      		ldi r24,lo8(usbTxBuf+1) + 567 03ae 90E0      		ldi r25,hi8(usbTxBuf+1) + 568 03b0 602F      		mov r22,r16 + 569 03b2 00D0      		rcall usbCrc16Append + 570 03b4 0C5F      		subi r16,lo8(-(4)) +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s 			page 11 + + + 571 03b6 0C30      		cpi r16,lo8(12) + 572 03b8 01F0      		breq .L50 + 573 03ba 8FEF      		ldi r24,lo8(-1) + 574 03bc 8093 0000 		sts usbMsgLen,r24 + 575               	.L50: + 576 03c0 0093 0000 		sts usbTxLen,r16 + 577               	.L43: + 578 03c4 84E1      		ldi r24,lo8(20) + 579               	.L52: + 580 03c6 96B3      		in r25,54-32 + 581 03c8 9871      		andi r25,lo8(24) + 582 03ca 01F4      		brne .L51 + 583 03cc 8150      		subi r24,lo8(-(-1)) + 584 03ce 01F4      		brne .L52 + 585 03d0 1092 0000 		sts usbNewDeviceAddr,__zero_reg__ + 586 03d4 1092 0000 		sts usbDeviceAddr,__zero_reg__ + 587               	.L51: + 588 03d8 01E0      		ldi r16,lo8(1) + 589 03da 8111      		cpse r24,__zero_reg__ + 590 03dc 00E0      		ldi r16,lo8(0) + 591               	.L53: + 592 03de 8091 0000 		lds r24,wasReset.1698 + 593 03e2 8017      		cp r24,r16 + 594 03e4 01F0      		breq .L54 + 595 03e6 0023      		tst r16 + 596 03e8 01F4      		brne .L55 + 597               	/* #APP */ + 598               	 ;  557 "usbdrv/usbdrv.c" 1 + 599 03ea F894      		cli + 600               	 ;  0 "" 2 + 601               	/* #NOAPP */ + 602 03ec 00D0      		rcall calibrateOscillator   603               	/* #APP */   604               	 ;  557 "usbdrv/usbdrv.c" 1 - 605 03f6 F894      		cli + 605 03ee 7894      		sei   606               	 ;  0 "" 2   607               	/* #NOAPP */ - 608 03f8 00D0      		rcall calibrateOscillator - 609               	/* #APP */ - 610               	 ;  557 "usbdrv/usbdrv.c" 1 - 611 03fa 7894      		sei - 612               	 ;  0 "" 2 - 613               	/* #NOAPP */ - 614               	.L55: - 615 03fc 0093 0000 		sts wasReset.1698,r16 - 616               	.L54: - 617 0400 8CE9      		 ldi r24,lo8(412) - 618 0402 91E0      	    ldi r25,hi8(412) - 619 0404 0197      	    1:sbiw r24,1 - 620 0406 01F4      	    brne 1b - 621 0408 0000      		nop - 622 040a 8091 0000 		lds r24,events - 623 040e 8823      		tst r24 - 624 0410 01F4      		brne .L71 - 625 0412 0894      		sec - 626 0414 E11C      		adc r14,__zero_reg__ - 627 0416 F11C      		adc r15,__zero_reg__ -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 12 - - - 628 0418 00C0      		rjmp .L56 - 629               	.L71: - 630 041a EE24      		clr r14 - 631 041c FF24      		clr r15 - 632               	.L56: - 633 041e 80FF      		sbrs r24,0 - 634 0420 00C0      		rjmp .L57 - 635               	/* #APP */ - 636               	 ;  117 "main.c" 1 - 637 0422 F894      		cli - 638               	 ;  0 "" 2 - 639               	/* #NOAPP */ - 640 0424 E091 0000 		lds r30,currentAddress - 641 0428 F091 0000 		lds r31,currentAddress+1 - 642 042c 3297      		sbiw r30,2 - 643 042e 83E0      		ldi r24,lo8(3) - 644               	/* #APP */ - 645               	 ;  118 "main.c" 1 - 646 0430 8093 5700 		sts 87, r24 - 647 0434 E895      		spm - 648               		 - 649               	 ;  0 "" 2 - 650               	/* #NOAPP */ - 651               	.L58: - 652 0436 07B6      		in __tmp_reg__,87-32 - 653 0438 00FC      		sbrc __tmp_reg__,0 - 654 043a 00C0      		rjmp .L58 - 655               	/* #APP */ - 656               	 ;  120 "main.c" 1 - 657 043c 7894      		sei - 658               	 ;  0 "" 2 - 659               	/* #NOAPP */ - 660               	.L57: - 661 043e 8091 0000 		lds r24,events - 662 0442 81FF      		sbrs r24,1 - 663 0444 00C0      		rjmp .L59 - 664 0446 A9E3      		 ldi r26,lo8(8249) - 665 0448 B0E2      	    ldi r27,hi8(8249) - 666 044a 1197      	    1:sbiw r26,1 - 667 044c 01F4      	    brne 1b - 668 044e 00C0      		rjmp . - 669 0450 0000      		nop - 670 0452 8091 0000 		lds r24,currentAddress - 671 0456 9091 0000 		lds r25,currentAddress+1 - 672 045a 8F73      		andi r24,lo8(63) - 673 045c 9070      		andi r25,hi8(63) - 674 045e 0097      		sbiw r24,0 - 675 0460 01F0      		breq .L60 - 676 0462 00D0      		rcall fillFlashWithVectors - 677 0464 00C0      		rjmp .L59 - 678               	.L60: - 679 0466 00D0      		rcall writeFlashPage - 680               	.L59: - 681 0468 8091 0000 		lds r24,events - 682 046c 82FD      		sbrc r24,2 - 683 046e 00C0      		rjmp .L61 - 684 0470 B1E5      		ldi r27,lo8(-15535) -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 13 - - - 685 0472 EB16      		cp r14,r27 - 686 0474 B3EC      		ldi r27,hi8(-15535) - 687 0476 FB06      		cpc r15,r27 - 688 0478 00F0      		brlo .L62 - 689               	.L61: - 690 047a E1E2      		 ldi r30,lo8(-24287) - 691 047c F1EA      	    ldi r31,hi8(-24287) - 692 047e 3197      	    1:sbiw r30,1 - 693 0480 01F4      	    brne 1b - 694 0482 00C0      		rjmp . - 695 0484 0000      		nop - 696               	/* #APP */ - 697               	 ;  303 "main.c" 1 - 698 0486 F894      		cli - 699               	 ;  0 "" 2 - 700               	/* #NOAPP */ - 701 0488 1BBE      		out 91-32,__zero_reg__ - 702 048a 15BA      		out 53-32,__zero_reg__ - 703 048c 8091 0000 		lds r24,didWriteSomething - 704 0490 8823      		tst r24 - 705 0492 01F4      		brne .L63 - 706 0494 00C0      		rjmp .L64 - 707               	.L65: - 708 0496 00D0      		rcall fillFlashWithVectors - 709               	.L63: - 710 0498 8091 0000 		lds r24,currentAddress - 711 049c 9091 0000 		lds r25,currentAddress+1 - 712 04a0 F5E1      		ldi r31,hi8(5376) - 713 04a2 8030      		cpi r24,lo8(5376) - 714 04a4 9F07      		cpc r25,r31 - 715 04a6 00F0      		brlo .L65 - 716               	.L64: - 717 04a8 1092 5F02 		sts 607,__zero_reg__ - 718 04ac 1092 5E02 		sts 606,__zero_reg__ - 719               	/* #APP */ - 720               	 ;  319 "main.c" 1 - 721 04b0 00C0      		rjmp __vectors - 4 - 722               	 ;  0 "" 2 - 723               	/* #NOAPP */ - 724               	.L62: - 725 04b2 1092 0000 		sts events,__zero_reg__ - 726 04b6 00C0      		rjmp .L66 - 727               		.size	main, .-main - 728               	.global	usbTxLen - 729               		.data - 730               		.type	usbTxLen, @object - 731               		.size	usbTxLen, 1 - 732               	usbTxLen: - 733 0000 5A        		.byte	90 - 734               	.global	usbDescriptorString0 - 735               		.section	.progmem.data,"a",@progbits - 736               		.type	usbDescriptorString0, @object - 737               		.size	usbDescriptorString0, 4 - 738               	usbDescriptorString0: - 739 0000 04        		.byte	4 - 740 0001 03        		.byte	3 - 741 0002 09        		.byte	9 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 14 - - - 742 0003 04        		.byte	4 - 743               	.global	usbDescriptorStringVendor - 744               		.type	usbDescriptorStringVendor, @object - 745               		.size	usbDescriptorStringVendor, 34 - 746               	usbDescriptorStringVendor: - 747 0004 2203      		.word	802 - 748 0006 6300      		.word	99 - 749 0008 7200      		.word	114 - 750 000a 6500      		.word	101 - 751 000c 6100      		.word	97 - 752 000e 7400      		.word	116 - 753 0010 6900      		.word	105 - 754 0012 7600      		.word	118 - 755 0014 6500      		.word	101 - 756 0016 7000      		.word	112 - 757 0018 6F00      		.word	111 - 758 001a 6E00      		.word	110 - 759 001c 7900      		.word	121 - 760 001e 2E00      		.word	46 - 761 0020 6300      		.word	99 - 762 0022 6F00      		.word	111 - 763 0024 6D00      		.word	109 - 764               	.global	usbDescriptorStringDevice - 765               		.type	usbDescriptorStringDevice, @object - 766               		.size	usbDescriptorStringDevice, 12 - 767               	usbDescriptorStringDevice: - 768 0026 0C03      		.word	780 - 769 0028 7500      		.word	117 - 770 002a 4200      		.word	66 - 771 002c 6F00      		.word	111 - 772 002e 6F00      		.word	111 - 773 0030 7400      		.word	116 - 774               	.global	usbDescriptorDevice - 775               		.type	usbDescriptorDevice, @object - 776               		.size	usbDescriptorDevice, 18 - 777               	usbDescriptorDevice: - 778 0032 12        		.byte	18 - 779 0033 01        		.byte	1 - 780 0034 10        		.byte	16 - 781 0035 01        		.byte	1 - 782 0036 FF        		.byte	-1 - 783 0037 00        		.byte	0 - 784 0038 00        		.byte	0 - 785 0039 08        		.byte	8 - 786 003a C0        		.byte	-64 - 787 003b 16        		.byte	22 - 788 003c DC        		.byte	-36 - 789 003d 05        		.byte	5 - 790 003e 01        		.byte	1 - 791 003f 00        		.byte	0 - 792 0040 01        		.byte	1 - 793 0041 02        		.byte	2 - 794 0042 00        		.byte	0 - 795 0043 01        		.byte	1 - 796               	.global	usbDescriptorConfiguration - 797               		.type	usbDescriptorConfiguration, @object - 798               		.size	usbDescriptorConfiguration, 18 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 15 - - - 799               	usbDescriptorConfiguration: - 800 0044 09        		.byte	9 - 801 0045 02        		.byte	2 - 802 0046 12        		.byte	18 - 803 0047 00        		.byte	0 - 804 0048 01        		.byte	1 - 805 0049 01        		.byte	1 - 806 004a 00        		.byte	0 - 807 004b 80        		.byte	-128 - 808 004c 32        		.byte	50 - 809 004d 09        		.byte	9 - 810 004e 04        		.byte	4 - 811 004f 00        		.byte	0 - 812 0050 00        		.byte	0 - 813 0051 00        		.byte	0 - 814 0052 00        		.byte	0 - 815 0053 00        		.byte	0 - 816 0054 00        		.byte	0 - 817 0055 00        		.byte	0 - 818               		.comm usbMsgPtr,2,1 - 819               		.comm usbRxToken,1,1 - 820               		.comm usbConfiguration,1,1 - 821               		.comm usbRxBuf,22,1 - 822               		.comm usbInputBufOffset,1,1 - 823               		.comm usbDeviceAddr,1,1 - 824               		.comm usbNewDeviceAddr,1,1 - 825               		.comm usbRxLen,1,1 - 826               		.comm usbCurrentTok,1,1 - 827               		.comm usbTxBuf,11,1 - 828               		.lcomm currentAddress,2 - 829               		.lcomm events,1 - 830               		.lcomm vectorTemp,4 - 831               		.lcomm didWriteSomething,1 - 832               		.data - 833               		.type	usbMsgLen, @object - 834               		.size	usbMsgLen, 1 - 835               	usbMsgLen: - 836 0001 FF        		.byte	-1 - 837               		.lcomm usbMsgFlags,1 - 838               		.lcomm writeLength,1 - 839               		.type	replyBuffer.1750, @object - 840               		.size	replyBuffer.1750, 5 - 841               	replyBuffer.1750: - 842 0002 01        		.byte	1 - 843 0003 14        		.byte	20 - 844 0004 FA        		.byte	-6 - 845 0005 40        		.byte	64 - 846 0006 14        		.byte	20 - 847               		.lcomm wasReset.1698,1 - 848               	.global __do_copy_data - 849               	.global __do_clear_bss -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s 			page 16 + 608               	.L55: + 609 03f0 0093 0000 		sts wasReset.1698,r16 + 610               	.L54: + 611 03f4 8CE9      		 ldi r24,lo8(412) + 612 03f6 91E0      	    ldi r25,hi8(412) + 613 03f8 0197      	    1:sbiw r24,1 + 614 03fa 01F4      	    brne 1b + 615 03fc 0000      		nop + 616 03fe 8091 0000 		lds r24,events + 617 0402 8823      		tst r24 + 618 0404 01F4      		brne .L71 + 619 0406 0894      		sec + 620 0408 E11C      		adc r14,__zero_reg__ + 621 040a F11C      		adc r15,__zero_reg__ + 622 040c 00C0      		rjmp .L56 + 623               	.L71: + 624 040e EE24      		clr r14 + 625 0410 FF24      		clr r15 + 626               	.L56: + 627 0412 80FF      		sbrs r24,0 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s 			page 12 + + + 628 0414 00C0      		rjmp .L57 + 629               	/* #APP */ + 630               	 ;  99 "main.c" 1 + 631 0416 F894      		cli + 632               	 ;  0 "" 2 + 633               	/* #NOAPP */ + 634 0418 E091 0000 		lds r30,currentAddress + 635 041c F091 0000 		lds r31,currentAddress+1 + 636 0420 3297      		sbiw r30,2 + 637 0422 83E0      		ldi r24,lo8(3) + 638               	/* #APP */ + 639               	 ;  100 "main.c" 1 + 640 0424 8093 5700 		sts 87, r24 + 641 0428 E895      		spm + 642               		 + 643               	 ;  0 "" 2 + 644               	/* #NOAPP */ + 645               	.L58: + 646 042a 07B6      		in __tmp_reg__,87-32 + 647 042c 00FC      		sbrc __tmp_reg__,0 + 648 042e 00C0      		rjmp .L58 + 649               	/* #APP */ + 650               	 ;  102 "main.c" 1 + 651 0430 7894      		sei + 652               	 ;  0 "" 2 + 653               	/* #NOAPP */ + 654               	.L57: + 655 0432 8091 0000 		lds r24,events + 656 0436 81FF      		sbrs r24,1 + 657 0438 00C0      		rjmp .L59 + 658 043a A9E3      		 ldi r26,lo8(8249) + 659 043c B0E2      	    ldi r27,hi8(8249) + 660 043e 1197      	    1:sbiw r26,1 + 661 0440 01F4      	    brne 1b + 662 0442 00C0      		rjmp . + 663 0444 0000      		nop + 664 0446 8091 0000 		lds r24,currentAddress + 665 044a 9091 0000 		lds r25,currentAddress+1 + 666 044e 8F73      		andi r24,lo8(63) + 667 0450 9070      		andi r25,hi8(63) + 668 0452 0097      		sbiw r24,0 + 669 0454 01F0      		breq .L60 + 670 0456 00D0      		rcall fillFlashWithVectors + 671 0458 00C0      		rjmp .L59 + 672               	.L60: + 673 045a 00D0      		rcall writeFlashPage + 674               	.L59: + 675 045c 8091 0000 		lds r24,events + 676 0460 82FD      		sbrc r24,2 + 677 0462 00C0      		rjmp .L61 + 678 0464 B1E5      		ldi r27,lo8(-15535) + 679 0466 EB16      		cp r14,r27 + 680 0468 B3EC      		ldi r27,hi8(-15535) + 681 046a FB06      		cpc r15,r27 + 682 046c 00F0      		brlo .L62 + 683               	.L61: + 684 046e E1E2      		 ldi r30,lo8(-24287) +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s 			page 13 + + + 685 0470 F1EA      	    ldi r31,hi8(-24287) + 686 0472 3197      	    1:sbiw r30,1 + 687 0474 01F4      	    brne 1b + 688 0476 00C0      		rjmp . + 689 0478 0000      		nop + 690               	/* #APP */ + 691               	 ;  284 "main.c" 1 + 692 047a F894      		cli + 693               	 ;  0 "" 2 + 694               	/* #NOAPP */ + 695 047c 1BBE      		out 91-32,__zero_reg__ + 696 047e 15BA      		out 53-32,__zero_reg__ + 697 0480 8091 0000 		lds r24,didWriteSomething + 698 0484 8823      		tst r24 + 699 0486 01F4      		brne .L63 + 700 0488 00C0      		rjmp .L64 + 701               	.L65: + 702 048a 00D0      		rcall fillFlashWithVectors + 703               	.L63: + 704 048c 8091 0000 		lds r24,currentAddress + 705 0490 9091 0000 		lds r25,currentAddress+1 + 706 0494 F7E1      		ldi r31,hi8(5888) + 707 0496 8030      		cpi r24,lo8(5888) + 708 0498 9F07      		cpc r25,r31 + 709 049a 00F0      		brlo .L65 + 710               	.L64: + 711 049c 1092 5F02 		sts 607,__zero_reg__ + 712 04a0 1092 5E02 		sts 606,__zero_reg__ + 713               	/* #APP */ + 714               	 ;  300 "main.c" 1 + 715 04a4 00C0      		rjmp __vectors - 4 + 716               	 ;  0 "" 2 + 717               	/* #NOAPP */ + 718               	.L62: + 719 04a6 1092 0000 		sts events,__zero_reg__ + 720 04aa 00C0      		rjmp .L66 + 721               		.size	main, .-main + 722               	.global	usbTxLen + 723               		.data + 724               		.type	usbTxLen, @object + 725               		.size	usbTxLen, 1 + 726               	usbTxLen: + 727 0000 5A        		.byte	90 + 728               	.global	usbDescriptorString0 + 729               		.section	.progmem.data,"a",@progbits + 730               		.type	usbDescriptorString0, @object + 731               		.size	usbDescriptorString0, 4 + 732               	usbDescriptorString0: + 733 0000 04        		.byte	4 + 734 0001 03        		.byte	3 + 735 0002 09        		.byte	9 + 736 0003 04        		.byte	4 + 737               	.global	usbDescriptorStringVendor + 738               		.type	usbDescriptorStringVendor, @object + 739               		.size	usbDescriptorStringVendor, 34 + 740               	usbDescriptorStringVendor: + 741 0004 2203      		.word	802 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s 			page 14 + + + 742 0006 6300      		.word	99 + 743 0008 7200      		.word	114 + 744 000a 6500      		.word	101 + 745 000c 6100      		.word	97 + 746 000e 7400      		.word	116 + 747 0010 6900      		.word	105 + 748 0012 7600      		.word	118 + 749 0014 6500      		.word	101 + 750 0016 7000      		.word	112 + 751 0018 6F00      		.word	111 + 752 001a 6E00      		.word	110 + 753 001c 7900      		.word	121 + 754 001e 2E00      		.word	46 + 755 0020 6300      		.word	99 + 756 0022 6F00      		.word	111 + 757 0024 6D00      		.word	109 + 758               	.global	usbDescriptorStringDevice + 759               		.type	usbDescriptorStringDevice, @object + 760               		.size	usbDescriptorStringDevice, 12 + 761               	usbDescriptorStringDevice: + 762 0026 0C03      		.word	780 + 763 0028 7500      		.word	117 + 764 002a 4200      		.word	66 + 765 002c 6F00      		.word	111 + 766 002e 6F00      		.word	111 + 767 0030 7400      		.word	116 + 768               	.global	usbDescriptorDevice + 769               		.type	usbDescriptorDevice, @object + 770               		.size	usbDescriptorDevice, 18 + 771               	usbDescriptorDevice: + 772 0032 12        		.byte	18 + 773 0033 01        		.byte	1 + 774 0034 10        		.byte	16 + 775 0035 01        		.byte	1 + 776 0036 FF        		.byte	-1 + 777 0037 00        		.byte	0 + 778 0038 00        		.byte	0 + 779 0039 08        		.byte	8 + 780 003a C0        		.byte	-64 + 781 003b 16        		.byte	22 + 782 003c DC        		.byte	-36 + 783 003d 05        		.byte	5 + 784 003e 01        		.byte	1 + 785 003f 00        		.byte	0 + 786 0040 01        		.byte	1 + 787 0041 02        		.byte	2 + 788 0042 00        		.byte	0 + 789 0043 01        		.byte	1 + 790               	.global	usbDescriptorConfiguration + 791               		.type	usbDescriptorConfiguration, @object + 792               		.size	usbDescriptorConfiguration, 18 + 793               	usbDescriptorConfiguration: + 794 0044 09        		.byte	9 + 795 0045 02        		.byte	2 + 796 0046 12        		.byte	18 + 797 0047 00        		.byte	0 + 798 0048 01        		.byte	1 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s 			page 15 + + + 799 0049 01        		.byte	1 + 800 004a 00        		.byte	0 + 801 004b 80        		.byte	-128 + 802 004c 32        		.byte	50 + 803 004d 09        		.byte	9 + 804 004e 04        		.byte	4 + 805 004f 00        		.byte	0 + 806 0050 00        		.byte	0 + 807 0051 00        		.byte	0 + 808 0052 00        		.byte	0 + 809 0053 00        		.byte	0 + 810 0054 00        		.byte	0 + 811 0055 00        		.byte	0 + 812               		.comm usbMsgPtr,2,1 + 813               		.comm usbRxToken,1,1 + 814               		.comm usbConfiguration,1,1 + 815               		.comm usbRxBuf,22,1 + 816               		.comm usbInputBufOffset,1,1 + 817               		.comm usbDeviceAddr,1,1 + 818               		.comm usbNewDeviceAddr,1,1 + 819               		.comm usbRxLen,1,1 + 820               		.comm usbCurrentTok,1,1 + 821               		.comm usbTxBuf,11,1 + 822               		.lcomm currentAddress,2 + 823               		.lcomm events,1 + 824               		.lcomm vectorTemp,4 + 825               		.lcomm didWriteSomething,1 + 826               		.data + 827               		.type	usbMsgLen, @object + 828               		.size	usbMsgLen, 1 + 829               	usbMsgLen: + 830 0001 FF        		.byte	-1 + 831               		.lcomm usbMsgFlags,1 + 832               		.lcomm writeLength,1 + 833               		.type	replyBuffer.1750, @object + 834               		.size	replyBuffer.1750, 5 + 835               	replyBuffer.1750: + 836 0002 01        		.byte	1 + 837 0003 16        		.byte	22 + 838 0004 FA        		.byte	-6 + 839 0005 40        		.byte	64 + 840 0006 0C        		.byte	12 + 841               		.lcomm wasReset.1698,1 + 842               	.global __do_copy_data + 843               	.global __do_clear_bss +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s 			page 16  DEFINED SYMBOLS                              *ABS*:00000000 main.c -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:2      *ABS*:0000003f __SREG__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:3      *ABS*:0000003e __SP_H__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:4      *ABS*:0000003d __SP_L__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:5      *ABS*:00000034 __CCP__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:6      *ABS*:00000000 __tmp_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:7      *ABS*:00000001 __zero_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:10     .text:00000000 writeFlashPage -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:830    .bss:00000007 didWriteSomething +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:2      *ABS*:0000003f __SREG__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:3      *ABS*:0000003e __SP_H__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:4      *ABS*:0000003d __SP_L__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:5      *ABS*:00000034 __CCP__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:6      *ABS*:00000000 __tmp_reg__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:7      *ABS*:00000001 __zero_reg__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:10     .text:00000000 writeFlashPage +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:824    .bss:00000007 didWriteSomething                               .bss:00000000 currentAddress -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:46     .text:00000024 writeWordToPageBuffer -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:829    .bss:00000003 vectorTemp -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:828    .bss:00000002 events -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:140    .text:000000bc fillFlashWithVectors -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:168    .init3:00000000 PushMagicWord -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:192    .text:000000e2 main +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:46     .text:00000024 writeWordToPageBuffer +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:823    .bss:00000003 vectorTemp +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:822    .bss:00000002 events +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:140    .text:000000bc fillFlashWithVectors +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:168    .init3:00000000 PushMagicWord +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:192    .text:000000e2 main                              *COM*:00000001 usbRxLen                              *COM*:00000001 usbInputBufOffset                              *COM*:00000016 usbRxBuf                              *COM*:00000001 usbRxToken                              *COM*:0000000b usbTxBuf -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:732    .data:00000000 usbTxLen -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:831    .bss:00000008 usbMsgFlags -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:841    .data:00000002 replyBuffer.1750 +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:726    .data:00000000 usbTxLen +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:825    .bss:00000008 usbMsgFlags +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:835    .data:00000002 replyBuffer.1750                              *COM*:00000002 usbMsgPtr -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:837    .bss:00000009 writeLength +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:831    .bss:00000009 writeLength                              *COM*:00000001 usbNewDeviceAddr -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:777    .progmem.data:00000032 usbDescriptorDevice -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:799    .progmem.data:00000044 usbDescriptorConfiguration -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:738    .progmem.data:00000000 usbDescriptorString0 -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:746    .progmem.data:00000004 usbDescriptorStringVendor -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:767    .progmem.data:00000026 usbDescriptorStringDevice +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:771    .progmem.data:00000032 usbDescriptorDevice +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:793    .progmem.data:00000044 usbDescriptorConfiguration +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:732    .progmem.data:00000000 usbDescriptorString0 +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:740    .progmem.data:00000004 usbDescriptorStringVendor +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:761    .progmem.data:00000026 usbDescriptorStringDevice                              *COM*:00000001 usbConfiguration -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:835    .data:00000001 usbMsgLen +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:829    .data:00000001 usbMsgLen                              *COM*:00000001 usbDeviceAddr -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccYBGVjm.s:838    .bss:0000000a wasReset.1698 +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccgRI40l.s:832    .bss:0000000a wasReset.1698                              *COM*:00000001 usbCurrentTok  UNDEFINED SYMBOLS diff --git a/firmware/main.hex b/firmware/main.hex index 3902f18..16520d4 100644 --- a/firmware/main.hex +++ b/firmware/main.hex @@ -1,147 +1,146 @@ -:1015000039C057C083C055C054C053C052C051C029
 -:1015100050C04FC04EC04DC04CC04BC04AC0040369
 -:101520000904220363007200650061007400690011
 -:101530007600650070006F006E0079002E00630079
 -:101540006F006D000C03750042006F006F007400A7
 -:1015500012011001FF000008C016DC0501000102A5
 -:10156000000109021200010100803209040000009C
 -:101570000000000011241FBECFE5D2E0DEBFCDBFCA
 -:1015800000EB0F9307E00F9310E0A0E6B0E0E8EF68
 -:10159000FDE102C005900D92A836B107D9F710E021
 -:1015A000A8E6B0E001C01D92AD39B107E1F7FDD169
 -:1015B00021C4A6CFA82FB92F80E090E041E050EAE7
 -:1015C000609530E009C02D9182279795879510F09E
 -:1015D00084279527305EC8F36F5FA8F30895EADF8C
 -:1015E0008D939D930895A6E088279927AA9569F081
 -:1015F0000197E1F3B399FCCFB39BFECF81E099272C
 -:10160000A6B3019611F0A871D9F70895CF93CFB77B
 -:10161000CF93C0915F02C03B21F4C0915E02C730FE
 -:1016200021F0CF91CFBFCF916ACFCC27C395B39B89
 -:10163000E9F7B39B0BC0B39B09C0B39B07C0B39B37
 -:1016400005C0B39B03C0B39B01C0D3C00F92DF930F
 -:10165000C0918000DD27C957DF4F012EB39B03C027
 -:10166000DF910F90E6CF2F930F931F934F932FEFA0
 -:101670004F6F06B303FB20F95F933F9350E03BE0CD
 -:1016800065C016B30126502953FDC89556B30127EE
 -:1016900003FB25F92F7306B3B1F05027102713FB76
 -:1016A00026F906B22230F0F000C016B3012703FB82
 -:1016B00027F90126502906B22430E8F54F77206833
 -:1016C00016B30000F6CF50274F7D206206B2102FD0
 -:1016D000000000C006B300265029102713FB26F98E
 -:1016E00006B2E2CF4F7B06B3206400C0DACF0126FA
 -:1016F0005029187106B269F14E7F2160012F16B38F
 -:1017000028C0002650294D7F06B22260102F29C024
 -:10171000012650294B7F06B22460012F2DC016B33D
 -:1017200001265029477F2860000006B22EC04F7E58
 -:1017300006B3206130C0422706B3499300265029E2
 -:10174000102706B24FEF13FB20F9297F16B379F269
 -:10175000187159F10126502906B2012703FB21F91E
 -:10176000237F06B371F2002650293150D0F006B223
 -:10177000102713FB22F9277E16B351F201265029B8
 -:10178000012703FB06B223F92F7C49F2000006B3C0
 -:10179000102713FB24F90026502906B22F7939F2BD
 -:1017A00070CF10E21ABF002717C03B503195C31B02
 -:1017B000D04010E21ABF0881033CF9F00B34E9F085
 -:1017C00020917E001981110F1213EDCF093651F1CE
 -:1017D0000D3211F0013E39F7009385003F915F9182
 -:1017E0004F911F910F912F91DF910F90CAB7C5FDB7
 -:1017F0001DCFCF91CFBFCF91189520918500222387
 -:1018000069F310918300112321F5343022F13093D4
 -:10181000830020937F00109180003BE0311B3093C8
 -:10182000800019C00091830001309CF40AE53091DA
 -:10183000600034FD11C000936000C3E7D0E010C029
 -:10184000052710E000C021C0052710E0C89508BB9F
 -:1018500014C03AE501C032ED032EC0E0D0E032E022
 -:1018600017B31861C39A08B317BB58E120E84FEFCC
 -:1018700020FF052708BB279517951C3F28F7000078
 -:101880004552B0F720FF0527279508BB17951C3F49
 -:10189000B8F629913A9561F7077E10918400110FEF
 -:1018A00008BBC250D04011F010937E0010E21ABF66
 -:1018B000086017B3177E402F477E54E05A95F1F722
 -:1018C00008BB17BB48BB8ACF81E080936F00F894B8
 -:1018D000E0916800F0916900329785E080935700AD
 -:1018E000E89507B600FCFDCF789408952091680034
 -:1018F000309169002115310509F43FC024303105CC
 -:10190000B1F044E12C3F340739F480916B009091A1
 -:101910006C008E579A4F0DC044E12E3F340749F4B6
 -:1019200080916D0090916E008D579A4F02C08FE7A5
 -:101930009AECF894E0916800F091690021E00C01C4
 -:1019400020935700E89511247894409168005091B5
 -:101950006900FA0125913491282339232817390782
 -:1019600029F080916A00816080936A004E5F5F4F2A
 -:101970005093690040936800089581E18093570077
 -:10198000E895D5CFCF93DF93C0916800D0916900DF
 -:10199000CF73D0708FEF9FEFA9DF2296C034D105AF
 -:1019A000CCF392DFDF91CF910895DF93CF930F9225
 -:1019B000CDB7DEB788E10FB6F89481BD11BC0FBE7C
 -:1019C000E0E0F0E0859194912AEC8F37920741F4A2
 -:1019D000E4E0F0E0859194913AEC8F37930709F0B9
 -:1019E000D1DF109269001092680087B3836087BBD3
 -:1019F000C09AC198AC9A8BB780628BBFBB9A8FE4B8
 -:101A00009DE2A9E181509040A040E1F700C00000B4
 -:101A1000BB987894EE24FF2420918300235027FD67
 -:101A2000F0C080918000ECE0F0E0E81BF109E9579C
 -:101A3000FF4F80917F008D3209F0A0C0283009F05F
 -:101A4000DEC083EC809373008AE58093600010927F
 -:101A50007000908190768181992311F1882341F45F
 -:101A600082E690E0909382008093810025E07CC024
 -:101A7000813079F4C098828180937100848195814E
 -:101A80009093690080936800808187FD68C02FEF84
 -:101A900067C080916A00846080936A0020E064C01F
 -:101AA000928110927C00882331F410927D008CE7A3
 -:101AB00090E022E04FC0853019F49093840040C03C
 -:101AC0008630A9F58381813019F480E595E104C061
 -:101AD000823041F482E695E1909382008093810008
 -:101AE00022E121C08330F1F4992341F48EE195E1A4
 -:101AF000909382008093810024E015C0913041F4DE
 -:101B000082E295E1909382008093810022E20BC0F3
 -:101B1000923041F484E495E19093820080938100B7
 -:101B20002CE001C020E080E4809370001DC088306C
 -:101B300059F0893019F49093860002C08A3039F048
 -:101B40008CE790E020E006C086E890E002C08CE7D9
 -:101B500090E021E0909382008093810005C026816F
 -:101B600080E88093700007C08781882321F48681F4
 -:101B7000821708F4282F2093610041C080917000E3
 -:101B800087FF3DC080917100821B809371008F019F
 -:101B90008091680090916900009749F4D8018D9177
 -:101BA0009C91119790936C0080936B0014C08430CB
 -:101BB000910541F4F8018081918190936E008093AA
 -:101BC0006D0009C0F4E18A3F9F0728F081E180930E
 -:101BD0005700E89509C0D8018D919D918D01298309
 -:101BE00085DE29812250A1F680917100882339F485
 -:101BF00080916A00826080936A0010926100109266
 -:101C000083008091600084FF47C0809161008F3F16
 -:101C100009F442C0082F893008F008E0801B809347
 -:101C200061008091730098E88927809373000023F6
 -:101C300039F1E0918100F091820090917000802F45
 -:101C4000815096FF0CC090E08B589F4FA4E7B0E006
 -:101C500024912D933196A817B907D1F70DC09F0194
 -:101C600090E08B589F4FA4E7B0E0F90141919F01AC
 -:101C70004D93A817B907C9F7F0938200E09381004C
 -:101C800084E790E0602FABDC0C5F0C3019F08FEF35
 -:101C9000809361000093600084E196B3987131F401
 -:101CA0008150D9F71092840010927E0001E08111DA
 -:101CB00000E080917200801739F0002319F4F89445
 -:101CC0005FD07894009372008CE991E00197F1F76E
 -:101CD000000080916A00882321F40894E11CF11C23
 -:101CE00002C0EE24FF2480FF0EC0F894E09168004B
 -:101CF000F0916900329783E080935700E89507B62A
 -:101D000000FCFDCF789480916A0081FF11C0A9E3A7
 -:101D1000B0E21197F1F700C0000080916800909147
 -:101D200069008F739070009711F02CDE01C0CCDD3C
 -:101D300080916A0082FD05C0B1E5EB16B3ECFB06AD
 -:101D4000E0F0E1E2F1EA3197F1F700C00000F89429
 -:101D50001BBE15BA80916F00882311F409C012DEF2
 -:101D60008091680090916900F5E180309F07B8F399
 -:101D700010925F0210925E02C1CB10926A004CCEAC
 -:101D8000FF920F931F93CF93DF93C8E0D0E010E052
 -:101D900000E8F12EF00EF1BE26DC29E08433920734
 -:101DA0000CF41F2D06952197A1F7212F215021BF5B
 -:101DB000EC01012F10C017DC8453994097FF03C03A
 -:101DC000909581959F4F8C179D0714F401B7EC01F6
 -:101DD00081B78F5F81BF21B730E0812F90E00196FE
 -:101DE0008217930744F701BFDF91CF911F910F91A5
 -:081DF000FF900895F894FFCF65
 -:081DF8005AFF0114FA40140027
 -:0400000300001500E4
 +:1017000039C057C083C055C054C053C052C051C027
 +:1017100050C04FC04EC04DC04CC04BC04AC0040367
 +:10172000090422036300720065006100740069000F
 +:101730007600650070006F006E0079002E00630077
 +:101740006F006D000C03750042006F006F007400A5
 +:1017500012011001FF000008C016DC0501000102A3
 +:10176000000109021200010100803209040000009A
 +:101770000000000011241FBECFE5D2E0DEBFCDBFC8
 +:1017800000EB0F9307E00F9310E0A0E6B0E0ECEE63
 +:10179000FFE102C005900D92A836B107D9F710E01D
 +:1017A000A8E6B0E001C01D92AD39B107E1F7FDD167
 +:1017B0001BC4A6CFA82FB92F80E090E041E050EAEB
 +:1017C000609530E009C02D9182279795879510F09C
 +:1017D00084279527305EC8F36F5FA8F30895EADF8A
 +:1017E0008D939D930895A6E088279927AA9569F07F
 +:1017F0000197E1F3B399FCCFB39BFECF81E099272A
 +:10180000A6B3019611F0A871D9F70895CF93CFB779
 +:10181000CF93C0915F02C03B21F4C0915E02C730FC
 +:1018200021F0CF91CFBFCF916ACFCC27C395B39B87
 +:10183000E9F7B39B0BC0B39B09C0B39B07C0B39B35
 +:1018400005C0B39B03C0B39B01C0D3C00F92DF930D
 +:10185000C0918000DD27C957DF4F012EB39B03C025
 +:10186000DF910F90E6CF2F930F931F934F932FEF9E
 +:101870004F6F06B303FB20F95F933F9350E03BE0CB
 +:1018800065C016B30126502953FDC89556B30127EC
 +:1018900003FB25F92F7306B3B1F05027102713FB74
 +:1018A00026F906B22230F0F000C016B3012703FB80
 +:1018B00027F90126502906B22430E8F54F77206831
 +:1018C00016B30000F6CF50274F7D206206B2102FCE
 +:1018D000000000C006B300265029102713FB26F98C
 +:1018E00006B2E2CF4F7B06B3206400C0DACF0126F8
 +:1018F0005029187106B269F14E7F2160012F16B38D
 +:1019000028C0002650294D7F06B22260102F29C022
 +:10191000012650294B7F06B22460012F2DC016B33B
 +:1019200001265029477F2860000006B22EC04F7E56
 +:1019300006B3206130C0422706B3499300265029E0
 +:10194000102706B24FEF13FB20F9297F16B379F267
 +:10195000187159F10126502906B2012703FB21F91C
 +:10196000237F06B371F2002650293150D0F006B221
 +:10197000102713FB22F9277E16B351F201265029B6
 +:10198000012703FB06B223F92F7C49F2000006B3BE
 +:10199000102713FB24F90026502906B22F7939F2BB
 +:1019A00070CF10E21ABF002717C03B503195C31B00
 +:1019B000D04010E21ABF0881033CF9F00B34E9F083
 +:1019C00020917E001981110F1213EDCF093651F1CC
 +:1019D0000D3211F0013E39F7009385003F915F9180
 +:1019E0004F911F910F912F91DF910F90CAB7C5FDB5
 +:1019F0001DCFCF91CFBFCF91189520918500222385
 +:101A000069F310918300112321F5343022F13093D2
 +:101A1000830020937F00109180003BE0311B3093C6
 +:101A2000800019C00091830001309CF40AE53091D8
 +:101A3000600034FD11C000936000C3E7D0E010C027
 +:101A4000052710E000C021C0052710E0C89508BB9D
 +:101A500014C03AE501C032ED032EC0E0D0E032E020
 +:101A600017B31861C39A08B317BB58E120E84FEFCA
 +:101A700020FF052708BB279517951C3F28F7000076
 +:101A80004552B0F720FF0527279508BB17951C3F47
 +:101A9000B8F629913A9561F7077E10918400110FED
 +:101AA00008BBC250D04011F010937E0010E21ABF64
 +:101AB000086017B3177E402F477E54E05A95F1F720
 +:101AC00008BB17BB48BB8ACF81E080936F00F894B6
 +:101AD000E0916800F0916900329785E080935700AB
 +:101AE000E89507B600FCFDCF789408952091680032
 +:101AF000309169002115310509F43FC024303105CA
 +:101B0000B1F046E12C3F340739F480916B0090919D
 +:101B10006C008E579B4F0DC046E12E3F340749F4B1
 +:101B200080916D0090916E008D579B4F02C08FE7A2
 +:101B30009BECF894E0916800F091690021E00C01C1
 +:101B400020935700E89511247894409168005091B3
 +:101B50006900FA0125913491282339232817390780
 +:101B600029F080916A00816080936A004E5F5F4F28
 +:101B70005093690040936800089581E18093570075
 +:101B8000E895D5CFCF93DF93C0916800D0916900DD
 +:101B9000CF73D0708FEF9FEFA9DF2296C034D105AD
 +:101BA000CCF392DFDF91CF910895DF93CF930F9223
 +:101BB000CDB7DEB788E10FB6F89481BD11BC0FBE7A
 +:101BC000E0E0F0E0859194912BEC8F37920741F49F
 +:101BD000E4E0F0E0859194913BEC8F37930709F0B6
 +:101BE000D1DF1092690010926800AC9A8BB78062C6
 +:101BF0008BBFBB9A8FE49DE2A9E181509040A04049
 +:101C0000E1F700C00000BB987894EE24FF242091F7
 +:101C10008300235027FDEFC080918000ECE0F0E0CE
 +:101C2000E81BF109E957FF4F80917F008D3209F0E1
 +:101C30009FC0283009F0DDC083EC809373008AE5F3
 +:101C400080936000109270002081922F90768181A5
 +:101C5000992301F1882341F482E690E09093820079
 +:101C60008093810025E07AC0813069F4828180937D
 +:101C7000710084819581909369008093680027FDAD
 +:101C800068C02FEF67C080916A00846080936A000B
 +:101C900020E064C0928110927C00882331F410927D
 +:101CA0007D008CE790E022E04FC0853019F49093DE
 +:101CB000840040C08630A9F58381813019F480E525
 +:101CC00097E104C0823041F482E697E1909382006C
 +:101CD0008093810022E121C08330F1F4992341F403
 +:101CE0008EE197E1909382008093810024E015C0FB
 +:101CF000913041F482E297E19093820080938100D9
 +:101D000022E20BC0923041F484E497E19093820088
 +:101D1000809381002CE001C020E080E4809370007B
 +:101D20001DC0883059F0893019F49093860002C0A4
 +:101D30008A3039F08CE790E020E006C086E890E039
 +:101D400002C08CE790E021E09093820080938100B4
 +:101D500005C0268180E88093700007C087818823B2
 +:101D600021F48681821708F4282F2093610041C056
 +:101D70008091700087FF3DC080917100821B80932D
 +:101D800071008F018091680090916900009749F47B
 +:101D9000D8018D919C91119790936C0080936B006A
 +:101DA00014C08430910541F4F801808191819093B1
 +:101DB0006E0080936D0009C0F6E18A3F9F0728F00E
 +:101DC00081E180935700E89509C0D8018D919D91DC
 +:101DD0008D0129838BDE29812250A1F6809171002B
 +:101DE000882339F480916A00826080936A0010929F
 +:101DF0006100109283008091600084FF47C0809151
 +:101E000061008F3F09F442C0082F893008F008E0D4
 +:101E1000801B809361008091730098E889278093EC
 +:101E20007300002339F1E0918100F09182009091DC
 +:101E30007000802F815096FF0CC090E08B589F4F10
 +:101E4000A4E7B0E024912D933196A817B907D1F7F4
 +:101E50000DC09F0190E08B589F4FA4E7B0E0F901BF
 +:101E600041919F014D93A817B907C9F7F0938200DC
 +:101E7000E093810084E790E0602FB1DC0C5F0C30D0
 +:101E800019F08FEF809361000093600084E196B3B6
 +:101E9000987131F48150D9F71092840010927E002D
 +:101EA00001E0811100E080917200801739F0002379
 +:101EB00019F4F8945FD07894009372008CE991E063
 +:101EC0000197F1F7000080916A00882321F40894BB
 +:101ED000E11CF11C02C0EE24FF2480FF0EC0F89428
 +:101EE000E0916800F0916900329783E08093570099
 +:101EF000E89507B600FCFDCF789480916A0081FFD9
 +:101F000011C0A9E3B0E21197F1F700C00000809181
 +:101F10006800909169008F739070009711F032DE25
 +:101F200001C0D2DD80916A0082FD05C0B1E5EB16EB
 +:101F3000B3ECFB06E0F0E1E2F1EA3197F1F700C023
 +:101F40000000F8941BBE15BA80916F00882311F42D
 +:101F500009C018DE8091680090916900F7E1803037
 +:101F60009F07B8F310925F0210925E02C7CB1092E7
 +:101F70006A004DCEFF920F931F93CF93DF93C8E07B
 +:101F8000D0E010E000E8F12EF00EF1BE2CDC29E0EC
 +:101F9000843392070CF41F2D06952197A1F7212F6A
 +:101FA000215021BFEC01012F10C01DDC845399404A
 +:101FB00097FF03C0909581959F4F8C179D0714F450
 +:101FC00001B7EC0181B78F5F81BF21B730E0812F6E
 +:101FD00090E001968217930744F701BFDF91CF91FC
 +:0C1FE0001F910F91FF900895F894FFCF1F
 +:081FEC005AFF0116FA400C0037
 +:0400000300001700E2
  :00000001FF
 diff --git a/firmware/main.map b/firmware/main.map index ef36b22..8418305 100644 --- a/firmware/main.map +++ b/firmware/main.map @@ -63,7 +63,7 @@ LOAD usbdrv/usbdrvasm.o  LOAD usbdrv/oddebug.o  LOAD main.o  LOAD libs-device/osccal.o -Address of section .text set to 0x1500 +Address of section .text set to 0x1700  LOAD /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a  LOAD /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/libc.a  LOAD /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a @@ -158,56 +158,56 @@ LOAD /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a  .rela.plt   *(.rela.plt) -.text           0x00001500      0x8f8 +.text           0x00001700      0x8ec   *(.vectors) - .vectors       0x00001500       0x1e /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn85.o -                0x00001500                __vectors -                0x00001500                __vector_default + .vectors       0x00001700       0x1e /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn85.o +                0x00001700                __vectors +                0x00001700                __vector_default   *(.vectors)   *(.progmem.gcc*)   *(.progmem*) - .progmem.data  0x0000151e       0x56 main.o -                0x0000151e                usbDescriptorString0 -                0x00001522                usbDescriptorStringVendor -                0x00001544                usbDescriptorStringDevice -                0x00001550                usbDescriptorDevice -                0x00001562                usbDescriptorConfiguration -                0x00001574                . = ALIGN (0x2) -                0x00001574                __trampolines_start = . + .progmem.data  0x0000171e       0x56 main.o +                0x0000171e                usbDescriptorString0 +                0x00001722                usbDescriptorStringVendor +                0x00001744                usbDescriptorStringDevice +                0x00001750                usbDescriptorDevice +                0x00001762                usbDescriptorConfiguration +                0x00001774                . = ALIGN (0x2) +                0x00001774                __trampolines_start = .   *(.trampolines) - .trampolines   0x00001574        0x0 linker stubs + .trampolines   0x00001774        0x0 linker stubs   *(.trampolines*) -                0x00001574                __trampolines_end = . +                0x00001774                __trampolines_end = .   *(.jumptables)   *(.jumptables*)   *(.lowtext)   *(.lowtext*) -                0x00001574                __ctors_start = . +                0x00001774                __ctors_start = .   *(.ctors) -                0x00001574                __ctors_end = . -                0x00001574                __dtors_start = . +                0x00001774                __ctors_end = . +                0x00001774                __dtors_start = .   *(.dtors) -                0x00001574                __dtors_end = . +                0x00001774                __dtors_end = .   SORT(*)(.ctors)   SORT(*)(.dtors)   *(.init0) - .init0         0x00001574        0x0 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn85.o -                0x00001574                __init + .init0         0x00001774        0x0 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn85.o +                0x00001774                __init   *(.init0)   *(.init1)   *(.init1)   *(.init2) - .init2         0x00001574        0xc /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn85.o + .init2         0x00001774        0xc /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn85.o   *(.init2)   *(.init3) - .init3         0x00001580        0x8 main.o -                0x00001580                PushMagicWord + .init3         0x00001780        0x8 main.o +                0x00001780                PushMagicWord   *(.init3)   *(.init4) - .init4         0x00001588       0x16 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_copy_data.o) -                0x00001588                __do_copy_data - .init4         0x0000159e       0x10 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_clear_bss.o) -                0x0000159e                __do_clear_bss + .init4         0x00001788       0x16 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_copy_data.o) +                0x00001788                __do_copy_data + .init4         0x0000179e       0x10 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_clear_bss.o) +                0x0000179e                __do_clear_bss   *(.init4)   *(.init5)   *(.init5) @@ -218,40 +218,40 @@ LOAD /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a   *(.init8)   *(.init8)   *(.init9) - .init9         0x000015ae        0x4 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn85.o + .init9         0x000017ae        0x4 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn85.o   *(.init9)   *(.text) - .text          0x000015b2        0x2 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn85.o -                0x000015b2                __vector_10 -                0x000015b2                __vector_12 -                0x000015b2                __bad_interrupt -                0x000015b2                __vector_6 -                0x000015b2                __vector_3 -                0x000015b2                __vector_11 -                0x000015b2                __vector_13 -                0x000015b2                __vector_7 -                0x000015b2                __vector_5 -                0x000015b2                __vector_4 -                0x000015b2                __vector_9 -                0x000015b2                __vector_8 -                0x000015b2                __vector_14 -                0x000015b2                __vector_1 - .text          0x000015b4      0x314 usbdrv/usbdrvasm.o -                0x000015b4                usbCrc16 -                0x000015de                usbCrc16Append -                0x000015e6                usbMeasureFrameLength -                0x0000160c                __vector_2 - .text          0x000018c8      0x4b8 main.o -                0x000019aa                main - .text          0x00001d80       0x74 libs-device/osccal.o -                0x00001d80                calibrateOscillator -                0x00001df4                . = ALIGN (0x2) + .text          0x000017b2        0x2 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn85.o +                0x000017b2                __vector_10 +                0x000017b2                __vector_12 +                0x000017b2                __bad_interrupt +                0x000017b2                __vector_6 +                0x000017b2                __vector_3 +                0x000017b2                __vector_11 +                0x000017b2                __vector_13 +                0x000017b2                __vector_7 +                0x000017b2                __vector_5 +                0x000017b2                __vector_4 +                0x000017b2                __vector_9 +                0x000017b2                __vector_8 +                0x000017b2                __vector_14 +                0x000017b2                __vector_1 + .text          0x000017b4      0x314 usbdrv/usbdrvasm.o +                0x000017b4                usbCrc16 +                0x000017de                usbCrc16Append +                0x000017e6                usbMeasureFrameLength +                0x0000180c                __vector_2 + .text          0x00001ac8      0x4ac main.o +                0x00001baa                main + .text          0x00001f74       0x74 libs-device/osccal.o +                0x00001f74                calibrateOscillator +                0x00001fe8                . = ALIGN (0x2)   *(.text.*) -                0x00001df4                . = ALIGN (0x2) +                0x00001fe8                . = ALIGN (0x2)   *(.fini9) - .fini9         0x00001df4        0x0 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_exit.o) -                0x00001df4                exit -                0x00001df4                _exit + .fini9         0x00001fe8        0x0 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_exit.o) +                0x00001fe8                exit +                0x00001fe8                _exit   *(.fini9)   *(.fini8)   *(.fini8) @@ -270,11 +270,11 @@ LOAD /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a   *(.fini1)   *(.fini1)   *(.fini0) - .fini0         0x00001df4        0x4 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_exit.o) + .fini0         0x00001fe8        0x4 /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a(_exit.o)   *(.fini0) -                0x00001df8                _etext = . +                0x00001fec                _etext = . -.data           0x00800060        0x8 load address 0x00001df8 +.data           0x00800060        0x8 load address 0x00001fec                  0x00800060                PROVIDE (__data_start, .)   *(.data)   .data          0x00800060        0x7 main.o @@ -306,8 +306,8 @@ LOAD /usr/local/CrossPack-AVR-20120217/lib/gcc/avr/4.5.1/avr25/libgcc.a                  0x00800086                usbConfiguration                  0x00800087                usbRxBuf                  0x0080009d                PROVIDE (__bss_end, .) -                0x00001df8                __data_load_start = LOADADDR (.data) -                0x00001e00                __data_load_end = (__data_load_start + SIZEOF (.data)) +                0x00001fec                __data_load_start = LOADADDR (.data) +                0x00001ff4                __data_load_end = (__data_load_start + SIZEOF (.data))  .noinit         0x0080009d        0x0                  0x0080009d                PROVIDE (__noinit_start, .) diff --git a/firmware/main.o b/firmware/main.oBinary files differ index fe4f2d7..93ca9ee 100644 --- a/firmware/main.o +++ b/firmware/main.o diff --git a/firmware/usbdrv/oddebug.c.lst b/firmware/usbdrv/oddebug.c.lst index 93b6f9b..956d42d 100644 --- a/firmware/usbdrv/oddebug.c.lst +++ b/firmware/usbdrv/oddebug.c.lst @@ -1,4 +1,4 @@ -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxM4tr.s 			page 1 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccderNW0.s 			page 1     1               		.file	"oddebug.c" @@ -8,16 +8,16 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxM4tr.s 			page     5               	__CCP__ = 0x34     6               	__tmp_reg__ = 0     7               	__zero_reg__ = 1 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxM4tr.s 			page 2 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccderNW0.s 			page 2  DEFINED SYMBOLS                              *ABS*:00000000 oddebug.c -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxM4tr.s:2      *ABS*:0000003f __SREG__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxM4tr.s:3      *ABS*:0000003e __SP_H__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxM4tr.s:4      *ABS*:0000003d __SP_L__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxM4tr.s:5      *ABS*:00000034 __CCP__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxM4tr.s:6      *ABS*:00000000 __tmp_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccMxM4tr.s:7      *ABS*:00000001 __zero_reg__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccderNW0.s:2      *ABS*:0000003f __SREG__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccderNW0.s:3      *ABS*:0000003e __SP_H__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccderNW0.s:4      *ABS*:0000003d __SP_L__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccderNW0.s:5      *ABS*:00000034 __CCP__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccderNW0.s:6      *ABS*:00000000 __tmp_reg__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccderNW0.s:7      *ABS*:00000001 __zero_reg__  NO UNDEFINED SYMBOLS | 
