📄 zlg_ffs.h
字号:
/****************************************Copyright (c)**************************************************
** Guangzou ZLG-MCU Development Co.,LTD.
** graduate school
** http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name: ZLG_FFS.h
** Last modified Date: 2004-09-17
** Last Version: 1.0
** Descriptions: header file of the specific codes for LPC2200 target boards
** Every project should include a copy of this file, user may modify it as needed
**------------------------------------------------------------------------------------------------------
** Created by: Chenmingji
** Created date: 2004-02-02
** Version: 1.0
** Descriptions: The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
**
********************************************************************************************************/
#ifndef __ZLG_FFS_H
#define __ZLG_FFS_H
#ifdef __cplusplus
extern "C" {
#endif
typedef struct _FLASH_DRIVER
{
uint16 BytsPerSec; /* 每扇区字节数 */
uint16 SecsPreBlock; /* 每块扇区数 */
uint32 SecPreDisk; /* 扇区总数 */
uint32 BlockPreDisk; /* 块总数 */
uint8 *BufA; /* 临时缓冲区 */
void *Index; /* 低层驱动所需参数的存储位置 */
uint8 (* SectorRead)(void *Index, void *Buf, uint32 SecIndex); /* 读扇区数据 */
uint8 (* ExSectorRead)(void *Index, void *Buf, uint32 SecIndex); /* 读扇区扩展数据 */
uint8 (* SectorWrite)(void *Index, void *Buf, uint32 SecIndex); /* 写扇区数据 */
uint8 (* ExSectorWrite)(void *Index, void *Buf, uint32 SecIndex); /* 写扇区扩展数据 */
uint8 (* BlockErase)(void *Index, uint32 SecIndex); /* 块擦除 */
// uint8 (* SecCopy)(void *Index, uint32 SourSecIndex, uint32 DestSecIndex); /* 扇区拷贝 */
uint8 (* BlockCheck)(void *Index, uint32 BlockIndex); /* 初始有效扇区检测 */
uint8 (* SectorCheck)(void *Index, void *Buf, uint32 SecIndex); /* 读扇区数据 */
uint8 (* ExSectorCheck)(void *Index, void *Buf, uint32 SecIndex); /* 读扇区扩展数据 */
}FlashDriver;
typedef struct _FFS_DISK
{
const FlashDriver *Drive; /* 底层驱动信息 */
uint32 BlockSum; /* 有效块数 */
uint32 *VBlockInfo; /* 逻辑块到物理块的映射表 */
uint32 *BlockEaseSum; /* 物理块擦除计数 */
uint8 *BlockState; /* 物理块状态 */
}FFSDisk;
#ifdef IN_ZLG_FFS
#endif
#ifndef IN_ZLG_FFS
extern uint16 ZLG_FFS(uint8 Cammand, void *Parameter);
/*********************************************************************************************************
** 函数名称: ZLG_FFS
** 功能描述: nand flash在ZLG/FS中的驱动
**
** 输 入: Cammand:define DISK_INIT: 初始化,必须实现
** define DISK_CLOSE: 关闭,必须实现
** define DISK_READ_SECTOR: 读扇区,必须实现
** define DISK_WRITE_SECTOR: 写扇区,必须实现
** define DISK_DRIVER_VER: 查看驱动程序接口版本号,必须实现
** define DISK_CHECK_CMD: 查看命令是否实现,必须实现
** define DISK_LOW_FORMAT: 低级格式化,可选命令
** define DISK_FREE_SECTOR: 释放扇区,可选命令
** define DISK_GET_SECTOR_NUMBER: 获得设备总扇区数,可选命令
** define DISK_GET_BYTES_PER_SECTOR: 获得每扇区字节数,可选命令
** define DISK_CHECK_CHANGE: 查看介质是否改变,可选命令
** define DISK_GET_SECTORS_PER_BLOCK:获取每块扇区数,可选命令
** define DISK_READ_BLOCK: 读数据块,可选命令
** define DISK_WRITE_BLOCK: 写数据块,可选命令
** Parameter: 剩余参数,其中Parameter->RsvdForLow用于存储驱动程序支持的物理设备相关信息,
** 如使用的资源等。使用它可以使一个驱动支持多个物理设备。
** 输 出: DISK_READ_OK: 读扇区完成
** DISK_READ_NOT_OK: 读扇区失败
** DISK_WRITE_OK: 写扇区完成
** DISK_WRITE_NOT_OK: 写扇区失败
** DISK_INIT_OK: 初始化完成
** DISK_INIT_NOT_OK: 初始化失败
** DISK_FALSE: 真
** DISK_TRUE: 假
** BAD_DISK_COMMAND: 无效的命令
********************************************************************************************************/
#endif
#ifdef __cplusplus
}
#endif
#endif
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -