📄 kw_config.lst
字号:
C51 COMPILER V7.50 KW_CONFIG 10/12/2007 17:06:01 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE KW_CONFIG
OBJECT MODULE PLACED IN kw_config.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE kw_config.c OBJECTADVANCED OPTIMIZE(11,SIZE) REGFILE(.\nand_fw2k.ORC) BROWS
-E ORDER INCDIR(c:\cypress\usb\target\inc) DEFINE(NAND_2K) DEBUG
line level source
1 /**************************************************************************************
2 Copyright (C), 1988-1999, Xi'an Keyway Control & Measurement Technology Co., Ltd
3 FileName: kw_config.c
4 Description :config file 接口模块。
5 Version :1.0
6 Function List :
7 History: // 历史修改记录
8 <author> <time> <version > <desc>
9 LigangWang 07/08/08 1.0 build this moudle
10 LigangWang 07/10/09 1.1 增加错误处理,重新整理CM_ReadConfigToParam函数
11 以加强其健壮性,增加错误日志
12 *************************************************************************************/
13 #include "globals.h"
14 #include "kw_config.h"
15
16
17 #define CM_CONFIG_FILE_NAME "KWCONFIG.INI" // 配置文件名
18 xdata struct Config_PARAM CM_ConfigParameter; // 全局变量,配置参数
19
20 /*************************************************************************************
21 Function: SM_GetStringLength
22 Description: 获取字符串长度
23 Called By:
24 Input: str1 @ BYTE*: 字符串
25 Output: N/A
26 Return: length 字符串长
27 Others:
28 *************************************************************************************/
29 BYTE SM_GetStringLength(BYTE * str)
30 {
31 1 BYTE xdata length = 0;
32 1 while(*str != 0)
33 1 {
34 2 length++;
35 2 str++;
36 2 }
37 1 return length;
38 1 }
39
40 void CM_LogError(BYTE * err)
41 {
42 1 FM_OpenFileInRoot("KWSYSTEM.LOG");
43 1 FM_WriteFile("******************************\n",31);
44 1 FM_WriteFile(LOG_ERROR,SM_GetStringLength(LOG_ERROR));
45 1 FM_WriteFile(LOG_DEFAULT_P,SM_GetStringLength(LOG_DEFAULT_P));
46 1 FM_WriteFile(LOG_CONFIG_FILE,SM_GetStringLength(LOG_CONFIG_FILE));
47 1 FM_WriteFile(err,SM_GetStringLength(err));
48 1 }
49
50 /*************************************************************************************
51 Function: SM_CmpString
52 Description: 字符串比较是否相同
53 Called By:
54 Input: str1 @ BYTE*: 字符串1
C51 COMPILER V7.50 KW_CONFIG 10/12/2007 17:06:01 PAGE 2
55 str2 @ BYTE*: 字符串2
56 length @ BYTE: 比较长度
57 Output: N/A
58 Return: 若字符串相等则返回1;否则返回0
59 Others:
60 *************************************************************************************/
61 bit SM_CmpString(BYTE * str1, BYTE * str2, BYTE length)
62 {
63 1 while(length--)
64 1 {
65 2 if(*str1 != *str2)
66 2 {
67 3 return 0;
68 3 }
69 2 str1++;
70 2 str2++;
71 2 }
72 1 return 1;
73 1 }
74
75 /*************************************************************************************
76 Function: SM_CmpString2
77 Description: 字符串比较,从第start个字符开始比较字符串(按ASIIC码值比较)
78 Called By:
79 Input: str1 @ BYTE*: 字符串1
80 str2 @ BYTE*: 字符串2
81 length @ BYTE: 比较长度
82 start @ BYTE: 开始长度
83 Output: N/A
84 Return: 若字符串2大于字符串1相等则返回1;否则返回0
85 Others:
86 *************************************************************************************/
87 bit SM_CmpString2(BYTE * str1, BYTE * str2, BYTE length,BYTE start)
88 {
89 1 str1 += start;
90 1 str2 += start;
91 1 while(length--)
92 1 {
93 2 if(*str2 > *str1)
94 2 {
95 3 return 1;
96 3 }
97 2 if(*str2 < *str1)
98 2 {
99 3 return 0;
100 3 }
101 2 str1++;
102 2 str2++;
103 2 }
104 1 return 0;
105 1 }
106
107 /*************************************************************************************
108 Function: SM_CpyString
109 Description: 字符串复制,将src字符中length个字符复制到dst
110 Called By:
111 Input: dst @ BYTE*: 目的字符串
112 src @ BYTE*: 源字符串
113 length @ BYTE: 复制长度
114 Output: N/A
115 Return: 无意义
116 Others:
C51 COMPILER V7.50 KW_CONFIG 10/12/2007 17:06:01 PAGE 3
117 *************************************************************************************/
118 bit SM_CpyString(BYTE * dst, BYTE * src, BYTE length)
119 {
120 1 while(length--)
121 1 {
122 2 *dst = *src;
123 2 dst++;
124 2 src++;
125 2 }
126 1 return 1;
127 1 }
128
129 /*************************************************************************************
130 Function: SM_Char2BCD
131 Description: 将字符串str起始的2个字符转换成BCD码,例如"50"转换成0x50
132 Called By:
133 Input: str @ BYTE*: 源字符串
134 Output: N/A
135 Return: BYTE:转换结果
136 Others:
137 *************************************************************************************/
138 BYTE SM_Char2BCD(BYTE * str)
139 {
140 1 return ((*str - 0x30)<<4) | ((*(str+1) - 0x30) & 0x0f);
141 1 }
142
143
144 /*************************************************************************************
145 Function: CM_SkipNote(BYTE ** str)
146 Description: 处理配置文件中的注释
147 Called By:
148 Input: str
149 Output: N/A
150 Return: void
151 Others:
152 *************************************************************************************/
153 void CM_SkipNote(BYTE ** str)
154 {
155 1 SkipSpace(*str);
156 1 if(*(*str) == '#')
157 1 {
158 2 while(*(*str) != '\n' && *(*str) != '\r')
159 2 {
160 3 (*str) ++;
161 3 }
162 2 }
163 1 SkipSpace(*str);
164 1 }
165
166 /*************************************************************************************
167 Function: CM_CheckFlag(BYTE ** str)
168 Description: 检查标志
169 Called By:
170 Input: str
171 Output: N/A
172 Return: bit 0:失败,1:成功
173 Others:
174 *************************************************************************************/
175 bit CM_CheckFlag(BYTE ** str,BYTE * flag,BYTE length)
176 {
177 1 CM_SkipNote(str);
178 1 if(SM_CmpString(flag, *str, length) == 0)
C51 COMPILER V7.50 KW_CONFIG 10/12/2007 17:06:01 PAGE 4
179 1 {
180 2 return 0; //标志错
181 2 }
182 1 *str += length;
183 1 CM_SkipNote(str);
184 1 return 1;
185 1 }
186
187
188
189 /*************************************************************************************
190 Function: CM_ReadRS232Param(BYTE ** str)
191 Description: 读取RS232配置参数
192 Called By:
193 Input: str
194 Output: N/A
195 Return: bit 0:失败,1:成功
196 Others:
197 *************************************************************************************/
198 bit CM_ReadRS232Param(BYTE ** str)
199 {
200 1
201 1 CM_SkipNote(str);
202 1 if(SM_CmpString("115200", *str, 6) == 1) //读取BPS
203 1 {
204 2 CM_ConfigParameter.RS232_bps = RS232_115200;
205 2 *str += 6;
206 2 }
207 1 else if(SM_CmpString("57600", *str, 5) == 1)
208 1 {
209 2 CM_ConfigParameter.RS232_bps = RS232_57600;
210 2 *str += 5;
211 2 }
212 1 else if(SM_CmpString("38400", *str, 5) == 1)
213 1 {
214 2 CM_ConfigParameter.RS232_bps = RS232_38400;
215 2 *str += 5;
216 2 }
217 1 else if(SM_CmpString("19200", *str, 5) == 1)
218 1 {
219 2 CM_ConfigParameter.RS232_bps = RS232_19200;
220 2 *str += 5;
221 2 }
222 1 else if(SM_CmpString("9600", *str, 4) == 1)
223 1 {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -