⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dosfunc.c

📁 一种文件系统的结构
💻 C
字号:
#include "define.h"
#include "all.h"
//=================================================================
//=================================================================
sfr	RamPage	= 0x9B;
//-----------------------------------------------------------------
void INITIO_SysGlobalVariable(void);
bit USR_Check_Character(U8 *SourceArray,U8 offset,U8 *CompareArray,U8 Numbyte);
//=======================================================================================

//=================================================================
//================================================================================================
void INITIO_GlobalInitialize(void) USING_0
{
	gw_FileIndex[0]=0;
	gw_FileIndex[1]=0;
	gw_FileIndex[2]=0;
	
	gw_FileTotalNumber[0]=0;
	gw_FileTotalNumber[1]=0;

  	gdw_CARD_TotalSizeMB = 0;//nand TotalSize
	gdw_DOS_SectorPerCard = 0;//logic Total sectors
	gc_CurrentCard = 0;//lzp add for test
	
	gc_CurrentExistMedia = 0x00;//默认为nand flash一定存在


	gc_ReadWriteTimeOut = 0;//storage read write timeout flag

	if(USB_Power_Pluged)
	{
		gc_USB_UI_State = USB_PHY_CONNECT;
	} else
	{
		gc_USB_UI_State = NO_USB;			
	}
	gb_USB_DisconnectFlag = 0;
	gdw_FreeClusterNum[0]=0; 
	gdw_FreeClusterNum[1]=0;    //lizhn for search free cluster
	gc_ClusBufValidPoint = 0;
	gc_ClusBufValidSize = 0;
	gc_StartSearchFreeCluster=0;                     //add by lizhn 040831
	
	gs_System_State.c_OperationState = OPERATION_STATE0_STOP;
	gs_System_State.c_Mode = SYSTEM_MODE0_PLAY;
	gs_System_State.c_FileHandle = 0;

	//gs_File_FCB中FDB逻辑地址和StartCluster初始化
	gs_File_FCB[0].dw_FDB_LogAdd = 0;//FDB逻辑地址清0
	gs_File_FCB[1].dw_FDB_LogAdd = 0;
	gs_File_FCB[2].dw_FDB_LogAdd = 0;
	gs_File_FCB[3].dw_FDB_LogAdd = 0;
	gs_File_FCB[4].dw_FDB_LogAdd = 0;
	gs_File_FCB[5].dw_FDB_LogAdd = 0;

	gs_File_FCB[0].dw_File_StartCluster = 0xffffffff;//StartCluster清除为0xffffffff
	gs_File_FCB[1].dw_File_StartCluster = 0xffffffff;
	gs_File_FCB[2].dw_File_StartCluster = 0xffffffff;
	gs_File_FCB[3].dw_File_StartCluster = 0xffffffff;
	gs_File_FCB[4].dw_File_StartCluster = 0xffffffff;
	gs_File_FCB[5].dw_File_StartCluster = 0xffffffff;

	gc_PlayABStateMode = 0;

	gc_DOS_Status = 0;//dos error flag	

	gc_WMA_ErrBitStream = 0;//WMA error flag
	gc_ADPCMSampleRate = 0x08;//default is 8K sampling rate
	
	gc_DSPVolume = 50;//DSP default Volume is max
	gc_DSPDPCValue = 0x0C;//DSP default DPC is normal
	gc_DSPEQMode = 0;////DSP default EQ is normal
	gc_DSPSurround = 0;//DSP default Surround is disable 
	gc_DSP_RECFMInput = 0;//default is Mic in Record
	gc_DSPHaveRunFlag = 0;//DSP运行标志清0
	gc_DSPFMVolume = 0x08;//初始化FM音量

	gc_MCU_ClockStep = K_MCU_HISPEED;//MCU频率初始化
	gc_MCU_OldClockStep = K_MCU_HISPEED;
	gc_UITabOKError = 0;//用来判断是否该从UITAB中获取PID/VID
	gbt_SendDataInRead_disable = 0;//默认为用户读取逻辑扇区时,会先向DSP送数据。
	//============
	//Mode setup
	//============
	//---- Defalut is Repeat ALL
	
	gdw_USER_DirClus[0] = 0;//init DVR dir startcluster

	gc_End_Of_File = TRUE;	  
	G_CurrentHZK = Language_GB2312;//lzp add for test
	gc_HZKExistFlag = 1;
	

 // add in global initial function for saving power
	XBYTE[REG_IRAM_GCLKEN] =0xff;            	// MCU ROM/SRAM gated clock function enable/disable
	XBYTE[REG_USBSRAM_CLK_SEL] =0x00;       	//USB SRAM gated clock function enable/disable
	XBYTE[REG_CTRLER_GCLKEN7_0] = 0xff;       	//Individual module gated clock function enable/disable
	XBYTE[REG_CTRLER_GCLKEN12_8] = 0xff;      	//Individual module gated clock function enable/disable
	XBYTE[REG_DSPCTRLER_GCLKDIS] = 0x00;       	//DSP gated clock function enable/disable
	
    RamPage = 0x00;
	
}
//-----------------------------------------------------------------------------------------
//initialize current sys variable and Register
//------------------------------------------------------------------------------------------
void INITIO_SysGlobalVariable(void)
{
	INITIO_GlobalInitialize();	

}
//--------------------------------------------------------------------------------------------
bit USR_Check_Character(U8 *SourceArray,U8 offset,U8 *CompareArray,U8 Numbyte)
{
	unsigned char i;

	for(i=0;i<Numbyte;i++)
	{
		if((SourceArray[offset+i]!=CompareArray[i*2]) && (SourceArray[offset+i]!=CompareArray[i*2+1]))
		{
			return 1;//比较不同
		}
	}
	
	return 0;//比较相同
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -