📄 exam(chiese).txt
字号:
C程序头文件定义
/*C**************************************************************************
* 文件名: filename.c
*----------------------------------------------------------------------------
* 版权: (c) 2004 TGE.
*----------------------------------------------------------------------------
* 释放: Spce061A
* 版本: 1.0
*----------------------------------------------------------------------------
* 目的:
* This is the demonstration software for SPCE061A
*****************************************************************************/
/*_____ 包括 ________________________________________________________*/
/*_____ 宏 ________________________________________________________*/
/*_____ 定义 ________________________________________________________*/
/*_____ 声明 ________________________________________________________*/
H Header Example
/*H**************************************************************************
* 文件名: filename.h
*----------------------------------------------------------------------------
* 版权 (c) 2004 TGE.
*----------------------------------------------------------------------------
* 释放: Spce061A
* 版本: 1.13
*----------------------------------------------------------------------------
* 目的:
*
*****************************************************************************/
/*_____ 包括 ________________________________________________________*/
/*_____ 宏 ________________________________________________________*/
/*_____ 定义 ________________________________________________________*/
/*_____ 声明 ________________________________________________________*/
Function Example
/*F**************************************************************************
* 函数名: Function Name
*----------------------------------------------------------------------------
* 入口参数:
*
* 返回:
*
*
*----------------------------------------------------------------------------
* 目的:
*
*----------------------------------------------------------------------------
* 范例:
*----------------------------------------------------------------------------
* 注意:
*----------------------------------------------------------------------------
* 需要S:
*****************************************************************************/
// BOT FSM
// IDLE Stage -> CBW -> CBW Proc -> DATA OUT Stage -> CSW Proc -> CSW Stage -> IDLE
// IDLE Stage -> CBW -> CBW Proc -> DATA IN Stage -> CSW Proc -> CSW Stage -> IDLE
// STALL Stage -> IDLE
//
if(bEPPflags.bits.Ep2_ReceiveDataFlag==1)
{
bEPPflags.bits.Ep2_ReceiveDataFlag = 0; //清标志
// CBW Proc
if( BOTFSM_IDLE )
TPBulk_CBWHandler();
// Data Out Stage
if(BOTFSM_DataOut)
{
if(BOTXfer_wResidue >= 64)
{
//BOTXfer_wResidue-=64;
EP2Len=F_D12_ReadEndpointAndClrD12Int(4, 64,BOTXfer_pData);
BOTXfer_wResidue-=EP2Len;
BOTXfer_pData+=EP2Len;
}
else
{// Data Recive Over
EP2Len=F_D12_ReadEndpointAndClrD12Int(4, 64,BOTXfer_pData);
BOTXfer_wResidue-=EP2Len;
if(BOTXfer_wResidue>0)
{//Ho>Do
;
}
else if(BOTXfer_wResidue<0)
{//Ho<Do
;
}
else
{//Ho=Do
if(BOTXfer_atNF)
{
NF_PageProgram(g_RWaddress, g_RWBuf);
TPBulk_CSWHandler();
BOTXfer_atNF=FALSE;
StallAtBulkOut=FALSE;
}
}
}
}
}
while(BOTFSM_DataIn)
{
if(BOTXfer_wResidue>64)
{
bEPPflags.bits.Ep2_SendDataFlag=0;
F_D12_WriteEndpoint(5,64,BOTXfer_pData);//回送数据
BOTXfer_pData+=64;
BOTXfer_wResidue-=64;
while(!bEPPflags.bits.Ep2_SendDataFlag);//Wait Send Over
}
else
{
bEPPflags.bits.Ep2_SendDataFlag=0;
F_D12_WriteEndpoint(5,BOTXfer_wResidue,BOTXfer_pData);//回送数据
BOTXfer_wResidue=0;
TPBulk_CSWHandler();
while(!bEPPflags.bits.Ep2_SendDataFlag);//Wait Send Over
}
}
if(BOTFSM_CSW)
{
bEPPflags.bits.Ep2_SendDataFlag=0;
F_D12_WriteEndpoint(5,BOTXfer_wResidue,BOTXfer_pData);//回送数据
BOTXfer_wResidue=0;
BOTFSMstate=USBFSM4BOT_IDLE;
while(!bEPPflags.bits.Ep2_SendDataFlag);
}
const unsigned int block0[512]=
{ /* block[0] is MBR*/
0xfa,0x33,0xc0,0x8e,0xd0,0xbc,0x00,0x7c,
0x8b,0xf4,0x50,0x07,0x50,0x1f,0xfb,0xfc,
0xbf,0x00,0x06,0xb9,0x00,0x01,0xf2,0xa5,
0xea,0x1d,0x06,0x00,0x00,0xbe,0xbe,0x07,
0xb3,0x04,0x80,0x3c,0x80,0x74,0x0e,0x80,
0x3c,0x00,0x75,0x1c,0x83,0xc6,0x10,0xfe,
0xcb,0x75,0xef,0xcd,0x18,0x8b,0x14,0x8b,
0x4c,0x02,0x8b,0xee,0x83,0xc6,0x10,0xfe,
0xcb,0x74,0x1a,0x80,0x3c,0x00,0x74,0xf4,
0xbe,0x8b,0x06,0xac,0x3c,0x00,0x74,0x0b,
0x56,0xbb,0x07,0x00,0xb4,0x0e,0xcd,0x10,
0x5e,0xeb,0xf0,0xeb,0xfe,0xbf,0x05,0x00,
0xbb,0x00,0x7c,0xb8,0x01,0x02,0x57,0xcd,
0x13,0x5f,0x73,0x0c,0x33,0xc0,0xcd,0x13,
0x4f,0x75,0xed,0xbe,0xa3,0x06,0xeb,0xd3,
0xbe,0xc2,0x06,0xbf,0xfe,0x7d,0x81,0x3d,
0x55,0xaa,0x75,0xc7,0x8b,0xf5,0xea,0x00,
0x7c,0x00,0x00,0x49,0x6e,0x76,0x61,0x6c,
0x69,0x64,0x20,0x70,0x61,0x72,0x74,0x69,
0x74,0x69,0x6f,0x6e,0x20,0x74,0x61,0x62,
0x6c,0x65,0x00,0x45,0x72,0x72,0x6f,0x72,
0x20,0x6c,0x6f,0x61,0x64,0x69,0x6e,0x67,
0x20,0x6f,0x70,0x65,0x72,0x61,0x74,0x69,
0x6e,0x67,0x20,0x73,0x79,0x73,0x74,0x65,
0x6d,0x00,0x4d,0x69,0x73,0x73,0x69,0x6e,
0x67,0x20,0x6f,0x70,0x65,0x72,0x61,0x74,
0x69,0x6e,0x67,0x20,0x73,0x79,0x73,0x74,
0x65,0x6d,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,
0x01,0x00,0x04,0x01,0x20,0x3f,0x01,0x00,
0x00,0x00,0xa0,0x0f,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x55,0xaa
};
const unsigned int block1[512]=
{ 0xeb,0x3e,0x90,0x2a,0x38,0x52,0x4e,0x61,
0x49,0x48,0x43,0x00,0x02,0x40,0x01,0x00,
0x02,0x20,0x00,0xa0,0x0f,0xf8,0x01,0x00,
0x20,0x00,0xff,0x00,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x80,0x00,0x29,0x58,
0x2d,0x19,0x2b,0x4e,0x4f,0x20,0x4e,0x41,
0x4d,0x45,0x20,0x20,0x20,0x20,0x46,0x41,
0x54,0x31,0x36,0x20,0x20,0x20,0xf1,0x7d,
0xda,0x33,0xc9,0x8e,0xd1,0xbc,0xfc,0x7b,
0x16,0x07,0xbd,0x78,0x00,0xc5,0x76,0x00,
0x1e,0x56,0x16,0x55,0xbf,0x22,0x05,0x89,
0x7e,0x00,0x89,0x4e,0x02,0xb1,0x0b,0xfc,
0xf3,0xa4,0x06,0x1f,0xbd,0x00,0x7c,0xc6,
0x45,0xfe,0x0f,0x8b,0x46,0x18,0x88,0x45,
0xf9,0xfb,0x38,0x66,0x24,0x7c,0x04,0xcd,
0x13,0x72,0x3c,0x8a,0x46,0x10,0x98,0xf7,
0x66,0x16,0x03,0x46,0x1c,0x13,0x56,0x1e,
0x03,0x46,0x0e,0x13,0xd1,0x50,0x52,0x89,
0x46,0xfc,0x89,0x56,0xfe,0xb8,0x20,0x00,
0x8b,0x76,0x11,0xf7,0xe6,0x8b,0x5e,0x0b,
0x03,0xc3,0x48,0xf7,0xf3,0x01,0x46,0xfc,
0x11,0x4e,0xfe,0x5a,0x58,0xbb,0x00,0x07,
0x8b,0xfb,0xb1,0x01,0xe8,0x94,0x00,0x72,
0x47,0x38,0x2d,0x74,0x19,0xb1,0x0b,0x56,
0x8b,0x76,0x3e,0xf3,0xa6,0x5e,0x74,0x4a,
0x4e,0x74,0x0b,0x03,0xf9,0x83,0xc7,0x15,
0x3b,0xfb,0x72,0xe5,0xeb,0xd7,0x2b,0xc9,
0xb8,0xd8,0x7d,0x87,0x46,0x3e,0x3c,0xd8,
0x75,0x99,0xbe,0x80,0x7d,0xac,0x98,0x03,
0xf0,0xac,0x84,0xc0,0x74,0x17,0x3c,0xff,
0x74,0x09,0xb4,0x0e,0xbb,0x07,0x00,0xcd,
0x10,0xeb,0xee,0xbe,0x83,0x7d,0xeb,0xe5,
0xbe,0x81,0x7d,0xeb,0xe0,0x33,0xc0,0xcd,
0x16,0x5e,0x1f,0x8f,0x04,0x8f,0x44,0x02,
0xcd,0x19,0xbe,0x82,0x7d,0x8b,0x7d,0x0f,
0x83,0xff,0x02,0x72,0xc8,0x8b,0xc7,0x48,
0x48,0x8a,0x4e,0x0d,0xf7,0xe1,0x03,0x46,
0xfc,0x13,0x56,0xfe,0xbb,0x00,0x07,0x53,
0xb1,0x04,0xe8,0x16,0x00,0x5b,0x72,0xc8,
0x81,0x3f,0x4d,0x5a,0x75,0xa7,0x81,0xbf,
0x00,0x02,0x42,0x4a,0x75,0x9f,0xea,0x00,
0x02,0x70,0x00,0x50,0x52,0x51,0x91,0x92,
0x33,0xd2,0xf7,0x76,0x18,0x91,0xf7,0x76,
0x18,0x42,0x87,0xca,0xf7,0x76,0x1a,0x8a,
0xf2,0x8a,0x56,0x24,0x8a,0xe8,0xd0,0xcc,
0xd0,0xcc,0x0a,0xcc,0xb8,0x01,0x02,0xcd,
0x13,0x59,0x5a,0x58,0x72,0x09,0x40,0x75,
0x01,0x42,0x03,0x5e,0x0b,0xe2,0xcc,0xc3,
0x03,0x18,0x01,0x27,0x0d,0x0a,0x49,0x6e,
0x76,0x61,0x6c,0x69,0x64,0x20,0x73,0x79,
0x73,0x74,0x65,0x6d,0x20,0x64,0x69,0x73,
0x6b,0xff,0x0d,0x0a,0x44,0x69,0x73,0x6b,
0x20,0x49,0x2f,0x4f,0x20,0x65,0x72,0x72,
0x6f,0x72,0xff,0x0d,0x0a,0x52,0x65,0x70,
0x6c,0x61,0x63,0x65,0x20,0x74,0x68,0x65,
0x20,0x64,0x69,0x73,0x6b,0x2c,0x20,0x61,
0x6e,0x64,0x20,0x74,0x68,0x65,0x6e,0x20,
0x70,0x72,0x65,0x73,0x73,0x20,0x61,0x6e,
0x79,0x20,0x6b,0x65,0x79,0x0d,0x0a,0x00,
0x49,0x4f,0x20,0x20,0x20,0x20,0x20,0x20,
0x53,0x59,0x53,0x4d,0x53,0x44,0x4f,0x53,
0x20,0x20,0x20,0x53,0x59,0x53,0x80,0x01,
0x00,0x57,0x49,0x4e,0x42,0x4f,0x4f,0x54,
0x20,0x53,0x59,0x53,0x00,0x00,0x55,0xaa
};
const unsigned int block2[512]=
{ 0xf8,0xff,0xff,0xff,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
const unsigned int block3[512]=
{ 0xf8,0xff,0xff,0xff,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};
/* CHS DEFINE */
const Uchar nbCylinder = 500;
const Uchar nbHead = 4;
const Uchar nbSector = 16;
const Uchar nbSectorPerCluster = 32;
#define MBR FATDW1.FAT_MBR
#define DBR FATDW1.FAT_DBR
void FormatFAT16()
{
FATDW FATDW1;
unsigned int i,j;
Ulong totalSector;
totalSector = nbCylinder * nbHead * nbSector;
NF_EraseAllBlock(); //Nf_Format Command
NF_PageProgram((1*512),&block0);
NF_PageProgram((2*512),&block1);
NF_PageProgram((3*512),&block2);
NF_PageProgram((4*512),&block3);
for(j=0; j<42; j++)
{
for(i=0; i<512; i++)
FATDW1.FAT_GU[i]=0x00;
NF_PageProgram((5*512)+(j*512),(unsigned int )&FATDW1.FAT_GU);
}
// Creat Main Boot Record
for (i=0; i<446; i++)
MBR.bootcode[i]=0x00;
// Creat 1st Partition Entry
/* Boot Flag */
MBR.PT1[0]=0x80; //BootFlag (00-Non Active, 80 - Active)
/* Start CHS */
MBR.PT1[1]=0x00; //Strat Head -> 1st Head
MBR.PT1[2]=0x01; //Strat Sector -> 1st Sector
MBR.PT1[3]=0x00; //Strat Cylinder -> 0 Cylinder
/* System ID */
MBR.PT1[4]=0x04; //SystemID -> FAT16
/* End CHS */
MBR.PT1[5]=nbHead-1; //End Head -> 1st Head
MBR.PT1[6]=((nbCylinder >> 2) & 0xc0) | nbSector; //End Sector -> 1st Sector
MBR.PT1[7]=(nbCylinder & 0xff); //End Cylinder -> 0 Cylinder
/* Relative Sectors */
MBR.PT1[8]=0x01;
MBR.PT1[9]=0x00;
MBR.PT1[10]=0x00;
MBR.PT1[11]=0x00;
/* TotalSectors */
MBR.PT1[12]=totalSector & 0xff;
MBR.PT1[13]=(totalSector >> 8) & 0xff;
MBR.PT1[14]=(totalSector >> 16) & 0xff;
MBR.PT1[15]=(totalSector >> 24) & 0xff;
// Creat 2nd Partition Entry
for(i=0; i<16; i++)
MBR.PT2[i]=0x00;
// Creat 3th Partition Entry
for(i=0; i<16; i++)
MBR.PT3[i]=0x00;
// Creat 4th Partition Entry
for(i=0; i<16; i++)
MBR.PT4[i]=0x00;
// Creat Signature Word(0x55aa)
MBR.EndingFlag[0]=0x55;
MBR.EndingFlag[1]=0xaa;
// Add NandFlash Page Write Code
NF_PageProgram(0x0000,&FATDW1.FAT_GU[0]);
return ;
// Creat System Boot Record
/* Jump Boot */
DBR.bJmpBoot[0]=0xEB;
DBR.bJmpBoot[1]=0x3C;
DBR.bJmpBoot[2]=0x90;
/* OEM Name */
DBR.bOEMName[0]='O';
DBR.bOEMName[1]='E';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -