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

📄 nflash32.lis

📁 USB通信程序开发(附源码 精品)包括详细论文说明
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0238                 L39:
 0238                   .dbline 159
                       ;         flashCopyBLack(Sour_two_addh,Sour_two_addl,Dest_two_addh,Dest_two_addl);
                       ;         Sour_two_addl ++;
                       ;         Dest_two_addl ++;
                       ;     }
                       ;     for(i=0;i<Erase_Count;i++){
 0238                   .dbline 160
                       ;         flashErase(Erase_addh, Erase_addl);
 0238 2D85              ldd R18,y+13
 023A 0E2D              mov R16,R14
 023C 6F92              push R6
 023E 7F92              push R7
 0240 DFDE              rcall _flashErase
 0242 7F90              pop R7
 0244 6F90              pop R6
 0246                   .dbline 161
                       ;         if(Erase_addl == 224){
 0246 8D85              ldd R24,y+13
 0248 803E              cpi R24,224
 024A 21F4              brne L43
 024C                   .dbline 161
 024C                   .dbline 162
                       ;             Erase_addl = 0x00;
 024C 0024              clr R0
 024E 0D86              std y+13,R0
 0250                   .dbline 163
                       ;             Erase_addh ++;
 0250 E394              inc R14
 0252                   .dbline 164
                       ;         }else
 0252 03C0              rjmp L44
 0254                 L43:
 0254                   .dbline 165
                       ;             Erase_addl += 0x20;
 0254 8D85              ldd R24,y+13
 0256 805E              subi R24,224    ; addi 32
 0258 8D87              std y+13,R24
 025A                 L44:
 025A                   .dbline 166
 025A                 L40:
 025A                   .dbline 159
 025A 862D              mov R24,R6
 025C 972D              mov R25,R7
 025E 0196              adiw R24,1
 0260 682E              mov R6,R24
 0262 792E              mov R7,R25
 0264                 L42:
 0264                   .dbline 159
 0264 2B80              ldd R2,y+3
 0266 3C80              ldd R3,y+4
 0268 6214              cp R6,R2
 026A 7304              cpc R7,R3
 026C 28F3              brlo L39
 026E                   .dbline 167
 026E 6624              clr R6
 0270 7724              clr R7
 0272 16C0              rjmp L48
 0274                 L45:
 0274                   .dbline 167
 0274                   .dbline 168
 0274 0B84              ldd R0,y+11
 0276 0A94              dec R0
 0278 0B86              std y+11,R0
 027A                   .dbline 169
 027A 0C84              ldd R0,y+12
 027C 0A94              dec R0
 027E 0C86              std y+12,R0
 0280                   .dbline 170
 0280 0B84              ldd R0,y+11
 0282 0A82              std y+2,R0
 0284 0A88              ldd R0,y+18
 0286 0882              std y+0,R0
 0288 2C85              ldd R18,y+12
 028A 0B89              ldd R16,y+19
 028C 6F92              push R6
 028E 7F92              push R7
 0290 9ED0              rcall _flashCopyBLack
 0292 7F90              pop R7
 0294 6F90              pop R6
 0296                   .dbline 171
 0296                 L46:
 0296                   .dbline 167
 0296 862D              mov R24,R6
 0298 972D              mov R25,R7
 029A 0196              adiw R24,1
 029C 682E              mov R6,R24
 029E 792E              mov R7,R25
 02A0                 L48:
 02A0                   .dbline 167
                       ;     }
                       ;     for(i=0;i<CopyBack_Count;i++){
 02A0 0E84              ldd R0,y+14
 02A2 1F84              ldd R1,y+15
 02A4 6014              cp R6,R0
 02A6 7104              cpc R7,R1
 02A8 28F3              brlo L45
 02AA                   .dbline 172
 02AA 6624              clr R6
 02AC 7724              clr R7
 02AE 10C0              rjmp L52
 02B0                 L49:
 02B0                   .dbline 172
 02B0                   .dbline 173
 02B0 4A95              dec R20
 02B2                   .dbline 174
 02B2 CA94              dec R12
 02B4                   .dbline 175
 02B4 4A83              std y+2,R20
 02B6 A882              std y+0,R10
 02B8 2C2D              mov R18,R12
 02BA 062F              mov R16,R22
 02BC 6F92              push R6
 02BE 7F92              push R7
 02C0 86D0              rcall _flashCopyBLack
 02C2 7F90              pop R7
 02C4 6F90              pop R6
 02C6                   .dbline 176
 02C6                 L50:
 02C6                   .dbline 172
 02C6 862D              mov R24,R6
 02C8 972D              mov R25,R7
 02CA 0196              adiw R24,1
 02CC 682E              mov R6,R24
 02CE 792E              mov R7,R25
 02D0                 L52:
 02D0                   .dbline 172
                       ;         Sour_addl --;
                       ;         Dest_addl --;
                       ;         flashCopyBLack(Dest_addh,Dest_addl,Sour_addh,Sour_addl);
                       ;     }
                       ;     for(i=0;i<CopyBack_two_count;i++){
 02D0 0888              ldd R0,y+16
 02D2 1988              ldd R1,y+17
 02D4 6014              cp R6,R0
 02D6 7104              cpc R7,R1
 02D8 58F3              brlo L49
 02DA                   .dbline 177
                       ;         Sour_two_addl --;
                       ;         Dest_two_addl --;
                       ;         flashCopyBLack(Dest_two_addh,Dest_two_addl,Sour_two_addh,Sour_two_addl);
                       ;     }
                       ;     Flash_Write_Sec= 0x00;
 02DA 2224              clr R2
 02DC 20920200          sts _Flash_Write_Sec,R2
 02E0                   .dbline 178
                       ;     Flash_Write_Col= 0x00;
 02E0 20920300          sts _Flash_Write_Col,R2
 02E4                   .dbline 179
                       ;     Flash_Write_addl= XmtBuff.b[20];
 02E4 20901400          lds R2,_XmtBuff+20
 02E8 20920400          sts _Flash_Write_addl,R2
 02EC                   .dbline 180
                       ;     Flash_Write_addh= XmtBuff.b[19];
 02EC 20901300          lds R2,_XmtBuff+19
 02F0 20920500          sts _Flash_Write_addh,R2
 02F4                   .dbline 181
                       ;     WriteResidueVal=(XmtBuff.b[22]<<8)+XmtBuff.b[23];
 02F4 20901700          lds R2,_XmtBuff+23
 02F8 3324              clr R3
 02FA 40901600          lds R4,_XmtBuff+22
 02FE 5524              clr R5
 0300 542C              mov R5,R4
 0302 4424              clr R4
 0304 420C              add R4,R2
 0306 531C              adc R5,R3
 0308 50920100          sts _WriteResidueVal+1,R5
 030C 40920000          sts _WriteResidueVal,R4
 0310                   .dbline -2
 0310                   .dbline 182
                       ; }
 0310                 L9:
 0310 6496              adiw R28,20
 0312 00D0              rcall pop_gset5
 0314                   .dbline 0 ; func end
 0314 0895              ret
 0316                   .dbsym l Start_add 9 X
 0316                   .dbsym l End_add 7 X
 0316                   .dbsym l WritePageNum 5 i
 0316                   .dbsym l Erase_Count 3 i
 0316                   .dbsym r Erase_addh 14 c
 0316                   .dbsym r Dest_two_addh 22 c
 0316                   .dbsym r Sour_two_addh 10 c
 0316                   .dbsym l Dest_addh 19 c
 0316                   .dbsym l Sour_addh 18 c
 0316                   .dbsym l CopyBack_two_count 16 i
 0316                   .dbsym l CopyBack_Count 14 i
 0316                   .dbsym l Erase_addl 13 c
 0316                   .dbsym r Dest_two_addl 12 c
 0316                   .dbsym r Sour_two_addl 20 c
 0316                   .dbsym l Dest_addl 12 c
 0316                   .dbsym l Sour_addl 11 c
 0316                   .dbsym r i 6 i
 0316                   .dbfunc s flashWrite _flashWrite fI
                       ;              i -> R20,R21
                       ;       PageBuff -> R16,R17
                         .even
 0316                 _flashWrite::
 0316 00D0              rcall push_gset1
 0318                   .dbline -1
 0318                   .dbline 205
                       ; /************************************************************
                       ; **工程名称:U盘固件程序开发
                       ; **编译器类型及版本:ICCAVR 6.26C
                       ; **日期:2004.4.30
                       ; **创建人:陈驰
                       ; **所属单位:湖南大学计算机与通信学院
                       ; 
                       ; **芯片类型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
                       ; **时钟频率:8MHZ
                       ; 
                       ; **函数功能:写FLASH函数
                       ; **函数输入参数及说明:写入数据
                       ; 
                       ; **函数返回值:无
                       ; **在本函数以外定义的变量:
                       ; **调用的函数说明:无
                       ; 
                       ; **修改人:陈驰
                       ; **修改日期:2004.4.30
                       ; **修改说明:创建
                       ; *************************************************************/
                       ; void flashWrite(unsigned char * PageBuff)
                       ; {
 0318                   .dbline 207
                       ;     unsigned int i;
                       ;     if(WriteResidueVal > 0)
 0318 30900100          lds R3,_WriteResidueVal+1
 031C 20900000          lds R2,_WriteResidueVal
 0320 2220              tst R2
 0322 19F4              brne X0
 0324 3320              tst R3
 0326 09F4              brne X1
 0328 50C0              rjmp L58
 032A                 X1:
 032A                 X0:
 032A                   .dbline 208
                       ;     {
 032A                   .dbline 209
                       ;         fWPs;//打开写保护
 032A 959A              SBI 0x12,5
 032C                   .dbline 209
 032C                   .dbline 210
                       ;         fCOMMAND = 0x00;//从FRIST部分开始
 032C 2224              clr R2
 032E 209200A0          sts 40960,R2
 0332                   .dbline 211
                       ;         fCOMMAND = 0x80;//写FLASH命令
 0332 80E8              ldi R24,128
 0334 809300A0          sts 40960,R24
 0338                   .dbline 212
                       ;         fADD = 0x00;//从0列开始
 0338 2224              clr R2
 033A 20920090          sts 36864,R2
 033E                   .dbline 213
                       ;         fADD = Flash_Write_addl;//页地址低位
 033E 20900400          lds R2,_Flash_Write_addl
 0342 20920090          sts 36864,R2
 0346                   .dbline 214
                       ;         fADD = Flash_Write_addh;//页地址高位
 0346 20900500          lds R2,_Flash_Write_addh
 034A 20920090          sts 36864,R2
 034E                   .dbline 216
                       ;         
                       ;         for(i=0;i<512;i++)
 034E 4427              clr R20
 0350 5527              clr R21
 0352 09C0              rjmp L63
 0354                 L60:
 0354                   .dbline 217
 0354                   .dbline 218
 0354 E42F              mov R30,R20
 0356 F52F              mov R31,R21
 0358 E00F              add R30,R16
 035A F11F              adc R31,R17
 035C 2080              ldd R2,z+0
 035E 20920080          sts 32768,R2
 0362                   .dbline 219
 0362                 L61:
 0362                   .dbline 216
 0362 4F5F              subi R20,255  ; offset = 1
 0364 5F4F              sbci R21,255
 0366                 L63:
 0366                   .dbline 216
 0366 4030              cpi R20,0
 0368 E2E0              ldi R30,2
 036A 5E07              cpc R21,R30
 036C 98F3              brlo L60
 036E                   .dbline 221
                       ;         {
                       ;             fDATA = PageBuff[i];//写数据到FLASH指定页里
                       ;         }
                       ;         
                       ;         fCOMMAND = 0x10;
 036E 80E1              ldi R24,16
 0370 809300A0          sts 40960,R24
 0374                   .dbline 222
                       ;         asm("nop \n nop");
 0374 0000              nop 
 0376 0000               nop
 0378                 L64:
 0378                   .dbline 223
 0378                 L65:
 0378                   .dbline 223

⌨️ 快捷键说明

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