⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kw_config.lst

📁 linux下数据下载器的设计与实现
💻 LST
📖 第 1 页 / 共 2 页
字号:
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 + -