?? aplif.lst
字號(hào):
C51 COMPILER V7.50 APLIF 04/17/2007 10:39:21 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE APLIF
OBJECT MODULE PLACED IN .\Output\Aplif.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Aplif.c LARGE OPTIMIZE(SIZE) BROWSE INCDIR(.\Include) DEBUG OBJECTEXTEND PR
-INT(.\Output\Aplif.lst) OBJECT(.\Output\Aplif.obj)
line level source
1 /*
2 *********************************************************************************************************
3 * File : Aplif.C
4 * Contents :
5 *
6 * $Date : 09/18/06 Kimi v0.1
7 * $Date : 10/18/06 Kimi v0.2
8 * $Date : 11/02/06 Kimi v1.0
9 *
10 * Copyright (c) 2006 Fameg, Inc. All rights reserved
11 *********************************************************************************************************
12 */
13
14 #include "aplif.h"
15
16 //----------------------------------------------------------------------------
17 // Description:
18 //
19 //----------------------------------------------------------------------------
20 void Nand_Command (INT8U command)
21 {
22 1 while (!AplifIdle()); // Wait until APLIF ready
23 1
24 1 APLIFWAVESEL = 0x1B; // Single Write Select Waveform 0
25 1
26 1 APLIFS_DATX_L = command; // Trigger Single Byte Write
27 1
28 1 while (!AplifIdle()); // Wait until APLIF ready
29 1 }
30
31 //----------------------------------------------------------------------------
32 // Description:
33 //
34 //----------------------------------------------------------------------------
35 void NanD_Address (INT8U address)
36 {
37 1 while (!AplifIdle()); // Wait until APLIF ready
38 1
39 1 APLIFWAVESEL = 0x5B; // Single Write Select Waveform 1
40 1
41 1 APLIFS_DATX_L = address; // Trigger Single Byte Write
42 1
43 1 while (!AplifIdle()); // Wait until APLIF ready
44 1 }
45
46 //----------------------------------------------------------------------------
47 // Description:
48 //
49 //----------------------------------------------------------------------------
50 BYTE NanD_Read (void)
51 {
52 1 BYTE retval;
53 1
54 1 while (!AplifIdle()); // Wait until APLIF ready
C51 COMPILER V7.50 APLIF 04/17/2007 10:39:21 PAGE 2
55 1
56 1 APLIFWAVESEL = 0x2B; // Single Read Select Waveform 2
57 1
58 1 retval = APLIFS_DATX_L; // Trigger Single Byte Read
59 1
60 1 while (!AplifIdle()); // Wait until APLIF ready
61 1
62 1 retval = APLIFS_DAT_L; // Get Real Data
63 1
64 1 return retval;
65 1 }
66
67 //----------------------------------------------------------------------------
68 // Description:
69 //
70 //----------------------------------------------------------------------------
71 #pragma OPTIMIZE(0)
72 void Nand_ReadSector (void)
73 {
74 1 INT8U temp;
75 1
76 1 while (!AplifIdle()); // Wait until APLIF ready
77 1
78 1 APLIFWAVESEL = 0x2A; // FIFO Read Select Waveform 2
79 1
80 1 APLIFTCH = 0x02; // TC = 512
81 1 APLIFTCL = 0x00;
82 1
83 1 temp = EPBAPLIFTRIG; // Trigger FIFO Read
84 1
85 1 while (!AplifIdle()); // Wait until APLIF ready
86 1 }
87
88 //----------------------------------------------------------------------------
89 // Description:
90 //
91 //----------------------------------------------------------------------------
92 #pragma OPTIMIZE(0)
93 void Nand_WriteSector (void)
94 {
95 1 EPACNT0L = 0x00; // EPA CNT = 512, For USB 1.1
96 1 EPACNTH = 0x0A;
97 1 EPAFIFOCS = EPAFIFOCS | bmFIFO0_FULL_WE | bmFIFO0_FULL;
98 1 SFI_SKIP = 0x01; // Pass FIFO from USB to SFI
99 1
100 1 while (!AplifIdle()); // Wait until APLIF ready
101 1
102 1 APLIFWAVESEL = 0x2C; // FIFO Write Select Waveform 3
103 1
104 1 APLIFTCH = 0x02; // TC = 512
105 1 APLIFTCL = 0x00;
106 1
107 1 EPAAPLIFTRIG = 0xAA; // Trigger FIFO Write
108 1
109 1 while (!AplifIdle()); // Wait until APLIF ready
110 1 }
111
112 //----------------------------------------------------------------------------
113 // Description:
114 //
115 //----------------------------------------------------------------------------
116 void Nand_ReadSpare (void)
C51 COMPILER V7.50 APLIF 04/17/2007 10:39:21 PAGE 3
117 {
118 1 INT8U temp;
119 1
120 1 EPCCTRL = 0x3E; // EPC Bulk In
121 1
122 1 while (!AplifIdle()); // Wait until APLIF ready
123 1
124 1 APLIFWAVESEL = 0x2A; // FIFO Read Select Waveform 2
125 1
126 1 APLIFTCH = 0x00; // TC = 64
127 1 APLIFTCL = HEADER_SIZE;
128 1
129 1 temp = EPCAPLIFTRIG; // Trigger FIFO Read
130 1
131 1 while (!AplifIdle()); // Wait until APLIF ready
132 1
133 1 memcpy(SpareArea, (INT8U xdata *)DMA_FIFOC0, HEADER_SIZE);
134 1 SFI_SKIP = 0x84;
135 1 }
136
137 //----------------------------------------------------------------------------
138 // Description:
139 //
140 //----------------------------------------------------------------------------
141 void Nand_WriteSpare (void)
142 {
143 1 EPCCTRL = 0x3A; // EPC Bulk Out
144 1
145 1 EPCCNT0L = HEADER_SIZE;
146 1 EPCCNTH = 0x08;
147 1 memcpy((INT8U xdata *)DMA_FIFOC0, SpareArea, HEADER_SIZE);
148 1 EPCFIFOCS = EPCFIFOCS | bmFIFO0_FULL_WE | bmFIFO0_FULL;
149 1 SFI_SKIP = 0x04;
150 1
151 1 while (!AplifIdle()); // Wait until APLIF ready
152 1
153 1 APLIFWAVESEL = 0x2C; // FIFO Write Select Waveform 3
154 1
155 1 APLIFTCH = 0x00; // TC = 64
156 1 APLIFTCL = HEADER_SIZE;
157 1
158 1 EPCAPLIFTRIG = 0xAA; // Trigger FIFO Write
159 1
160 1 while (!AplifIdle()); // Wait until APLIF ready
161 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 414 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 2 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -