diff options
Diffstat (limited to 'firmware/main.c.lst')
-rw-r--r-- | firmware/main.c.lst | 1808 |
1 files changed, 848 insertions, 960 deletions
diff --git a/firmware/main.c.lst b/firmware/main.c.lst index e442403..e376e68 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//ccKpW58U.s page 1 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s page 1 1 .file "main.c" @@ -53,989 +53,877 @@ GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s page 50 0022 3091 0000 lds r19,currentAddress+1 51 0026 2115 cp r18,__zero_reg__ 52 0028 3105 cpc r19,__zero_reg__ - 53 002a 01F0 breq .L4 - 54 002c 2430 cpi r18,4 - 55 002e 3105 cpc r19,__zero_reg__ - 56 0030 01F0 breq .L8 - 57 0032 44E1 ldi r20,hi8(5372) -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s page 2 - - - 58 0034 2C3F cpi r18,lo8(5372) - 59 0036 3407 cpc r19,r20 - 60 0038 01F4 brne .L6 - 61 003a 8091 0000 lds r24,vectorTemp - 62 003e 9091 0000 lds r25,vectorTemp+1 - 63 0042 8E57 subi r24,lo8(-(1410)) - 64 0044 9A4F sbci r25,hi8(-(1410)) - 65 0046 00C0 rjmp .L7 - 66 .L6: - 67 0048 44E1 ldi r20,hi8(5374) - 68 004a 2E3F cpi r18,lo8(5374) - 69 004c 3407 cpc r19,r20 - 70 004e 01F4 brne .L7 - 71 0050 8091 0000 lds r24,vectorTemp+2 - 72 0054 9091 0000 lds r25,vectorTemp+2+1 - 73 0058 8D57 subi r24,lo8(-(1411)) - 74 005a 9A4F sbci r25,hi8(-(1411)) - 75 005c 00C0 rjmp .L7 - 76 .L8: - 77 005e 8FE7 ldi r24,lo8(-13697) - 78 0060 9AEC ldi r25,hi8(-13697) - 79 .L7: - 80 /* #APP */ - 81 ; 160 "main.c" 1 - 82 0062 F894 cli - 83 ; 0 "" 2 - 84 /* #NOAPP */ - 85 0064 E091 0000 lds r30,currentAddress - 86 0068 F091 0000 lds r31,currentAddress+1 - 87 006c 21E0 ldi r18,lo8(1) - 88 /* #APP */ - 89 ; 161 "main.c" 1 - 90 006e 0C01 movw r0, r24 - 91 0070 2093 5700 sts 87, r18 - 92 0074 E895 spm - 93 0076 1124 clr r1 - 94 - 95 ; 0 "" 2 - 96 ; 162 "main.c" 1 - 97 0078 7894 sei - 98 ; 0 "" 2 - 99 /* #NOAPP */ - 100 007a 8091 0000 lds r24,currentAddress - 101 007e 9091 0000 lds r25,currentAddress+1 - 102 0082 0296 adiw r24,2 - 103 0084 9093 0000 sts currentAddress+1,r25 - 104 0088 8093 0000 sts currentAddress,r24 - 105 /* epilogue start */ - 106 008c 0895 ret - 107 .L4: - 108 008e 81E1 ldi r24,lo8(17) - 109 /* #APP */ - 110 ; 158 "main.c" 1 - 111 0090 8093 5700 sts 87, r24 - 112 0094 E895 spm - 113 - 114 ; 0 "" 2 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s page 3 - - - 115 /* #NOAPP */ - 116 0096 00C0 rjmp .L8 - 117 .size writeWordToPageBuffer, .-writeWordToPageBuffer - 118 .type fillFlashWithVectors, @function - 119 fillFlashWithVectors: - 120 0098 CF93 push r28 - 121 009a DF93 push r29 - 122 /* prologue: function */ - 123 /* frame size = 0 */ - 124 /* stack size = 2 */ - 125 .L__stack_usage = 2 - 126 009c C091 0000 lds r28,currentAddress - 127 00a0 D091 0000 lds r29,currentAddress+1 - 128 00a4 CF73 andi r28,lo8(63) - 129 00a6 D070 andi r29,hi8(63) - 130 .L10: - 131 00a8 8FEF ldi r24,lo8(-1) - 132 00aa 9FEF ldi r25,hi8(-1) - 133 00ac 00D0 rcall writeWordToPageBuffer - 134 00ae 2296 adiw r28,2 - 135 00b0 C034 cpi r28,64 - 136 00b2 D105 cpc r29,__zero_reg__ - 137 00b4 04F0 brlt .L10 - 138 00b6 00D0 rcall writeFlashPage - 139 /* epilogue start */ - 140 00b8 DF91 pop r29 - 141 00ba CF91 pop r28 - 142 00bc 0895 ret - 143 .size fillFlashWithVectors, .-fillFlashWithVectors - 144 .global calibrateOscillator - 145 .type calibrateOscillator, @function - 146 calibrateOscillator: - 147 00be FF92 push r15 - 148 00c0 0F93 push r16 - 149 00c2 1F93 push r17 - 150 00c4 CF93 push r28 - 151 00c6 DF93 push r29 - 152 /* prologue: function */ - 153 /* frame size = 0 */ - 154 /* stack size = 5 */ - 155 .L__stack_usage = 5 - 156 00c8 C8E0 ldi r28,lo8(8) - 157 00ca D0E0 ldi r29,hi8(8) - 158 00cc 10E0 ldi r17,lo8(0) - 159 00ce 00E8 ldi r16,lo8(-128) - 160 .L13: - 161 00d0 F12E mov r15,r17 - 162 00d2 F00E add r15,r16 - 163 00d4 F1BE out 81-32,r15 - 164 00d6 00D0 rcall usbMeasureFrameLength - 165 00d8 9C01 movw r18,r24 - 166 00da 89E0 ldi r24,hi8(2356) - 167 00dc 2433 cpi r18,lo8(2356) - 168 00de 3807 cpc r19,r24 - 169 00e0 04F4 brge .L12 - 170 00e2 1F2D mov r17,r15 - 171 .L12: -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s page 4 - - - 172 00e4 0695 lsr r16 - 173 00e6 2197 sbiw r28,1 - 174 00e8 01F4 brne .L13 - 175 00ea 812F mov r24,r17 - 176 00ec 8150 subi r24,lo8(-(-1)) - 177 00ee 81BF out 81-32,r24 - 178 00f0 E901 movw r28,r18 - 179 00f2 012F mov r16,r17 - 180 00f4 00C0 rjmp .L14 - 181 .L17: - 182 00f6 00D0 rcall usbMeasureFrameLength - 183 00f8 8453 subi r24,lo8(-(-2356)) - 184 00fa 9940 sbci r25,hi8(-(-2356)) - 185 00fc 97FF sbrs r25,7 - 186 00fe 00C0 rjmp .L15 - 187 0100 9095 com r25 - 188 0102 8195 neg r24 - 189 0104 9F4F sbci r25,lo8(-1) - 190 .L15: - 191 0106 8C17 cp r24,r28 - 192 0108 9D07 cpc r25,r29 - 193 010a 04F4 brge .L16 - 194 010c 01B7 in r16,81-32 - 195 010e EC01 movw r28,r24 - 196 .L16: - 197 0110 81B7 in r24,81-32 - 198 0112 8F5F subi r24,lo8(-(1)) - 199 0114 81BF out 81-32,r24 - 200 .L14: - 201 0116 21B7 in r18,81-32 - 202 0118 30E0 ldi r19,lo8(0) - 203 011a 812F mov r24,r17 - 204 011c 90E0 ldi r25,lo8(0) - 205 011e 0196 adiw r24,1 - 206 0120 8217 cp r24,r18 - 207 0122 9307 cpc r25,r19 - 208 0124 04F4 brge .L17 - 209 0126 01BF out 81-32,r16 - 210 /* epilogue start */ - 211 0128 DF91 pop r29 - 212 012a CF91 pop r28 - 213 012c 1F91 pop r17 - 214 012e 0F91 pop r16 - 215 0130 FF90 pop r15 - 216 0132 0895 ret - 217 .size calibrateOscillator, .-calibrateOscillator - 218 .section .init3,"ax",@progbits - 219 .global PushMagicWord - 220 .type PushMagicWord, @function - 221 PushMagicWord: - 222 /* prologue: naked */ - 223 /* frame size = 0 */ - 224 /* stack size = 0 */ - 225 .L__stack_usage = 0 + 53 002a 01F4 brne .+2 + 54 002c 00C0 rjmp .L4 + 55 002e 2430 cpi r18,4 + 56 0030 3105 cpc r19,__zero_reg__ + 57 0032 01F0 breq .L9 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s page 2 + + + 58 0034 44E1 ldi r20,hi8(5372) + 59 0036 2C3F cpi r18,lo8(5372) + 60 0038 3407 cpc r19,r20 + 61 003a 01F4 brne .L6 + 62 003c 8091 0000 lds r24,vectorTemp + 63 0040 9091 0000 lds r25,vectorTemp+1 + 64 0044 8E57 subi r24,lo8(-(1410)) + 65 0046 9A4F sbci r25,hi8(-(1410)) + 66 0048 00C0 rjmp .L7 + 67 .L6: + 68 004a 44E1 ldi r20,hi8(5374) + 69 004c 2E3F cpi r18,lo8(5374) + 70 004e 3407 cpc r19,r20 + 71 0050 01F4 brne .L7 + 72 0052 8091 0000 lds r24,vectorTemp+2 + 73 0056 9091 0000 lds r25,vectorTemp+2+1 + 74 005a 8D57 subi r24,lo8(-(1411)) + 75 005c 9A4F sbci r25,hi8(-(1411)) + 76 005e 00C0 rjmp .L7 + 77 .L9: + 78 0060 8FE7 ldi r24,lo8(-13697) + 79 0062 9AEC ldi r25,hi8(-13697) + 80 .L7: + 81 /* #APP */ + 82 ; 161 "main.c" 1 + 83 0064 F894 cli + 84 ; 0 "" 2 + 85 /* #NOAPP */ + 86 0066 E091 0000 lds r30,currentAddress + 87 006a F091 0000 lds r31,currentAddress+1 + 88 006e 21E0 ldi r18,lo8(1) + 89 /* #APP */ + 90 ; 162 "main.c" 1 + 91 0070 0C01 movw r0, r24 + 92 0072 2093 5700 sts 87, r18 + 93 0076 E895 spm + 94 0078 1124 clr r1 + 95 + 96 ; 0 "" 2 + 97 ; 163 "main.c" 1 + 98 007a 7894 sei + 99 ; 0 "" 2 + 100 /* #NOAPP */ + 101 007c 4091 0000 lds r20,currentAddress + 102 0080 5091 0000 lds r21,currentAddress+1 + 103 0084 FA01 movw r30,r20 + 104 /* #APP */ + 105 ; 168 "main.c" 1 + 106 0086 2591 lpm r18, Z+ + 107 0088 3491 lpm r19, Z + 108 + 109 ; 0 "" 2 + 110 /* #NOAPP */ + 111 008a 2823 and r18,r24 + 112 008c 3923 and r19,r25 + 113 008e 2817 cp r18,r24 + 114 0090 3907 cpc r19,r25 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s page 3 + + + 115 0092 01F0 breq .L8 + 116 0094 8091 0000 lds r24,events + 117 0098 8160 ori r24,lo8(1) + 118 009a 8093 0000 sts events,r24 + 119 .L8: + 120 009e 4E5F subi r20,lo8(-(2)) + 121 00a0 5F4F sbci r21,hi8(-(2)) + 122 00a2 5093 0000 sts currentAddress+1,r21 + 123 00a6 4093 0000 sts currentAddress,r20 + 124 /* epilogue start */ + 125 00aa 0895 ret + 126 .L4: + 127 00ac 81E1 ldi r24,lo8(17) + 128 /* #APP */ + 129 ; 159 "main.c" 1 + 130 00ae 8093 5700 sts 87, r24 + 131 00b2 E895 spm + 132 + 133 ; 0 "" 2 + 134 /* #NOAPP */ + 135 00b4 00C0 rjmp .L9 + 136 .size writeWordToPageBuffer, .-writeWordToPageBuffer + 137 .type fillFlashWithVectors, @function + 138 fillFlashWithVectors: + 139 00b6 CF93 push r28 + 140 00b8 DF93 push r29 + 141 /* prologue: function */ + 142 /* frame size = 0 */ + 143 /* stack size = 2 */ + 144 .L__stack_usage = 2 + 145 00ba C091 0000 lds r28,currentAddress + 146 00be D091 0000 lds r29,currentAddress+1 + 147 00c2 CF73 andi r28,lo8(63) + 148 00c4 D070 andi r29,hi8(63) + 149 .L11: + 150 00c6 8FEF ldi r24,lo8(-1) + 151 00c8 9FEF ldi r25,hi8(-1) + 152 00ca 00D0 rcall writeWordToPageBuffer + 153 00cc 2296 adiw r28,2 + 154 00ce C034 cpi r28,64 + 155 00d0 D105 cpc r29,__zero_reg__ + 156 00d2 04F0 brlt .L11 + 157 00d4 00D0 rcall writeFlashPage + 158 /* epilogue start */ + 159 00d6 DF91 pop r29 + 160 00d8 CF91 pop r28 + 161 00da 0895 ret + 162 .size fillFlashWithVectors, .-fillFlashWithVectors + 163 .section .init3,"ax",@progbits + 164 .global PushMagicWord + 165 .type PushMagicWord, @function + 166 PushMagicWord: + 167 /* prologue: naked */ + 168 /* frame size = 0 */ + 169 /* stack size = 0 */ + 170 .L__stack_usage = 0 + 171 /* #APP */ +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s page 4 + + + 172 ; 281 "main.c" 1 + 173 0000 00EB ldi r16, 0xB0 + 174 ; 0 "" 2 + 175 ; 282 "main.c" 1 + 176 0002 0F93 push r16 + 177 ; 0 "" 2 + 178 ; 283 "main.c" 1 + 179 0004 07E0 ldi r16, 0x07 + 180 ; 0 "" 2 + 181 ; 284 "main.c" 1 + 182 0006 0F93 push r16 + 183 ; 0 "" 2 + 184 /* epilogue start */ + 185 /* #NOAPP */ + 186 .size PushMagicWord, .-PushMagicWord + 187 .text + 188 .global main + 189 .type main, @function + 190 main: + 191 00dc DF93 push r29 + 192 00de CF93 push r28 + 193 00e0 0F92 push __tmp_reg__ + 194 00e2 CDB7 in r28,__SP_L__ + 195 00e4 DEB7 in r29,__SP_H__ + 196 /* prologue: function */ + 197 /* frame size = 1 */ + 198 /* stack size = 3 */ + 199 .L__stack_usage = 3 + 200 00e6 88E1 ldi r24,lo8(24) + 201 /* #APP */ + 202 ; 327 "main.c" 1 + 203 00e8 0FB6 in __tmp_reg__, __SREG__ + 204 00ea F894 cli + 205 00ec 81BD out 33, r24 + 206 00ee 11BC out 33, __zero_reg__ + 207 00f0 0FBE out __SREG__,__tmp_reg__ + 208 + 209 ; 0 "" 2 + 210 /* #NOAPP */ + 211 00f2 E0E0 ldi r30,lo8(0) + 212 00f4 F0E0 ldi r31,hi8(0) + 213 /* #APP */ + 214 ; 302 "main.c" 1 + 215 00f6 8591 lpm r24, Z+ + 216 00f8 9491 lpm r25, Z + 217 + 218 ; 0 "" 2 + 219 /* #NOAPP */ + 220 00fa 2AEC ldi r18,hi8(-13697) + 221 00fc 8F37 cpi r24,lo8(-13697) + 222 00fe 9207 cpc r25,r18 + 223 0100 01F4 brne .L14 + 224 0102 E4E0 ldi r30,lo8(4) + 225 0104 F0E0 ldi r31,hi8(4) 226 /* #APP */ - 227 ; 300 "main.c" 1 - 228 0000 00EB ldi r16, 0xB0 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s page 5 - - - 229 ; 0 "" 2 - 230 ; 301 "main.c" 1 - 231 0002 0F93 push r16 - 232 ; 0 "" 2 - 233 ; 302 "main.c" 1 - 234 0004 07E0 ldi r16, 0x07 - 235 ; 0 "" 2 - 236 ; 303 "main.c" 1 - 237 0006 0F93 push r16 - 238 ; 0 "" 2 - 239 /* epilogue start */ - 240 /* #NOAPP */ - 241 .size PushMagicWord, .-PushMagicWord - 242 .text - 243 .global main - 244 .type main, @function - 245 main: - 246 0134 DF93 push r29 - 247 0136 CF93 push r28 - 248 0138 0F92 push __tmp_reg__ - 249 013a CDB7 in r28,__SP_L__ - 250 013c DEB7 in r29,__SP_H__ - 251 /* prologue: function */ - 252 /* frame size = 1 */ - 253 /* stack size = 3 */ - 254 .L__stack_usage = 3 - 255 013e 88E1 ldi r24,lo8(24) - 256 /* #APP */ - 257 ; 332 "main.c" 1 - 258 0140 0FB6 in __tmp_reg__, __SREG__ - 259 0142 F894 cli - 260 0144 81BD out 33, r24 - 261 0146 11BC out 33, __zero_reg__ - 262 0148 0FBE out __SREG__,__tmp_reg__ - 263 - 264 ; 0 "" 2 - 265 /* #NOAPP */ - 266 014a 1092 0000 sts currentAddress+1,__zero_reg__ - 267 014e 1092 0000 sts currentAddress,__zero_reg__ - 268 0152 AC9A sbi 53-32,4 - 269 0154 8BB7 in r24,91-32 - 270 0156 8062 ori r24,lo8(32) - 271 0158 8BBF out 91-32,r24 - 272 015a BB9A sbi 55-32,3 - 273 015c 8FE4 ldi r24,lo8(1649999) - 274 015e 9DE2 ldi r25,hi8(1649999) - 275 0160 A9E1 ldi r26,hlo8(1649999) - 276 0162 8150 1:subi r24,1 - 277 0164 9040 sbci r25,0 - 278 0166 A040 sbci r26,0 - 279 0168 01F4 brne 1b - 280 016a 00C0 rjmp . - 281 016c 0000 nop - 282 016e BB98 cbi 55-32,3 - 283 /* #APP */ - 284 ; 314 "main.c" 1 - 285 0170 7894 sei -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s page 6 - - - 286 ; 0 "" 2 - 287 /* #NOAPP */ - 288 0172 EE24 clr r14 - 289 0174 FF24 clr r15 - 290 .L69: - 291 0176 8091 0000 lds r24,usbRxLen - 292 017a 282F mov r18,r24 - 293 017c 2350 subi r18,lo8(-(-3)) - 294 017e 27FD sbrc r18,7 - 295 0180 00C0 rjmp .L20 - 296 0182 9091 0000 lds r25,usbInputBufOffset - 297 0186 ECE0 ldi r30,lo8(12) - 298 0188 F0E0 ldi r31,hi8(12) - 299 018a E91B sub r30,r25 - 300 018c F109 sbc r31,__zero_reg__ - 301 018e E050 subi r30,lo8(-(usbRxBuf)) - 302 0190 F040 sbci r31,hi8(-(usbRxBuf)) - 303 0192 9091 0000 lds r25,usbRxToken - 304 0196 9D32 cpi r25,lo8(45) - 305 0198 01F0 breq .+2 - 306 019a 00C0 rjmp .L21 - 307 019c 2830 cpi r18,lo8(8) - 308 019e 01F0 breq .+2 - 309 01a0 00C0 rjmp .L22 - 310 01a2 83EC ldi r24,lo8(-61) - 311 01a4 8093 0000 sts usbTxBuf,r24 - 312 01a8 8AE5 ldi r24,lo8(90) - 313 01aa 8093 0000 sts usbTxLen,r24 - 314 01ae 1092 0000 sts usbMsgFlags,__zero_reg__ - 315 01b2 9081 ld r25,Z - 316 01b4 292F mov r18,r25 - 317 01b6 2076 andi r18,lo8(96) - 318 01b8 8181 ldd r24,Z+1 - 319 01ba 2223 tst r18 - 320 01bc 01F0 breq .L23 - 321 01be 8930 cpi r24,lo8(9) - 322 01c0 01F4 brne .L24 - 323 01c2 8281 ldd r24,Z+2 - 324 01c4 8230 cpi r24,lo8(2) - 325 01c6 01F4 brne .L25 - 326 01c8 81E0 ldi r24,lo8(1) - 327 01ca 8093 0000 sts state,r24 - 328 01ce 97FD sbrc r25,7 - 329 01d0 00C0 rjmp .L26 - 330 01d2 2FEF ldi r18,lo8(-1) - 331 01d4 00C0 rjmp .L27 - 332 .L25: - 333 01d6 8091 0000 lds r24,events - 334 01da 8460 ori r24,lo8(4) - 335 01dc 8093 0000 sts events,r24 - 336 01e0 00C0 rjmp .L71 - 337 .L24: - 338 01e2 8130 cpi r24,lo8(1) - 339 01e4 01F0 breq .+2 - 340 01e6 00C0 rjmp .L71 - 341 01e8 80E0 ldi r24,lo8(replyBuffer.1776) - 342 01ea 90E0 ldi r25,hi8(replyBuffer.1776) -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s page 7 - - - 343 01ec 9093 0000 sts usbMsgPtr+1,r25 - 344 01f0 8093 0000 sts usbMsgPtr,r24 - 345 01f4 27E0 ldi r18,lo8(7) - 346 01f6 00C0 rjmp .L70 - 347 .L23: - 348 01f8 9281 ldd r25,Z+2 - 349 01fa 1092 0000 sts usbTxBuf+9,__zero_reg__ - 350 01fe 8823 tst r24 - 351 0200 01F4 brne .L29 - 352 0202 1092 0000 sts usbTxBuf+10,__zero_reg__ - 353 0206 80E0 ldi r24,lo8(usbTxBuf+9) - 354 0208 90E0 ldi r25,hi8(usbTxBuf+9) - 355 020a 22E0 ldi r18,lo8(2) - 356 020c 00C0 rjmp .L30 - 357 .L29: - 358 020e 8530 cpi r24,lo8(5) - 359 0210 01F4 brne .L31 - 360 0212 9093 0000 sts usbNewDeviceAddr,r25 - 361 0216 00C0 rjmp .L78 - 362 .L31: - 363 0218 8630 cpi r24,lo8(6) - 364 021a 01F0 breq .+2 - 365 021c 00C0 rjmp .L32 - 366 021e 8381 ldd r24,Z+3 - 367 0220 8130 cpi r24,lo8(1) - 368 0222 01F4 brne .L33 - 369 0224 80E0 ldi r24,lo8(usbDescriptorDevice) - 370 0226 90E0 ldi r25,hi8(usbDescriptorDevice) - 371 0228 00C0 rjmp .L77 + 227 ; 303 "main.c" 1 + 228 0106 8591 lpm r24, Z+ +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s page 5 + + + 229 0108 9491 lpm r25, Z + 230 + 231 ; 0 "" 2 + 232 /* #NOAPP */ + 233 010a 3AEC ldi r19,hi8(-13697) + 234 010c 8F37 cpi r24,lo8(-13697) + 235 010e 9307 cpc r25,r19 + 236 0110 01F0 breq .L15 + 237 .L14: + 238 0112 00D0 rcall fillFlashWithVectors + 239 .L15: + 240 0114 1092 0000 sts currentAddress+1,__zero_reg__ + 241 0118 1092 0000 sts currentAddress,__zero_reg__ + 242 011c 87B3 in r24,55-32 + 243 011e 8360 ori r24,lo8(3) + 244 0120 87BB out 55-32,r24 + 245 0122 C09A sbi 56-32,0 + 246 0124 C198 cbi 56-32,1 + 247 0126 AC9A sbi 53-32,4 + 248 0128 8BB7 in r24,91-32 + 249 012a 8062 ori r24,lo8(32) + 250 012c 8BBF out 91-32,r24 + 251 012e BB9A sbi 55-32,3 + 252 0130 8FE4 ldi r24,lo8(1649999) + 253 0132 9DE2 ldi r25,hi8(1649999) + 254 0134 A9E1 ldi r26,hlo8(1649999) + 255 0136 8150 1:subi r24,1 + 256 0138 9040 sbci r25,0 + 257 013a A040 sbci r26,0 + 258 013c 01F4 brne 1b + 259 013e 00C0 rjmp . + 260 0140 0000 nop + 261 0142 BB98 cbi 55-32,3 + 262 /* #APP */ + 263 ; 295 "main.c" 1 + 264 0144 7894 sei + 265 ; 0 "" 2 + 266 /* #NOAPP */ + 267 0146 EE24 clr r14 + 268 0148 FF24 clr r15 + 269 .L63: + 270 014a 2091 0000 lds r18,usbRxLen + 271 014e 2350 subi r18,lo8(-(-3)) + 272 0150 27FD sbrc r18,7 + 273 0152 00C0 rjmp .L16 + 274 0154 8091 0000 lds r24,usbInputBufOffset + 275 0158 ECE0 ldi r30,lo8(12) + 276 015a F0E0 ldi r31,hi8(12) + 277 015c E81B sub r30,r24 + 278 015e F109 sbc r31,__zero_reg__ + 279 0160 E050 subi r30,lo8(-(usbRxBuf)) + 280 0162 F040 sbci r31,hi8(-(usbRxBuf)) + 281 0164 8091 0000 lds r24,usbRxToken + 282 0168 8D32 cpi r24,lo8(45) + 283 016a 01F0 breq .+2 + 284 016c 00C0 rjmp .L17 + 285 016e 2830 cpi r18,lo8(8) +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s page 6 + + + 286 0170 01F0 breq .+2 + 287 0172 00C0 rjmp .L18 + 288 0174 83EC ldi r24,lo8(-61) + 289 0176 8093 0000 sts usbTxBuf,r24 + 290 017a 8AE5 ldi r24,lo8(90) + 291 017c 8093 0000 sts usbTxLen,r24 + 292 0180 1092 0000 sts usbMsgFlags,__zero_reg__ + 293 0184 9081 ld r25,Z + 294 0186 9076 andi r25,lo8(96) + 295 0188 8181 ldd r24,Z+1 + 296 018a 9923 tst r25 + 297 018c 01F0 breq .L19 + 298 018e 8823 tst r24 + 299 0190 01F4 brne .L20 + 300 0192 80E0 ldi r24,lo8(replyBuffer.1756) + 301 0194 90E0 ldi r25,hi8(replyBuffer.1756) + 302 0196 9093 0000 sts usbMsgPtr+1,r25 + 303 019a 8093 0000 sts usbMsgPtr,r24 + 304 019e 25E0 ldi r18,lo8(5) + 305 01a0 00C0 rjmp .L25 + 306 .L20: + 307 01a2 8130 cpi r24,lo8(1) + 308 01a4 01F4 brne .L22 + 309 01a6 C098 cbi 56-32,0 + 310 01a8 8281 ldd r24,Z+2 + 311 01aa 8093 0000 sts writeLength,r24 + 312 01ae 8481 ldd r24,Z+4 + 313 01b0 9581 ldd r25,Z+5 + 314 01b2 9093 0000 sts currentAddress+1,r25 + 315 01b6 8093 0000 sts currentAddress,r24 + 316 01ba 8081 ld r24,Z + 317 01bc 87FD sbrc r24,7 + 318 01be 00C0 rjmp .L23 + 319 01c0 2FEF ldi r18,lo8(-1) + 320 01c2 00C0 rjmp .L24 + 321 .L22: + 322 01c4 8091 0000 lds r24,events + 323 01c8 8460 ori r24,lo8(4) + 324 01ca 8093 0000 sts events,r24 + 325 01ce 20E0 ldi r18,lo8(0) + 326 01d0 00C0 rjmp .L25 + 327 .L19: + 328 01d2 9281 ldd r25,Z+2 + 329 01d4 1092 0000 sts usbTxBuf+9,__zero_reg__ + 330 01d8 8823 tst r24 + 331 01da 01F4 brne .L26 + 332 01dc 1092 0000 sts usbTxBuf+10,__zero_reg__ + 333 01e0 80E0 ldi r24,lo8(usbTxBuf+9) + 334 01e2 90E0 ldi r25,hi8(usbTxBuf+9) + 335 01e4 22E0 ldi r18,lo8(2) + 336 01e6 00C0 rjmp .L27 + 337 .L26: + 338 01e8 8530 cpi r24,lo8(5) + 339 01ea 01F4 brne .L28 + 340 01ec 9093 0000 sts usbNewDeviceAddr,r25 + 341 01f0 00C0 rjmp .L70 + 342 .L28: +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s page 7 + + + 343 01f2 8630 cpi r24,lo8(6) + 344 01f4 01F4 brne .L29 + 345 01f6 8381 ldd r24,Z+3 + 346 01f8 8130 cpi r24,lo8(1) + 347 01fa 01F4 brne .L30 + 348 01fc 80E0 ldi r24,lo8(usbDescriptorDevice) + 349 01fe 90E0 ldi r25,hi8(usbDescriptorDevice) + 350 0200 00C0 rjmp .L69 + 351 .L30: + 352 0202 8230 cpi r24,lo8(2) + 353 0204 01F4 brne .L32 + 354 0206 80E0 ldi r24,lo8(usbDescriptorConfiguration) + 355 0208 90E0 ldi r25,hi8(usbDescriptorConfiguration) + 356 .L69: + 357 020a 9093 0000 sts usbMsgPtr+1,r25 + 358 020e 8093 0000 sts usbMsgPtr,r24 + 359 0212 22E1 ldi r18,lo8(18) + 360 0214 00C0 rjmp .L31 + 361 .L32: + 362 0216 8330 cpi r24,lo8(3) + 363 0218 01F4 brne .L65 + 364 021a 9923 tst r25 + 365 021c 01F4 brne .L33 + 366 021e 80E0 ldi r24,lo8(usbDescriptorString0) + 367 0220 90E0 ldi r25,hi8(usbDescriptorString0) + 368 0222 9093 0000 sts usbMsgPtr+1,r25 + 369 0226 8093 0000 sts usbMsgPtr,r24 + 370 022a 24E0 ldi r18,lo8(4) + 371 022c 00C0 rjmp .L31 372 .L33: - 373 022a 8230 cpi r24,lo8(2) - 374 022c 01F4 brne .L35 - 375 022e 80E0 ldi r24,lo8(usbDescriptorConfiguration) - 376 0230 90E0 ldi r25,hi8(usbDescriptorConfiguration) - 377 0232 9093 0000 sts usbMsgPtr+1,r25 - 378 0236 8093 0000 sts usbMsgPtr,r24 - 379 023a 22E2 ldi r18,lo8(34) - 380 023c 00C0 rjmp .L34 - 381 .L35: - 382 023e 8330 cpi r24,lo8(3) - 383 0240 01F4 brne .L36 - 384 0242 9923 tst r25 - 385 0244 01F4 brne .L37 - 386 0246 80E0 ldi r24,lo8(usbDescriptorString0) - 387 0248 90E0 ldi r25,hi8(usbDescriptorString0) - 388 024a 9093 0000 sts usbMsgPtr+1,r25 - 389 024e 8093 0000 sts usbMsgPtr,r24 - 390 0252 24E0 ldi r18,lo8(4) - 391 0254 00C0 rjmp .L34 - 392 .L37: - 393 0256 9130 cpi r25,lo8(1) - 394 0258 01F4 brne .L38 - 395 025a 80E0 ldi r24,lo8(usbDescriptorStringVendor) - 396 025c 90E0 ldi r25,hi8(usbDescriptorStringVendor) - 397 .L77: - 398 025e 9093 0000 sts usbMsgPtr+1,r25 - 399 0262 8093 0000 sts usbMsgPtr,r24 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s page 8 - - - 400 0266 22E1 ldi r18,lo8(18) - 401 0268 00C0 rjmp .L34 - 402 .L38: - 403 026a 9230 cpi r25,lo8(2) - 404 026c 01F4 brne .L73 - 405 026e 80E0 ldi r24,lo8(usbDescriptorStringDevice) - 406 0270 90E0 ldi r25,hi8(usbDescriptorStringDevice) - 407 0272 9093 0000 sts usbMsgPtr+1,r25 - 408 0276 8093 0000 sts usbMsgPtr,r24 - 409 027a 20E1 ldi r18,lo8(16) - 410 027c 00C0 rjmp .L34 - 411 .L36: - 412 027e 8132 cpi r24,lo8(33) - 413 0280 01F4 brne .L39 - 414 0282 80E0 ldi r24,lo8(usbDescriptorConfiguration+18) - 415 0284 90E0 ldi r25,hi8(usbDescriptorConfiguration+18) - 416 0286 9093 0000 sts usbMsgPtr+1,r25 - 417 028a 8093 0000 sts usbMsgPtr,r24 - 418 028e 29E0 ldi r18,lo8(9) - 419 0290 00C0 rjmp .L34 - 420 .L39: - 421 0292 8232 cpi r24,lo8(34) - 422 0294 01F4 brne .L73 - 423 0296 80E0 ldi r24,lo8(usbDescriptorHidReport) - 424 0298 90E0 ldi r25,hi8(usbDescriptorHidReport) - 425 029a 9093 0000 sts usbMsgPtr+1,r25 - 426 029e 8093 0000 sts usbMsgPtr,r24 - 427 02a2 21E2 ldi r18,lo8(33) - 428 02a4 00C0 rjmp .L34 - 429 .L73: - 430 02a6 20E0 ldi r18,lo8(0) - 431 .L34: - 432 02a8 80E4 ldi r24,lo8(64) - 433 02aa 8093 0000 sts usbMsgFlags,r24 - 434 02ae 00C0 rjmp .L70 - 435 .L32: - 436 02b0 8830 cpi r24,lo8(8) - 437 02b2 01F0 breq .L74 - 438 02b4 8930 cpi r24,lo8(9) - 439 02b6 01F4 brne .L41 - 440 02b8 9093 0000 sts usbConfiguration,r25 - 441 02bc 00C0 rjmp .L78 - 442 .L41: - 443 02be 8A30 cpi r24,lo8(10) - 444 02c0 01F0 breq .L75 - 445 .L78: - 446 02c2 80E0 ldi r24,lo8(usbTxBuf+9) - 447 02c4 90E0 ldi r25,hi8(usbTxBuf+9) - 448 02c6 20E0 ldi r18,lo8(0) - 449 02c8 00C0 rjmp .L30 - 450 .L74: - 451 02ca 80E0 ldi r24,lo8(usbConfiguration) - 452 02cc 90E0 ldi r25,hi8(usbConfiguration) - 453 02ce 00C0 rjmp .L79 - 454 .L75: - 455 02d0 80E0 ldi r24,lo8(usbTxBuf+9) - 456 02d2 90E0 ldi r25,hi8(usbTxBuf+9) -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s page 9 - - - 457 .L79: - 458 02d4 21E0 ldi r18,lo8(1) - 459 .L30: - 460 02d6 9093 0000 sts usbMsgPtr+1,r25 - 461 02da 8093 0000 sts usbMsgPtr,r24 - 462 02de 00C0 rjmp .L70 - 463 .L26: - 464 02e0 2681 ldd r18,Z+6 - 465 .L27: - 466 02e2 80E8 ldi r24,lo8(-128) - 467 02e4 8093 0000 sts usbMsgFlags,r24 - 468 02e8 00C0 rjmp .L42 - 469 .L70: - 470 02ea 8781 ldd r24,Z+7 - 471 02ec 8823 tst r24 - 472 02ee 01F4 brne .L42 - 473 02f0 8681 ldd r24,Z+6 - 474 02f2 8217 cp r24,r18 - 475 02f4 00F4 brsh .L42 - 476 02f6 282F mov r18,r24 - 477 .L42: - 478 02f8 2093 0000 sts usbMsgLen,r18 - 479 02fc 00C0 rjmp .L22 - 480 .L21: - 481 02fe 9091 0000 lds r25,usbMsgFlags - 482 0302 97FF sbrs r25,7 - 483 0304 00C0 rjmp .L22 - 484 0306 9091 0000 lds r25,state - 485 030a 9130 cpi r25,lo8(1) - 486 030c 01F4 brne .L43 - 487 030e 3181 ldd r19,Z+1 - 488 0310 9281 ldd r25,Z+2 - 489 0312 3496 adiw r30,4 - 490 0314 282F mov r18,r24 - 491 0316 2750 subi r18,lo8(-(-7)) - 492 0318 3093 0000 sts currentAddress,r19 - 493 031c 9093 0000 sts currentAddress+1,r25 - 494 0320 82E0 ldi r24,lo8(2) - 495 0322 8093 0000 sts state,r24 - 496 .L43: - 497 0326 8F01 movw r16,r30 - 498 .L48: - 499 0328 8091 0000 lds r24,currentAddress - 500 032c 9091 0000 lds r25,currentAddress+1 - 501 0330 0097 sbiw r24,0 - 502 0332 01F4 brne .L44 - 503 0334 D801 movw r26,r16 - 504 0336 8D91 ld r24,X+ - 505 0338 9C91 ld r25,X - 506 033a 1197 sbiw r26,1 - 507 033c 9093 0000 sts vectorTemp+1,r25 - 508 0340 8093 0000 sts vectorTemp,r24 - 509 0344 00C0 rjmp .L45 - 510 .L44: - 511 0346 8430 cpi r24,4 - 512 0348 9105 cpc r25,__zero_reg__ - 513 034a 01F4 brne .L46 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s page 10 - - - 514 034c F801 movw r30,r16 - 515 034e 8081 ld r24,Z - 516 0350 9181 ldd r25,Z+1 - 517 0352 9093 0000 sts vectorTemp+2+1,r25 - 518 0356 8093 0000 sts vectorTemp+2,r24 - 519 035a 00C0 rjmp .L45 - 520 .L46: - 521 035c F4E1 ldi r31,hi8(5370) - 522 035e 8A3F cpi r24,lo8(5370) - 523 0360 9F07 cpc r25,r31 - 524 0362 00F0 brlo .L45 - 525 0364 81E1 ldi r24,lo8(17) - 526 /* #APP */ - 527 ; 277 "main.c" 1 - 528 0366 8093 5700 sts 87, r24 - 529 036a E895 spm - 530 - 531 ; 0 "" 2 - 532 /* #NOAPP */ - 533 036c 00C0 rjmp .L47 - 534 .L45: - 535 036e D801 movw r26,r16 - 536 0370 8D91 ld r24,X+ - 537 0372 9D91 ld r25,X+ - 538 0374 8D01 movw r16,r26 - 539 0376 2983 std Y+1,r18 - 540 0378 00D0 rcall writeWordToPageBuffer - 541 037a 8091 0000 lds r24,currentAddress - 542 037e 9091 0000 lds r25,currentAddress+1 - 543 0382 0296 adiw r24,2 - 544 0384 9093 0000 sts currentAddress+1,r25 - 545 0388 8093 0000 sts currentAddress,r24 - 546 038c 2981 ldd r18,Y+1 - 547 038e 2250 subi r18,lo8(-(-2)) - 548 0390 01F4 brne .L48 - 549 .L47: - 550 0392 8091 0000 lds r24,currentAddress - 551 0396 9091 0000 lds r25,currentAddress+1 - 552 039a 8F73 andi r24,lo8(63) - 553 039c 9070 andi r25,hi8(63) - 554 039e 0097 sbiw r24,0 - 555 03a0 01F0 breq .L22 - 556 03a2 8091 0000 lds r24,events - 557 03a6 8260 ori r24,lo8(2) - 558 03a8 8093 0000 sts events,r24 - 559 03ac 1092 0000 sts usbMsgLen,__zero_reg__ - 560 .L22: - 561 03b0 1092 0000 sts usbRxLen,__zero_reg__ - 562 .L20: - 563 03b4 8091 0000 lds r24,usbTxLen - 564 03b8 84FF sbrs r24,4 - 565 03ba 00C0 rjmp .L49 - 566 03bc 8091 0000 lds r24,usbMsgLen - 567 03c0 8F3F cpi r24,lo8(-1) - 568 03c2 01F4 brne .+2 - 569 03c4 00C0 rjmp .L49 - 570 03c6 082F mov r16,r24 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s page 11 - - - 571 03c8 8930 cpi r24,lo8(9) - 572 03ca 00F0 brlo .L50 - 573 03cc 08E0 ldi r16,lo8(8) - 574 .L50: - 575 03ce 801B sub r24,r16 - 576 03d0 8093 0000 sts usbMsgLen,r24 - 577 03d4 8091 0000 lds r24,usbTxBuf - 578 03d8 98E8 ldi r25,lo8(-120) - 579 03da 8927 eor r24,r25 - 580 03dc 8093 0000 sts usbTxBuf,r24 - 581 03e0 0023 tst r16 - 582 03e2 01F0 breq .L51 - 583 03e4 E091 0000 lds r30,usbMsgPtr - 584 03e8 F091 0000 lds r31,usbMsgPtr+1 - 585 03ec 9091 0000 lds r25,usbMsgFlags - 586 03f0 802F mov r24,r16 - 587 03f2 8150 subi r24,lo8(-(-1)) - 588 03f4 96FF sbrs r25,6 - 589 03f6 00C0 rjmp .L52 - 590 03f8 90E0 ldi r25,lo8(0) - 591 03fa 8050 subi r24,lo8(-(usbTxBuf+2)) - 592 03fc 9040 sbci r25,hi8(-(usbTxBuf+2)) - 593 03fe A0E0 ldi r26,lo8(usbTxBuf+1) - 594 0400 B0E0 ldi r27,hi8(usbTxBuf+1) - 595 .L53: - 596 /* #APP */ - 597 ; 504 "usbdrv/usbdrv.c" 1 - 598 0402 2491 lpm r18, Z - 599 - 600 ; 0 "" 2 - 601 /* #NOAPP */ - 602 0404 2D93 st X+,r18 - 603 0406 3196 adiw r30,1 - 604 0408 A817 cp r26,r24 - 605 040a B907 cpc r27,r25 - 606 040c 01F4 brne .L53 - 607 040e 00C0 rjmp .L54 - 608 .L52: - 609 0410 9F01 movw r18,r30 - 610 0412 90E0 ldi r25,lo8(0) - 611 0414 8050 subi r24,lo8(-(usbTxBuf+2)) - 612 0416 9040 sbci r25,hi8(-(usbTxBuf+2)) - 613 0418 A0E0 ldi r26,lo8(usbTxBuf+1) - 614 041a B0E0 ldi r27,hi8(usbTxBuf+1) - 615 .L55: - 616 041c F901 movw r30,r18 - 617 041e 4191 ld r20,Z+ - 618 0420 9F01 movw r18,r30 - 619 0422 4D93 st X+,r20 - 620 0424 A817 cp r26,r24 - 621 0426 B907 cpc r27,r25 - 622 0428 01F4 brne .L55 - 623 .L54: - 624 042a F093 0000 sts usbMsgPtr+1,r31 - 625 042e E093 0000 sts usbMsgPtr,r30 - 626 .L51: - 627 0432 80E0 ldi r24,lo8(usbTxBuf+1) -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s page 12 - - - 628 0434 90E0 ldi r25,hi8(usbTxBuf+1) - 629 0436 602F mov r22,r16 - 630 0438 00D0 rcall usbCrc16Append - 631 043a 0C5F subi r16,lo8(-(4)) - 632 043c 0C30 cpi r16,lo8(12) - 633 043e 01F0 breq .L56 - 634 0440 8FEF ldi r24,lo8(-1) - 635 0442 8093 0000 sts usbMsgLen,r24 - 636 .L56: - 637 0446 0093 0000 sts usbTxLen,r16 - 638 .L49: - 639 044a 84E1 ldi r24,lo8(20) - 640 .L58: - 641 044c 96B3 in r25,54-32 - 642 044e 9871 andi r25,lo8(24) - 643 0450 01F4 brne .L57 - 644 0452 8150 subi r24,lo8(-(-1)) - 645 0454 01F4 brne .L58 - 646 0456 1092 0000 sts usbNewDeviceAddr,__zero_reg__ - 647 045a 1092 0000 sts usbDeviceAddr,__zero_reg__ - 648 .L57: - 649 045e 01E0 ldi r16,lo8(1) - 650 0460 8111 cpse r24,__zero_reg__ - 651 0462 00E0 ldi r16,lo8(0) - 652 .L59: - 653 0464 8091 0000 lds r24,wasReset.1703 - 654 0468 8017 cp r24,r16 - 655 046a 01F0 breq .L60 - 656 046c 0023 tst r16 - 657 046e 01F4 brne .L61 + 373 022e 9130 cpi r25,lo8(1) + 374 0230 01F4 brne .L34 + 375 0232 80E0 ldi r24,lo8(usbDescriptorStringVendor) + 376 0234 90E0 ldi r25,hi8(usbDescriptorStringVendor) + 377 0236 9093 0000 sts usbMsgPtr+1,r25 + 378 023a 8093 0000 sts usbMsgPtr,r24 + 379 023e 22E2 ldi r18,lo8(34) + 380 0240 00C0 rjmp .L31 + 381 .L34: + 382 0242 9230 cpi r25,lo8(2) + 383 0244 01F4 brne .L65 + 384 0246 80E0 ldi r24,lo8(usbDescriptorStringDevice) + 385 0248 90E0 ldi r25,hi8(usbDescriptorStringDevice) + 386 024a 9093 0000 sts usbMsgPtr+1,r25 + 387 024e 8093 0000 sts usbMsgPtr,r24 + 388 0252 2CE0 ldi r18,lo8(12) + 389 0254 00C0 rjmp .L31 + 390 .L65: + 391 0256 20E0 ldi r18,lo8(0) + 392 .L31: + 393 0258 80E4 ldi r24,lo8(64) + 394 025a 8093 0000 sts usbMsgFlags,r24 + 395 025e 00C0 rjmp .L25 + 396 .L29: + 397 0260 8830 cpi r24,lo8(8) + 398 0262 01F0 breq .L66 + 399 0264 8930 cpi r24,lo8(9) +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s page 8 + + + 400 0266 01F4 brne .L36 + 401 0268 9093 0000 sts usbConfiguration,r25 + 402 026c 00C0 rjmp .L70 + 403 .L36: + 404 026e 8A30 cpi r24,lo8(10) + 405 0270 01F0 breq .L67 + 406 .L70: + 407 0272 80E0 ldi r24,lo8(usbTxBuf+9) + 408 0274 90E0 ldi r25,hi8(usbTxBuf+9) + 409 0276 20E0 ldi r18,lo8(0) + 410 0278 00C0 rjmp .L27 + 411 .L66: + 412 027a 80E0 ldi r24,lo8(usbConfiguration) + 413 027c 90E0 ldi r25,hi8(usbConfiguration) + 414 027e 00C0 rjmp .L71 + 415 .L67: + 416 0280 80E0 ldi r24,lo8(usbTxBuf+9) + 417 0282 90E0 ldi r25,hi8(usbTxBuf+9) + 418 .L71: + 419 0284 21E0 ldi r18,lo8(1) + 420 .L27: + 421 0286 9093 0000 sts usbMsgPtr+1,r25 + 422 028a 8093 0000 sts usbMsgPtr,r24 + 423 028e 00C0 rjmp .L25 + 424 .L23: + 425 0290 2681 ldd r18,Z+6 + 426 .L24: + 427 0292 80E8 ldi r24,lo8(-128) + 428 0294 8093 0000 sts usbMsgFlags,r24 + 429 0298 00C0 rjmp .L37 + 430 .L25: + 431 029a 8781 ldd r24,Z+7 + 432 029c 8823 tst r24 + 433 029e 01F4 brne .L37 + 434 02a0 8681 ldd r24,Z+6 + 435 02a2 8217 cp r24,r18 + 436 02a4 00F4 brsh .L37 + 437 02a6 282F mov r18,r24 + 438 .L37: + 439 02a8 2093 0000 sts usbMsgLen,r18 + 440 02ac 00C0 rjmp .L18 + 441 .L17: + 442 02ae 8091 0000 lds r24,usbMsgFlags + 443 02b2 87FF sbrs r24,7 + 444 02b4 00C0 rjmp .L18 + 445 02b6 8091 0000 lds r24,writeLength + 446 02ba 821B sub r24,r18 + 447 02bc 8093 0000 sts writeLength,r24 + 448 02c0 8F01 movw r16,r30 + 449 .L42: + 450 02c2 8091 0000 lds r24,currentAddress + 451 02c6 9091 0000 lds r25,currentAddress+1 + 452 02ca 0097 sbiw r24,0 + 453 02cc 01F4 brne .L38 + 454 02ce D801 movw r26,r16 + 455 02d0 8D91 ld r24,X+ + 456 02d2 9C91 ld r25,X +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s page 9 + + + 457 02d4 1197 sbiw r26,1 + 458 02d6 9093 0000 sts vectorTemp+1,r25 + 459 02da 8093 0000 sts vectorTemp,r24 + 460 02de 00C0 rjmp .L39 + 461 .L38: + 462 02e0 8430 cpi r24,4 + 463 02e2 9105 cpc r25,__zero_reg__ + 464 02e4 01F4 brne .L40 + 465 02e6 F801 movw r30,r16 + 466 02e8 8081 ld r24,Z + 467 02ea 9181 ldd r25,Z+1 + 468 02ec 9093 0000 sts vectorTemp+2+1,r25 + 469 02f0 8093 0000 sts vectorTemp+2,r24 + 470 02f4 00C0 rjmp .L39 + 471 .L40: + 472 02f6 F4E1 ldi r31,hi8(5370) + 473 02f8 8A3F cpi r24,lo8(5370) + 474 02fa 9F07 cpc r25,r31 + 475 02fc 00F0 brlo .L39 + 476 02fe 81E1 ldi r24,lo8(17) + 477 /* #APP */ + 478 ; 257 "main.c" 1 + 479 0300 8093 5700 sts 87, r24 + 480 0304 E895 spm + 481 + 482 ; 0 "" 2 + 483 /* #NOAPP */ + 484 0306 00C0 rjmp .L41 + 485 .L39: + 486 0308 D801 movw r26,r16 + 487 030a 8D91 ld r24,X+ + 488 030c 9D91 ld r25,X+ + 489 030e 8D01 movw r16,r26 + 490 0310 2983 std Y+1,r18 + 491 0312 00D0 rcall writeWordToPageBuffer + 492 0314 8091 0000 lds r24,currentAddress + 493 0318 9091 0000 lds r25,currentAddress+1 + 494 031c 0296 adiw r24,2 + 495 031e 9093 0000 sts currentAddress+1,r25 + 496 0322 8093 0000 sts currentAddress,r24 + 497 0326 2981 ldd r18,Y+1 + 498 0328 2250 subi r18,lo8(-(-2)) + 499 032a 01F4 brne .L42 + 500 .L41: + 501 032c 8091 0000 lds r24,writeLength + 502 0330 8823 tst r24 + 503 0332 01F4 brne .L18 + 504 0334 8091 0000 lds r24,events + 505 0338 8260 ori r24,lo8(2) + 506 033a 8093 0000 sts events,r24 + 507 033e 1092 0000 sts usbMsgLen,__zero_reg__ + 508 .L18: + 509 0342 1092 0000 sts usbRxLen,__zero_reg__ + 510 .L16: + 511 0346 8091 0000 lds r24,usbTxLen + 512 034a 84FF sbrs r24,4 + 513 034c 00C0 rjmp .L43 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s page 10 + + + 514 034e 8091 0000 lds r24,usbMsgLen + 515 0352 8F3F cpi r24,lo8(-1) + 516 0354 01F4 brne .+2 + 517 0356 00C0 rjmp .L43 + 518 0358 082F mov r16,r24 + 519 035a 8930 cpi r24,lo8(9) + 520 035c 00F0 brlo .L44 + 521 035e 08E0 ldi r16,lo8(8) + 522 .L44: + 523 0360 801B sub r24,r16 + 524 0362 8093 0000 sts usbMsgLen,r24 + 525 0366 8091 0000 lds r24,usbTxBuf + 526 036a 98E8 ldi r25,lo8(-120) + 527 036c 8927 eor r24,r25 + 528 036e 8093 0000 sts usbTxBuf,r24 + 529 0372 0023 tst r16 + 530 0374 01F0 breq .L45 + 531 0376 E091 0000 lds r30,usbMsgPtr + 532 037a F091 0000 lds r31,usbMsgPtr+1 + 533 037e 9091 0000 lds r25,usbMsgFlags + 534 0382 802F mov r24,r16 + 535 0384 8150 subi r24,lo8(-(-1)) + 536 0386 96FF sbrs r25,6 + 537 0388 00C0 rjmp .L46 + 538 038a 90E0 ldi r25,lo8(0) + 539 038c 8050 subi r24,lo8(-(usbTxBuf+2)) + 540 038e 9040 sbci r25,hi8(-(usbTxBuf+2)) + 541 0390 A0E0 ldi r26,lo8(usbTxBuf+1) + 542 0392 B0E0 ldi r27,hi8(usbTxBuf+1) + 543 .L47: + 544 /* #APP */ + 545 ; 504 "usbdrv/usbdrv.c" 1 + 546 0394 2491 lpm r18, Z + 547 + 548 ; 0 "" 2 + 549 /* #NOAPP */ + 550 0396 2D93 st X+,r18 + 551 0398 3196 adiw r30,1 + 552 039a A817 cp r26,r24 + 553 039c B907 cpc r27,r25 + 554 039e 01F4 brne .L47 + 555 03a0 00C0 rjmp .L48 + 556 .L46: + 557 03a2 9F01 movw r18,r30 + 558 03a4 90E0 ldi r25,lo8(0) + 559 03a6 8050 subi r24,lo8(-(usbTxBuf+2)) + 560 03a8 9040 sbci r25,hi8(-(usbTxBuf+2)) + 561 03aa A0E0 ldi r26,lo8(usbTxBuf+1) + 562 03ac B0E0 ldi r27,hi8(usbTxBuf+1) + 563 .L49: + 564 03ae F901 movw r30,r18 + 565 03b0 4191 ld r20,Z+ + 566 03b2 9F01 movw r18,r30 + 567 03b4 4D93 st X+,r20 + 568 03b6 A817 cp r26,r24 + 569 03b8 B907 cpc r27,r25 + 570 03ba 01F4 brne .L49 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s page 11 + + + 571 .L48: + 572 03bc F093 0000 sts usbMsgPtr+1,r31 + 573 03c0 E093 0000 sts usbMsgPtr,r30 + 574 .L45: + 575 03c4 80E0 ldi r24,lo8(usbTxBuf+1) + 576 03c6 90E0 ldi r25,hi8(usbTxBuf+1) + 577 03c8 602F mov r22,r16 + 578 03ca 00D0 rcall usbCrc16Append + 579 03cc 0C5F subi r16,lo8(-(4)) + 580 03ce 0C30 cpi r16,lo8(12) + 581 03d0 01F0 breq .L50 + 582 03d2 8FEF ldi r24,lo8(-1) + 583 03d4 8093 0000 sts usbMsgLen,r24 + 584 .L50: + 585 03d8 0093 0000 sts usbTxLen,r16 + 586 .L43: + 587 03dc 84E1 ldi r24,lo8(20) + 588 .L52: + 589 03de 96B3 in r25,54-32 + 590 03e0 9871 andi r25,lo8(24) + 591 03e2 01F4 brne .L51 + 592 03e4 8150 subi r24,lo8(-(-1)) + 593 03e6 01F4 brne .L52 + 594 03e8 1092 0000 sts usbNewDeviceAddr,__zero_reg__ + 595 03ec 1092 0000 sts usbDeviceAddr,__zero_reg__ + 596 .L51: + 597 03f0 01E0 ldi r16,lo8(1) + 598 03f2 8111 cpse r24,__zero_reg__ + 599 03f4 00E0 ldi r16,lo8(0) + 600 .L53: + 601 03f6 8091 0000 lds r24,wasReset.1698 + 602 03fa 8017 cp r24,r16 + 603 03fc 01F0 breq .L54 + 604 03fe 0023 tst r16 + 605 0400 01F4 brne .L55 + 606 /* #APP */ + 607 ; 557 "usbdrv/usbdrv.c" 1 + 608 0402 F894 cli + 609 ; 0 "" 2 + 610 /* #NOAPP */ + 611 0404 00D0 rcall calibrateOscillator + 612 /* #APP */ + 613 ; 557 "usbdrv/usbdrv.c" 1 + 614 0406 7894 sei + 615 ; 0 "" 2 + 616 /* #NOAPP */ + 617 .L55: + 618 0408 0093 0000 sts wasReset.1698,r16 + 619 .L54: + 620 040c 8CE9 ldi r24,lo8(412) + 621 040e 91E0 ldi r25,hi8(412) + 622 0410 0197 1:sbiw r24,1 + 623 0412 01F4 brne 1b + 624 0414 0000 nop + 625 0416 8091 0000 lds r24,events + 626 041a 8823 tst r24 + 627 041c 01F4 brne .L68 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s page 12 + + + 628 041e 0894 sec + 629 0420 E11C adc r14,__zero_reg__ + 630 0422 F11C adc r15,__zero_reg__ + 631 0424 00C0 rjmp .L56 + 632 .L68: + 633 0426 EE24 clr r14 + 634 0428 FF24 clr r15 + 635 .L56: + 636 042a 80FF sbrs r24,0 + 637 042c 00C0 rjmp .L57 + 638 /* #APP */ + 639 ; 117 "main.c" 1 + 640 042e F894 cli + 641 ; 0 "" 2 + 642 /* #NOAPP */ + 643 0430 E091 0000 lds r30,currentAddress + 644 0434 F091 0000 lds r31,currentAddress+1 + 645 0438 3297 sbiw r30,2 + 646 043a 83E0 ldi r24,lo8(3) + 647 /* #APP */ + 648 ; 118 "main.c" 1 + 649 043c 8093 5700 sts 87, r24 + 650 0440 E895 spm + 651 + 652 ; 0 "" 2 + 653 /* #NOAPP */ + 654 .L58: + 655 0442 07B6 in __tmp_reg__,87-32 + 656 0444 00FC sbrc __tmp_reg__,0 + 657 0446 00C0 rjmp .L58 658 /* #APP */ - 659 ; 557 "usbdrv/usbdrv.c" 1 - 660 0470 F894 cli + 659 ; 120 "main.c" 1 + 660 0448 7894 sei 661 ; 0 "" 2 662 /* #NOAPP */ - 663 0472 00D0 rcall calibrateOscillator - 664 /* #APP */ - 665 ; 557 "usbdrv/usbdrv.c" 1 - 666 0474 7894 sei - 667 ; 0 "" 2 - 668 /* #NOAPP */ - 669 .L61: - 670 0476 0093 0000 sts wasReset.1703,r16 - 671 .L60: - 672 047a 8CE9 ldi r24,lo8(412) - 673 047c 91E0 ldi r25,hi8(412) - 674 047e 0197 1:sbiw r24,1 - 675 0480 01F4 brne 1b - 676 0482 0000 nop - 677 0484 8091 0000 lds r24,events - 678 0488 8823 tst r24 - 679 048a 01F4 brne .L76 - 680 048c 0894 sec - 681 048e E11C adc r14,__zero_reg__ - 682 0490 F11C adc r15,__zero_reg__ - 683 0492 00C0 rjmp .L62 - 684 .L76: -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s page 13 - - - 685 0494 EE24 clr r14 - 686 0496 FF24 clr r15 - 687 .L62: - 688 0498 80FF sbrs r24,0 - 689 049a 00C0 rjmp .L63 - 690 /* #APP */ - 691 ; 117 "main.c" 1 - 692 049c F894 cli - 693 ; 0 "" 2 - 694 /* #NOAPP */ - 695 049e E091 0000 lds r30,currentAddress - 696 04a2 F091 0000 lds r31,currentAddress+1 - 697 04a6 3297 sbiw r30,2 - 698 04a8 83E0 ldi r24,lo8(3) + 663 .L57: + 664 044a 8091 0000 lds r24,events + 665 044e 81FF sbrs r24,1 + 666 0450 00C0 rjmp .L59 + 667 0452 A9E3 ldi r26,lo8(8249) + 668 0454 B0E2 ldi r27,hi8(8249) + 669 0456 1197 1:sbiw r26,1 + 670 0458 01F4 brne 1b + 671 045a 00C0 rjmp . + 672 045c 0000 nop + 673 045e 8091 0000 lds r24,currentAddress + 674 0462 9091 0000 lds r25,currentAddress+1 + 675 0466 8F73 andi r24,lo8(63) + 676 0468 9070 andi r25,hi8(63) + 677 046a 0097 sbiw r24,0 + 678 046c 01F0 breq .L60 + 679 046e 00D0 rcall fillFlashWithVectors + 680 0470 00C0 rjmp .L59 + 681 .L60: + 682 0472 00D0 rcall writeFlashPage + 683 .L59: + 684 0474 8091 0000 lds r24,events +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s page 13 + + + 685 0478 82FD sbrc r24,2 + 686 047a 00C0 rjmp .L61 + 687 047c B1E5 ldi r27,lo8(-15535) + 688 047e EB16 cp r14,r27 + 689 0480 B3EC ldi r27,hi8(-15535) + 690 0482 FB06 cpc r15,r27 + 691 0484 00F0 brlo .L62 + 692 .L61: + 693 0486 E1E2 ldi r30,lo8(-24287) + 694 0488 F1EA ldi r31,hi8(-24287) + 695 048a 3197 1:sbiw r30,1 + 696 048c 01F4 brne 1b + 697 048e 00C0 rjmp . + 698 0490 0000 nop 699 /* #APP */ - 700 ; 118 "main.c" 1 - 701 04aa 8093 5700 sts 87, r24 - 702 04ae E895 spm - 703 - 704 ; 0 "" 2 - 705 /* #NOAPP */ - 706 .L64: - 707 04b0 07B6 in __tmp_reg__,87-32 - 708 04b2 00FC sbrc __tmp_reg__,0 - 709 04b4 00C0 rjmp .L64 - 710 /* #APP */ - 711 ; 120 "main.c" 1 - 712 04b6 7894 sei - 713 ; 0 "" 2 - 714 /* #NOAPP */ - 715 .L63: - 716 04b8 8091 0000 lds r24,events - 717 04bc 81FF sbrs r24,1 - 718 04be 00C0 rjmp .L65 - 719 04c0 A9E3 ldi r26,lo8(8249) - 720 04c2 B0E2 ldi r27,hi8(8249) - 721 04c4 1197 1:sbiw r26,1 - 722 04c6 01F4 brne 1b - 723 04c8 00C0 rjmp . - 724 04ca 0000 nop - 725 04cc 8091 0000 lds r24,currentAddress - 726 04d0 9091 0000 lds r25,currentAddress+1 - 727 04d4 8F73 andi r24,lo8(63) - 728 04d6 9070 andi r25,hi8(63) - 729 04d8 0097 sbiw r24,0 - 730 04da 01F0 breq .L66 - 731 04dc 00D0 rcall fillFlashWithVectors - 732 04de 00C0 rjmp .L65 - 733 .L66: - 734 04e0 00D0 rcall writeFlashPage - 735 .L65: - 736 04e2 8091 0000 lds r24,events - 737 04e6 82FD sbrc r24,2 - 738 04e8 00C0 rjmp .L67 - 739 04ea B1E5 ldi r27,lo8(-15535) - 740 04ec EB16 cp r14,r27 - 741 04ee B3EC ldi r27,hi8(-15535) -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s page 14 - - - 742 04f0 FB06 cpc r15,r27 - 743 04f2 00F0 brlo .L68 - 744 .L67: - 745 04f4 E1E2 ldi r30,lo8(-24287) - 746 04f6 F1EA ldi r31,hi8(-24287) - 747 04f8 3197 1:sbiw r30,1 - 748 04fa 01F4 brne 1b - 749 04fc 00C0 rjmp . - 750 04fe 0000 nop - 751 /* #APP */ - 752 ; 189 "main.c" 1 - 753 0500 F894 cli - 754 ; 0 "" 2 - 755 /* #NOAPP */ - 756 0502 1BBE out 91-32,__zero_reg__ - 757 0504 15BA out 53-32,__zero_reg__ - 758 0506 1092 5F02 sts 607,__zero_reg__ - 759 050a 1092 5E02 sts 606,__zero_reg__ - 760 /* #APP */ - 761 ; 206 "main.c" 1 - 762 050e 00C0 rjmp __vectors - 4 - 763 ; 0 "" 2 - 764 /* #NOAPP */ - 765 .L68: - 766 0510 1092 0000 sts events,__zero_reg__ - 767 0514 00C0 rjmp .L69 - 768 .L71: - 769 0516 20E0 ldi r18,lo8(0) - 770 0518 00C0 rjmp .L70 - 771 .size main, .-main - 772 .global usbTxLen - 773 .data - 774 .type usbTxLen, @object - 775 .size usbTxLen, 1 - 776 usbTxLen: - 777 0000 5A .byte 90 - 778 .global usbDescriptorString0 - 779 .section .progmem.data,"a",@progbits - 780 .type usbDescriptorString0, @object - 781 .size usbDescriptorString0, 4 - 782 usbDescriptorString0: - 783 0000 04 .byte 4 - 784 0001 03 .byte 3 - 785 0002 09 .byte 9 - 786 0003 04 .byte 4 - 787 .global usbDescriptorStringVendor - 788 .type usbDescriptorStringVendor, @object - 789 .size usbDescriptorStringVendor, 18 - 790 usbDescriptorStringVendor: - 791 0004 1203 .word 786 - 792 0006 6F00 .word 111 - 793 0008 6200 .word 98 - 794 000a 6400 .word 100 - 795 000c 6500 .word 101 - 796 000e 7600 .word 118 - 797 0010 2E00 .word 46 - 798 0012 6100 .word 97 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s page 15 - - - 799 0014 7400 .word 116 - 800 .global usbDescriptorStringDevice - 801 .type usbDescriptorStringDevice, @object - 802 .size usbDescriptorStringDevice, 16 - 803 usbDescriptorStringDevice: - 804 0016 1003 .word 784 - 805 0018 4800 .word 72 - 806 001a 4900 .word 73 - 807 001c 4400 .word 68 - 808 001e 4200 .word 66 - 809 0020 6F00 .word 111 - 810 0022 6F00 .word 111 - 811 0024 7400 .word 116 - 812 .global usbDescriptorDevice - 813 .type usbDescriptorDevice, @object - 814 .size usbDescriptorDevice, 18 - 815 usbDescriptorDevice: - 816 0026 12 .byte 18 - 817 0027 01 .byte 1 - 818 0028 10 .byte 16 - 819 0029 01 .byte 1 - 820 002a 00 .byte 0 - 821 002b 00 .byte 0 - 822 002c 00 .byte 0 - 823 002d 08 .byte 8 - 824 002e C0 .byte -64 - 825 002f 16 .byte 22 - 826 0030 DF .byte -33 - 827 0031 05 .byte 5 - 828 0032 00 .byte 0 - 829 0033 01 .byte 1 - 830 0034 01 .byte 1 - 831 0035 02 .byte 2 - 832 0036 00 .byte 0 - 833 0037 01 .byte 1 - 834 .global usbDescriptorConfiguration - 835 .type usbDescriptorConfiguration, @object - 836 .size usbDescriptorConfiguration, 34 - 837 usbDescriptorConfiguration: - 838 0038 09 .byte 9 - 839 0039 02 .byte 2 - 840 003a 22 .byte 34 - 841 003b 00 .byte 0 - 842 003c 01 .byte 1 - 843 003d 01 .byte 1 - 844 003e 00 .byte 0 - 845 003f 80 .byte -128 - 846 0040 32 .byte 50 - 847 0041 09 .byte 9 - 848 0042 04 .byte 4 - 849 0043 00 .byte 0 - 850 0044 00 .byte 0 - 851 0045 01 .byte 1 - 852 0046 03 .byte 3 - 853 0047 00 .byte 0 - 854 0048 00 .byte 0 - 855 0049 00 .byte 0 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s page 16 - - - 856 004a 09 .byte 9 - 857 004b 21 .byte 33 - 858 004c 01 .byte 1 - 859 004d 01 .byte 1 - 860 004e 00 .byte 0 - 861 004f 01 .byte 1 - 862 0050 22 .byte 34 - 863 0051 21 .byte 33 - 864 0052 00 .byte 0 - 865 0053 07 .byte 7 - 866 0054 05 .byte 5 - 867 0055 81 .byte -127 - 868 0056 03 .byte 3 - 869 0057 08 .byte 8 - 870 0058 00 .byte 0 - 871 0059 C8 .byte -56 - 872 .global usbDescriptorHidReport - 873 .type usbDescriptorHidReport, @object - 874 .size usbDescriptorHidReport, 33 - 875 usbDescriptorHidReport: - 876 005a 06 .byte 6 - 877 005b 00 .byte 0 - 878 005c FF .byte -1 - 879 005d 09 .byte 9 - 880 005e 01 .byte 1 - 881 005f A1 .byte -95 - 882 0060 01 .byte 1 - 883 0061 15 .byte 21 - 884 0062 00 .byte 0 - 885 0063 26 .byte 38 - 886 0064 FF .byte -1 - 887 0065 00 .byte 0 - 888 0066 75 .byte 117 - 889 0067 08 .byte 8 - 890 0068 85 .byte -123 - 891 0069 01 .byte 1 - 892 006a 95 .byte -107 - 893 006b 06 .byte 6 - 894 006c 09 .byte 9 - 895 006d 00 .byte 0 - 896 006e B2 .byte -78 - 897 006f 02 .byte 2 - 898 0070 01 .byte 1 - 899 0071 85 .byte -123 - 900 0072 02 .byte 2 - 901 0073 95 .byte -107 - 902 0074 83 .byte -125 - 903 0075 09 .byte 9 - 904 0076 00 .byte 0 - 905 0077 B2 .byte -78 - 906 0078 02 .byte 2 - 907 0079 01 .byte 1 - 908 007a C0 .byte -64 - 909 .comm usbMsgPtr,2,1 - 910 .comm usbRxToken,1,1 - 911 .comm usbConfiguration,1,1 - 912 .comm usbRxBuf,22,1 -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s page 17 - - - 913 .comm usbInputBufOffset,1,1 - 914 .comm usbDeviceAddr,1,1 - 915 .comm usbNewDeviceAddr,1,1 - 916 .comm usbRxLen,1,1 - 917 .comm usbCurrentTok,1,1 - 918 .comm usbTxBuf,11,1 - 919 .lcomm currentAddress,2 - 920 .lcomm events,1 - 921 .data - 922 .type usbMsgLen, @object - 923 .size usbMsgLen, 1 - 924 usbMsgLen: - 925 0001 FF .byte -1 - 926 .lcomm usbMsgFlags,1 - 927 .lcomm state,1 - 928 .type replyBuffer.1776, @object - 929 .size replyBuffer.1776, 7 - 930 replyBuffer.1776: - 931 0002 01 .byte 1 - 932 0003 40 .byte 64 - 933 0004 00 .byte 0 - 934 0005 FA .byte -6 - 935 0006 14 .byte 20 - 936 0007 00 .byte 0 - 937 0008 00 .byte 0 - 938 .lcomm vectorTemp,4 - 939 .lcomm wasReset.1703,1 - 940 .global __do_copy_data - 941 .global __do_clear_bss -GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s page 18 + 700 ; 190 "main.c" 1 + 701 0492 F894 cli + 702 ; 0 "" 2 + 703 /* #NOAPP */ + 704 0494 1BBE out 91-32,__zero_reg__ + 705 0496 15BA out 53-32,__zero_reg__ + 706 0498 1092 5F02 sts 607,__zero_reg__ + 707 049c 1092 5E02 sts 606,__zero_reg__ + 708 /* #APP */ + 709 ; 206 "main.c" 1 + 710 04a0 00C0 rjmp __vectors - 4 + 711 ; 0 "" 2 + 712 /* #NOAPP */ + 713 .L62: + 714 04a2 1092 0000 sts events,__zero_reg__ + 715 04a6 00C0 rjmp .L63 + 716 .size main, .-main + 717 .global usbTxLen + 718 .data + 719 .type usbTxLen, @object + 720 .size usbTxLen, 1 + 721 usbTxLen: + 722 0000 5A .byte 90 + 723 .global usbDescriptorString0 + 724 .section .progmem.data,"a",@progbits + 725 .type usbDescriptorString0, @object + 726 .size usbDescriptorString0, 4 + 727 usbDescriptorString0: + 728 0000 04 .byte 4 + 729 0001 03 .byte 3 + 730 0002 09 .byte 9 + 731 0003 04 .byte 4 + 732 .global usbDescriptorStringVendor + 733 .type usbDescriptorStringVendor, @object + 734 .size usbDescriptorStringVendor, 34 + 735 usbDescriptorStringVendor: + 736 0004 2203 .word 802 + 737 0006 6300 .word 99 + 738 0008 7200 .word 114 + 739 000a 6500 .word 101 + 740 000c 6100 .word 97 + 741 000e 7400 .word 116 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s page 14 + + + 742 0010 6900 .word 105 + 743 0012 7600 .word 118 + 744 0014 6500 .word 101 + 745 0016 7000 .word 112 + 746 0018 6F00 .word 111 + 747 001a 6E00 .word 110 + 748 001c 7900 .word 121 + 749 001e 2E00 .word 46 + 750 0020 6300 .word 99 + 751 0022 6F00 .word 111 + 752 0024 6D00 .word 109 + 753 .global usbDescriptorStringDevice + 754 .type usbDescriptorStringDevice, @object + 755 .size usbDescriptorStringDevice, 12 + 756 usbDescriptorStringDevice: + 757 0026 0C03 .word 780 + 758 0028 7500 .word 117 + 759 002a 4200 .word 66 + 760 002c 6F00 .word 111 + 761 002e 6F00 .word 111 + 762 0030 7400 .word 116 + 763 .global usbDescriptorDevice + 764 .type usbDescriptorDevice, @object + 765 .size usbDescriptorDevice, 18 + 766 usbDescriptorDevice: + 767 0032 12 .byte 18 + 768 0033 01 .byte 1 + 769 0034 10 .byte 16 + 770 0035 01 .byte 1 + 771 0036 FF .byte -1 + 772 0037 00 .byte 0 + 773 0038 00 .byte 0 + 774 0039 08 .byte 8 + 775 003a C0 .byte -64 + 776 003b 16 .byte 22 + 777 003c DC .byte -36 + 778 003d 05 .byte 5 + 779 003e 01 .byte 1 + 780 003f 00 .byte 0 + 781 0040 01 .byte 1 + 782 0041 02 .byte 2 + 783 0042 00 .byte 0 + 784 0043 01 .byte 1 + 785 .global usbDescriptorConfiguration + 786 .type usbDescriptorConfiguration, @object + 787 .size usbDescriptorConfiguration, 18 + 788 usbDescriptorConfiguration: + 789 0044 09 .byte 9 + 790 0045 02 .byte 2 + 791 0046 12 .byte 18 + 792 0047 00 .byte 0 + 793 0048 01 .byte 1 + 794 0049 01 .byte 1 + 795 004a 00 .byte 0 + 796 004b 80 .byte -128 + 797 004c 32 .byte 50 + 798 004d 09 .byte 9 +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s page 15 + + + 799 004e 04 .byte 4 + 800 004f 00 .byte 0 + 801 0050 00 .byte 0 + 802 0051 00 .byte 0 + 803 0052 00 .byte 0 + 804 0053 00 .byte 0 + 805 0054 00 .byte 0 + 806 0055 00 .byte 0 + 807 .comm usbMsgPtr,2,1 + 808 .comm usbRxToken,1,1 + 809 .comm usbConfiguration,1,1 + 810 .comm usbRxBuf,22,1 + 811 .comm usbInputBufOffset,1,1 + 812 .comm usbDeviceAddr,1,1 + 813 .comm usbNewDeviceAddr,1,1 + 814 .comm usbRxLen,1,1 + 815 .comm usbCurrentTok,1,1 + 816 .comm usbTxBuf,11,1 + 817 .lcomm currentAddress,2 + 818 .lcomm events,1 + 819 .lcomm vectorTemp,4 + 820 .data + 821 .type usbMsgLen, @object + 822 .size usbMsgLen, 1 + 823 usbMsgLen: + 824 0001 FF .byte -1 + 825 .lcomm usbMsgFlags,1 + 826 .lcomm writeLength,1 + 827 .type replyBuffer.1756, @object + 828 .size replyBuffer.1756, 5 + 829 replyBuffer.1756: + 830 0002 01 .byte 1 + 831 0003 14 .byte 20 + 832 0004 FA .byte -6 + 833 0005 40 .byte 64 + 834 0006 14 .byte 20 + 835 .lcomm wasReset.1698,1 + 836 .global __do_copy_data + 837 .global __do_clear_bss +GAS LISTING /var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s page 16 DEFINED SYMBOLS *ABS*:00000000 main.c -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:2 *ABS*:0000003f __SREG__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:3 *ABS*:0000003e __SP_H__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:4 *ABS*:0000003d __SP_L__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:5 *ABS*:00000034 __CCP__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:6 *ABS*:00000000 __tmp_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:7 *ABS*:00000001 __zero_reg__ -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:10 .text:00000000 writeFlashPage +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:2 *ABS*:0000003f __SREG__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:3 *ABS*:0000003e __SP_H__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:4 *ABS*:0000003d __SP_L__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:5 *ABS*:00000034 __CCP__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:6 *ABS*:00000000 __tmp_reg__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:7 *ABS*:00000001 __zero_reg__ +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:10 .text:00000000 writeFlashPage .bss:00000000 currentAddress -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:44 .text:0000001e writeWordToPageBuffer -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:927 .bss:00000005 vectorTemp -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:119 .text:00000098 fillFlashWithVectors -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:146 .text:000000be calibrateOscillator -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:221 .init3:00000000 PushMagicWord -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:245 .text:00000134 main +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:44 .text:0000001e writeWordToPageBuffer +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:818 .bss:00000003 vectorTemp +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:817 .bss:00000002 events +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:138 .text:000000b6 fillFlashWithVectors +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:166 .init3:00000000 PushMagicWord +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:190 .text:000000dc main *COM*:00000001 usbRxLen *COM*:00000001 usbInputBufOffset *COM*:00000016 usbRxBuf *COM*:00000001 usbRxToken *COM*:0000000b usbTxBuf -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:776 .data:00000000 usbTxLen -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:920 .bss:00000003 usbMsgFlags -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:926 .bss:00000004 state -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:919 .bss:00000002 events -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:930 .data:00000002 replyBuffer.1776 +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:721 .data:00000000 usbTxLen +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:819 .bss:00000007 usbMsgFlags +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:829 .data:00000002 replyBuffer.1756 *COM*:00000002 usbMsgPtr +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:825 .bss:00000008 writeLength *COM*:00000001 usbNewDeviceAddr -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:815 .progmem.data:00000026 usbDescriptorDevice -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:837 .progmem.data:00000038 usbDescriptorConfiguration -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:782 .progmem.data:00000000 usbDescriptorString0 -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:790 .progmem.data:00000004 usbDescriptorStringVendor -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:803 .progmem.data:00000016 usbDescriptorStringDevice -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:875 .progmem.data:0000005a usbDescriptorHidReport +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:766 .progmem.data:00000032 usbDescriptorDevice +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:788 .progmem.data:00000044 usbDescriptorConfiguration +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:727 .progmem.data:00000000 usbDescriptorString0 +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:735 .progmem.data:00000004 usbDescriptorStringVendor +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:756 .progmem.data:00000026 usbDescriptorStringDevice *COM*:00000001 usbConfiguration -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:924 .data:00000001 usbMsgLen +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:823 .data:00000001 usbMsgLen *COM*:00000001 usbDeviceAddr -/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//ccKpW58U.s:938 .bss:00000009 wasReset.1703 +/var/folders/nd/dq8cd7_x03d_z3x899kwf__80000gn/T//cc8OMEVS.s:826 .bss:00000009 wasReset.1698 *COM*:00000001 usbCurrentTok UNDEFINED SYMBOLS -usbMeasureFrameLength usbCrc16Append +calibrateOscillator __vectors __do_copy_data __do_clear_bss |