📄 hpi.lst
字号:
C51 COMPILER V8.02 HPI 10/28/2007 05:00:34 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE HPI
OBJECT MODULE PLACED IN HPI.OBJ
COMPILER INVOKED BY: E:\Keil\C51\BIN\C51.EXE HPI.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #include "common.h"
2 #include "TPBULK.H"
3 #include "HPI.H"
4 #include "HAL.H"
5 #include "Fat.h"
6
7 extern XXGFLAGS bdata bXXGFlags;
8 extern unsigned char xdata DBUF[BUFFER_LENGTH];
9 //////////////////////////////////////////
10 //UART_CMD_BLOCK xdata inblock;
11 unsigned char xdata UARTBUF[UARTBUF_LENGTH];
12 SYS_INFO_BLOCK xdata DeviceInfo;
13 UART_CMD_BLOCK xdata UartCmdBlock;
14 UART_RSP_BLOCK xdata UartRspBlock;
15 FILE_INFO xdata ThisFile;
16 //////////////////////////////////////////
17 void UartSendRsp(void)
18 {
19 1 unsigned int i;
20 1 unsigned char *pBuf=(unsigned char *)&UartRspBlock;
21 1 for(i=0;i<64;i++)
22 1 ComSendByte(*(pBuf+i));
23 1 if(UartRspBlock.len!=0){
24 2 for(i=0;i<UartRspBlock.len;i++)
25 2 ComSendByte(*(UartRspBlock.pbuffer+i));
26 2 }
27 1 }
28
29 unsigned char UartHandler(void)
30 {
31 1 unsigned char retStatus;
32 1 unsigned int len;
33 1 unsigned long pointer;
34 1 //unsigned char *pBuf=(unsigned char *)&UartRspBlock;
35 1
36 1 //for(i=0;i<64;i++)
37 1 //*(pBuf+i)=0;
38 1 //UartRspBlock.result=1;
39 1 UartRspBlock.errcode=ERC_OK;
40 1 UartRspBlock.len=0;
41 1 ///////////////////////////
42 1 switch(UartCmdBlock.cmd)
43 1 {
44 2 case CMD_RESET:
45 2
46 2 break;
47 2 case CMD_DETECT_DEVICE:
48 2 ThisFile.bFileOpen=0;
49 2 retStatus=DetectDevice();
50 2 UartRspBlock.cmd=CMD_DETECT_DEVICE_RSP;
51 2 break;
52 2 case CMD_OPEN_FILE:
53 2 retStatus=OpenFile(UartCmdBlock.CmdBlock.Cmd_OpenFile.filename);
54 2 UartRspBlock.cmd=CMD_OPEN_FILE_RSP;
55 2 break;
C51 COMPILER V8.02 HPI 10/28/2007 05:00:34 PAGE 2
56 2 case CMD_CREATE_FILE:
57 2
58 2 retStatus=OpenFile(UartCmdBlock.CmdBlock.Cmd_OpenFile.filename);
59 2 if(UartRspBlock.errcode==ERC_FILENOTFOUND)
60 2 {
61 3 retStatus=CreateFile(UartCmdBlock.CmdBlock.Cmd_CreateFile.item);
62 3 }
63 2 UartRspBlock.cmd=CMD_CREATE_FILE_RSP;
64 2 break;
65 2 case CMD_READ_FILE:
66 2 len=SwapINT16(UartCmdBlock.CmdBlock.Cmd_ReadFile.readLength);
67 2 retStatus=ReadFile(len,UARTBUF);
68 2 UartRspBlock.cmd=CMD_READ_FILE_RSP;
69 2 break;
70 2 case CMD_WRITE_FILE:
71 2 len=SwapINT16(UartCmdBlock.CmdBlock.Cmd_WriteFile.writeLength);
72 2 retStatus=WriteFile(len,UARTBUF);
73 2 UartRspBlock.cmd=CMD_WRITE_FILE_RSP;
74 2 break;
75 2 case CMD_LIST:
76 2 ThisFile.bFileOpen=0;
77 2 retStatus=List();
78 2 UartRspBlock.cmd=CMD_LIST_RSP;
79 2 break;
80 2 case CMD_REMOVE_FILE:
81 2 ThisFile.bFileOpen=0;
82 2 retStatus=RemoveFile(UartCmdBlock.CmdBlock.Cmd_RemoveFile.filename);
83 2 UartRspBlock.cmd=CMD_REMOVE_FILE_RSP;
84 2 break;
85 2 case CMD_GET_CAPACITY:
86 2 ThisFile.bFileOpen=0;
87 2 retStatus=GetCapacity();
88 2 UartRspBlock.cmd=CMD_GET_CAPACITY_RSP;
89 2 break;
90 2 case CMD_GET_FREE_CAPACITY:
91 2 ThisFile.bFileOpen=0;
92 2 retStatus=GetFreeCapacity();
93 2 UartRspBlock.cmd=CMD_GET_FREE_CAPACITY_RSP;
94 2 break;
95 2 case CMD_SET_FILE_POINTER:
96 2 pointer=SwapINT32(UartCmdBlock.CmdBlock.Cmd_SetFilePointer.pointer);
97 2 retStatus=SetFilePointer(pointer);
98 2 UartRspBlock.cmd=CMD_SET_FILE_POINTER_RSP;
99 2 break;
100 2 case CMD_GET_VERSION:
101 2 ThisFile.bFileOpen=0;
102 2 retStatus=GetFirmwareVersion();
103 2 UartRspBlock.cmd=CMD_GET_VERSION_RSP;
104 2 break;
105 2 default:
106 2 bXXGFlags.bits.bCOM_ERR=1;
107 2 return FALSE;
108 2 }
109 1
110 1 ///////////////////////////////
111 1 UartRspBlock.result=retStatus;
112 1 UartRspBlock.pbuffer=UARTBUF;
113 1 UartSendRsp();
114 1 return TRUE;
115 1 //return retStatus;
116 1 }
117 unsigned char DetectDevice(void)
C51 COMPILER V8.02 HPI 10/28/2007 05:00:34 PAGE 3
118 {
119 1 #define RspBlockDetectDevice UartRspBlock.RspBlock.Rsp_DetectDevice
120 1 return bXXGFlags.bits.SLAVE_IS_ATTACHED;
121 1
122 1 #undef RspBlockDetectDevice
123 1 }
124
125 unsigned char List(void)
126 {
127 1 #define RspBlockList UartRspBlock.RspBlock.Rsp_List
128 1 unsigned int item,i;
129 1 unsigned char j,k,bstop,sector;
130 1 //RspBlockList.errcode=ERC_NODEVICE;
131 1 if(!bXXGFlags.bits.SLAVE_IS_ATTACHED)
132 1 {
133 2 UartRspBlock.errcode=ERC_NODEVICE;
134 2 return FALSE;
135 2 }
136 1 ///////////////////////////////////////////////////////////
137 1 item=0;
138 1 bstop=0;
139 1 //RspBlockList.result=0x1;
140 1 for(sector=0;sector<DeviceInfo.BPB_RootEntCnt;sector++)
141 1 {
142 2 //////////////////////////////////////////////////
143 2 if(!RBC_Read(DeviceInfo.RootStartSector+sector,1,DBUF))
144 2 {
145 3 //item=0;
146 3 UartRspBlock.errcode=ERC_DEVICEERR;
147 3 return FALSE;
148 3 }
149 2 ///////////////////////////////////////////////////
150 2 for(i=0;i<DeviceInfo.BPB_BytesPerSec;i=i+32)
151 2 {
152 3 if(DBUF[i]==0x00)
153 3 {bstop=1;
154 4 break;}
155 3 else if(DBUF[i]==0xE5)
156 3 continue;
157 3 else if((DBUF[i]&0x40==0x40)&&(DBUF[i+11]==0xff))
158 3 {
159 4 j=DBUF[i]&0x0F;
160 4 j=j+1;
161 4 for(k=0;k<j*32;k++)
162 4 UARTBUF[item*32+k]=DBUF[i+k];
163 4 i=i+(j-1)*32;
164 4 item=item+j;
165 4 }
166 3 else
167 3 {
168 4 for(k=0;k<32;k++)
169 4 UARTBUF[item*32+k]=DBUF[i+k];
170 4 item=item+1;
171 4 }
172 3 }
173 2 ///////////////////////////////////////////////////////
174 2 if(bstop==1)break;
175 2
176 2 }
177 1
178 1 //pBuf=(PREAD_CAPACITY_RSP)DBUF;
179 1 ///////////////////////////////////////////
C51 COMPILER V8.02 HPI 10/28/2007 05:00:34 PAGE 4
180 1 RspBlockList.len=SwapINT16(item*32);
181 1 UartRspBlock.len=item*32;
182 1 return TRUE;
183 1
184 1 #undef RspBlockList
185 1
186 1 }
187 unsigned char OpenFile(unsigned char *pBuffer)
188 {
189 1 #define RspBlockOpenFile UartRspBlock.RspBlock.Rsp_OpenFile
190 1 unsigned int i;
191 1 unsigned char j,bstop,sector;
192 1 PDIR_INFO pDirInfo;
193 1
194 1 if(!bXXGFlags.bits.SLAVE_IS_ATTACHED)
195 1 {
196 2 UartRspBlock.errcode=ERC_NODEVICE;
197 2 return FALSE;
198 2 }
199 1 ///////////////////////////////////////////////////////////
200 1
201 1 ThisFile.bFileOpen=0;
202 1 //RspBlockOpenFile.result=0x0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -