📄 nflash32.lis
字号:
.module NFlash32.c
.area data(ram, con, rel)
0000 _WriteResidueVal::
0000 .blkb 2
.area idata
0000 0000 .word 0
.area data(ram, con, rel)
0002 .dbfile G:\source\NFlash32.c
0002 .dbsym s WriteResidueVal _WriteResidueVal i
0002 _Flash_Write_Sec::
0002 .blkb 1
.area idata
0002 00 .byte 0
.area data(ram, con, rel)
0003 .dbfile G:\source\NFlash32.c
0003 .dbsym s Flash_Write_Sec _Flash_Write_Sec c
0003 _Flash_Write_Col::
0003 .blkb 1
.area idata
0003 00 .byte 0
.area data(ram, con, rel)
0004 .dbfile G:\source\NFlash32.c
0004 .dbsym s Flash_Write_Col _Flash_Write_Col c
0004 _Flash_Write_addl::
0004 .blkb 1
.area idata
0004 00 .byte 0
.area data(ram, con, rel)
0005 .dbfile G:\source\NFlash32.c
0005 .dbsym s Flash_Write_addl _Flash_Write_addl c
0005 _Flash_Write_addh::
0005 .blkb 1
.area idata
0005 00 .byte 0
.area data(ram, con, rel)
0006 .dbfile G:\source\NFlash32.c
0006 .dbsym s Flash_Write_addh _Flash_Write_addh c
0006 _ReadResidueVal::
0006 .blkb 4
.area idata
0006 00000000 .word 0,0
.area data(ram, con, rel)
000A .dbfile G:\source\NFlash32.c
000A .dbsym s ReadResidueVal _ReadResidueVal l
000A _Flash_Read_Sec::
000A .blkb 1
.area idata
000A 00 .byte 0
.area data(ram, con, rel)
000B .dbfile G:\source\NFlash32.c
000B .dbsym s Flash_Read_Sec _Flash_Read_Sec c
000B _Flash_Read_Col::
000B .blkb 1
.area idata
000B 00 .byte 0
.area data(ram, con, rel)
000C .dbfile G:\source\NFlash32.c
000C .dbsym s Flash_Read_Col _Flash_Read_Col c
000C _Flash_Read_addl::
000C .blkb 1
.area idata
000C 00 .byte 0
.area data(ram, con, rel)
000D .dbfile G:\source\NFlash32.c
000D .dbsym s Flash_Read_addl _Flash_Read_addl c
000D _Flash_Read_addh::
000D .blkb 1
.area idata
000D 00 .byte 0
.area data(ram, con, rel)
000E .dbfile G:\source\NFlash32.c
000E .dbsym s Flash_Read_addh _Flash_Read_addh c
.area text(rom, con, rel)
0000 .dbfile G:\source\NFlash32.c
0000 .dbfunc s flashErase _flashErase fI
; i -> R20
; addl -> R22
; addh -> R10
.even
0000 _flashErase::
0000 00D0 rcall push_gset3
0002 622F mov R22,R18
0004 A02E mov R10,R16
0006 2497 sbiw R28,4
0008 .dbline -1
0008 .dbline 61
; /*++
;
; Module Name:
;
; NFlash32.c
;
; Abstract:
;
; Header file related to D12 module
;
; Environment:
;
; ICCAVR 6.29
;
; Revision History:
;
; 04/23/2004 chenchi created
;
; --*/
; /******************************************************************/
; #include "io8515v.h"
; #include "d12.h"
; #include "scsi.h"
; #include "nflash32.h"
;
; unsigned int WriteResidueVal = 0;
; unsigned char Flash_Write_Sec = 0x00;
; unsigned char Flash_Write_Col = 0x00;
; unsigned char Flash_Write_addl = 0x00;
; unsigned char Flash_Write_addh = 0x00;
; unsigned long ReadResidueVal = 0;
; unsigned char Flash_Read_Sec = 0x00;
; unsigned char Flash_Read_Col = 0x00;
; unsigned char Flash_Read_addl = 0x00;
; unsigned char Flash_Read_addh = 0x00;
;
; /************************************************************
; **工程名称:U盘固件程序开发
; **编译器类型及版本:ICCAVR 6.26C
; **日期:2004.4.30
; **创建人:陈驰
; **所属单位:湖南大学计算机与通信学院
;
; **芯片类型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
; **时钟频率:8MHZ
;
; **函数功能:块擦除函数
; **函数输入参数及说明:
; addh:高地址
; addl:低地址
;
; **函数返回值:无
; **在本函数以外定义的变量:fCOMMAND,fADD,fWPs,fWPc,fRB
; **调用的函数说明:无
;
; **修改人:陈驰
; **修改日期:2004.4.30
; **修改说明:创建
; *************************************************************/
; void flashErase(unsigned char addh,unsigned char addl)
; {
0008 .dbline 62
; unsigned char i=0;
0008 4427 clr R20
000A .dbline 63
; fWPs;//打开写保护
000A 959A SBI 0x12,5
000C .dbline 63
000C .dbline 64
; fCOMMAND = 0x60;//块擦除命令
000C 80E6 ldi R24,96
000E 809300A0 sts 40960,R24
0012 .dbline 65
; fADD = addl;//低地址
0012 60930090 sts 36864,R22
0016 .dbline 66
; fADD = addh;//高地址
0016 A0920090 sts 36864,R10
001A .dbline 67
; fCOMMAND = 0xd0;//处理命令
001A 80ED ldi R24,208
001C 809300A0 sts 40960,R24
0020 .dbline 68
; asm("nop \n nop");
0020 0000 nop
0022 0000 nop
0024 L5:
0024 .dbline 69
0024 L6:
0024 .dbline 69
; while(!fRB);
0024 849B sbis 0x10,4
0026 FECF rjmp L5
0028 .dbline 70
; fCOMMAND = 0x70;//读状态命令
0028 80E7 ldi R24,112
002A 809300A0 sts 40960,R24
002E .dbline 71
; i = fDATA;//读状态值
002E 40910080 lds R20,32768
0032 .dbline 72
; csram;
0032 609301FC sts 0xfc01,R22
0036 .dbline 72
0036 .dbline 73
; fWPc;//写保护
0036 9598 CBI 0x12,5
0038 .dbline 73
0038 .dbline 74
; printf("%x,%x erase is %x",addh,addl,i);//串口打印
0038 242E mov R2,R20
003A 3324 clr R3
003C 2A82 std y+2,R2
003E 3B82 std y+3,R3
0040 262E mov R2,R22
0042 3324 clr R3
0044 2882 std y+0,R2
0046 3982 std y+1,R3
0048 2A2D mov R18,R10
004A 3327 clr R19
004C 00E0 ldi R16,<L8
004E 10E0 ldi R17,>L8
0050 00D0 rcall _printf
0052 .dbline -2
0052 .dbline 75
; }
0052 L4:
0052 2496 adiw R28,4
0054 00D0 rcall pop_gset3
0056 .dbline 0 ; func end
0056 0895 ret
0058 .dbsym r i 20 c
0058 .dbsym r addl 22 c
0058 .dbsym r addh 10 c
0058 .dbfunc s flashWritecmd _flashWritecmd fI
; Start_add -> y+9
; End_add -> y+7
; WritePageNum -> y+5
; Erase_Count -> y+3
; Erase_addh -> R14
; Dest_two_addh -> R22
; Sour_two_addh -> R10
; Dest_addh -> y+19
; Sour_addh -> y+18
; CopyBack_two_count -> y+16
; CopyBack_Count -> y+14
; Erase_addl -> y+13
; Dest_two_addl -> R12
; Sour_two_addl -> R20
; Dest_addl -> y+12
; Sour_addl -> y+11
; i -> R6,R7
.even
0058 _flashWritecmd::
0058 00D0 rcall push_gset5
005A 6497 sbiw R28,20
005C .dbline -1
005C .dbline 98
; /************************************************************
; **工程名称:U盘固件程序开发
; **编译器类型及版本:ICCAVR 6.26C
; **日期:2004.4.30
; **创建人:陈驰
; **所属单位:湖南大学计算机与通信学院
;
; **芯片类型:AT90S8515,PDIUSUD12,K9F5608U0A-YCB0
; **时钟频率:8MHZ
;
; **函数功能:写FLASH预处理函数
; **函数输入参数及说明:无
;
; **函数返回值:无
; **在本函数以外定义的变量:
; **调用的函数说明:无
;
; **修改人:陈驰
; **修改日期:2004.4.30
; **修改说明:创建
; *************************************************************/
; void flashWritecmd(void)
; {
005C .dbline 102
; unsigned char Erase_addh,Erase_addl;
; unsigned char Sour_addh,Sour_addl,Dest_addh,Dest_addl;
; unsigned char Sour_two_addh,Sour_two_addl,Dest_two_addh,Dest_two_addl;
; unsigned int Erase_Count = 0,i = 0;
005C 2224 clr R2
005E 3324 clr R3
0060 2B82 std y+3,R2
0062 3C82 std y+4,R3
0064 .dbline 102
0064 6624 clr R6
0066 7724 clr R7
0068 .dbline 103
; unsigned int CopyBack_Count = 0;
0068 0024 clr R0
006A 1124 clr R1
006C 0E86 std y+14,R0
006E 1F86 std y+15,R1
0070 .dbline 104
; unsigned int CopyBack_two_count = 0;
0070 088A std y+16,R0
0072 198A std y+17,R1
0074 .dbline 105
; unsigned int WritePageNum = 0;
0074 2224 clr R2
0076 2D82 std y+5,R2
0078 3E82 std y+6,R3
007A .dbline 124
; union{
; unsigned char c[2];
; unsigned int add;
; }Start_add;
; union{
; unsigned char c[2];
; unsigned int add;
; }End_add;
; /************说明*****************
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -