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

📄 main.lis

📁 很好的制作AVR32 ICE的资料
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0344 3324              clr R3
 0346 4424              clr R4
 0348 5524              clr R5
 034A 2101              movw R4,R2
 034C 2224              clr R2
 034E 3324              clr R3
 0350 3801              movw R6,R16
 0352 4901              movw R8,R18
 0354 6228              or R6,R2
 0356 7328              or R7,R3
 0358 8428              or R8,R4
 035A 9528              or R9,R5
 035C 70920100          sts _address+1,R7
 0360 60920000          sts _address,R6
 0364 90920300          sts _address+2+1,R9
 0368 80920200          sts _address+2,R8
 036C                   .dbline 301
 036C           ;       address |= ((unsigned long)msg_buffer[3])<<8;
 036C 88E0              ldi R24,8
 036E 90E0              ldi R25,0
 0370 00910B00          lds R16,_msg_buffer+3
 0374 1127              clr R17
 0376 2227              clr R18
 0378 3327              clr R19
 037A 8A93              st -y,R24
 037C 0E940000          xcall lsl32
 0380 40900200          lds R4,_address+2
 0384 50900300          lds R5,_address+2+1
 0388 20900000          lds R2,_address
 038C 30900100          lds R3,_address+1
 0390 202A              or R2,R16
 0392 312A              or R3,R17
 0394 422A              or R4,R18
 0396 532A              or R5,R19
 0398 30920100          sts _address+1,R3
 039C 20920000          sts _address,R2
 03A0 50920300          sts _address+2+1,R5
 03A4 40920200          sts _address+2,R4
 03A8                   .dbline 302
 03A8           ;       address |= ((unsigned long)msg_buffer[4]);
 03A8 20900C00          lds R2,_msg_buffer+4
 03AC 3324              clr R3
 03AE 4424              clr R4
 03B0 5524              clr R5
 03B2 80900200          lds R8,_address+2
 03B6 90900300          lds R9,_address+2+1
 03BA 60900000          lds R6,_address
 03BE 70900100          lds R7,_address+1
 03C2 6228              or R6,R2
 03C4 7328              or R7,R3
 03C6 8428              or R8,R4
 03C8 9528              or R9,R5
 03CA 70920100          sts _address+1,R7
 03CE 60920000          sts _address,R6
 03D2 90920300          sts _address+2+1,R9
 03D6 80920200          sts _address+2,R8
 03DA                   .dbline 304
 03DA           ; 
 03DA           ;       num_bytes = 2;
 03DA 82E0              ldi R24,2
 03DC 90E0              ldi R25,0
 03DE 5C01              movw R10,R24
 03E0                   .dbline 305
 03E0           ;       msg_buffer[0] = CMD_LOAD_ADDRESS;
 03E0 86E0              ldi R24,6
 03E2 80930800          sts _msg_buffer,R24
 03E6                   .dbline 306
 03E6           ;       msg_buffer[1] = STATUS_CMD_OK;
 03E6 2224              clr R2
 03E8 20920900          sts _msg_buffer+1,R2
 03EC                   .dbline 307
 03EC           ;     }
 03EC E4C6              xjmp L99
 03EE           L98:
 03EE                   .dbline 311
 03EE           ;   //////////////////////////////////////
 03EE           ;   //CMD_ENTER_PROGMODE_ISP
 03EE           ;   //////////////////////////////////////
 03EE           ;   else if (cmd==CMD_ENTER_PROGMODE_ISP)
 03EE 8A85              ldd R24,y+10
 03F0 8031              cpi R24,16
 03F2 09F0              breq X141
 03F4 7FC0              xjmp L105
 03F6           X141:
 03F6           X43:
 03F6                   .dbline 312
 03F6           ;     {
 03F6                   .dbline 325
 03F6           ;       //msg_buffer[1] //timeout               //Command time-out (in ms)
 03F6           ;       //msg_buffer[2] //stabDelay             //Delay (in ms) used for pin stabilization
 03F6           ;       //msg_buffer[3] //cmdexeDelay   //Delay (in ms) in connection with the EnterProgMode command execution
 03F6           ;       //msg_buffer[4] //synchLoops    //Number of synchronization loops
 03F6           ;       //msg_buffer[5] //byteDelay             //Delay (in ms) between each byte in the EnterProgMode command.
 03F6           ;       //msg_buffer[6] //pollValue             //Poll value: 0x53 for AVR, 0x69 for AT89xx
 03F6           ;       //msg_buffer[7] //pollIndex             //Start address, received byte: 0 = no polling, 3 = AVR, 4 = AT89xx
 03F6           ;       //msg_buffer[8] //cmd1                  //Command Byte # 1 to be transmitted
 03F6           ;       //msg_buffer[9] //cmd2                  //Command Byte # 2 to be transmitted
 03F6           ;       //msg_buffer[10]//cmd3                  //Command Byte # 3 to be transmitted
 03F6           ;       //msg_buffer[11]//cmd4                  //Command Byte # 4 to be transmitted
 03F6           ; 
 03F6           ;       prgmode=1;
 03F6 81E0              ldi R24,1
 03F8 80930400          sts _prgmode,R24
 03FC                   .dbline 327
 03FC           ; 
 03FC           ;       spi_enable();
 03FC 0E940000          xcall _spi_enable
 0400                   .dbline 329
 0400           ; 
 0400           ;       wait_ms(msg_buffer[2]);
 0400 00910A00          lds R16,_msg_buffer+2
 0404 1127              clr R17
 0406 0E940000          xcall _wait_ms
 040A                   .dbline 331
 040A           ; 
 040A           ;       LED_GN_ON;
 040A 929A              sbi 0x12,2
 040C                   .dbline 332
 040C           ;       LED_RT_ON;
 040C 939A              sbi 0x12,3
 040E                   .dbline 335
 040E           ; 
 040E           ;       //Try to get connection with the target chip
 040E           ;       for (i=0;i<msg_buffer[4];i++)
 040E CC24              clr R12
 0410 DD24              clr R13
 0412 56C0              xjmp L111
 0414           L108:
 0414                   .dbline 336
 0414           ;         {
 0414                   .dbline 338
 0414           ;           //spi_transfer_16(0xAC53);
 0414           ;           spi_transfer_8(msg_buffer[8]);
 0414 00911000          lds R16,_msg_buffer+8
 0418 0E940000          xcall _spi_transfer_8
 041C                   .dbline 339
 041C           ;           wait_ms(msg_buffer[5]);
 041C 00910D00          lds R16,_msg_buffer+5
 0420 1127              clr R17
 0422 0E940000          xcall _wait_ms
 0426                   .dbline 340
 0426           ;           spi_transfer_8(msg_buffer[9]);
 0426 00911100          lds R16,_msg_buffer+9
 042A 0E940000          xcall _spi_transfer_8
 042E                   .dbline 341
 042E           ;           wait_ms(msg_buffer[5]);
 042E 00910D00          lds R16,_msg_buffer+5
 0432 1127              clr R17
 0434 0E940000          xcall _wait_ms
 0438                   .dbline 343
 0438           ; 
 0438           ;           if (msg_buffer[7]==3)
 0438 80910F00          lds R24,_msg_buffer+7
 043C 8330              cpi R24,3
 043E A1F4              brne L117
 0440           X44:
 0440                   .dbline 344
 0440           ;             {
 0440                   .dbline 345
 0440           ;               tmp=spi_transfer_8(msg_buffer[10]);
 0440 00911200          lds R16,_msg_buffer+10
 0444 0E940000          xcall _spi_transfer_8
 0448 E02E              mov R14,R16
 044A                   .dbline 346
 044A           ;               wait_ms(msg_buffer[5]);
 044A 00910D00          lds R16,_msg_buffer+5
 044E 1127              clr R17
 0450 0E940000          xcall _wait_ms
 0454                   .dbline 347
 0454           ;               spi_transfer_8(msg_buffer[11]);
 0454 00911300          lds R16,_msg_buffer+11
 0458 0E940000          xcall _spi_transfer_8
 045C                   .dbline 348
 045C           ;               wait_ms(msg_buffer[5]);
 045C 00910D00          lds R16,_msg_buffer+5
 0460 1127              clr R17
 0462 0E940000          xcall _wait_ms
 0466                   .dbline 349
 0466           ;             }
 0466 15C0              xjmp L118
 0468           L117:
 0468                   .dbline 351
 0468           ;           else
 0468           ;             {
 0468                   .dbline 352
 0468           ;               spi_transfer_8(msg_buffer[10]);
 0468 00911200          lds R16,_msg_buffer+10
 046C 0E940000          xcall _spi_transfer_8
 0470                   .dbline 353
 0470           ;               wait_ms(msg_buffer[5]);
 0470 00910D00          lds R16,_msg_buffer+5
 0474 1127              clr R17
 0476 0E940000          xcall _wait_ms
 047A                   .dbline 354
 047A           ;               tmp=spi_transfer_8(msg_buffer[11]);
 047A 00911300          lds R16,_msg_buffer+11
 047E 0E940000          xcall _spi_transfer_8
 0482 1F87              std y+15,R17
 0484 0E87              std y+14,R16
 0486 7801              movw R14,R16
 0488                   .dbline 355
 0488           ;               wait_ms(msg_buffer[5]);
 0488 00910D00          lds R16,_msg_buffer+5
 048C 1127              clr R17
 048E 0E940000          xcall _wait_ms
 0492                   .dbline 356
 0492           ;             }
 0492           L118:
 0492                   .dbline 358
 0492           ; 
 0492           ;           if ((tmp==msg_buffer[6])||(msg_buffer[7]==0))
 0492 20900E00          lds R2,_msg_buffer+6
 0496 E214              cp R14,R2
 0498 21F0              breq L132
 049A           X45:
 049A 20900F00          lds R2,_msg_buffer+7
 049E 2220              tst R2
 04A0 51F4              brne L128
 04A2           X46:
 04A2           L132:
 04A2                   .dbline 359
 04A2           ;             {
 04A2                   .dbline 360
 04A2           ;               LED_GN_OFF;
 04A2 8BEF              ldi R24,-5
 04A4 9FEF              ldi R25,-1
 04A6 22B2              in R2,0x12
 04A8 2822              and R2,R24
 04AA 22BA              out 0x12,R2
 04AC                   .dbline 361
 04AC           ;               LED_RT_ON;
 04AC 939A              sbi 0x12,3
 04AE                   .dbline 362
 04AE           ;               i=0xFF;
 04AE 8FEF              ldi R24,255
 04B0 90E0              ldi R25,0
 04B2 6C01              movw R12,R24
 04B4                   .dbline 363
 04B4           ;               break;
 04B4 0CC0              xjmp L110
 04B6           L128:
 04B6                   .dbline 366
 04B6           ;             }
 04B6           ; 
 04B6           ;           spi_clock_pulse();
 04B6 0E940000          xcall _spi_clock_pulse
 04BA                   .dbline 367
 04BA           ;         }
 04BA           L109:
 04BA                   .dbline 335
 04BA C601              movw R24,R12
 04BC 0196              adiw R24,1
 04BE 6C01              movw R12,R24
 04C0           L111:
 04C0                   .dbline 335
 04C0 20900C00          lds R2,_msg_buffer+4
 04C4 3324              clr R3
 04C6 C214              cp R12,R2
 04C8 D304              cpc R13,R3
 04CA 08F4              brsh X142
 04CC A3CF              xjmp L108
 04CE           X142:
 04CE           X47:
 04CE           L110:
 04CE                   .dbline 369
 04CE           ; 
 04CE           ;       num_bytes = 2;
 04CE 82E0              ldi R24,2
 04D0 90E0              ldi R25,0
 04D2 5C01              movw R10,R24
 04D4                   .dbline 370
 04D4           ;       msg_buffer[0] = CMD_ENTER_PROGMODE_ISP;
 04D4 80E1              ldi R24,16
 04D6 80930800          sts _msg_buffer,R24
 04DA                   .dbline 372
 04DA           ; 
 04DA           ;       if (i==0xFF)
 04DA C601              movw R24,R12
 04DC 8F3F              cpi R24,255
 04DE E0E0              ldi R30,0
 04E0 9E07              cpc R25,R30
 04E2 21F4              brne L133
 04E4           X48:
 04E4                   .dbline 373
 04E4           ;         {
 04E4                   .dbline 374
 04E4           ;           msg_buffer[1] = STATUS_CMD_OK;
 04E4 2224              clr R2
 04E6 20920900          sts _msg_buffer+1,R2
 04EA                   .dbline 375
 04EA           ;         }
 04EA 65C6              xjmp L106
 04EC           L133:
 04EC                   .dbline 377
 04EC           ;       else
 04EC           ;         {
 04EC                   .dbline 378
 04EC           ;           msg_buffer[1] = STATUS_CMD_FAILED;
 04EC 80EC              ldi R24,192
 04EE 80930900          sts _msg_buffer+1,R24
 04F2                   .dbline 379
 04F2           ;         }
 04F2                   .dbline 380
 04F2           ;     }
 04F2 61C6              xjmp L106
 04F4           L105:
 04F4                   .dbline 384
 04F4           ;   //////////////////////////////////////
 04F4           ;   //CMD_LEAVE_PROGMODE_ISP
 04F4           ;   //////////////////////////////////////
 04F4           ;   else if (cmd==CMD_LEAVE_PROGMODE_ISP)
 04F4 8A85              ldd R24,y+10
 04F6 8131              cpi R24,17
 04F8 A9F4              brne L137
 04FA           X49:
 04FA                   .dbline 385
 04FA           ;     {
 04FA                   .dbline 386
 04FA           ;       prgmode=0;
 04FA 2224              clr R2
 04FC 20920400          sts _prgmode,R2
 0500                   .dbline 388
 0500           ; 
 0500           ;       spi_disable();
 0500 0E940000          xcall _spi_disable
 0504                   .dbline 390
 0504           ; 
 0504           ;       LED_RT_OFF;
 0504 87EF              ldi R24,-9
 0506 9FEF              ldi R25,-1
 0508 22B2              in R2,0x12
 050A 2822              and R2,R24
 050C 22BA              out 0x12,R2
 050E                   .dbline 391
 050E           ;       LED_GN_ON;
 050E 929A              sbi 0x12,2
 0510                   .dbline 393
 0510           ; 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -