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