?? main.lis
字號:
0420 9E07 cpc R25,R30
0422 49F0 breq L88
0424 0FC0 xjmp L83
0426 X3:
0426 .dbline 268
0426 ; {
0426 L86:
0426 .dbline 270
0426 ; case 0x50:
0426 ; msg_buffer[2] = read_program_memory(0x0000,1); //讀熔絲位
0426 21E0 ldi R18,1
0428 0027 clr R16
042A 1127 clr R17
042C 0E940000 xcall _read_program_memory
0430 00930F00 sts _msg_buffer+2,R16
0434 .dbline 271
0434 ; break;
0434 07C0 xjmp L83
0436 L88:
0436 .dbline 273
0436 ; case 0x58:
0436 ; msg_buffer[2] = read_program_memory(0x0003,1); //讀高熔絲位
0436 21E0 ldi R18,1
0438 03E0 ldi R16,3
043A 10E0 ldi R17,0
043C 0E940000 xcall _read_program_memory
0440 00930F00 sts _msg_buffer+2,R16
0444 .dbline 274
0444 ; break;
0444 .dbline 276
0444 ; default:
0444 ; break;
0444 L83:
0444 .dbline 278
0444 ; }
0444 ; num_bytes = 4;
0444 84E0 ldi R24,4
0446 90E0 ldi R25,0
0448 9F83 std y+7,R25
044A 8E83 std y+6,R24
044C .dbline 279
044C ; msg_buffer[0] = CMD_READ_FUSE_ISP;
044C 88E1 ldi R24,24
044E 80930D00 sts _msg_buffer,R24
0452 .dbline 280
0452 ; msg_buffer[1] = STATUS_CMD_OK;
0452 2224 clr R2
0454 20920E00 sts _msg_buffer+1,R2
0458 .dbline 281
0458 ; msg_buffer[3] = STATUS_CMD_OK;
0458 20921000 sts _msg_buffer+3,R2
045C .dbline 282
045C ; }
045C 2BC0 xjmp L81
045E L80:
045E .dbline 284
045E ; //命令CMD_PROGRAM_LOCK_ISP
045E ; else if(cmd==CMD_PROGRAM_LOCK_ISP)
045E 8E2D mov R24,R14
0460 8931 cpi R24,25
0462 91F4 brne L93
0464 .dbline 285
0464 ; {
0464 .dbline 286
0464 ; write_lock_bits (msg_buffer[4]|0xC0);
0464 00911100 lds R16,_msg_buffer+4
0468 006C ori R16,192
046A 0E940000 xcall _write_lock_bits
046E .dbline 287
046E ; num_bytes = 3;
046E 83E0 ldi R24,3
0470 90E0 ldi R25,0
0472 9F83 std y+7,R25
0474 8E83 std y+6,R24
0476 .dbline 288
0476 ; msg_buffer[0] = CMD_PROGRAM_LOCK_ISP;
0476 89E1 ldi R24,25
0478 80930D00 sts _msg_buffer,R24
047C .dbline 289
047C ; msg_buffer[1] = STATUS_CMD_OK;
047C 2224 clr R2
047E 20920E00 sts _msg_buffer+1,R2
0482 .dbline 290
0482 ; msg_buffer[2] = STATUS_CMD_OK;
0482 20920F00 sts _msg_buffer+2,R2
0486 .dbline 291
0486 ; }
0486 16C0 xjmp L94
0488 L93:
0488 .dbline 293
0488 ; //命令CMD_READ_LOCK_ISP
0488 ; else if(cmd==CMD_READ_LOCK_ISP)
0488 8E2D mov R24,R14
048A 8A31 cpi R24,26
048C 99F4 brne L98
048E .dbline 294
048E ; {
048E .dbline 295
048E ; msg_buffer[2] = read_program_memory(0x0001,1);
048E 21E0 ldi R18,1
0490 01E0 ldi R16,1
0492 10E0 ldi R17,0
0494 0E940000 xcall _read_program_memory
0498 00930F00 sts _msg_buffer+2,R16
049C .dbline 296
049C ; num_bytes = 4;
049C 84E0 ldi R24,4
049E 90E0 ldi R25,0
04A0 9F83 std y+7,R25
04A2 8E83 std y+6,R24
04A4 .dbline 297
04A4 ; msg_buffer[0] = CMD_READ_LOCK_ISP;
04A4 8AE1 ldi R24,26
04A6 80930D00 sts _msg_buffer,R24
04AA .dbline 298
04AA ; msg_buffer[1] = STATUS_CMD_OK;
04AA 2224 clr R2
04AC 20920E00 sts _msg_buffer+1,R2
04B0 .dbline 299
04B0 ; msg_buffer[3] = STATUS_CMD_OK;
04B0 20921000 sts _msg_buffer+3,R2
04B4 .dbline 300
04B4 ; }
04B4 L98:
04B4 L94:
04B4 L81:
04B4 L73:
04B4 L66:
04B4 L63:
04B4 L60:
04B4 L57:
04B4 L52:
04B4 L39:
04B4 L36:
04B4 L30:
04B4 .dbline 302
04B4 ; //傳送緩沖區數據
04B4 ; if(num_bytes>0)
04B4 0E80 ldd R0,y+6
04B6 1F80 ldd R1,y+7
04B8 0020 tst R0
04BA 19F4 brne X4
04BC 1120 tst R1
04BE 09F4 brne X6
04C0 59C0 xjmp L103
04C2 X6:
04C2 X4:
04C2 .dbline 303
04C2 ; {
04C2 .dbline 304
04C2 ; putChar(MESSAGE_START);
04C2 0BE1 ldi R16,27
04C4 0E940000 xcall _putChar
04C8 .dbline 305
04C8 ; checkSum=MESSAGE_START;
04C8 8BE1 ldi R24,27
04CA 80930B00 sts _checkSum,R24
04CE .dbline 306
04CE ; putChar(seqNum);
04CE 0B89 ldd R16,y+19
04D0 0E940000 xcall _putChar
04D4 .dbline 307
04D4 ; checkSum^=seqNum;
04D4 20900B00 lds R2,_checkSum
04D8 0B88 ldd R0,y+19
04DA 2024 eor R2,R0
04DC 20920B00 sts _checkSum,R2
04E0 .dbline 308
04E0 ; tmp=(num_bytes&0xFF00)>>8;
04E0 8E81 ldd R24,y+6
04E2 9F81 ldd R25,y+7
04E4 8070 andi R24,0
04E6 892F mov R24,R25
04E8 9927 clr R25
04EA 8887 std y+8,R24
04EC .dbline 309
04EC ; putChar(tmp);
04EC 082F mov R16,R24
04EE 0E940000 xcall _putChar
04F2 .dbline 310
04F2 ; checkSum^=tmp;
04F2 20900B00 lds R2,_checkSum
04F6 0884 ldd R0,y+8
04F8 2024 eor R2,R0
04FA 20920B00 sts _checkSum,R2
04FE .dbline 311
04FE ; tmp=num_bytes&0x00FF;
04FE 8E81 ldd R24,y+6
0500 9F81 ldd R25,y+7
0502 9070 andi R25,0
0504 8887 std y+8,R24
0506 .dbline 312
0506 ; putChar(tmp);
0506 082F mov R16,R24
0508 0E940000 xcall _putChar
050C .dbline 313
050C ; checkSum^=tmp;
050C 20900B00 lds R2,_checkSum
0510 0884 ldd R0,y+8
0512 2024 eor R2,R0
0514 20920B00 sts _checkSum,R2
0518 .dbline 314
0518 ; putChar(TOKEN);
0518 0EE0 ldi R16,14
051A 0E940000 xcall _putChar
051E .dbline 315
051E ; checkSum^=TOKEN;
051E 8EE0 ldi R24,14
0520 20900B00 lds R2,_checkSum
0524 2826 eor R2,R24
0526 20920B00 sts _checkSum,R2
052A .dbline 316
052A ; for(i=0;i<num_bytes;i++)
052A CC24 clr R12
052C DD24 clr R13
052E 16C0 xjmp L108
0530 L105:
0530 .dbline 317
0530 .dbline 318
0530 80E0 ldi R24,<_msg_buffer
0532 90E0 ldi R25,>_msg_buffer
0534 F601 movw R30,R12
0536 E80F add R30,R24
0538 F91F adc R31,R25
053A 0081 ldd R16,z+0
053C 0E940000 xcall _putChar
0540 .dbline 319
0540 80E0 ldi R24,<_msg_buffer
0542 90E0 ldi R25,>_msg_buffer
0544 F601 movw R30,R12
0546 E80F add R30,R24
0548 F91F adc R31,R25
054A 2080 ldd R2,z+0
054C 30900B00 lds R3,_checkSum
0550 3224 eor R3,R2
0552 30920B00 sts _checkSum,R3
0556 .dbline 320
0556 L106:
0556 .dbline 316
0556 C601 movw R24,R12
0558 0196 adiw R24,1
055A 6C01 movw R12,R24
055C L108:
055C .dbline 316
055C 0E80 ldd R0,y+6
055E 1F80 ldd R1,y+7
0560 C014 cp R12,R0
0562 D104 cpc R13,R1
0564 28F3 brlo L105
0566 .dbline 321
0566 00910B00 lds R16,_checkSum
056A 0E940000 xcall _putChar
056E .dbline 322
056E 2224 clr R2
0570 20920B00 sts _checkSum,R2
0574 .dbline 323
0574 L103:
0574 .dbline -2
0574 L28:
0574 2996 adiw R28,9
0576 0E940000 xcall pop_gset5
057A 2296 adiw R28,2
057C .dbline 0 ; func end
057C 0895 ret
057E .dbsym r temp16 10 i
057E .dbsym l start_address 2 l
057E .dbsym r cmd 14 c
057E .dbsym l tmp 8 c
057E .dbsym l num_bytes 6 i
057E .dbsym r i 12 i
057E .dbsym l seqNum 19 c
057E .dbend
.area bss(ram, con, rel)
0002 .dbfile F:\job\stk500\AVRMEG~1\bldSTK500\main.c
0002 _address::
0002 .blkb 2
0004 .dbfile F:\job\stk500\AVRMEG~1\bldSTK500\para.h
0004 .dbsym e address _address i
0004 _msgSize::
0004 .blkb 2
0006 .dbsym e msgSize _msgSize i
0006 _statusMachine::
0006 .blkb 1
0007 .dbsym e statusMachine _statusMachine c
0007 _prgMode::
0007 .blkb 1
0008 .dbsym e prgMode _prgMode c
0008 _paramControllerInit::
0008 .blkb 1
0009 .dbsym e paramControllerInit _paramControllerInit c
0009 _resetPolarity::
0009 .blkb 1
000A .dbsym e resetPolarity _resetPolarity c
000A _clockSpeed::
000A .blkb 1
000B .dbsym e clockSpeed _clockSpeed c
000B _checkSum::
000B .blkb 1
000C .dbsym e checkSum _checkSum c
000C _seqNumber::
000C .blkb 1
000D .dbsym e seqNumber _seqNumber c
000D _msg_buffer::
000D .blkb 300
0139 .dbsym e msg_buffer _msg_buffer A[300:300]c
.area data(ram, con, rel)
0001 .dbfile F:\job\stk500\AVRMEG~1\bldSTK500\para.h
0001 L34:
0001 .blkb 9
.area idata
0001 53544B3530305F3200 .byte 'S,'T,'K,53,48,48,95,50,0
.area data(ram, con, rel)
000A .dbfile F:\job\stk500\AVRMEG~1\bldSTK500\para.h
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -