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

📄 storage.h

📁 增强型51单片机fs7821cf卡读写程序
💻 H
字号:
/*
**********************************************************************************************
* Project:	TK7821
* File:		Storage.h
* Contents: 
*           The storage header file
*
* $Date: 02/25/05    Jason    v0.1
*        04/21/05    Mingo    v0.2   www.fameg.com
*
* Copyright (c) 2005 Fameg, Inc. All rights reserved
***********************************************************************************************
*/

#ifndef StorageH
#define StorageH

#define DMA_BUFFER0 0x4000
#define DMA_BUFFER1 0x4200
#define DMA_BUFFER2 0x4400

#define MAX_DEVICE_NUM 4

#define DEVICE_CF         1

#define MAX_SECTOR_COUNT             0x80
#define PARTITION_OFFSET             0x20
#define BYTES_PER_SECTOR             512
#define BYTES_PER_SECTOR_SHIFT       9
#define HEADER_SIZE                  16     // Redundant area
#define HEADER_SIZE_2K               64
#define BYTES_PER_PAGE               (BYTES_PER_SECTOR + HEADER_SIZE)
#define MAX_PAGES_PER_BLOCK          64

// Special value
#define FREE_BLOCK                   0xffff
#define ERROR_BLOCK                  0xfff0
#define VALID_BLOCK                  0xff
#define INVALID_BLOCK                0xf0
#define VALID_DATA                   0xff
#define EMPTY_TAG                    0xff

#define MAX_FLASH_RETRY_TIMES        4
#define FLASH_CMD_TIMEOUT            5      // in 10 ms
#define FLASH_FLUSH_TIME             20     // in 10 ms
#define CF_CMD_TIMEOUT               100
#define GET_FLASH_INFO_DELAY         100     // in 10 ms
#define SD_CMD_TIMEOUT               100

typedef struct
{
  UINT32 TotalBlocks;
  UINT16 BlockSize;
  bool   WriteProtect;
} TDeviceInfo;

//----------------------------------------------------------------------------
// Storage function declare
//----------------------------------------------------------------------------
void StorageInit();
void StorageSuspend();
void StorageResume();
void StorageStart();
void StorageEject();
void IdentifyDrive(UINT16 Buffer);
STATUS QueryDevice();
STATUS ReadSector();
STATUS WriteSector();
STATUS ReadNextSector();
STATUS WriteNextSector();
STATUS ReadNextSectorData();
STATUS WriteNextSectorData();
UINT16 GetNextBuffer(UINT16 Buffer);

//----------------------------------------------------------------------------
// Compact Flash function declare
//----------------------------------------------------------------------------
void CfPowerOn();
void CfInit();
void CfSuspend();
void CfResume();
void CfStart();
void CfEject();
void CfIntHandler(BYTE Event);
void CfMediaChange();
STATUS CfQueryDevice();
STATUS CfReadSector();
STATUS CfWriteSector();
STATUS CfReadNextSector();
STATUS CfWriteNextSector();
//----------------------------------------------------------------------------
extern xdata TDeviceInfo DeviceInfo;

extern BYTE LastDevice;

extern UINT32 SectorStart;
extern UINT16 SectorCount;
extern UINT16 CurrentBuffer;
extern UINT16 CopyBuffer;
extern BYTE CmdTimer;
extern xdata BYTE CfGetFlashInfoTimer;
extern bit AccessStatus;
extern bit AccessWritable;
extern BYTE AccessDevice;
extern bit Authenticated;
extern idata STATUS CfMediaStatus;

#endif

⌨️ 快捷键说明

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