www.pudn.com > MP3+JPEG.rar > customer_def.h


#ifndef __CUSTOMER_DEF_H__ 
#define __CUSTOMER_DEF_H__ 
 
//============================================================================ 
//以下为所有的配置选项,只在需要的时候打开,请拷贝到相关配置下再打开 
//#define _PC_UNABLE_FORMAT_UDISK           //此定义控制着PC是否可以格式化U盘  
//#define _FAT_CLUSTER_SIZE_4K              //使用固定的簇大小 
//#define FAT_OS                            //定义是否使用OS 
//#define MALLOC_USE                        //定义是否使用BUDDY 
//#define _USE_EXTERNAL_MEMORY              //使用外部RAM,并用buddy管理 
//#define FAR_VER                           //定义是否是FAR版本,注意如果打开次选项,需要选择SPL162001_FarXXX.spj进行编译 
//#define _PART_FILE_OPERATE                //此定义表示支持删除部分文件和插入操作 
//#define _UNICODE_EXTEND                   //支持扩展unicode,把unicode的查找程序开放出来供客户自己扩展 
//#define SD_EN                             //此定义表示带SD卡设备 
//#define NAND_EN                           //使用NAND FLASH设备 
//#define _UDISK_RESERVED                   //PC操作优盘时可能会操作超过disk size的空间,所以做了(256kb)的预留 
//#define _READ_WRITE_SPEED_UP                //表示读或写一个sector时不需通过buffer直接对disk进行读写 
 
//#define _SEEK_SPEED_UP                    //此定义表示是否对seek加速,需要额外的内存空间和堆栈,如果打开此选项,后面的3个选项至少需要打开一个 
//指定seek加速使用的RAM,需要打开_SEEK_SPEED_UP后打开以下的定义才有意义 
//#define _SEEK_SPEEDUP_USE_USER_MEM        //定义使用用户定义的RAM进行seek加速,可为内部或外部RAM 
//#define _SEEK_SPEEDUP_USE_EXTBUDDY_MEM    //定义使用外部buddy申请RAM进行seek加速 
//#define _SEEK_SPEEDUP_USE_INNERBUDDY_MEM  //定义使用内部buddy申请RAM进行seek加速 
 
//指定支持的磁盘数,为SD+NAND FLASH的分区数 
//#define _MAX_DISK_NUM     (SD_EN + NAND1_EN + NAND2_EN + NAND3_EN + USB_EN) 
//#define _MAX_FILE_NUM     8               //指定最多可以打开的文件的数目 
 
//定义unitab index buffer使用的内存位置 
//#define _UNITAB_USE_EXTBUDDY_MEM          //使用外部buddy 
//#define _UNITAB_USE_INNERBUDDY_MEM        //使用内部buddy 
//#define _UNITAB_USE_INNERGLOBAL_MEM       //使用内部全局数组 
//#define _UNITAB_USE_USEREXT_MEM           //使用客户提供的外部存储空间 
//#define _UNITAB_USE_USERINNER_MEM         //使用客户提供的内部存储空间 
//#define _UNITAB_USE_NOTHING               //不使用unitab index buffer 
 
//#define _DIR_UPDATA                       //表示在写的过程中可以更新dir的信息 
 
//支持小容量的磁盘的格式化,固定格式化为FAT16,不带MBR,需要指定磁盘的最大sector数和实际sector数 
//因为我们的文件系统不支持FAT12,而当磁盘容量小于16MB时,PC会把磁盘认做FAT12,所以做了这个函数,可以 
//把小于16MB的磁盘格式化为大于16Mb(可指定大小),并可以指定磁盘实际的空间大小 
//#define _SMALL_DISK_FORMAT 
//============================================================================ 
 
//不使用外部RAM 
//#define _UNSP_FS_FOR_TC700 
 
//使用4~5k的外部buffer 
//#define _UNSP_FS_FOR_KS300 
 
//支持两个盘符,支持同时打开4个文件,不使用外部RAM,支持unicode 
//#define _UNSP_FS_FOR_DVR 
 
//支持两个盘符,支持同时打开4个文件,不使用外部RAM,不支持unicode, A、B盘符对调 
//#define _UNSP_FS_FOR_FP3 
 
//支持两个盘符,支持同时打开4个文件,不使用外部RAM,不支持unicode 
//#define _UNSP_FS_FOR_DSL2 
 
//支持4个盘符,支持同时打开8个文件,使用外部buddy,支持unicode 
//#define _UNSP_FS_STD 
 
//伟易达的案子,不用外部RAM,不用OS,使用内部buddy 
//#define _UNSP_FS_FOR_WYD 
 
//支持4个盘符,支持同时打开8个文件,使用外部buddy,支持unicode 
//支持删除D_RDONLY的文件 
//#define _UNSP_FS_FOR_DSL 
 
//不用OS,使用内部buddy和外部buddy,标准版 
#define _UNSP_FS_NOS 
 
//不用OS,不用内部和外部buddy,标准版 
//#define _UNSP_FS_NOSBD 
 
//FAR版本,不用OS,不用内部和外部buddy,标准版 
//#define _UNSP_FS_FAR_NOSBD 
 
//FAR版本,使用OS,使用内部和外部byddy,标准版 
//#define _UNSP_FS_FAR 
 
//不用OS,使用内部buddy,不用外部buddy,标准版 
//#define _UNSP_FS_NOSEXTBD 
 
//不用OS,不用内部和外部buddy,给SINO-MOS的版本 
//#define _UNSP_FS_FOR_SINOMOS 
 
//当在VC++下进行程序调试时,使用此开关,当在unsp下时,屏蔽掉此定义  
//#define _DEBUG_UNSP_FS_IN_VCPP 
 
//此定义表示在 SPL162001 的模拟器上进行测试 
//#define	_DEBUG_UNSP_FS_IN_SIMULATOR 
 
 
//以下为各部分具体的配置 
//============================================================================ 
#if defined _UNSP_FS_FOR_TC700 
    #define	FAT_OS                              //带OS 
    #define MALLOC_USE                          //使用BUDDY 
    #define SD_EN             1                 //此定义表示带SD卡设备 
    #define NAND1_EN          1                 //使用NAND FLASH设备 
    #define NAND2_EN          1                 //使用NAND FLASH设备 
    #define NAND3_EN          1                 //使用NAND FLASH设备 
    #define USB_EN            0                 //使用usb host设备 
    //#define	_PART_FILE_OPERATE              //此定义表示支持删除部分文件和插入操作 
    //#define _UDISK_RESERVED                   //PC操作优盘时可能会操作超过disk size的空间,所以做了(256kb)的预留 
    #define _SEEK_SPEED_UP                      //此定义表示是否对seek加速,需要额外的内存空间和堆栈 
    #define _SEEK_SPEEDUP_USE_INNERBUDDY_MEM    //定义使用内部buddy申请RAM进行seek加速 
    #define _MAX_FILE_NUM     6                 //最多可以打开4个文件 
    #define _UNITAB_USE_INNERGLOBAL_MEM         //使用内部全局数组进行保存unitab index的buffer 
 
//============================================================================ 
#elif defined _UNSP_FS_FOR_KS300 
    #define	FAT_OS                              //带OS 
    #define MALLOC_USE                          //使用BUDDY 
    #define _FAT_CLUSTER_SIZE_4K                //使用固定的簇大小 
    #define SD_EN             1                 //此定义表示带SD卡设备 
    #define NAND1_EN          1                 //使用NAND FLASH设备 
    #define NAND2_EN          1                 //使用NAND FLASH设备 
    #define NAND3_EN          1                 //使用NAND FLASH设备 
    #define USB_EN            0                 //使用usb host设备 
    //#define	_PART_FILE_OPERATE              //此定义表示支持删除部分文件和插入操作 
    //#define _UDISK_RESERVED                   //PC操作优盘时可能会操作超过disk size的空间,所以做了(256kb)的预留 
    #define _SEEK_SPEED_UP                      //此定义表示是否对seek加速,需要额外的内存空间和堆栈 
    #define _SEEK_SPEEDUP_USE_USER_MEM          //定义使用用户定义的RAM进行seek加速 
    #define _MAX_FILE_NUM     8                 //最多可以打开4个文件 
    #define _UNITAB_USE_USEREXT_MEM             //使用客户提供的外部存储空间 
 
//============================================================================ 
#elif defined _UNSP_FS_FOR_DVR 
    #define	FAT_OS                              //带OS 
    #define MALLOC_USE                          //使用BUDDY 
    #define SD_EN             1                 //此定义表示带SD卡设备 
    #define NAND1_EN          1                 //使用NAND FLASH设备 
    #define NAND2_EN          0                 //使用NAND FLASH设备 
    #define NAND3_EN          0                 //使用NAND FLASH设备 
    #define USB_EN            0                 //使用usb host设备 
    #define	_PART_FILE_OPERATE                  //此定义表示支持删除部分文件和插入操作 
    //#define _UDISK_RESERVED                     //PC操作优盘时可能会操作超过disk size的空间,所以做了(256kb)的预留 
    #define _SEEK_SPEED_UP                      //此定义表示是否对seek加速,需要额外的内存空间和堆栈 
    #define _SEEK_SPEEDUP_USE_INNERBUDDY_MEM    //定义使用内部buddy申请RAM进行seek加速 
    #define _MAX_FILE_NUM     4                 //最多可以打开4个文件 
    #define _UNITAB_USE_INNERGLOBAL_MEM         //使用内部全局数组进行保存unitab index的buffer 
    #define _DIR_UPDATA                        //表示在写的过程中可以更新dir的信息 
//============================================================================ 
#elif defined _UNSP_FS_FOR_FP3 
    #define	FAT_OS                              //带OS 
    #define MALLOC_USE                          //使用BUDDY 
    #define SD_EN             1                 //此定义表示带SD卡设备 
    #define NAND1_EN          1                 //使用NAND FLASH设备 
    #define NAND2_EN          0                 //使用NAND FLASH设备 
    #define NAND3_EN          0                 //使用NAND FLASH设备 
    #define USB_EN            0                 //使用usb host设备 
    //#define _UDISK_RESERVED                     //PC操作优盘时可能会操作超过disk size的空间,所以做了(256kb)的预留 
    #define _MAX_FILE_NUM     4                 //最多可以打开4个文件 
    #define _UNITAB_USE_NOTHING                 //不使用unitab index buffer 
 
//============================================================================ 
#elif defined _UNSP_FS_FOR_DSL2 
    #define	FAT_OS                              //带OS 
    #define MALLOC_USE                          //使用BUDDY 
    #define SD_EN             1                 //此定义表示带SD卡设备 
    #define NAND1_EN          1                 //使用NAND FLASH设备 
    #define NAND2_EN          0                 //使用NAND FLASH设备 
    #define NAND3_EN          0                 //使用NAND FLASH设备 
    #define USB_EN            0                 //使用usb host设备 
    //#define _UDISK_RESERVED                     //PC操作优盘时可能会操作超过disk size的空间,所以做了(256kb)的预留 
    #define _MAX_FILE_NUM     4                 //最多可以打开4个文件 
    #define _UNITAB_USE_NOTHING                 //不使用unitab index buffer 
 
//============================================================================ 
#elif defined _UNSP_FS_STD 
    #define	FAT_OS                              //带OS 
    #define MALLOC_USE                          //使用BUDDY 
	#define _USE_EXTERNAL_MEMORY                //使用外部空间 
    #define SD_EN             1                 //此定义表示带SD卡设备 
    #define NAND1_EN          1                 //使用NAND FLASH设备 
    #define NAND2_EN          1                 //使用NAND FLASH设备 
    #define NAND3_EN          1                 //使用NAND FLASH设备 
    #define USB_EN            0                 //使用usb host设备 
    //#define _UDISK_RESERVED                     //PC操作优盘时可能会操作超过disk size的空间,所以做了(256kb)的预留 
    #define _SEEK_SPEED_UP                      //此定义表示是否对seek加速,需要额外的内存空间和堆栈 
    #define _SEEK_SPEEDUP_USE_EXTBUDDY_MEM      //定义使用外部buddy申请RAM进行seek加速 
    #define _MAX_FILE_NUM     8                 //最多可以打开8个文件 
    #define _UNITAB_USE_EXTBUDDY_MEM            //使用外部buddy 
 
//============================================================================ 
#elif defined _UNSP_FS_FOR_WYD 
    #define MALLOC_USE                          //使用BUDDY 
    #define SD_EN             1                 //此定义表示带SD卡设备 
    #define NAND1_EN          1                 //使用NAND FLASH设备 
    #define NAND2_EN          1                 //使用NAND FLASH设备 
    #define NAND3_EN          1                 //使用NAND FLASH设备 
    #define USB_EN            0                 //使用usb host设备 
    //#define _UDISK_RESERVED                     //PC操作优盘时可能会操作超过disk size的空间,所以做了(256kb)的预留 
    #define _UNICODE_EXTEND                     //支持扩展unicode,把unicode的查找开放出来供客户扩展 
    #define _SEEK_SPEED_UP                      //此定义表示是否对seek加速,需要额外的内存空间和堆栈 
    #define _SEEK_SPEEDUP_USE_INNERBUDDY_MEM    //定义使用内部buddy申请RAM进行seek加速 
    #define _MAX_FILE_NUM     8                 //最多可以打开8个文件 
    #define _UNITAB_USE_NOTHING                 //不使用unitab index buffer 
 
//============================================================================ 
#elif defined _UNSP_FS_FOR_DSL 
    #define	FAT_OS                              //带OS 
    #define MALLOC_USE                          //使用BUDDY 
    #define _USE_EXTERNAL_MEMORY                //使用外部空间 
    #define SD_EN             1                 //此定义表示带SD卡设备 
    #define NAND1_EN          1                 //使用NAND FLASH设备 
    #define NAND2_EN          1                 //使用NAND FLASH设备 
    #define NAND3_EN          1                 //使用NAND FLASH设备 
    #define USB_EN            0                 //使用usb host设备 
    //#define _UDISK_RESERVED                     //PC操作优盘时可能会操作超过disk size的空间,所以做了(256kb)的预留 
    #define _SEEK_SPEED_UP                      //此定义表示是否对seek加速,需要额外的内存空间和堆栈 
    #define _SEEK_SPEEDUP_USE_EXTBUDDY_MEM      //定义使用外部buddy申请RAM进行seek加速 
    #define _MAX_FILE_NUM     8                 //最多可以打开8个文件 
    #define _UNITAB_USE_EXTBUDDY_MEM            //使用外部buddy 
 
//============================================================================ 
#elif defined _UNSP_FS_NOS 
    #define MALLOC_USE                          //使用BUDDY 
	#define _USE_EXTERNAL_MEMORY                //使用外部空间 
    #define SD_EN             1                 //此定义表示带SD卡设备 
    #define NAND1_EN          1                 //使用NAND FLASH设备 
    #define NAND2_EN          1                 //使用NAND FLASH设备 
    #define NAND3_EN          0                 //使用NAND FLASH设备 
    #define USB_EN            1                 //使用usb host设备 
    //#define _UDISK_RESERVED                     //PC操作优盘时可能会操作超过disk size的空间,所以做了(256kb)的预留 
    #define _SEEK_SPEED_UP                      //此定义表示是否对seek加速,需要额外的内存空间和堆栈 
    #define _SEEK_SPEEDUP_USE_EXTBUDDY_MEM      //定义使用外部buddy申请RAM进行seek加速 
    #define _MAX_FILE_NUM     8                 //最多可以打开8个文件 
    #define _UNITAB_USE_EXTBUDDY_MEM            //使用外部buddy 
 
//============================================================================ 
#elif defined _UNSP_FS_NOSBD 
    #define SD_EN             1                 //此定义表示带SD卡设备 
    #define NAND1_EN          1                 //使用NAND FLASH设备 
    #define NAND2_EN          1                 //使用NAND FLASH设备 
    #define NAND3_EN          0                 //使用NAND FLASH设备 
    #define USB_EN            0                 //使用usb host设备 
    //#define _UDISK_RESERVED                     //PC操作优盘时可能会操作超过disk size的空间,所以做了(256kb)的预留 
    #define _SEEK_SPEED_UP                      //此定义表示是否对seek加速,需要额外的内存空间和堆栈 
    #define _SEEK_SPEEDUP_USE_USER_MEM          //定义使用用户定义的RAM进行seek加速 
    #define _MAX_FILE_NUM     4                 //最多可以打开4个文件 
    #define _UNITAB_USE_INNERGLOBAL_MEM         //使用内部全局数组 
 
//============================================================================ 
#elif defined _UNSP_FS_FAR_NOSBD 
	#define FAR_VER							    //定义是否是FAR版本 
	#define SD_EN             1                 //此定义表示带SD卡设备 
    #define NAND1_EN          1                 //使用NAND FLASH设备 
    #define NAND2_EN          1                 //使用NAND FLASH设备 
    #define NAND3_EN          1                 //使用NAND FLASH设备 
    #define USB_EN            0                 //使用usb host设备 
    //#define _UDISK_RESERVED                     //PC操作优盘时可能会操作超过disk size的空间,所以做了(256kb)的预留 
    #define _MAX_FILE_NUM     8                 //最多可以打开8个文件 
    #define _UNITAB_USE_USEREXT_MEM             //使用客户提供的外部存储空间 
 
//============================================================================ 
#elif defined _UNSP_FS_FAR 
	#define FAR_VER							    //定义是否是FAR版本 
    #define	FAT_OS                              //带OS 
    #define MALLOC_USE                          //使用BUDDY 
    #define _USE_EXTERNAL_MEMORY                //使用外部空间 
	#define SD_EN             1                 //此定义表示带SD卡设备 
    #define NAND1_EN          1                 //使用NAND FLASH设备 
    #define NAND2_EN          1                 //使用NAND FLASH设备 
    #define NAND3_EN          1                 //使用NAND FLASH设备 
    #define USB_EN            0                 //使用usb host设备 
    //#define _UDISK_RESERVED                     //PC操作优盘时可能会操作超过disk size的空间,所以做了(256kb)的预留 
    #define _MAX_FILE_NUM     8                 //最多可以打开8个文件 
    #define _UNITAB_USE_EXTBUDDY_MEM            //使用外部buddy 
 
//============================================================================ 
#elif defined _UNSP_FS_NOSEXTBD 
    #define MALLOC_USE                          //使用BUDDY 
    #define SD_EN             1                 //此定义表示带SD卡设备 
    #define NAND1_EN          1                 //使用NAND FLASH设备 
    #define NAND2_EN          1                 //使用NAND FLASH设备 
    #define NAND3_EN          1                 //使用NAND FLASH设备 
    #define USB_EN            0                 //使用usb host设备 
    //#define _UDISK_RESERVED                     //PC操作优盘时可能会操作超过disk size的空间,所以做了(256kb)的预留 
    #define _SEEK_SPEED_UP                      //此定义表示是否对seek加速,需要额外的内存空间和堆栈 
    #define _SEEK_SPEEDUP_USE_INNERBUDDY_MEM    //定义使用内部buddy申请RAM进行seek加速 
    #define _MAX_FILE_NUM     8                 //最多可以打开8个文件 
    #define _UNITAB_USE_NOTHING                 //不使用unitab index buffer 
 
//============================================================================ 
#elif defined _UNSP_FS_FOR_SINOMOS 
    #define SD_EN             0                 //此定义表示带SD卡设备 
    #define NAND1_EN          1                 //使用NAND FLASH PART0设备 
    #define NAND2_EN          0                 //使用NAND FLASH PART1设备 
    #define NAND3_EN          0                 //使用NAND FLASH PART2设备 
    #define USB_EN            0                 //使用usb host设备 
    //#define _UDISK_RESERVED                     //PC操作优盘时可能会操作超过disk size的空间,所以做了(256kb)的预留 
    //#define _SEEK_SPEED_UP                      //此定义表示是否对seek加速,需要额外的内存空间和堆栈 
    //#define _SEEK_SPEEDUP_USE_USER_MEM          //定义使用用户定义的RAM进行seek加速 
    #define _MAX_FILE_NUM     2                 //最多可以打开4个文件 
    //#define _UNITAB_USE_INNERGLOBAL_MEM         //使用内部全局数组 
    #define _SMALL_DISK_FORMAT                  //支持小容量的磁盘的格式化,不带MBR 
    #define _PC_UNABLE_FORMAT_UDISK             //此定义控制着PC是否可以格式化U盘  
#else 
    //Program must assign a customer 
#endif 
 
 
//此定义表示修正的 BUG 
#define _FIX_UNSP_FS_BUG 
//此定义表示添加的 CODE 
#define _READ_WRITE_SPEED_UP  
 
//支持3个盘符,SD+2个NAND FLASH分区 
#define _MAX_DISK_NUM     (SD_EN + NAND1_EN + NAND2_EN + NAND3_EN + USB_EN) 
 
#endif