📄 main.lis
字号:
01E6 20920900 sts _msg_buffer+1,R2
01EA .dbline 193
01EA ; msg_buffer[2] = 8;
01EA 88E0 ldi R24,8
01EC 80930A00 sts _msg_buffer+2,R24
01F0 .dbline 194
01F0 ; memcpy(msg_buffer+3,"AVRISP_2",8);
01F0 9983 std y+1,R25
01F2 8883 std y+0,R24
01F4 20E0 ldi R18,<L45
01F6 30E0 ldi R19,>L45
01F8 00E0 ldi R16,<_msg_buffer+3
01FA 10E0 ldi R17,>_msg_buffer+3
01FC 00D0 rcall _memcpy
01FE .dbline 195
01FE ; }
01FE 1EC7 rjmp L41
0200 L40:
0200 .dbline 199
0200 ; //////////////////////////////////////
0200 ; //CMD_SET_PARAMETER
0200 ; //////////////////////////////////////
0200 ; else if(cmd==CMD_SET_PARAMETER)
0200 8C85 ldd R24,y+12
0202 8230 cpi R24,2
0204 09F0 breq X7
0206 65C0 rjmp L46
0208 X7:
0208 .dbline 200
0208 ; {
0208 .dbline 201
0208 ; switch(msg_buffer[1])
0208 A0900900 lds R10,_msg_buffer+1
020C BB24 clr R11
020E C501 movw R24,R10
0210 8839 cpi R24,152
0212 E0E0 ldi R30,0
0214 9E07 cpc R25,R30
0216 89F0 breq L52
0218 8839 cpi R24,152
021A E0E0 ldi R30,0
021C 9E07 cpc R25,R30
021E 0CF4 brge X8
0220 4EC0 rjmp L48
0222 X8:
0222 L77:
0222 C501 movw R24,R10
0224 8E39 cpi R24,158
0226 E0E0 ldi R30,0
0228 9E07 cpc R25,R30
022A 09F4 brne X9
022C 3FC0 rjmp L73
022E X9:
022E 8F39 cpi R24,159
0230 E0E0 ldi R30,0
0232 9E07 cpc R25,R30
0234 09F4 brne X10
0236 3FC0 rjmp L75
0238 X10:
0238 42C0 rjmp L48
023A X3:
023A .dbline 202
023A ; {
023A L52:
023A .dbline 204
023A ; case PARAM_SCK_DURATION:
023A ; clock_speed=SPI_SPEED_2MHZ;
023A 81E0 ldi R24,1
023C 80930700 sts _clock_speed,R24
0240 .dbline 205
0240 ; if((msg_buffer[2]) >= 1 ) clock_speed=SPI_SPEED_2MHZ;
0240 80910A00 lds R24,_msg_buffer+2
0244 8130 cpi R24,1
0246 18F0 brlo L53
0248 .dbline 205
0248 81E0 ldi R24,1
024A 80930700 sts _clock_speed,R24
024E L53:
024E .dbline 206
024E ; if((msg_buffer[2]) >= 2 ) clock_speed=SPI_SPEED_1MHZ;
024E 80910A00 lds R24,_msg_buffer+2
0252 8230 cpi R24,2
0254 18F0 brlo L56
0256 .dbline 206
0256 82E0 ldi R24,2
0258 80930700 sts _clock_speed,R24
025C L56:
025C .dbline 207
025C ; if((msg_buffer[2]) >= 4 ) clock_speed=SPI_SPEED_500KHZ;
025C 80910A00 lds R24,_msg_buffer+2
0260 8430 cpi R24,4
0262 18F0 brlo L59
0264 .dbline 207
0264 83E0 ldi R24,3
0266 80930700 sts _clock_speed,R24
026A L59:
026A .dbline 208
026A ; if((msg_buffer[2]) >= 8 ) clock_speed=SPI_SPEED_250KHZ;
026A 80910A00 lds R24,_msg_buffer+2
026E 8830 cpi R24,8
0270 18F0 brlo L62
0272 .dbline 208
0272 84E0 ldi R24,4
0274 80930700 sts _clock_speed,R24
0278 L62:
0278 .dbline 209
0278 ; if((msg_buffer[2]) >= 16 ) clock_speed=SPI_SPEED_125KHZ;
0278 80910A00 lds R24,_msg_buffer+2
027C 8031 cpi R24,16
027E 18F0 brlo L65
0280 .dbline 209
0280 85E0 ldi R24,5
0282 80930700 sts _clock_speed,R24
0286 L65:
0286 .dbline 210
0286 ; if((msg_buffer[2]) >= 32 ) clock_speed=SPI_SPEED_62KHZ;
0286 80910A00 lds R24,_msg_buffer+2
028A 8032 cpi R24,32
028C 18F0 brlo L68
028E .dbline 210
028E 86E0 ldi R24,6
0290 80930700 sts _clock_speed,R24
0294 L68:
0294 .dbline 212
0294 ; //if(eeprom_read_byte(&eeprom_sck_period)!=clock_speed) eeprom_write_byte(&eeprom_sck_period,clock_speed);
0294 ; if (eeprom_sck_period != clock_speed) {
0294 20900700 lds R2,_clock_speed
0298 30900000 lds R3,_eeprom_sck_period
029C 3214 cp R3,R2
029E 11F0 breq L71
02A0 .dbline 212
02A0 .dbline 213
02A0 ; eeprom_sck_period = clock_speed;
02A0 20920000 sts _eeprom_sck_period,R2
02A4 .dbline 214
02A4 ; }
02A4 L71:
02A4 .dbline 215
02A4 ; spi_set_speed(clock_speed);
02A4 00910700 lds R16,_clock_speed
02A8 00D0 rcall _spi_set_speed
02AA .dbline 216
02AA ; break;
02AA 09C0 rjmp L49
02AC L73:
02AC .dbline 218
02AC ; case PARAM_RESET_POLARITY:
02AC ; reset_polarity = msg_buffer[2];
02AC 20900A00 lds R2,_msg_buffer+2
02B0 20920600 sts _reset_polarity,R2
02B4 .dbline 219
02B4 ; break;
02B4 04C0 rjmp L49
02B6 L75:
02B6 .dbline 221
02B6 ; case PARAM_CONTROLLER_INIT:
02B6 ; param_controller_init = msg_buffer[2];
02B6 20900A00 lds R2,_msg_buffer+2
02BA 20920500 sts _param_controller_init,R2
02BE .dbline 222
02BE ; break;
02BE L48:
02BE L49:
02BE .dbline 225
02BE ; }
02BE ;
02BE ; num_bytes = 2;
02BE 82E0 ldi R24,2
02C0 90E0 ldi R25,0
02C2 9B87 std y+11,R25
02C4 8A87 std y+10,R24
02C6 .dbline 226
02C6 ; msg_buffer[0] = CMD_SET_PARAMETER;
02C6 80930800 sts _msg_buffer,R24
02CA .dbline 227
02CA ; msg_buffer[1] = STATUS_CMD_OK;
02CA 2224 clr R2
02CC 20920900 sts _msg_buffer+1,R2
02D0 .dbline 228
02D0 ; }
02D0 B5C6 rjmp L47
02D2 L46:
02D2 .dbline 232
02D2 ; //////////////////////////////////////
02D2 ; //CMD_GET_PARAMETER
02D2 ; //////////////////////////////////////
02D2 ; else if(cmd==CMD_GET_PARAMETER)
02D2 8C85 ldd R24,y+12
02D4 8330 cpi R24,3
02D6 09F0 breq X11
02D8 58C0 rjmp L79
02DA X11:
02DA .dbline 233
02DA ; {
02DA .dbline 234
02DA ; switch(msg_buffer[1])
02DA A0900900 lds R10,_msg_buffer+1
02DE BB24 clr R11
02E0 C501 movw R24,R10
02E2 8039 cpi R24,144
02E4 E0E0 ldi R30,0
02E6 9E07 cpc R25,R30
02E8 79F1 breq L87
02EA 8139 cpi R24,145
02EC E0E0 ldi R30,0
02EE 9E07 cpc R25,R30
02F0 71F1 breq L88
02F2 8239 cpi R24,146
02F4 E0E0 ldi R30,0
02F6 9E07 cpc R25,R30
02F8 69F1 breq L89
02FA 82E9 ldi R24,146
02FC 8A15 cp R24,R10
02FE 9B05 cpc R25,R11
0300 54F0 brlt L94
0302 L93:
0302 C501 movw R24,R10
0304 8038 cpi R24,128
0306 E0E0 ldi R30,0
0308 9E07 cpc R25,R30
030A C1F0 breq L85
030C 8138 cpi R24,129
030E E0E0 ldi R30,0
0310 9E07 cpc R25,R30
0312 B9F0 breq L86
0314 2DC0 rjmp L81
0316 L94:
0316 C501 movw R24,R10
0318 8839 cpi R24,152
031A E0E0 ldi R30,0
031C 9E07 cpc R25,R30
031E E9F0 breq L90
0320 8839 cpi R24,152
0322 E0E0 ldi R30,0
0324 9E07 cpc R25,R30
0326 24F1 brlt L81
0328 L95:
0328 C501 movw R24,R10
032A 8E39 cpi R24,158
032C E0E0 ldi R30,0
032E 9E07 cpc R25,R30
0330 C1F0 breq L91
0332 8F39 cpi R24,159
0334 E0E0 ldi R30,0
0336 9E07 cpc R25,R30
0338 C1F0 breq L92
033A 1AC0 rjmp L81
033C X4:
033C .dbline 235
033C ; {
033C L85:
033C .dbline 237
033C ; case PARAM_BUILD_NUMBER_LOW:
033C ; tmp = CONFIG_PARAM_BUILD_NUMBER_LOW;
033C 0024 clr R0
033E 0D86 std y+13,R0
0340 .dbline 238
0340 ; break;
0340 17C0 rjmp L82
0342 L86:
0342 .dbline 240
0342 ; case PARAM_BUILD_NUMBER_HIGH:
0342 ; tmp = CONFIG_PARAM_BUILD_NUMBER_HIGH;
0342 0024 clr R0
0344 0D86 std y+13,R0
0346 .dbline 241
0346 ; break;
0346 14C0 rjmp L82
0348 L87:
0348 .dbline 243
0348 ; case PARAM_HW_VER:
0348 ; tmp = CONFIG_PARAM_HW_VER;
0348 8FE0 ldi R24,15
034A 8D87 std y+13,R24
034C .dbline 244
034C ; break;
034C 11C0 rjmp L82
034E L88:
034E .dbline 246
034E ; case PARAM_SW_MAJOR:
034E ; tmp = CONFIG_PARAM_SW_MAJOR;
034E 82E0 ldi R24,2
0350 8D87 std y+13,R24
0352 .dbline 247
0352 ; break;
0352 0EC0 rjmp L82
0354 L89:
0354 .dbline 249
0354 ; case PARAM_SW_MINOR:
0354 ; tmp = CONFIG_PARAM_SW_MINOR;
0354 8AE0 ldi R24,10
0356 8D87 std y+13,R24
0358 .dbline 250
0358 ; break;
0358 0BC0 rjmp L82
035A L90:
035A .dbline 252
035A ; case PARAM_SCK_DURATION:
035A ; tmp = clock_speed;
035A 20900700 lds R2,_clock_speed
035E 2D86 std y+13,R2
0360 .dbline 253
0360 ; break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -