📄 vendor.lst
字号:
C51 COMPILER V7.06 VENDOR 07/02/2003 10:27:48 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE VENDOR
OBJECT MODULE PLACED IN vendor.OBJ
COMPILER INVOKED BY: C:\KEIL\C51\BIN\C51.EXE vendor.c OPTIMIZE(2,SPEED) BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /****************************************Copyright (c)**************************************************
2 ** 广州周立功单片机发展有限公司
3 ** 研 究 所
4 ** http://www.zlgmcu.com
5 **--------------当前版本修订------------------------------------------------------------------------------
6 ** 修改人: 刘英斌
7 ** 日 期:2003-03-13
8 ** 描 述:ISP1581 V1.0
9 **------------------------------------------------------------------------------------------------------
10 ********************************************************************************************************/
11
12 #include "standard.h"
13 #include "Kernel.h"
14 #include "D14.h"
15
16
17
18
19 //***********************************************************************
20 //* *
21 //* External Variable Definition *
22 //* *
23 //***********************************************************************
24
25 extern USB_DEVICE USB_Device;
26 extern DMA_INT_FLAG DMA_Int_Flag;
27 extern USB_INT_FLAG USB_Int_Flag;
28 extern volatile D14_CNTRL_REG xdata D14_Cntrl_Reg;
29 extern void Start_mSEC_Timer(Data);
30 extern UC Data;
31 extern UI Temp,PIO_Count;
32 extern KERNEL Kernel_Flag;
33 extern ULI bytecount;
34 extern FILESIZE FileSize;
35 extern UI count;
36 extern UC idata Endpt_FIFO[MAX_BUF];
37 extern UC Type;
38
39 //***********************************************************************
40 //* *
41 //* Variable Definition *
42 //* *
43 //***********************************************************************
44
45 UI Count_PIO;
46
47 //***********************************************************************
48 //* *
49 //* Prototype Definition *
50 //* *
51 //***********************************************************************
52
53 void DMA_Debug_Mode(void);
54 void DMA_Init(void);
55 void DMA_Mode(Data);
C51 COMPILER V7.06 VENDOR 07/02/2003 10:27:48 PAGE 2
56
57 //***********************************************************************
58 //* *
59 //* Routine Definition *
60 //* *
61 //***********************************************************************
62
63 //***********************************************************************
64 //* *
65 //* Routine : DMA Debug Mode *
66 //* Input : None *
67 //* Output : None *
68 //* Function : Generic DMA mode routine *
69 //* *
70 //***********************************************************************
71
72 void DMA_Debug_Mode(void)
73 {
74 1 if(Kernel_Flag.BITS.Transfer_Start)
75 1 {
76 2 if(FileSize.Size.Address[0] == 0 &&
77 2 FileSize.Size.Address[1] == 0 &&
78 2 FileSize.Size.Address[2] == 0)
79 2 {
80 3 Kernel_Flag.BITS.Out_Reset_Done = 0;
81 3 Kernel_Flag.BITS.In_Reset_Done = 0;
82 3 }
83 2
84 2 if(FileSize.Size.DIR == 0x00 || FileSize.Size.DIR == 0x80)
85 2 DMA_Mode(Write);
86 2 else
87 2 DMA_Mode(Read);
88 2 }
89 1 }
90
91
92 //***********************************************************************
93 //* *
94 //* Routine : DMA Mode *
95 //* Input : DMA Controller setting *
96 //* Output : None *
97 //* Function : to do GDMA data transfer *
98 //* *
99 //***********************************************************************
100
101 void DMA_Mode(Data)
102 {
103 1 UI Datcount;
104 1
105 1 if(Data)
106 1 {
107 2 //read
108 2 do
109 2 {
110 3 //Check for Out Token ACK interrupt
111 3 while(!USB_Int_Flag.BITS.EP2RX)
112 3 {
113 4 if(USB_Int_Flag.BITS.SUSP || Kernel_Flag.BITS.Bus_Reset || USB_Int_Flag.BITS.EP0SETUP)
114 4 break;
115 4 }
116 3 EA_DISABLE;
117 3 USB_Int_Flag.BITS.EP2RX = 0;
C51 COMPILER V7.06 VENDOR 07/02/2003 10:27:48 PAGE 3
118 3 EA_ENABLE;
119 3 D14_Cntrl_Reg.D14_ENDPT_INDEX = 4;
120 3 //Read in FIFO data
121 3 if (bytecount > PIO_Count)
122 3 {
123 4 Datcount = PIO_Count;
124 4 }
125 3 else
126 3 {
127 4 Datcount = bytecount;
128 4 }
129 3 if(Kernel_Flag.BITS.HS_FS_State == FULL_SPEED)
130 3 {
131 4 for(Count_PIO = 0 ; Count_PIO < Datcount ; Count_PIO++)
132 4 Endpt_FIFO[Count_PIO] = D14_Cntrl_Reg.D14_DATA_PORT_LSB;
133 4 }
134 3 else
135 3 {
136 4 for(Count_PIO = 0 ; Count_PIO < Datcount; Count_PIO++)
137 4 Temp = D14_Cntrl_Reg.D14_DATA_PORT_LSB;
138 4 }
139 3 bytecount -= Datcount;
140 3 }while(bytecount);
141 2 }
142 1 else
143 1 {
144 2 //write
145 2 do
146 2 {
147 3 //initialize endpoint index
148 3 D14_Cntrl_Reg.D14_ENDPT_INDEX = 5;
149 3 //Write data to FIFO
150 3 if (bytecount>PIO_Count)
151 3 {
152 4 D14_Cntrl_Reg.D14_BUFFER_LENGTH_LSB =( unsigned char ) PIO_Count;
153 4 D14_Cntrl_Reg.D14_BUFFER_LENGTH_MSB = ( unsigned char ) (PIO_Count>>8);
154 4 Datcount = PIO_Count;
155 4 }
156 3 else
157 3 {
158 4 D14_Cntrl_Reg.D14_BUFFER_LENGTH_LSB =( unsigned char ) bytecount;
159 4 D14_Cntrl_Reg.D14_BUFFER_LENGTH_MSB = ( unsigned char ) (bytecount>>8);
160 4 Datcount = bytecount;
161 4 }
162 3
163 3 if(Kernel_Flag.BITS.HS_FS_State == FULL_SPEED)
164 3 {
165 4 for(Count_PIO = 0 ; Count_PIO < Datcount ; Count_PIO++)
166 4 D14_Cntrl_Reg.D14_DATA_PORT_LSB = Endpt_FIFO[Count_PIO];
167 4 }
168 3 else
169 3 {
170 4 for(Count_PIO = 0 ; Count_PIO < Datcount ; Count_PIO++)
171 4 D14_Cntrl_Reg.D14_DATA_PORT_LSB = Count_PIO % 256;
172 4 }
173 3 //Check for In Token ACK
174 3 while(!USB_Int_Flag.BITS.EP2TX)
175 3 {
176 4 if(USB_Int_Flag.BITS.SUSP || Kernel_Flag.BITS.Bus_Reset || USB_Int_Flag.BITS.EP0SETUP)
177 4 break;
178 4 }
179 3 EA_DISABLE;
C51 COMPILER V7.06 VENDOR 07/02/2003 10:27:48 PAGE 4
180 3 USB_Int_Flag.BITS.EP2TX = 0;
181 3 EA_ENABLE;
182 3 bytecount -= Datcount;
183 3 }while(bytecount);
184 2 Count_PIO = 0;
185 2 }
186 1 Kernel_Flag.BITS.Transfer_Start = 0;
187 1 }
188
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 598 ----
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 + -