📄 kernel.lst
字号:
C51 COMPILER V7.50 KERNEL 10/30/2007 16:17:29 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE KERNEL
OBJECT MODULE PLACED IN kernel.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE kernel.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /****************************************Copyright (c)**************************************************
2
3 ** 文 件 名: kernel.c
4 ** 最后修改日期: 2006年10月19日
5 ** 描 述: USB驱动程序软件包: D14 设备端驱动程序 主程序
6 ** 版 本: V1.0
7 **********************************************************************************************************
-/
8
9
10
11 #include "standard.h"
12 #include "Kernel.h"
13 #include "D14.h"
14
15
16 //外部函数
17 extern Init_Main();
18 extern USBserve();
19
20 extern USB_INT_FLAG USB_Int_Flag;
21 extern DMA_INT_FLAG DMA_Int_Flag;
22 extern USB_DEVICE USB_Device;
23 extern volatile D14_CNTRL_REG xdata D14_Cntrl_Reg;
24 extern void Check_Busy(void);
25 extern void Init_D14(void);
26 extern void Init_Endpoint(void);
27 extern void Init_Device(void);
28 extern void Get_PIDVID(void);
29 extern unsigned int read_endpoint(unsigned char endp,unsigned int len,unsigned char *buf);
30 extern unsigned int write_endpoint(unsigned char endp,unsigned int len,unsigned char *buf);
31
32
33 extern UC VID[2],PID[2];
34 extern UC idata Endpt_FIFO[MAX_BUF];
35 extern Set_USB(void);
36 extern TIMER Timer;
37
38
39 //内部函数
40 void Start_mSEC_Timer(Data);
41 void Start_SEC_Timer(Data);
42
43
44 //变量定义
45 UI Temp;
46 KERNEL Kernel_Flag;
47
48
49 /////////////////////////////////
50
51
52 //主函数
53 void Main(void)
54 {
C51 COMPILER V7.50 KERNEL 10/30/2007 16:17:29 PAGE 2
55 1 unsigned int a;
56 1 unsigned char b[16];
57 1 unsigned char c[16];
58 1
59 1 //初始化子程序
60 1 Init_Main();
61 1 //enable device and reset the device address
62 1 D14_Cntrl_Reg.D14_MODE.BITS.SOFTCT = 1;
63 1
64 1 while(1)
65 1 {
66 2
67 2 USBserve();
68 2
69 2 //端点1收发
70 2 if (USB_Int_Flag.BITS.EP1RX)
71 2 {
72 3 USB_Int_Flag.BITS.EP1RX = 0;
73 3 a=read_endpoint(0x02,8,c);
74 3 a=write_endpoint(0x03,8,c);
75 3 }
76 2
77 2 //端点2收发
78 2 if (USB_Int_Flag.BITS.EP2RX)
79 2 {
80 3 USB_Int_Flag.BITS.EP2RX = 0;
81 3 a=read_endpoint(0x04,8,b);
82 3 a=write_endpoint(0x05,8,b);
83 3 }
84 2
85 2
86 2
87 2 }
88 1
89 1
90 1 }
91
92
93
94 //***********************************************************************
95 //* *
96 //* Routine : Start_mSEC_Timer(Delay) *
97 //* Input : Delay in milli second *
98 //* Output : Start timer operation *
99 //* Function : To start the timeout operation based on the delay i/p *
100 //* *
101 //***********************************************************************
102
103 void Start_mSEC_Timer(Data)
104 {
105 1
106 1
107 1 do
108 1 {
109 2
110 2 //calculate timer value
111 2 Temp = Timer.mSEC_Scale;
112 2 Temp = 0xffff - Temp;
113 2
114 2 ET0 = 1;
115 2
116 2 //calculate timer value
C51 COMPILER V7.50 KERNEL 10/30/2007 16:17:29 PAGE 3
117 2 //initialize timer 0 counter
118 2 Temp >>= 8;
119 2 TH0 = (UC) Temp;
120 2 Temp = Timer.mSEC_Scale;
121 2 Temp = 0xffff - Temp;
122 2 TL0 = (UC) Temp;
123 2
124 2 //start timer count
125 2 TR0 = 1;
126 2
127 2 Kernel_Flag.BITS.Timer_Expired = 0;
128 2 while(!Kernel_Flag.BITS.Timer_Expired);
129 2 Kernel_Flag.BITS.Timer_Expired = 0;
130 2
131 2
132 2 //stop timer
133 2 TR0 = 0;
134 2 ET0 = 0;
135 2
136 2 Data--;
137 2 }
138 1 while(Data != 0);
139 1 }
140
141
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 220 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 6 34
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 + -