📄 iapdx.lst
字号:
C51 COMPILER V8.08 IAPDX 09/19/2008 10:58:25 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE IAPDX
OBJECT MODULE PLACED IN iapdx.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE iapdx.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "REG89V51.H"
2 #include "V51IAP.h"
3
4 /*
5 函数:IAP_Wait()
6 功能:等待IAP操作完成
7 */
8 void IAP_Wait()
9 {
10 1 while ( (FST & 0x04) != 0 );
11 1 }
12
13
14 /*
15 函数:IAP_Read()
16 功能:读取用户Flash中的代码(或数据)
17 参数:
18 addr:用户Flash地址
19 返回:
20 读取到的代码
21 */
22 unsigned char IAP_Read(unsigned int addr)
23 {
24 1 unsigned char c;
25 1 UnionInt a;
26 1 a.i = addr;
27 1 FCF |= 0x40;
28 1 FAH = a.CharPart.H;
29 1 FAL = a.CharPart.L;
30 1 FFS = 0x0C;
31 1 c = FDAT;
32 1 return c;
33 1 }
34
35
36 /*
37 函数:IAP_Program()
38 功能:烧录用户Flash代码,并立即校验
39 参数:
40 addr:用户Flash地址
41 dat:要烧录的数据
42 返回:
43 0:校验成功
44 1:校验失败
45 说明:
46 烧录之前必须要确保被烧录存储单元已经被擦除
47 */
48
49 bit IAP_Program(unsigned int addr,unsigned char dat)
50 {
51 1 unsigned char d;
52 1 UnionInt a;
53 1 a.i = addr;
54 1 FCF |= 0x40;
55 1 FAH = a.CharPart.H;
C51 COMPILER V8.08 IAPDX 09/19/2008 10:58:25 PAGE 2
56 1 FAL = a.CharPart.L;
57 1 FDAT = dat;
58 1 FFS = 0x0E;
59 1 IAP_Wait();
60 1 d = IAP_Read(addr);
61 1 if ( d == dat )
62 1 return 0;
63 1 else
64 1 return 1;
65 1 }
66
67
68
69
70 /*
71 函数:IAP_SectorEarse()
72 功能:扇区擦除
73 参数:
74 sector:扇区编号,取值0~511
75 说明:
76 64KB的用户Flash共分为512个扇区,每个扇区128字节
77 执行扇区擦除操作后,要等待一段时间后才能进行烧录操作
78 */
79 void IAP_SectorErase(unsigned int sector)
80 {
81 1 UnionInt addr;
82 1 if ( sector >= 512 ) return;
83 1 addr.i = sector * 128;
84 1 FCF |= 0x40;
85 1 FAH = addr.CharPart.H;
86 1 FAL = addr.CharPart.L;
87 1 FFS = 0x0B;
88 1 IAP_Wait();
89 1 }
90
91
92 /*
93 函数:JumpToUser()
94 功能:通过软复位跳到用户Flash的0x0000处执行程序
95 */
96 extern void JumpToUser()
97 {
98 1 FCF &= 0xFC; //清除SWR和BSEL
99 1 FCF |= 0x02; //软件复位
100 1 for (;;); //停机
101 1 }
102
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 101 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 6
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 + -