?? aplif.c
字號:
/*
*********************************************************************************************************
* File : Aplif.C
* Contents :
*
* $Date : 09/18/06 Kimi v0.1
* $Date : 10/18/06 Kimi v0.2
* $Date : 11/02/06 Kimi v1.0
*
* Copyright (c) 2006 Fameg, Inc. All rights reserved
*********************************************************************************************************
*/
#include "aplif.h"
//----------------------------------------------------------------------------
// Description:
//
//----------------------------------------------------------------------------
void Nand_Command (INT8U command)
{
while (!AplifIdle()); // Wait until APLIF ready
APLIFWAVESEL = 0x1B; // Single Write Select Waveform 0
APLIFS_DATX_L = command; // Trigger Single Byte Write
while (!AplifIdle()); // Wait until APLIF ready
}
//----------------------------------------------------------------------------
// Description:
//
//----------------------------------------------------------------------------
void NanD_Address (INT8U address)
{
while (!AplifIdle()); // Wait until APLIF ready
APLIFWAVESEL = 0x5B; // Single Write Select Waveform 1
APLIFS_DATX_L = address; // Trigger Single Byte Write
while (!AplifIdle()); // Wait until APLIF ready
}
//----------------------------------------------------------------------------
// Description:
//
//----------------------------------------------------------------------------
BYTE NanD_Read (void)
{
BYTE retval;
while (!AplifIdle()); // Wait until APLIF ready
APLIFWAVESEL = 0x2B; // Single Read Select Waveform 2
retval = APLIFS_DATX_L; // Trigger Single Byte Read
while (!AplifIdle()); // Wait until APLIF ready
retval = APLIFS_DAT_L; // Get Real Data
return retval;
}
//----------------------------------------------------------------------------
// Description:
//
//----------------------------------------------------------------------------
#pragma OPTIMIZE(0)
void Nand_ReadSector (void)
{
INT8U temp;
while (!AplifIdle()); // Wait until APLIF ready
APLIFWAVESEL = 0x2A; // FIFO Read Select Waveform 2
APLIFTCH = 0x02; // TC = 512
APLIFTCL = 0x00;
temp = EPBAPLIFTRIG; // Trigger FIFO Read
while (!AplifIdle()); // Wait until APLIF ready
}
//----------------------------------------------------------------------------
// Description:
//
//----------------------------------------------------------------------------
#pragma OPTIMIZE(0)
void Nand_WriteSector (void)
{
EPACNT0L = 0x00; // EPA CNT = 512, For USB 1.1
EPACNTH = 0x0A;
EPAFIFOCS = EPAFIFOCS | bmFIFO0_FULL_WE | bmFIFO0_FULL;
SFI_SKIP = 0x01; // Pass FIFO from USB to SFI
while (!AplifIdle()); // Wait until APLIF ready
APLIFWAVESEL = 0x2C; // FIFO Write Select Waveform 3
APLIFTCH = 0x02; // TC = 512
APLIFTCL = 0x00;
EPAAPLIFTRIG = 0xAA; // Trigger FIFO Write
while (!AplifIdle()); // Wait until APLIF ready
}
//----------------------------------------------------------------------------
// Description:
//
//----------------------------------------------------------------------------
void Nand_ReadSpare (void)
{
INT8U temp;
EPCCTRL = 0x3E; // EPC Bulk In
while (!AplifIdle()); // Wait until APLIF ready
APLIFWAVESEL = 0x2A; // FIFO Read Select Waveform 2
APLIFTCH = 0x00; // TC = 64
APLIFTCL = HEADER_SIZE;
temp = EPCAPLIFTRIG; // Trigger FIFO Read
while (!AplifIdle()); // Wait until APLIF ready
memcpy(SpareArea, (INT8U xdata *)DMA_FIFOC0, HEADER_SIZE);
SFI_SKIP = 0x84;
}
//----------------------------------------------------------------------------
// Description:
//
//----------------------------------------------------------------------------
void Nand_WriteSpare (void)
{
EPCCTRL = 0x3A; // EPC Bulk Out
EPCCNT0L = HEADER_SIZE;
EPCCNTH = 0x08;
memcpy((INT8U xdata *)DMA_FIFOC0, SpareArea, HEADER_SIZE);
EPCFIFOCS = EPCFIFOCS | bmFIFO0_FULL_WE | bmFIFO0_FULL;
SFI_SKIP = 0x04;
while (!AplifIdle()); // Wait until APLIF ready
APLIFWAVESEL = 0x2C; // FIFO Write Select Waveform 3
APLIFTCH = 0x00; // TC = 64
APLIFTCL = HEADER_SIZE;
EPCAPLIFTRIG = 0xAA; // Trigger FIFO Write
while (!AplifIdle()); // Wait until APLIF ready
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -