?? nflash32.lis
字號:
; while(!fRB);
0378 849B sbis 0x10,4
037A FECF rjmp L64
037C .dbline 224
; fCOMMAND = 0x70;//讀狀態(tài)值命令
037C 80E7 ldi R24,112
037E 809300A0 sts 40960,R24
0382 .dbline 225
; i = fDATA;//讀狀態(tài)值
0382 40910080 lds R20,32768
0386 5527 clr R21
0388 .dbline 226
; D12_COMMAND = 0xf2;//清端點緩沖區(qū)
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盤固件程序開發(fā)
; **編譯器類型及版本:ICCAVR 6.26C
; **日期:2004.4.30
; **創(chuàng)建人:陳馳
; **所屬單位:湖南大學計算機與通信學院
;
; **芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
; **時鐘頻率:8MHZ
;
; **函數(shù)功能:FLASH頁拷貝命令
; **函數(shù)輸入?yún)?shù)及說明:
; Source_addh:源地址高位
; Source_addl:源地址低位
; Destination_addh:目的地址高位
; Destination_addl:目的地址低位
;
; **函數(shù)返回值:無
; **在本函數(shù)以外定義的變量:
; **調(diào)用的函數(shù)說明:無
;
; **修改人:陳馳
; **修改日期:2004.4.30
; **修改說明:創(chuàng)建
; *************************************************************/
; 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;//讀狀態(tài)命令
0410 80E7 ldi R24,112
0412 809300A0 sts 40960,R24
0416 .dbline 284
; i = fDATA;//讀狀態(tài)值
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盤固件程序開發(fā)
; **編譯器類型及版本:ICCAVR 6.26C
; **日期:2004.4.30
; **創(chuàng)建人:陳馳
; **所屬單位:湖南大學計算機與通信學院
;
; **芯片類型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
; **時鐘頻率:8MHZ
;
; **函數(shù)功能:讀FLASH預處理函數(shù)
; **函數(shù)輸入?yún)?shù)及說明:無
;
; **函數(shù)返回值:無
; **在本函數(shù)以外定義的變量:
; **調(diào)用的函數(shù)說明:無
;
; **修改人:陳馳
; **修改日期:2004.4.30
; **修改說明:創(chuàng)建
; *************************************************************/
; void flashReadcmd(void)
; {
0424 .dbline 316
; /****************說明************
; 對于FLASH的讀原理為:FLASH的讀
; 可以是隨機讀取,所以這里只要給
; 定讀數(shù)據(jù)的首地址和讀寫長度
; ********************************/
; 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 + -