📄 iso.lst
字号:
C51 COMPILER V6.20c ISO 07/25/2004 17:16:39 PAGE 1
C51 COMPILER V6.20c, COMPILATION OF MODULE ISO
OBJECT MODULE PLACED IN Iso.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE Iso.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //#include "stdio.h"
2 #include "HAL.H"
3 //#include "USBD12.H"
4 #include "SMPro.H"
5 //#include "USB110.H"
6 #include "USB.H"
7 #include "VDOR.H"
8 #include "Isp1581.h"
9 #include "main.h"
10 //#include "Isr.h"
11 #include "CHAP9.H"
12 #include "Iso.h"
13
14 extern ZBOARDFLAGS bZBoardFlags;
15 extern CONTROL_XFER ControlData;
16 extern GLOBE_VARIABLE globe_variable;
17
18
19 void ISO_CONFIG(void)
20 {
21 1 unsigned short *fp;
22 1 //unsigned short seg, off;
23 1 unsigned char IsoMode = 0; //ISO_IN:01|ISO_OUT:02;
24 1 unsigned short length;
25 1 if( ControlData.DeviceRequest.wLength == 0)
26 1 {
27 2 IsoMode &= ~ControlData.DeviceRequest.wIndex;
28 2 IsoMode |= ControlData.DeviceRequest.wValue;
29 2
30 2 if(IsoMode&ISO_IN)
31 2 {
32 3 // ISO in loop mode
33 3 RaiseIRQL();
34 3 globe_variable.isoINCount = 0;
35 3 globe_variable.isoINSize = 256;
36 3 //seg = (isoBuffer + globe_variable.isoINCount)>>4;
37 3 //off = (isoBuffer + globe_variable.isoINCount)&0xf;
38 3 //fp = MK_FP(seg, off);
39 3 length = globe_variable.isoINSize - globe_variable.isoINCount;
40 3 if(length <= 256)
41 3 {
42 4 ISP1581_SetEPIndex(EPINDEX4EP07OUT);// work around for es4, write in endpoint corrupts out endpoint da
-ta
43 4 ISP1581_WriteISOEndpoint(EPINDEX4EP03IN, fp, length);
44 4 globe_variable.isoINCount += length;
45 4 bZBoardFlags.bits.ISO_state = ISO_IDLE;
46 4 }
47 3 else
48 3 {
49 4 ISP1581_SetEPIndex(EPINDEX4EP07OUT);// work around for es4, write in endpoint corrupts out endpoint da
-ta
50 4 ISP1581_WriteISOEndpoint(EPINDEX4EP03IN, fp, 256);
51 4 globe_variable.isoINCount += 256;
52 4 bZBoardFlags.bits.ISO_state = ISO_IN;
53 4 }
C51 COMPILER V6.20c ISO 07/25/2004 17:16:39 PAGE 2
54 3 LowerIRQL();
55 3 }
56 2 else
57 2 {
58 3 if(IsoMode & ISO_OUT)
59 3 {
60 4 //ISO out mode
61 4 RaiseIRQL();
62 4 bZBoardFlags.bits.ISO_state = ISO_OUT;
63 4 //globe_variable.isoINSize = 0;
64 4 globe_variable.isoOUTSize = 0;
65 4 globe_variable.isoOUTCount = 0;
66 4 globe_variable.isoINCount = 0;
67 4 LowerIRQL();
68 4 }
69 3
70 3 if(IsoMode&ISO_LOOP)
71 3 {
72 4 RaiseIRQL();
73 4 bZBoardFlags.bits.ISO_state = ISO_LOOP;
74 4 globe_variable.isoINSize = 0;
75 4 globe_variable.isoOUTCount = 0;
76 4 globe_variable.isoINCount = 0;
77 4 LowerIRQL();
78 4 }
79 3 }
80 2 Chap9_ControlWriteHandshake();
81 2 }
82 1 else
83 1 {
84 2 USB_Stall_EP0();
85 2 }
86 1 }
87
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 219 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 6
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 + -