summaryrefslogtreecommitdiffstats
path: root/firmware/main.c.lst
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/main.c.lst')
-rw-r--r--firmware/main.c.lst1808
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