📄 nvram.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 + -