📄 iap.lst
字号:
C51 COMPILER V7.50 IAP 10/12/2006 15:31:41 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE IAP
OBJECT MODULE PLACED IN .\Release\iap.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\..\lib\iap.c LARGE OPTIMIZE(9,SIZE) BROWSE ORDER MODDP2 INCDIR(..\..\inc
-\) DEBUG OBJECTEXTEND PRINT(.\Release\iap.lst) OBJECT(.\Release\iap.obj)
line level source
1 /*
2 *
3 * iap.c
4 *
5 * Part of the Myson Century CS620X demo program.
6 *
7 * Authors: Kang_sq
8 *
9 * iap.c contains in application programming (IAP) routines.
10 *
11 * This program was developed using the Keil 8051 C uVision 2 system.
12 * The Keil compiler MUST be used if working with Myson Century supplied
13 * firmware.
14 *
15 */
16
17
18 #include <stdio.h>
19 #include <intrins.h>
20 #include "hpserver.h"
21 #include "iap.h"
22
23 char IAP_byteread(unsigned int addr)
24 {
25 1
26 1 unsigned char retchar;
27 1
28 1 XBYTE[PSARH] = (BYTE)(addr>>8);
29 1 XBYTE[PSARL] = (BYTE)addr;
30 1
31 1 retchar = XBYTE[PSRBR];
32 1
33 1 return (retchar);
34 1
35 1 }
36
37 char IAP_pageread(unsigned int src_addr,unsigned char *des_addr,unsigned int len)
38 {
39 1 unsigned int i=0;
40 1 unsigned char *ptr;
41 1
42 1 ptr=des_addr;
43 1 for (i=0;i<len;i++)
44 1 ptr[i]=IAP_byteread(src_addr+i);
45 1 return 1;
46 1
47 1 }
48
49
50 char IAP_bytewrite(unsigned int des_addr, unsigned char wr_data)
51 {
52 1
53 1 XBYTE[PSIPR] = 0x55;
54 1 XBYTE[PSIPR] = 0xAA;
C51 COMPILER V7.50 IAP 10/12/2006 15:31:41 PAGE 2
55 1 XBYTE[PSARH] = (BYTE)(des_addr>>8);
56 1 XBYTE[PSARL] = (BYTE)(des_addr);
57 1 XBYTE[PSTBR] = wr_data;
58 1 PSCTL = PSCTL|0x01;
59 1 while(XBYTE[PSSR]&0x03);
60 1 PSCTL = PSCTL&0xFE;
61 1
62 1 XBYTE[PSIPR] = 0xA5;
63 1
64 1
65 1 return 1;
66 1
67 1 }
68
69
70
71 char IAP_pagewrite(unsigned int des_addr, unsigned char *wr_data, unsigned int len)
72 {
73 1 unsigned int i=0;
74 1
75 1 XBYTE[PSIPR] = 0x55;
76 1 XBYTE[PSIPR] = 0xAA;
77 1
78 1 for (i=0;i<len;i++)
79 1 {
80 2 XBYTE[PSARH] = (BYTE)(des_addr>>8);
81 2 XBYTE[PSARL] = (BYTE)(des_addr);
82 2 XBYTE[PSTBR] = wr_data[i];
83 2 PSCTL = PSCTL|0x01;
84 2 while(XBYTE[PSSR]&0x03);
85 2 PSCTL = PSCTL&0xFE;
86 2 des_addr++;
87 2 }
88 1
89 1 XBYTE[PSIPR] = 0xA5;
90 1
91 1 return 1;
92 1
93 1 }
94
95
96 char IAP_pageerase(unsigned int start_addr)
97 {
98 1
99 1 XBYTE[PSIPR] = 0x55;
100 1 XBYTE[PSIPR] = 0xAA;
101 1
102 1 XBYTE[PSARH] = (BYTE)(start_addr>>8);
103 1 XBYTE[PSARL] = (BYTE)(start_addr);
104 1
105 1 PSCTL = PSCTL|0x04;
106 1 while(XBYTE[PSSR]&0x03);
107 1 PSCTL = PSCTL&0xFB;
108 1
109 1 XBYTE[PSIPR] = 0xA5; //exit IAP mode
110 1
111 1 return 1;
112 1
113 1 }
114
115
116
C51 COMPILER V7.50 IAP 10/12/2006 15:31:41 PAGE 3
117
118
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 295 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- 19
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 + -