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

📄 massstorage.h

📁 smartARM2400 USB OTG例程
💻 H
字号:
/****************************************Copyright (c)****************************************************
**                            Guangzhou ZHIYUAN electronics Co.,LTD.
**                                      
**                                 http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name:               massStorage.h
** Latest modified Date:    2007-10-8
** Latest Version:          1.0
** Descriptions:            大容量类存储器接口函数
**
**--------------------------------------------------------------------------------------------------------
** Created by:              Lizhenming
** Created date:            2007-09-9
** Version:                 1.0
** Descriptions:            The original version
**
*********************************************************************************************************/
#ifndef __MASSSTORAGE_H__
#define __MASSSTORAGE_H__                                                                          

#define __MASSSTORAGE_ERROR  0xFFFE                                     /*  读写存储器错误              */                

#define __MS_NOT_READY     0                                            /*  存储器未准备好              */
#define __MS_READY         1                                            /*  存储器准备好                */
                               
typedef struct _DISK_INFO {                                             /*  储存器信息结构体            */
    __uint32      uiCapacity;                                           /*  扇区总数                    */
    __uint32      uiBlockLen;                                           /*  扇区大小                    */
} __DISK_INFO, *__PDISK_INFO;

/*
 *  最大逻辑单元(取值0~15,表示支持1~16个逻辑单元),由具体存储器接口实现程序定义和初始化
 */
#define __MAXLUN      0                                                 /*  最大逻辑单元                */       
extern  __uint8 __GbCurLun;                                             /*  当前逻辑单元                */

/*
 *  储存器缓冲区首址(缓冲区大小为一个扇区),由具体存储器接口实现程序维护
 */
#define __GpucMassStorageBuf    __GpucMassStorageBufs[__GbCurLun]       /*  当前逻辑单元缓冲区首址      */
extern  __uint8 *__GpucMassStorageBufs[__MAXLUN+1];

/*********************************************************************************************************
  接口函数
*********************************************************************************************************/
/*
 *  接口函数结构体,按照索引从0开始排序,0-5为必需的接口函数,6-8为可选的接口函数
 */
typedef struct _DISK_OPERATION {
__uint8         (*Init) (void);                                         /*  储存器初始化                */
__uint8         (*Reset) (void);                                        /*  储存器复位                  */
__PDISK_INFO    (*GetInfo) (void);                                      /*  获取储存器基本信息          */
__uint8         (*GetStatus) (void);                                    /*  获取储存器状态              */
__uint8         (*ReadSector) (__uint32, __uint8*);                     /*  读储存器扇区                */
__uint8         (*WriteSector) (__uint32, __uint8*);                    /*  写储存器扇区                */
__uint8         (*ReadSetting) (__uint32, __uint32);                    /*  读储存器扇区前设置          */
__uint8         (*WriteSetting) (__uint32 , __uint32);                  /*  写储存器扇区前设置          */
__uint8         (*DeInit) (void);                                       /*  储存器卸载                  */
} __DISK_OPERATION;

/*
 *  接口函数结构体数组,初始化为具体存储器接口程序(如果可选接口没支持,则需要初始化为0)
 */
                  
extern  const __DISK_OPERATION __DiskOpertions[__MAXLUN+1];

/*
 *  必需的接口函数(有__的函数在massStorage.c里加了一层封装)
 */
#define __msInit              (*__DiskOpertions[__GbCurLun].Init)
#define __msReset             (*__DiskOpertions[__GbCurLun].Reset)
#define msGetInfo             (*__DiskOpertions[__GbCurLun].GetInfo)
#define msGetStatus           (*__DiskOpertions[__GbCurLun].GetStatus)
#define msReadSector          (*__DiskOpertions[__GbCurLun].ReadSector)
#define msWriteSector         (*__DiskOpertions[__GbCurLun].WriteSector)
/*
 *  可选接口函数 
 */
#define msReadSetting         (*__DiskOpertions[__GbCurLun].ReadSetting)
#define msWriteSetting        (*__DiskOpertions[__GbCurLun].WriteSetting)
#define msDeInit              (*__DiskOpertions[__GbCurLun].DeInit)


/*********************************************************************************************************
  接口函数定义
*********************************************************************************************************/

/*********************************************************************************************************
** Function name:           msInit
**
** Descriptions:            初始化存储器
**
** input parameters:        无
** output parameters:       无

** Returned value:          __MASS_SUCCESS  初始化成功
**                          __MASS_FAIL     初始化失败
**
*********************************************************************************************************/
__uint8   msInit (void);

/*********************************************************************************************************
** Function name:           msDeInit
**
** Descriptions:            存储器卸载
**
** input parameters:        无
** output parameters:       无

** Returned value:          __MASS_SUCCESS  卸载成功
**                          __MASS_FAIL     卸载失败
**
*********************************************************************************************************/
/*
 *   __uint8   msDeInit (void);
 */
/*********************************************************************************************************
** Function name:           msReset
**
** Descriptions:            复位存储器
**
** input parameters:        无
** output parameters:       无

** Returned value:          __MASS_SUCCESS    复位成功
**                          __MASS_FAIL       复位失败
**
*********************************************************************************************************/
__uint8   msReset (void);

/*********************************************************************************************************
** Function name:           msGetInfo
**
** Descriptions:            获取存储器容量,扇区大小等信息
**
** input parameters:        无
** output parameters:       无

** Returned value:          存储器容量(扇区数),扇区大小等信息
**
*********************************************************************************************************/
/*
 *  PMSINFO  msGetInfo (void);
 */   
/*********************************************************************************************************
** Function name:           msGetStatus
**
** Descriptions:            获取存储器状态
**
** input parameters:        无
** output parameters:       无
** Returned value:          __MS_READY       -- 存储器准备好
**                          __MS_NOT_READY   -- 存储器未准备好
*********************************************************************************************************/
/*
 * __uint8   msGetStatus (void);
 */
/*********************************************************************************************************
** Function name:           msReadSector
**
** Descriptions:            读取存储器扇区数据到缓冲区
**
** input parameters:        uiLBA   逻辑块地址
                            pucData 数据指针
** output parameters:       

** Returned value:          __MASS_SUCCESS    操作成功
**                          __MASS_FAIL       操作失败
*********************************************************************************************************/
/*
 *  __uint8 msReadSector (__uint32 uiLBA, __uint8 *pucData);
 */
/*********************************************************************************************************
** Function name:           msWriteSector
**
** Descriptions:            把存储器缓冲区数据写回存储器
**
** input parameters:        uiLBA   逻辑块地址
                            pucData 数据指针
** output parameters:       无

** Returned value:          __MASS_SUCCESS    操作成功
**                          __MASS_FAIL       操作失败
**
*********************************************************************************************************/
/*
 *  __uint8 msWriteSector ( uiLBA, __uint8 *pucData);
 */
/*********************************************************************************************************
** Function name:           __msReadSetting
**
** Descriptions:            读存储器之前的设置
**
** input parameters:        LBA         逻辑块地址
**                          uiXferCnt   总共要传输的扇区数
** output parameters:       无

** Returned value:          __MASS_SUCCESS    设置成功
**                          __MASS_FAIL       设置失败
**
*********************************************************************************************************/
__uint8 __msReadSetting ( __uint32  uiLBA, __uint32  uiXferCnt);

/*********************************************************************************************************
** Function name:           __msWriteSetting
**
** Descriptions:            写存储器之前的设置
**
** input parameters:        LBA         逻辑块地址
**                          uiXferCnt   总共要传输的扇区数
** output parameters:       无

** Returned value:          __MASS_SUCCESS    设置成功
**                          __MASS_FAIL       设置失败
**
*********************************************************************************************************/
__uint8 __msWriteSetting ( __uint32  uiLBA, __uint32  uiXferCnt);

/*********************************************************************************************************
  内部支持函数
*********************************************************************************************************/

/*********************************************************************************************************
** Function name:           __msXferPkt2USB
**
** Descriptions:            从存储器读出数据并把数据包发送到USB
**
** input parameters:        无
** output parameters:       无

** Returned value:          返回发送到USB的字节数或__MASSSTORAGE_ERROR
**
*********************************************************************************************************/
__uint16 __msXferPkt2USB (void);

/*********************************************************************************************************
** Function name:           __msXferPktFrUSB
**
** Descriptions:            从USB读取数据包并写入存储器
**
** input parameters:        无
** output parameters:       无

** Returned value:          返回写入的字节数或__MASSSTORAGE_ERROR
**
*********************************************************************************************************/
__uint16 __msXferPktFrUSB (void);

#endif
/*********************************************************************************************************
  END FILE
*********************************************************************************************************/

⌨️ 快捷键说明

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