⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lis

📁 使用STK500_2 协议的bootloader
💻 LIS
📖 第 1 页 / 共 4 页
字号:
 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 + -