📄 ereasflash.lst
字号:
C51 COMPILER V7.50 EREASFLASH 05/26/2008 08:17:33 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE EREASFLASH
OBJECT MODULE PLACED IN ereasflash.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE bottom\ereasflash.c LARGE OPTIMIZE(9,SIZE) BROWSE NOAREGS MODDP2 INCDIR(E:\
-work\tiger D test\程序\var\) DEBUG OBJECTEXTEND PRINT(.\ereasflash.lst) OBJECT(ereasflash.obj)
line level source
1 /*************************************************************************************
2
3 文件类型:
4 文件作用:对flash进行擦除操作
5 修改权限:
6 文件相关:
7
8 创 建 人:chenbo
9 创建日期:2007.11.24
10 当前版本:Ver0.1
11
12 版本信息:Ver0.1
13
14 **************************************************************************************/
15 #include "Tiger.h"
16 /*
17 static unsigned int code ereasflashaddr01[8]=
18 { FL_engdotaddrone_z,
19 FL_engdotaddrtwo_z,
20 FL_engintone_a,
21 FL_enginttwo_a,
22 FL_engdotaddr_f,
23 FL_maxxuliang,
24 FL_yinshu,
25 FL_wrbuffer
26 };
27
28 static unsigned int code ereasflashaddr02[4]=
29 { FL_dianliufanxiang,
30 FL_lasteng,
31 FL_jiaobiao01,
32 FL_canshu01
33 };
34
35 static unsigned char code clr_bittable[]= //清零表格
36 {0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
37
38 static unsigned char code set_bittable[]=
39 {BIT0,BIT1,BIT2,BIT3,BIT4,BIT5,BIT6,BIT7};
40 */
41 //======================================================
42 //函数功能:对flash进行页擦除操作
43 //入口参数:地址
44 //返回参数:0:成功,1:失败
45 //======================================================
46 unsigned char Ereas_pageflash(unsigned int addrflash)
47 { unsigned char value;
48 1 value=0;
49 1 IAP_FLASH_PageErase(addrflash);
50 1 if(Check_flashpage(addrflash)==1) //擦除不成功
51 1 value=1;
52 1 return value;
53 1 }
54
C51 COMPILER V7.50 EREASFLASH 05/26/2008 08:17:33 PAGE 2
55 //=========================================================
56 //函数功能:初始化flash模块
57 //========================================================
58 void Int_ereasflashmode(void)
59 { busy_flash=0; //清零标志位
60 1 busy_buffflash=0; //清零buffer忙
61 1 }
62
63 //==============================================================
64 //函数功能:flash擦除模块
65 //
66 //==============================================================
67 void ereasflash_mode(void)
68 { unsigned int addr_flash;
69 1 unsigned char value,i,bufferflag,flag_point,offset_point;
70 1 value=0;
71 1 if(busy_flash==0)
72 1 { if(flag_askerastindianpage==1) //停电页是否需要擦除
73 2 { value=1;
74 3 addr_flash=FL_tingdianpage;
75 3 }
76 2 else if(flag_ereasflash01.byte!=0)
77 2 { bufferflag=flag_ereasflash01.byte;
78 3 offset_point=0;
79 3 for(i=0;i<8;i++)
80 3 { if((bufferflag&0x01)==1) //如果有页需要擦除
81 4 { value=1; //置标志位
82 5 addr_flash=ereasflashaddr01[i]; //查需要擦除的地址
83 5 flag_point=1;
84 5 break;
85 5 }
86 4 else //查询下下一标志位
87 4 { bufferflag=bufferflag>>1;
88 5 offset_point++;
89 5 }
90 4 }
91 3 }
92 2 }
93 1 if(value==1) //如果有页需要擦除
94 1 { busy_flash=1; //置忙标志位
95 2 if(addr_flash>=0x7000)
96 2 { Ready_progamflash();
97 3 IAP_FLASH_PageErase(addr_flash); //擦除flash
98 3 End_progamflash();
99 3 if(Check_flashpage(addr_flash)==0) //擦除成功
100 3 flag_ereasflash01.byte=flag_ereasflash01.byte&clr_bittable[offset_point]; //清零擦除标志位
101 3 else //擦除失败
102 3 { if(flag_errorflash01.byte&set_bittable[offset_point]==1) //如果该也已经出错
103 4 flag_ereasflash01.byte=flag_ereasflash01.byte&clr_bittable[offset_point]; //清零擦除标志位
104 4 }
105 3
106 3 if(addr_flash==FL_wrbuffer) //如果时对缓存页擦除
107 3 if(F_askerasbuffer==0) //如果擦除成功
108 3 busy_buffflash=0; //清忙标志位
109 3
110 3 }
111 2 else if(addr_flash==0x6e00) //对停电页进行擦除
112 2 { Ready_progamflash();
113 3 IAP_FLASH_PageErase(addr_flash); //擦除flash
114 3 End_progamflash();
115 3 if(Check_flashpage(addr_flash)==1) //擦除不成功
116 3 {if(flag_errtingdianpage==1)
C51 COMPILER V7.50 EREASFLASH 05/26/2008 08:17:33 PAGE 3
117 4 flag_askerastindianpage=0;
118 4 }
119 3 else
120 3 flag_askerastindianpage=0;
121 3 }
122 2 }
123 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 303 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- 7
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -