📄 util.lst
字号:
C51 COMPILER V6.21 UTIL 04/11/2005 14:25:52 PAGE 1
C51 COMPILER V6.21, COMPILATION OF MODULE UTIL
OBJECT MODULE PLACED IN .\ROM\util.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE util.c OPTIMIZE(6,SPEED) BROWSE MODP2 DEFINE(KEIL) DEBUG OBJECTEXTEND CODE
-SYMBOLS PRINT(.\Lst\util.lst) OBJECT(.\ROM\util.obj)
stmt level source
1 #include "config.h"
*** ERROR C318 IN LINE 15 OF config.h: can't open file '..\lib\compiler.h'
*** ERROR C318 IN LINE 16 OF config.h: can't open file '..\lib\t89c51ix2.h'
*** ERROR C129 IN LINE 101 OF FLASH_API.H: missing ';' before '__api_wr_code_byte'
2 #include "serial.h"
3 #include "eeprom.h"
4 #include "socket.h"
5 #include "init.h"
6 #include "util.h"
7 #include "remote.h"
8 #include <string.h>
9
10 //extern bit Debug_Off;
11 extern unsigned int xdata NET_DOWN_SIZE; // _at_ 0x07ffe;
12 extern u_char xdata sio_buf[MAX_SBUF_SIZE];
13 extern u_int xdata read;
14 extern u_int xdata write;
15 extern bit SERIAL_DOWNLOAD;
16 extern u_int sram_addr;
17
18 extern IGM_INFO xdata ConfigMsg;
19
20 void DispalySetting(void)
21 {
22 u_char i;
23
24 PutString("\n\r");
25 for (i = 0; i < EEPROMVALUE; i++) {
26 PutHTOA(EEP_Read(i));PutByte(' ');
27 }
28 }
29
30 char atonum(char ch)
31 {
32 ch -= '0';
33 if (ch > 9) ch -= 7;
34 if (ch > 15) ch -= 0x20;
35 return(ch);
36 }
37
38 unsigned char gethex(u_char b0, u_char b1)
39 {
40 u_char buf[2];
41
42 buf[0] = b0;
43 buf[1] = b1;
44 buf[0] = atonum(buf[0]);
45 buf[0] <<= 4;
46 buf[0] += atonum(buf[1]);
47 return(buf[0]);
48 }
49
50
51
C51 COMPILER V6.21 UTIL 04/11/2005 14:25:52 PAGE 2
52 void ReceiveDefault(void)
53 {
54 u_char i, j, temp;
55 u_char flag = 1;
56
57 PutString("\n\rTransfer Config File !\n\r");
58
59 EA = 0;
60 write = 0;
61 read = 0;
62 EA = 1;
63
64 j = 0;
65 while(flag) {
66 if (write == (EEPROMVALUE * 2)) flag = 0;
67 else {
68 j++;
69 wait_10ms(20);
70 PutByte('.');
71 if (j > 10) {
72 // Reboot
73 ((void (code *)(void)) 0x0000)();
74 while(1);
75 }
76 }
77 }
78
79 for (i = 0, j = 0; i < EEPROMVALUE; i++) {
80 temp = gethex(sio_buf[j], sio_buf[j+1]);
81 j += 2;
82 EEP_Write(i, temp);
83 }
84
85 // Reboot
86 ((void (code *)(void)) 0x0000)();
87 while(1);
88 }
89
90
91 int Query_i(void)
92 {
93 u_char i, j;
94 u_char temp[6];
95 u_int count = 0;
96 const u_int tmp[5] = {1,10,100,1000,10000};
97
98 u_char flag = 1;
99 u_char c;
100
101 EA = 0;
102 write = 0;
103 read = 0;
104 EA = 1;
105
106 i = 0;
107 j = 0;
108 while(flag){
109 if ((write - read) > 0) {
110 c = sio_buf[read++];
111 PutByte(c);
112 if (c == 0x0d) {
113 PutByte(0x0a);
C51 COMPILER V6.21 UTIL 04/11/2005 14:25:52 PAGE 3
114 temp[i++] = 0xff;
115 flag = 0;
116 }else {
117 temp[i++] = c - 0x30;
118 j++;
119 }
120 if (i == 6) flag = 0;
121 }
122 }
123 for(i = 0; i < 5; i++) {
124 if (temp[i] == 0xff) break;
125 count += (temp[i]*tmp[--j]);
126 // PutByte(i+0x30);PutByte(':');PutHTOA(temp[i]);PutByte(' ');
127 if (j == 0) break;
128 }
129
130 //PutByte(' ');
131 //PutITOA(count);
132
133 return(count);
134 }
135
136 int BinDownload(int size)
137 {
138 u_char flag = 1;
139 u_char c;
140 u_int checksum = 0;
141 u_int i;
142
143 EA = 0;
144 write = 0;
145 read = 0;
146 EA = 1;
147
148 SERIAL_DOWNLOAD = 1;
149 sram_addr = 0x0000;
150
151 while(flag) {
152 if (sram_addr == size) flag = 0;
153 }
154
155 // check header
156 c = XBYTE[0];
157 if (c != 'W') return(0);
158 c = XBYTE[1];
159 if (c != 'i') return(0);
160 c = XBYTE[2];
161 if (c != 'z') return(0);
162 c = XBYTE[3];
163 if (c != 'n') return(0);
164 c = XBYTE[4];
165 if (c != 'e') return(0);
166 c = XBYTE[5];
167 if (c != 't') return(0);
168
169 //PutString(" Header OK ");
170
171 // checksum
172 for (i = 0; i < (size-8); i++) {
173 c = XBYTE[6+i];
174 checksum += c;
175 }
C51 COMPILER V6.21 UTIL 04/11/2005 14:25:52 PAGE 4
176 //PutString("Checksum : ");PutITOA(checksum);
177
178 c = XBYTE[size-2];
179 if (HIGH(checksum) != c) {
180 PutString("\n\rChecksum Error 1 ");
181 return(0);
182 }
183
184 c = XBYTE[size-1];
185 if (LOW(checksum) != c) {
186 PutString("\n\rChecksum Error 2");
187 return(0);
188 }
189
190 // shift
191 sram_addr = 0;
192 for (i = 0; i < (size-8); i++) {
193 XBYTE[i] = XBYTE[6+i];
194 sram_addr++;
195 }
196 //PutString("\n\rsram_addr : ");PutITOA(sram_addr);
197
198 SERIAL_DOWNLOAD = 0;
199
200 // for test
201 //return(0);
202
203 return(sram_addr);
204 }
205
206 void Boot_Code_Copy(void)
207 {
208 u_char c;
209 u_int i;
210 //void (*f)(u_int dummy);
211
212 #ifndef KJB_UPLOAD
213 EA = 0;
214 #endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -