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

📄 nvram.lst

📁 通过车载终端采集GPS数据
💻 LST
字号:
C51 COMPILER V7.09   NVRAM                                                                 09/17/2008 16:43:30 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE NVRAM
OBJECT MODULE PLACED IN .\output\nvram.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main\nvram.c LARGE BROWSE INCDIR(audio\;eeprom\;extendUART\;flash\;gps\;int
                    -er\;key\;mcu\;menu\;usb\;gprs\;main\;1wire\) DEBUG OBJECTEXTEND PRINT(.\output\nvram.lst) OBJECT(.\output\nvram.obj)

line level    source

   1          
   2          #include "nvram.h"
   3          #include "24c512.h"
   4          #include "typedef.h"
   5          #include "common_function.h"
   6          
   7          typedef struct _nvram_info
   8          {
   9              unsigned char nvLen;
  10              unsigned int nvAddr;
  11          }NVRAM_INFO;
  12          
  13          NVRAM_INFO gNvramInfo[NVRAM_INFOSIZE] = {
  14              {NVRAM_VALID_LEN, NVRAM_VALID_ADDR},
  15              {NVRAM_COLD_RESET_LEN, NVRAM_COLD_RESET_ADDR},
  16              {NVRAM_AUTO_SEND_LEN, NVRAM_AUTO_SEND_ADDR},
  17              {NVRAM_ONLINE_LEN, NVRAM_ONLINE_ADDR},
  18              {NVRAM_ARRIVE_METER_LEN, NVRAM_ARRIVE_METER_ADDR},
  19              {NVRAM_LEFT_METER_LEN, NVRAM_LEFT_METER_ADDR},
  20              {NVRAM_VOICE_VOLUME_LEN, NVRAM_VOICE_VOLUME_ADDR},
  21              {NVRAM_UPDATE_TIME_LEN, NVRAM_UPDATE_TIME_ADDR},
  22              {NVRAM_BUS_WORKMODE_LEN, NVRAM_BUS_WORKMODE_ADDR},
  23              {NVRAM_BUS_LINEMODE_LEN, NVRAM_BUS_LINEMODE_ADDR},
  24              {NVRAM_BUS_LINENUM_LEN, NVRAM_BUS_LINENUM_ADDR},
  25              {NVRAM_BUS_LINEDIRRECTION_LEN, NVRAM_BUS_LINEDIRRECTION_ADDR},
  26              {NVRAM_STATION_NUM_LEN, NVRAM_STATION_NUM_ADDR},
  27              {NVRAM_STATION_ATTR_LEN, NVRAM_STATION_ATTR_ADDR},
  28              {NVRAM_TELEPHONE_LIST_LEN, NVRAM_TELEPHONE_LIST_ADDR}
  29          };
  30          static unsigned int nvram_addr;
  31          unsigned char nvram_len;
  32          
  33          static nvram_cmd_info(unsigned char cmdId) 
  34          {
  35   1          if (cmdId >= NVRAM_INFOSIZE)
  36   1              nvram_len = 0;
  37   1          else
  38   1          {
  39   2              nvram_addr = gNvramInfo[cmdId].nvAddr;
  40   2              nvram_len = gNvramInfo[cmdId].nvLen;
  41   2          }
  42   1      }
  43          
  44          void nvram_read(unsigned char cmdId, void *ptr)
  45          {
  46   1        
  47   1      
  48   1          nvram_cmd_info(cmdId);
  49   1      
  50   1          if( nvram_len )
  51   1          {
  52   2              c512_config_read(nvram_addr, ptr, nvram_len );
  53   2          }
  54   1      }
C51 COMPILER V7.09   NVRAM                                                                 09/17/2008 16:43:30 PAGE 2   

  55          
  56          void nvram_writestationData(void *ptr)
  57          {
  58   1          c512_config_write(NVRAM_BUS_LINEDIRRECTION_ADDR, ptr, 3);
  59   1      }
  60          
  61          void nvram_write(unsigned char cmdId,void *ptr)
  62          {
  63   1      
  64   1          nvram_cmd_info(cmdId);
  65   1      
  66   1          if( nvram_len > 128 )
  67   1          {
  68   2              c512_config_write(nvram_addr, ptr, 128 );
  69   2              nvram_addr += 128;
  70   2              ptr += 128;
  71   2              nvram_len -= 128;
  72   2      
  73   2              delayMs(10);
  74   2          }
  75   1      
  76   1          if( nvram_len )
  77   1          {
  78   2              c512_config_write(nvram_addr, ptr, nvram_len );
  79   2          }
  80   1      }
  81          
  82          #define LAST_PAGEADDR 511
  83          /******************************需要考虑不在要写的地址不在一页******/
  84          /*
  85          unsigned char write_firmware(unsigned int addr, unsigned char* pBuf, unsigned char nLen)
  86          {
  87              unsigned int pageAddr, nTmp;//页地址
  88              unsigned char writeLen, leftLen;
  89              pageAddr = addr/128;
  90              leftLen = nLen;
  91              nTmp = nLen;
  92              if ((0xffff-addr) < nTmp)
  93                  return KO;
  94              while (leftLen > 0)
  95              {
  96                  if (LAST_PAGEADDR == pageAddr)
  97                      writeLen = leftLen;
  98                  else
  99                  {
 100                      if ((addr+leftLen) > ((pageAddr+1)*128))
 101                          writeLen = (pageAddr+1)*128-addr;
 102                      else
 103                          writeLen = leftLen;
 104                  }
 105                  c512_firmware_write(addr, pBuf, writeLen);
 106                  leftLen -= writeLen;
 107                  addr += writeLen;
 108                  pBuf += writeLen;
 109                  pageAddr++;
 110                  delayMs(10);
 111              }
 112              return OK;
 113          }*/


MODULE INFORMATION:   STATIC OVERLAYABLE
C51 COMPILER V7.09   NVRAM                                                                 09/17/2008 16:43:30 PAGE 3   

   CODE SIZE        =    219    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =     48       3
   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 + -