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

📄 nflash32.lis

📁 USB通信程序开发(附源码 精品)包括详细论文说明
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                       ;         while(!fRB);
 0378 849B              sbis 0x10,4
 037A FECF              rjmp L64
 037C                   .dbline 224
                       ;         fCOMMAND = 0x70;//读状态值命令
 037C 80E7              ldi R24,112
 037E 809300A0          sts 40960,R24
 0382                   .dbline 225
                       ;         i = fDATA;//读状态值
 0382 40910080          lds R20,32768
 0386 5527              clr R21
 0388                   .dbline 226
                       ;         D12_COMMAND = 0xf2;//清端点缓冲区
 0388 82EF              ldi R24,242
 038A 8093017C          sts 31745,R24
 038E                   .dbline 227
                       ;         csram;
 038E 609301FC          sts 0xfc01,R22
 0392                   .dbline 227
 0392                   .dbline 228
                       ;         fWPc;//写保护
 0392 9598              CBI 0x12,5
 0394                   .dbline 228
 0394                   .dbline 230
                       ;         
                       ;         WriteResidueVal = WriteResidueVal - 1;
 0394 90910100          lds R25,_WriteResidueVal+1
 0398 80910000          lds R24,_WriteResidueVal
 039C 0197              sbiw R24,1
 039E 90930100          sts _WriteResidueVal+1,R25
 03A2 80930000          sts _WriteResidueVal,R24
 03A6                   .dbline 231
                       ;         if(Flash_Write_addl== 255){
 03A6 80910400          lds R24,_Flash_Write_addl
 03AA 8F3F              cpi R24,255
 03AC 49F4              brne L67
 03AE                   .dbline 231
 03AE                   .dbline 232
                       ;             Flash_Write_addl= 0x00;
 03AE 2224              clr R2
 03B0 20920400          sts _Flash_Write_addl,R2
 03B4                   .dbline 233
                       ;             Flash_Write_addh++;
 03B4 80910500          lds R24,_Flash_Write_addh
 03B8 8F5F              subi R24,255    ; addi 1
 03BA 80930500          sts _Flash_Write_addh,R24
 03BE                   .dbline 234
                       ;         }else
 03BE 05C0              rjmp L68
 03C0                 L67:
 03C0                   .dbline 235
                       ;             Flash_Write_addl++;
 03C0 80910400          lds R24,_Flash_Write_addl
 03C4 8F5F              subi R24,255    ; addi 1
 03C6 80930400          sts _Flash_Write_addl,R24
 03CA                 L68:
 03CA                   .dbline 236
 03CA                 L58:
 03CA                   .dbline -2
 03CA                   .dbline 237
                       ;     }
                       ; }
 03CA                 L57:
 03CA 00D0              rcall pop_gset1
 03CC                   .dbline 0 ; func end
 03CC 0895              ret
 03CE                   .dbsym r i 20 i
 03CE                   .dbsym r PageBuff 16 pc
 03CE                   .dbfunc s flashCopyBLack _flashCopyBLack fI
                       ;              i -> R20
                       ; Destination_addl -> R22
                       ; Destination_addh -> R10
                       ;    Source_addl -> R18
                       ;    Source_addh -> R16
                         .even
 03CE                 _flashCopyBLack::
 03CE 00D0              rcall push_gset3
 03D0 AE80              ldd R10,y+6
 03D2 BF80              ldd R11,y+7
 03D4 6885              ldd R22,y+8
 03D6 7985              ldd R23,y+9
 03D8                   .dbline -1
 03D8                   .dbline 264
                       ; /************************************************************
                       ; **工程名称:U盘固件程序开发
                       ; **编译器类型及版本:ICCAVR 6.26C
                       ; **日期:2004.4.30
                       ; **创建人:陈驰
                       ; **所属单位:湖南大学计算机与通信学院
                       ; 
                       ; **芯片类型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
                       ; **时钟频率:8MHZ
                       ; 
                       ; **函数功能:FLASH页拷贝命令
                       ; **函数输入参数及说明:
                       ;   Source_addh:源地址高位
                       ;   Source_addl:源地址低位
                       ;   Destination_addh:目的地址高位
                       ;   Destination_addl:目的地址低位
                       ; 
                       ; **函数返回值:无
                       ; **在本函数以外定义的变量:
                       ; **调用的函数说明:无
                       ; 
                       ; **修改人:陈驰
                       ; **修改日期:2004.4.30
                       ; **修改说明:创建
                       ; *************************************************************/
                       ; void flashCopyBLack(unsigned char Source_addh,unsigned char Source_addl,unsigned char Destination_addh,unsigned char Destination_addl)
                       ; {
 03D8                   .dbline 266
                       ;     unsigned char i;
                       ;     fWPs;//打开写保护
 03D8 959A              SBI 0x12,5
 03DA                   .dbline 266
 03DA                   .dbline 267
                       ;     fCOMMAND = 0x00;//页拷贝命令
 03DA 2224              clr R2
 03DC 209200A0          sts 40960,R2
 03E0                   .dbline 269
                       ;         /*源地址*/
                       ;     fADD = 0x00;
 03E0 20920090          sts 36864,R2
 03E4                   .dbline 270
                       ;     fADD = Source_addl;
 03E4 20930090          sts 36864,R18
 03E8                   .dbline 271
                       ;     fADD = Source_addh;
 03E8 00930090          sts 36864,R16
 03EC                   .dbline 272
                       ;     asm("nop \n nop");
 03EC 0000              nop 
 03EE 0000               nop
 03F0                 L70:
 03F0                   .dbline 273
 03F0                 L71:
 03F0                   .dbline 273
                       ;     while(!fRB);
 03F0 849B              sbis 0x10,4
 03F2 FECF              rjmp L70
 03F4                   .dbline 275
                       ;     
                       ;     fCOMMAND = 0x8a;//页拷贝命令
 03F4 8AE8              ldi R24,138
 03F6 809300A0          sts 40960,R24
 03FA                   .dbline 277
                       ;     /*目的地址*/
                       ;     fADD = 0x00;
 03FA 2224              clr R2
 03FC 20920090          sts 36864,R2
 0400                   .dbline 278
                       ;     fADD = Destination_addl;
 0400 60930090          sts 36864,R22
 0404                   .dbline 279
                       ;     fADD = Destination_addh;
 0404 A0920090          sts 36864,R10
 0408                   .dbline 280
                       ;     asm("nop \n nop");
 0408 0000              nop 
 040A 0000               nop
 040C                 L73:
 040C                   .dbline 281
 040C                 L74:
 040C                   .dbline 281
                       ;     while(!fRB);
 040C 849B              sbis 0x10,4
 040E FECF              rjmp L73
 0410                   .dbline 283
                       ;     
                       ;     fCOMMAND = 0x70;//读状态命令
 0410 80E7              ldi R24,112
 0412 809300A0          sts 40960,R24
 0416                   .dbline 284
                       ;     i = fDATA;//读状态值
 0416 40910080          lds R20,32768
 041A                   .dbline 285
                       ;     csram;
 041A 609301FC          sts 0xfc01,R22
 041E                   .dbline 285
 041E                   .dbline 286
                       ;     fWPc;//写保护
 041E 9598              CBI 0x12,5
 0420                   .dbline 286
 0420                   .dbline -2
 0420                   .dbline 287
                       ; }
 0420                 L69:
 0420 00D0              rcall pop_gset3
 0422                   .dbline 0 ; func end
 0422 0895              ret
 0424                   .dbsym r i 20 c
 0424                   .dbsym r Destination_addl 22 c
 0424                   .dbsym r Destination_addh 10 c
 0424                   .dbsym r Source_addl 18 c
 0424                   .dbsym r Source_addh 16 c
 0424                   .dbfunc s flashReadcmd _flashReadcmd fI
                         .even
 0424                 _flashReadcmd::
 0424                   .dbline -1
 0424                   .dbline 310
                       ; /************************************************************
                       ; **工程名称:U盘固件程序开发
                       ; **编译器类型及版本:ICCAVR 6.26C
                       ; **日期:2004.4.30
                       ; **创建人:陈驰
                       ; **所属单位:湖南大学计算机与通信学院
                       ; 
                       ; **芯片类型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
                       ; **时钟频率:8MHZ
                       ; 
                       ; **函数功能:读FLASH预处理函数
                       ; **函数输入参数及说明:无
                       ; 
                       ; **函数返回值:无
                       ; **在本函数以外定义的变量:
                       ; **调用的函数说明:无
                       ; 
                       ; **修改人:陈驰
                       ; **修改日期:2004.4.30
                       ; **修改说明:创建
                       ; *************************************************************/
                       ; void flashReadcmd(void)
                       ; {
 0424                   .dbline 316
                       ;     /****************说明************
                       ;       对于FLASH的读原理为:FLASH的读
                       ;       可以是随机读取,所以这里只要给
                       ;       定读数据的首地址和读写长度
                       ;     ********************************/
                       ;     Flash_Read_Sec = 0x00;
 0424 2224              clr R2
 0426 20920A00          sts _Flash_Read_Sec,R2
 042A                   .dbline 317
                       ;     Flash_Read_Col = 0x00;
 042A 20920B00          sts _Flash_Read_Col,R2
 042E                   .dbline 318
                       ;     Flash_Read_addl = XmtBuff.b[20];
 042E 20901400          lds R2,_XmtBuff+20
 0432 20920C00          sts _Flash_Read_addl,R2
 0436                   .dbline 319
                       ;     Flash_Read_addh = XmtBuff.b[19];
 0436 20901300          lds R2,_XmtBuff+19
 043A 20920D00          sts _Flash_Read_addh,R2
 043E                   .dbline 320
                       ;     ReadResidueVal = (XmtBuff.b[22]<<8) + XmtBuff.b[23];
 043E 20901700          lds R2,_XmtBuff+23
 0442 3324              clr R3
 0444 40901600          lds R4,_XmtBuff+22
 0448 5524              clr R5
 044A 542C              mov R5,R4
 044C 4424              clr R4
 044E 420C              add R4,R2
 0450 531C              adc R5,R3
 0452 242C              mov R2,R4
 0454 352C              mov R3,R5
 0456 4424              clr R4
 0458 37FC              sbrc R3,7
 045A 4094              com R4
 045C 5524              clr R5
 045E 47FC              sbrc R4,7
 0460 5094              com R5
 0462 30920700          sts _ReadResidueVal+1,R3
 0466 20920600          sts _ReadResidueVal,R2
 046A 50920900          sts _ReadResidueVal+2+1,R5
 046E 40920800          sts _ReadResidueVal+2,R4
 0472                   .dbline 321
                       ;         ReadResidueVal = 512 * ReadResidueVal;
 0472 89E0              ldi R24,9
 0474 90E0              ldi R25,0
 0476 8A93              st -y,R24
 0478 022D              mov R16,R2
 047A 132D              mov R17,R3
 047C 242D              mov R18,R4
 047E 352D              mov R19,R5
 0480 00D0              rcall lsl32
 0482 10930700          sts _ReadResidueVal+1,R17
 0486 00930600          sts _ReadResidueVal,R16
 048A 30930900          sts _ReadResidueVal+2+1,R19
 048E 20930800          sts _ReadResidueVal+2,R18
 0492                   .dbline 322
                       ;     fCOMMAND = 0xff;
 0492 8FEF              ldi R24,255
 0494 809300A0          sts 40960,R24
 0498                   .dbline 323
                       ;     asm("nop \n nop");
 0498 0000              nop 
 049A 0000               nop
 049C                 L81:
 049C                   .dbline 324
 049C                 L82:
 049C                   .dbline 324
                       ;     while(!fRB);
 049C 849B              sbis 0x10,4
 049E FECF              rjmp L81
 04A0                   .dbline -2
 04A0                   .dbline 325
                       ; }
 04A0                 L76:
 04A0                   .dbline 0 ; func end
 04A0 0895              ret
 04A2                   .dbfunc s flashRead _flashRead fI
                       ;           temp -> R10
                       ;              i -> R10
                         .even

⌨️ 快捷键说明

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