📄 main.lis
字号:
042E ; {
042E L86:
042E .dbline 259
042E ; case 0x50:
042E ; msg_buffer[2] = read_program_memory(0x0000,1); //读熔丝位
042E 21E0 ldi R18,1
0430 0027 clr R16
0432 1127 clr R17
0434 0E940000 xcall _read_program_memory
0438 00930F00 sts _msg_buffer+2,R16
043C .dbline 260
043C ; break;
043C 07C0 xjmp L83
043E L88:
043E .dbline 262
043E ; case 0x58:
043E ; msg_buffer[2] = read_program_memory(0x0003,1); //读高熔丝位
043E 21E0 ldi R18,1
0440 03E0 ldi R16,3
0442 10E0 ldi R17,0
0444 0E940000 xcall _read_program_memory
0448 00930F00 sts _msg_buffer+2,R16
044C .dbline 263
044C ; break;
044C .dbline 265
044C ; default:
044C ; break;
044C L83:
044C .dbline 267
044C ; }
044C ; num_bytes = 4;
044C 84E0 ldi R24,4
044E 90E0 ldi R25,0
0450 9F83 std y+7,R25
0452 8E83 std y+6,R24
0454 .dbline 268
0454 ; msg_buffer[0] = CMD_READ_FUSE_ISP;
0454 88E1 ldi R24,24
0456 80930D00 sts _msg_buffer,R24
045A .dbline 269
045A ; msg_buffer[1] = STATUS_CMD_OK;
045A 2224 clr R2
045C 20920E00 sts _msg_buffer+1,R2
0460 .dbline 270
0460 ; msg_buffer[3] = STATUS_CMD_OK;
0460 20921000 sts _msg_buffer+3,R2
0464 .dbline 271
0464 ; }
0464 2BC0 xjmp L81
0466 L80:
0466 .dbline 273
0466 ; //命令CMD_PROGRAM_LOCK_ISP
0466 ; else if(cmd==CMD_PROGRAM_LOCK_ISP)
0466 8E2D mov R24,R14
0468 8931 cpi R24,25
046A 91F4 brne L93
046C .dbline 274
046C ; {
046C .dbline 275
046C ; write_lock_bits (msg_buffer[4]|0xC0);
046C 00911100 lds R16,_msg_buffer+4
0470 006C ori R16,192
0472 0E940000 xcall _write_lock_bits
0476 .dbline 276
0476 ; num_bytes = 3;
0476 83E0 ldi R24,3
0478 90E0 ldi R25,0
047A 9F83 std y+7,R25
047C 8E83 std y+6,R24
047E .dbline 277
047E ; msg_buffer[0] = CMD_PROGRAM_LOCK_ISP;
047E 89E1 ldi R24,25
0480 80930D00 sts _msg_buffer,R24
0484 .dbline 278
0484 ; msg_buffer[1] = STATUS_CMD_OK;
0484 2224 clr R2
0486 20920E00 sts _msg_buffer+1,R2
048A .dbline 279
048A ; msg_buffer[2] = STATUS_CMD_OK;
048A 20920F00 sts _msg_buffer+2,R2
048E .dbline 280
048E ; }
048E 16C0 xjmp L94
0490 L93:
0490 .dbline 282
0490 ; //命令CMD_READ_LOCK_ISP
0490 ; else if(cmd==CMD_READ_LOCK_ISP)
0490 8E2D mov R24,R14
0492 8A31 cpi R24,26
0494 99F4 brne L98
0496 .dbline 283
0496 ; {
0496 .dbline 284
0496 ; msg_buffer[2] = read_program_memory(0x0001,1);
0496 21E0 ldi R18,1
0498 01E0 ldi R16,1
049A 10E0 ldi R17,0
049C 0E940000 xcall _read_program_memory
04A0 00930F00 sts _msg_buffer+2,R16
04A4 .dbline 285
04A4 ; num_bytes = 4;
04A4 84E0 ldi R24,4
04A6 90E0 ldi R25,0
04A8 9F83 std y+7,R25
04AA 8E83 std y+6,R24
04AC .dbline 286
04AC ; msg_buffer[0] = CMD_READ_LOCK_ISP;
04AC 8AE1 ldi R24,26
04AE 80930D00 sts _msg_buffer,R24
04B2 .dbline 287
04B2 ; msg_buffer[1] = STATUS_CMD_OK;
04B2 2224 clr R2
04B4 20920E00 sts _msg_buffer+1,R2
04B8 .dbline 288
04B8 ; msg_buffer[3] = STATUS_CMD_OK;
04B8 20921000 sts _msg_buffer+3,R2
04BC .dbline 289
04BC ; }
04BC L98:
04BC L94:
04BC L81:
04BC L73:
04BC L66:
04BC L63:
04BC L60:
04BC L57:
04BC L52:
04BC L39:
04BC L36:
04BC L30:
04BC .dbline 291
04BC ; //传送缓冲区数据
04BC ; if(num_bytes>0)
04BC 0E80 ldd R0,y+6
04BE 1F80 ldd R1,y+7
04C0 0020 tst R0
04C2 19F4 brne X4
04C4 1120 tst R1
04C6 09F4 brne X6
04C8 59C0 xjmp L103
04CA X6:
04CA X4:
04CA .dbline 292
04CA ; {
04CA .dbline 293
04CA ; putChar(MESSAGE_START);
04CA 0BE1 ldi R16,27
04CC 0E940000 xcall _putChar
04D0 .dbline 294
04D0 ; checkSum=MESSAGE_START;
04D0 8BE1 ldi R24,27
04D2 80930B00 sts _checkSum,R24
04D6 .dbline 295
04D6 ; putChar(seqNum);
04D6 0B89 ldd R16,y+19
04D8 0E940000 xcall _putChar
04DC .dbline 296
04DC ; checkSum^=seqNum;
04DC 20900B00 lds R2,_checkSum
04E0 0B88 ldd R0,y+19
04E2 2024 eor R2,R0
04E4 20920B00 sts _checkSum,R2
04E8 .dbline 297
04E8 ; tmp=(num_bytes&0xFF00)>>8;
04E8 8E81 ldd R24,y+6
04EA 9F81 ldd R25,y+7
04EC 8070 andi R24,0
04EE 892F mov R24,R25
04F0 9927 clr R25
04F2 8887 std y+8,R24
04F4 .dbline 298
04F4 ; putChar(tmp);
04F4 082F mov R16,R24
04F6 0E940000 xcall _putChar
04FA .dbline 299
04FA ; checkSum^=tmp;
04FA 20900B00 lds R2,_checkSum
04FE 0884 ldd R0,y+8
0500 2024 eor R2,R0
0502 20920B00 sts _checkSum,R2
0506 .dbline 300
0506 ; tmp=num_bytes&0x00FF;
0506 8E81 ldd R24,y+6
0508 9F81 ldd R25,y+7
050A 9070 andi R25,0
050C 8887 std y+8,R24
050E .dbline 301
050E ; putChar(tmp);
050E 082F mov R16,R24
0510 0E940000 xcall _putChar
0514 .dbline 302
0514 ; checkSum^=tmp;
0514 20900B00 lds R2,_checkSum
0518 0884 ldd R0,y+8
051A 2024 eor R2,R0
051C 20920B00 sts _checkSum,R2
0520 .dbline 303
0520 ; putChar(TOKEN);
0520 0EE0 ldi R16,14
0522 0E940000 xcall _putChar
0526 .dbline 304
0526 ; checkSum^=TOKEN;
0526 8EE0 ldi R24,14
0528 20900B00 lds R2,_checkSum
052C 2826 eor R2,R24
052E 20920B00 sts _checkSum,R2
0532 .dbline 305
0532 ; for(i=0;i<num_bytes;i++)
0532 CC24 clr R12
0534 DD24 clr R13
0536 16C0 xjmp L108
0538 L105:
0538 .dbline 306
0538 .dbline 307
0538 80E0 ldi R24,<_msg_buffer
053A 90E0 ldi R25,>_msg_buffer
053C F601 movw R30,R12
053E E80F add R30,R24
0540 F91F adc R31,R25
0542 0081 ldd R16,z+0
0544 0E940000 xcall _putChar
0548 .dbline 308
0548 80E0 ldi R24,<_msg_buffer
054A 90E0 ldi R25,>_msg_buffer
054C F601 movw R30,R12
054E E80F add R30,R24
0550 F91F adc R31,R25
0552 2080 ldd R2,z+0
0554 30900B00 lds R3,_checkSum
0558 3224 eor R3,R2
055A 30920B00 sts _checkSum,R3
055E .dbline 309
055E L106:
055E .dbline 305
055E C601 movw R24,R12
0560 0196 adiw R24,1
0562 6C01 movw R12,R24
0564 L108:
0564 .dbline 305
0564 0E80 ldd R0,y+6
0566 1F80 ldd R1,y+7
0568 C014 cp R12,R0
056A D104 cpc R13,R1
056C 28F3 brlo L105
056E .dbline 310
056E 00910B00 lds R16,_checkSum
0572 0E940000 xcall _putChar
0576 .dbline 311
0576 2224 clr R2
0578 20920B00 sts _checkSum,R2
057C .dbline 312
057C L103:
057C .dbline -2
057C L28:
057C 2996 adiw R28,9
057E 0E940000 xcall pop_gset5
0582 2296 adiw R28,2
0584 .dbline 0 ; func end
0584 0895 ret
0586 .dbsym r temp16 10 i
0586 .dbsym l start_address 2 l
0586 .dbsym r cmd 14 c
0586 .dbsym l tmp 8 c
0586 .dbsym l num_bytes 6 i
0586 .dbsym r i 12 i
0586 .dbsym l seqNum 19 c
0586 .dbend
.area bss(ram, con, rel)
0002 .dbfile D:\iccv7avr\AVRBOO~1\main.c
0002 _address::
0002 .blkb 2
0004 .dbfile D:\iccv7avr\AVRBOO~1/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 D:\iccv7avr\AVRBOO~1/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 D:\iccv7avr\AVRBOO~1/para.h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -