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

📄 storage.c

📁 dz3000_51.0.0.4.rar
💻 C
字号:
/*++

Copyright (c) 2001 Sunplus Technology Co., Ltd.

Module Name:

        storage.c

Abstract:

        Module related to general storage media

Environment:

        Keil C51 Compiler

Revision History:

        08/28/2001      Chi-Yeh Tsai    created

--*/

// WWW3, whole file

//=============================================================================
//Header file
//=============================================================================
// WWW1 start
#include "general.h"
#include "storage.h"
#include "main.h"
#include "setmode.h"
#include "cardlink.h"
#include "cardusr.h"

// WWW1 end

//patch4.2@richie@ds0511 begin
#if (DOSRAM_OPTION)
#include "dramfunc.h"
#endif
//patch4.2@richie@ds0511 end

//patch4.3@richie@md0603 begin
#include "initio.h"
#include "sdramhw.h"
//patch4.3@richie@md0603 end

//=============================================================================
//Symbol
//=============================================================================
//-----------------------------------------------------------------------------
//Constant
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
//Variable
//-----------------------------------------------------------------------------

//=============================================================================
//Program
//=============================================================================
//-----------------------------------------------------------------------------
//STORAGE_Initialize
//-----------------------------------------------------------------------------
UCHAR STORAGE_Initialize(UCHAR doDOSInitial) USING_0
/*++

Routine Description:

        general routine to initialize storage media

Arguments:

        none

Return Value:

        none

--*/
{
        UCHAR sts = TRUE;

        if (G_ucStorageType == 0xff)    //first time initialization
                sts = STORAGE_Detect();
//		DELAY_1s();
//		UI_Buzzer();//wendy@2004/8/26

        switch (G_ucStorageType)
        {
#if (SDRAM_OPTION == 1)
                case K_MEDIA_None:
                        SDRAM_Initialize();
                        break;
#endif

#if (CARD_OPTION == 1)
		default:
			if (sts)
               {
                         //Write date and time    //ada@0321
                         USR_UpdateRtcTime();//wendy@2004/8/26
/*                         L2_ReadRTC(&G_DATEINFO);
                         G_DOS_CreateDate = ((USHORT)(G_DATEINFO.Year + 20) << 9) + ((USHORT)(G_DATEINFO.Month) << 5) + (USHORT)(G_DATEINFO.Day);
                         G_DOS_CreateTime = ((USHORT)(G_DATEINFO.Hour) << 11) + ((USHORT)(G_DATEINFO.Minute) << 5) + ((USHORT)(G_DATEINFO.Second) << 1);
*/
	//patch4.4@richie@dsi begin
	//restore G_DOS_SDRAM_FAT1Addr
	#if ( DOSRAM_OPTION == 1 )	
	if (G_Card_Type == K_MEDIA_DOSRAM)
	{
		if (G_ulDRAMSTORFAT1AddrTemp != 0xFFFFFFFF)
		{
			G_DOS_SDRAM_FAT1Addr = G_ulDRAMSTORFAT1AddrTemp;
		}
	}
	else
	{
		G_DOS_SDRAM_FAT1Addr = K_SDRAM_DOS_FAT1Addr;
	}
	#endif
	//patch4.4@richie@dsi end

                		sts = M_Card_Initialize(doDOSInitial);
               }
                        break;
#endif
                    
        }
        return sts;
}

//-----------------------------------------------------------------------------
//STORAGE_Detect
//-----------------------------------------------------------------------------
UCHAR STORAGE_Detect(void) USING_0
/*++

Routine Description:

        detect which storage media exists

Arguments:

        none

Return Value:

        none

--*/
	{
			UCHAR status = FALSE;
	
			G_ucStorageType = K_MEDIA_None;
	
	#if ( CARD_OPTION ) 
		status = M_Card_Detect();
		if ( status == FALSE )
		{
			// WWWW start
			G_Card_Type = K_MEDIA_BUILT_IN; // WWW2
			status = M_Card_Detect();
			if ( status == FALSE )
				G_ucStorageType = K_MEDIA_None;
			else
				G_ucStorageType = G_Card_Type;
			// WWWW end
		}
		else
			G_ucStorageType = G_Card_Type;
	#endif
		
		return status;
		
	}


//-----------------------------------------------------------------------------
//STORAGE_Format
//-----------------------------------------------------------------------------
//patch3.2@ada@0401 For Date & Time Update
//patch3.2@ada@0401 For Multi-Frame Play Back
UCHAR STORAGE_Format(UCHAR eraseCard) USING_0
/*++

Routine Description:

        format media currently selected

Arguments:

        none

Return Value:

        none

--*/
{
        UCHAR    sts = TRUE;

        switch (G_ucStorageType)
        {
#if (SDRAM_OPTION == 1)
                case K_MEDIA_None:
                        SDRAM_Format();
                        break;
#endif

                default:
#if (CARD_OPTION == 1)
                         //ada@0401 For Date & Time Update
                         USR_UpdateRtcTime();

                         //ada@0401 For Multi-Frame Play Back
                         //Clear the area where saving the start-cluster parameter of each image file
                         USR_ResetDramFdbParameterArea();

          			sts = DOS_Format(eraseCard);
#endif
                        break;
        }
        return sts;
}

//-----------------------------------------------------------------------------
//STORAGE_CaptureObject
//-----------------------------------------------------------------------------
UCHAR STORAGE_CaptureObject(USHORT objType) USING_0
/*++

Routine Description:

        capture one object to storage media currently selected

Arguments:

        objType - type of object to capture, where 0 is JPEG file
                                                   1 is WAV file
                                                   2 is video only AVI file
                                                   3 is audio/video AVI file

Return Value:

        none

--*/
{
	UCHAR sts = TRUE;

        switch (G_ucStorageType)
        {
#if (SDRAM_OPTION == 1)
                case K_MEDIA_None:
                        SDRAM_CaptureObject(objType);
                        break;
#endif

                default:
#if (CARD_OPTION == 1)
			sts = Card_CaptureObject(objType);
#endif
			
                        break;
                	
        }
        return sts;
}

//-----------------------------------------------------------------------------
//STORAGE_DeleteObject
//-----------------------------------------------------------------------------
UCHAR STORAGE_DeleteObject(USHORT objIndex) USING_0
/*++

Routine Description:

        delete one object to storage media currently selected

Arguments:

        objIndex - index of object to delete, where 0 is delete all
                                                    the other is delete one selected

Return Value:

        none

--*/
{
	UCHAR	sts = TRUE;
	
        switch (G_ucStorageType)
        {
#if (SDRAM_OPTION == 1)
                case K_MEDIA_None:
                        SDRAM_DeleteObject(objIndex);
                        break;
#endif

                default:
#if (CARD_OPTION == 1)
			sts = Card_DeleteObject(objIndex);
#endif
                        break;
        }
        return sts;
}

//-----------------------------------------------------------------------------
//STORAGE_PlaybackObject
//-----------------------------------------------------------------------------
UCHAR STORAGE_PlaybackObject(USHORT objType, USHORT objIndex) USING_0
/*++

Routine Description:

        playback one object from storage media currently selected

Arguments:

        objType - type of playback, where 0 is nine thumbnail playback
                                          1 is four thumbnail playback
                                          2 is one image playback
                                          3 is image slide show playback
                                          4 is video playback
        objIndex - index of object to playback

Return Value:

        none

--*/
{
	UCHAR	sts = TRUE;

        switch (G_ucStorageType)
        {
#if (SDRAM_OPTION == 1)
                case K_MEDIA_None:
                        SDRAM_PlaybackObject(objType, objIndex);
                        break;
#endif

                default:
#if (CARD_OPTION == 1)
#if (PLAYBACK_OPTION)
                        sts = Card_PlaybackObject(objType, objIndex);
	
#endif                        
#endif
                        break;
        }
        
        return sts;
}

//-----------------------------------------------------------------------------
//STORAGE_UploadObject
//-----------------------------------------------------------------------------
UCHAR STORAGE_UploadObject(USHORT objType, USHORT objIndex) USING_0
/*++

Routine Description:

        upload one object from storage media currently selected

Arguments:

        objType - type of object to capture, where 0 is to get object count
                                                   1 is to get object FDBs
                                                   2 is to upload one object
        objIndex - index of object to upload

Return Value:

        none

--*/
{
	UCHAR	sts = TRUE;
	
        switch (G_ucStorageType)
        {
#if (SDRAM_OPTION == 1)
                case K_MEDIA_None:
                        SDRAM_UploadObject(objType, objIndex);
                        break;
#endif
                default:
#if (CARD_OPTION == 1)
			sts = Card_UploadObject(objType, objIndex);
#endif
                        break;
        }
        
        return sts;
}

//patch4.3@richie@md0603 begin
#if (SINGLE_DIRECTORY == 0)
//-----------------------------------------------------------------------------
//STORAGE_GetDirData
//-----------------------------------------------------------------------------
UCHAR STORAGE_GetDirData(void) USING_0
/*++

Routine Description:

        upload all dir data by index from storage media currently selected

Return Value:

        none

--*/
{
	UCHAR	sts = TRUE;

        SDRAM_Dram2Usb(K_SDRAM_DcfDirBufAddr, G_USR_TotalDirectory * 14);	
        
        return sts;
}
#endif
//patch4.3@richie@md0603 end

⌨️ 快捷键说明

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