📄 custome.lst
字号:
C51 COMPILER V6.10 CUSTOME 12/02/2005 23:12:53 PAGE 1
C51 COMPILER V6.10, COMPILATION OF MODULE CUSTOME
OBJECT MODULE PLACED IN .\custome.OBJ
COMPILER INVOKED BY: e:\p\u\Keil\C51\BIN\C51.EXE .\custome.c DEBUG OBJECTEXTEND
stmt level source
1 #pragma NOIV // Do not generate interrupt vectors
2 //-----------------------------------------------------------------------------
3 // File: bulkloop.c
4 // Contents: Hooks required to implement USB peripheral function.
5 //
6 // Copyright (c) 2000 Cypress Semiconductor All rights reserved
7 //-----------------------------------------------------------------------------
8 #include "fx2.h"
9 #include "fx2regs.h"
10 #include "fx2sdly.h" // SYNCDELAY macro
11
12 extern BOOL GotSUD; // Received setup data flag
13 extern BOOL Sleep;
14 extern BOOL Rwuen;
15 extern BOOL Selfpwr;
16
17 BYTE Configuration; // Current configuration
18 BYTE AlternateSetting; // Alternate settings
19
20 #define VR_NAKALL_ON 0xD0
21 #define VR_NAKALL_OFF 0xD1
22
23 //-----------------------------------------------------------------------------
24 // Task Dispatcher hooks
25 // The following hooks are called by the task dispatcher.
26 //-----------------------------------------------------------------------------
27
28 void TD_Init(void) // Called once at startup
29 {
30 1 // set the CPU clock to 48MHz
31 1 CPUCS = ((CPUCS & ~bmCLKSPD) | bmCLKSPD1) ;
32 1
33 1 // enable dual autopointer feature
34 1 AUTOPTRSETUP |= 0x01;
35 1
36 1 Rwuen = TRUE; // Enable remote-wakeup
37 1
38 1 }
39
40
41 void TD_Poll(void) // Called repeatedly while the device is idle
42 {
43 1 WORD i;
44 1 WORD count,x;
45 1
46 1 if(!(EP2468STAT & bmEP2EMPTY))
47 1 { // check EP2 EMPTY(busy) bit in EP2468STAT (SFR), core set's this bit when FIFO is empty
48 2
49 2 APTR1H = MSB( &EP2FIFOBUF );
50 2 APTR1L = LSB( &EP2FIFOBUF );
51 2
52 2 count = (EP2BCH << 8) + EP2BCL;
53 2
54 2 // loop EP2OUT buffer data to EP6IN
55 2 for( i = 0x0000; i < count; i++ )
C51 COMPILER V6.10 CUSTOME 12/02/2005 23:12:53 PAGE 2
56 2 {
57 3 // Read from the buffer to empty it.
58 3 x=*(&EP2FIFOBUF+i);
59 3 }
60 2 EP2BCL = 0x80; // re(arm) EP2OUT
61 2
62 2 //Reset PLD to state 0(waiting for trigger)
63 2 IOA &=0xf7;
64 2 EZUSB_Delay(100);
65 2 IOA |=0x08;
66 2
67 2 }
68 1 }
69
70 BOOL TD_Suspend(void) // Called before the device goes into suspend mode
71 {
72 1 return(TRUE);
73 1 }
74
75 BOOL TD_Resume(void) // Called after the device resumes
76 {
77 1 return(TRUE);
78 1 }
79
80 //-----------------------------------------------------------------------------
81 // Device Request hooks
82 // The following hooks are called by the end point 0 device request parser.
83 //-----------------------------------------------------------------------------
84
85 BOOL DR_GetDescriptor(void)
86 {
87 1 return(TRUE);
88 1 }
89
90 BOOL DR_SetConfiguration(void) // Called when a Set Configuration command is received
91 {
92 1 Configuration = SETUPDAT[2];
93 1 return(TRUE); // Handled by user code
94 1 }
95
96 BOOL DR_GetConfiguration(void) // Called when a Get Configuration command is received
97 {
98 1 EP0BUF[0] = Configuration;
99 1 EP0BCH = 0;
100 1 EP0BCL = 1;
101 1 return(TRUE); // Handled by user code
102 1 }
103
104 BOOL DR_SetInterface(void) // Called when a Set Interface command is received
105 {
106 1 AlternateSetting = SETUPDAT[2];
107 1 return(TRUE); // Handled by user code
108 1 }
109
110 BOOL DR_GetInterface(void) // Called when a Set Interface command is received
111 {
112 1 EP0BUF[0] = AlternateSetting;
113 1 EP0BCH = 0;
114 1 EP0BCL = 1;
115 1 return(TRUE); // Handled by user code
116 1 }
117
C51 COMPILER V6.10 CUSTOME 12/02/2005 23:12:53 PAGE 3
118 BOOL DR_GetStatus(void)
119 {
120 1 return(TRUE);
121 1 }
122
123 BOOL DR_ClearFeature(void)
124 {
125 1 return(TRUE);
126 1 }
127
128 BOOL DR_SetFeature(void)
129 {
130 1 return(TRUE);
131 1 }
132
133 BOOL DR_VendorCmnd(void)
134 {
135 1 BYTE tmp;
136 1
137 1 switch (SETUPDAT[1])
138 1 {
139 2 case VR_NAKALL_ON:
140 2 tmp = FIFORESET;
141 2 tmp |= bmNAKALL;
142 2 SYNCDELAY;
143 2 FIFORESET = tmp;
144 2 break;
145 2 case VR_NAKALL_OFF:
146 2 tmp = FIFORESET;
147 2 tmp &= ~bmNAKALL;
148 2 SYNCDELAY;
149 2 FIFORESET = tmp;
150 2 break;
151 2 default:
152 2 return(TRUE);
153 2 }
154 1
155 1 return(FALSE);
156 1 }
157
158 //-----------------------------------------------------------------------------
159 // USB Interrupt Handlers
160 // The following functions are called by the USB interrupt jump table.
161 //-----------------------------------------------------------------------------
162
163 // Setup Data Available Interrupt Handler
164 void ISR_Sudav(void) interrupt 0
165 {
166 1 GotSUD = TRUE; // Set flag
167 1 EZUSB_IRQ_CLEAR();
168 1 USBIRQ = bmSUDAV; // Clear SUDAV IRQ
169 1 }
170
171 // Setup Token Interrupt Handler
172 void ISR_Sutok(void) interrupt 0
173 {
174 1 EZUSB_IRQ_CLEAR();
175 1 USBIRQ = bmSUTOK; // Clear SUTOK IRQ
176 1 }
177
178 void ISR_Sof(void) interrupt 0
179 {
C51 COMPILER V6.10 CUSTOME 12/02/2005 23:12:53 PAGE 4
180 1 EZUSB_IRQ_CLEAR();
181 1 USBIRQ = bmSOF; // Clear SOF IRQ
182 1 }
183
184 void ISR_Ures(void) interrupt 0
185 {
186 1 // whenever we get a USB reset, we should revert to full speed mode
187 1 pConfigDscr = pFullSpeedConfigDscr;
188 1 ((CONFIGDSCR xdata *) pConfigDscr)->type = CONFIG_DSCR;
189 1 pOtherConfigDscr = pHighSpeedConfigDscr;
190 1 ((CONFIGDSCR xdata *) pOtherConfigDscr)->type = OTHERSPEED_DSCR;
191 1
192 1 EZUSB_IRQ_CLEAR();
193 1 USBIRQ = bmURES; // Clear URES IRQ
194 1 }
195
196 void ISR_Susp(void) interrupt 0
197 {
198 1 Sleep = TRUE;
199 1 EZUSB_IRQ_CLEAR();
200 1 USBIRQ = bmSUSP;
201 1 }
202
203 void ISR_Highspeed(void) interrupt 0
204 {
205 1 // if (EZUSB_HIGHSPEED())
206 1 // {
207 1 // pConfigDscr = pHighSpeedConfigDscr;
208 1 // ((CONFIGDSCR xdata *) pConfigDscr)->type = CONFIG_DSCR;
209 1 pOtherConfigDscr = pFullSpeedConfigDscr;
210 1 ((CONFIGDSCR xdata *) pOtherConfigDscr)->type = OTHERSPEED_DSCR;
211 1 // }
212 1
213 1 EZUSB_IRQ_CLEAR();
214 1 USBIRQ = bmHSGRANT;
215 1 }
216 void ISR_Ep0ack(void) interrupt 0
217 {
218 1 }
219 void ISR_Stub(void) interrupt 0
220 {
221 1 }
222 void ISR_Ep0in(void) interrupt 0
223 {
224 1 }
225 void ISR_Ep0out(void) interrupt 0
226 {
227 1 }
228 void ISR_Ep1in(void) interrupt 0
229 {
230 1 }
231 void ISR_Ep1out(void) interrupt 0
232 {
233 1 }
234 void ISR_Ep2inout(void) interrupt 0
235 {
236 1 }
237 void ISR_Ep4inout(void) interrupt 0
238 {
239 1 }
240 void ISR_Ep6inout(void) interrupt 0
241 {
C51 COMPILER V6.10 CUSTOME 12/02/2005 23:12:53 PAGE 5
242 1 }
243 void ISR_Ep8inout(void) interrupt 0
244 {
245 1 }
246 void ISR_Ibn(void) interrupt 0
247 {
248 1 }
249 void ISR_Ep0pingnak(void) interrupt 0
250 {
251 1 }
252 void ISR_Ep1pingnak(void) interrupt 0
253 {
254 1 }
255 void ISR_Ep2pingnak(void) interrupt 0
256 {
257 1 }
258 void ISR_Ep4pingnak(void) interrupt 0
259 {
260 1 }
261 void ISR_Ep6pingnak(void) interrupt 0
262 {
263 1 }
264 void ISR_Ep8pingnak(void) interrupt 0
265 {
266 1 }
267 void ISR_Errorlimit(void) interrupt 0
268 {
269 1 }
270 void ISR_Ep2piderror(void) interrupt 0
271 {
272 1 }
273 void ISR_Ep4piderror(void) interrupt 0
274 {
275 1 }
276 void ISR_Ep6piderror(void) interrupt 0
277 {
278 1 }
279 void ISR_Ep8piderror(void) interrupt 0
280 {
281 1 }
282 void ISR_Ep2pflag(void) interrupt 0
283 {
284 1 }
285 void ISR_Ep4pflag(void) interrupt 0
286 {
287 1 }
288 void ISR_Ep6pflag(void) interrupt 0
289 {
290 1 }
291 void ISR_Ep8pflag(void) interrupt 0
292 {
293 1 }
294 void ISR_Ep2eflag(void) interrupt 0
295 {
296 1 }
297 void ISR_Ep4eflag(void) interrupt 0
298 {
299 1 }
300 void ISR_Ep6eflag(void) interrupt 0
301 {
302 1 }
303 void ISR_Ep8eflag(void) interrupt 0
C51 COMPILER V6.10 CUSTOME 12/02/2005 23:12:53 PAGE 6
304 {
305 1 }
306 void ISR_Ep2fflag(void) interrupt 0
307 {
308 1 }
309 void ISR_Ep4fflag(void) interrupt 0
310 {
311 1 }
312 void ISR_Ep6fflag(void) interrupt 0
313 {
314 1 }
315 void ISR_Ep8fflag(void) interrupt 0
316 {
317 1 }
318 void ISR_GpifComplete(void) interrupt 0
319 {
320 1 }
321 void ISR_GpifWaveform(void) interrupt 0
322 {
323 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 445 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 4
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 + -