fs_conf.h
上传用户:yj_qqy
上传日期:2017-01-28
资源大小:2911k
文件大小:15k
源码类别:

uCOS

开发平台:

C/C++

  1. /*
  2. **********************************************************************
  3. *                          Micrium, Inc.
  4. *                      949 Crestview Circle
  5. *                     Weston,  FL 33327-1848
  6. *
  7. *                            uC/FS
  8. *
  9. *             (c) Copyright 2001 - 2003, Micrium, Inc.
  10. *                      All rights reserved.
  11. *
  12. ***********************************************************************
  13. ----------------------------------------------------------------------
  14. File        : fs_conf.h 
  15. Purpose     : File system configuration
  16.               Usually all configuration of the file system for your
  17.               system can be done by changing this file.
  18.               If you are using a big endian system or a totally
  19.               different architecture, you may have to modify the file
  20.               "fs_port.h". 
  21. ----------------------------------------------------------------------
  22. Known problems or limitations with current version
  23. ----------------------------------------------------------------------
  24. None.
  25. ---------------------------END-OF-HEADER------------------------------
  26. */
  27. #ifndef _FS_CONF_H_
  28. #define _FS_CONF_H_
  29. /*********************************************************************
  30. *
  31. *             #define constants
  32. *
  33. **********************************************************************
  34. */
  35. /*********************************************************************
  36. *
  37. *             Number of file handles
  38. *
  39.     Set the maximum number of simultaneously open files in your system.
  40.     Please be aware, that the file system requires one FS_FILE structure
  41.     for each open file. If you are using FAT, each file will also require
  42.     two sector buffers.
  43. */
  44. #define FS_MAXOPEN             1    /* Maximum number of file handles */
  45. /*********************************************************************
  46. *
  47. *             POSIX 1003.1 like directory functions support
  48. *
  49.     Enables functions FS_OpenDir, FS_CloseDir, FS_ReadDir, FS_RewindDir,
  50.     FS_MkDir and FS_RmDir.
  51. */
  52. #define FS_POSIX_DIR_SUPPORT    1    /* POSIX 1003.1 like directory support */
  53. #if FS_POSIX_DIR_SUPPORT
  54.   #define FS_DIR_MAXOPEN        4    /* Maximum number of directory handles */
  55. #endif
  56. /*********************************************************************
  57. *
  58. *             OS Layer 
  59. *
  60.     Set all to 0, if you do not want OS support.
  61. */
  62. #define FS_OS_EMBOS             0    /* 1 = use embOS */
  63. #define FS_OS_UCOS_II           1    /* 1 = use uC/OS-II */
  64. #define FS_OS_WINDOWS           0    /* 1 = use WINDOWS */
  65. #if ((FS_OS_WINDOWS==1) && ((FS_OS_EMBOS==1) || (FS_OS_UCOS_II==1)))
  66.   #error You must not use Windows at the same time as embOS or uC/OS-II!
  67. #endif
  68. /*********************************************************************
  69. *
  70. *             Time/Date support
  71. *
  72.   If your system does support ANSI C library functions for time/date,
  73.   you can set this to 1. If it is set to 0, functions FS_OS_Get_Date
  74.   and FS_OS_Get_Time will return the date 1.01.1980 0:00 unless you
  75.   modify them.
  76. */
  77. #define FS_OS_TIME_SUPPORT      0    /* 1 = time()/date supported */
  78. /*********************************************************************
  79. *
  80. *             File System Layer
  81. *
  82.   You can turn on/off the file system layers used in your system.
  83.   At least one layer has to be active. Because currently there is only
  84.   one file system layer supported (FAT), you will usually not change
  85.   this setting.
  86. */
  87. #define FS_USE_FAT_FSL          1    /* FAT12/FAT16 file system */
  88. /*********************************************************************
  89. *
  90. *             Logical Block Layer
  91. *
  92.   You can turn on/off cache of the Logical Block Layer. To use the
  93.   cache on specific device, you also have to set its size in the
  94.   device driver settings below.
  95. */
  96. #define FS_USE_LB_READCACHE     0  /* 1 enables cache */
  97. /*********************************************************************
  98. *
  99. *             Device Driver Support
  100. *
  101.   You can turn on/off device driver supported in your system.
  102.   If you turn on a driver, please check also its settings in this
  103.   file below.
  104. */
  105. #define FS_USE_SMC_DRIVER       0    /* SmartMedia card driver       */
  106. #define FS_USE_IDE_DRIVER       0    /* IDE driver                   */
  107. #define FS_USE_WINDRIVE_DRIVER  0    /* Windows Logical Drive driver */
  108. #define FS_USE_RAMDISK_DRIVER   0    /* RAM Disk driver              */
  109. #define FS_USE_MMC_DRIVER       1    /* MMC/SD card driver           */
  110. #define FS_USE_FLASH_DRIVER     0    /* Generic flash driver         */
  111. #if (!defined(_WIN32) && (FS_USE_WINDRIVE_DRIVER))
  112.   #error Windows Logical Drive driver needs Windows API
  113. #endif
  114. /*********************************************************************
  115. *
  116. *             FAT File System Layer defines
  117. */
  118. #if FS_USE_FAT_FSL
  119.   /*
  120.      For each media in your system using FAT, the file system reserves
  121.      memory to keep required information of the boot sector of that media.
  122.      FS_MAXDEV is the number of device drivers in your system used
  123.      with FAT, FS_FAT_MAXUNIT is the maximum number of logical units
  124.      supported by one of the activated drivers.
  125.   */
  126.   #define FS_MAXDEV                 (FS_USE_SMC_DRIVER + FS_USE_WINDRIVE_DRIVER + FS_USE_RAMDISK_DRIVER + FS_USE_MMC_DRIVER + FS_USE_IDE_DRIVER + FS_USE_FLASH_DRIVER)
  127.   #define FS_FAT_MAXUNIT            1         /* max number of medias per device */
  128.   #define FS_FAT_NOFAT32            0         /* 1 disables FAT32 support */
  129.   #define FS_FAT_NOFORMAT           0         /* 1 disables code for formatting a media */
  130.   #define FS_FAT_DISKINFO           1         /* 0 disables command FS_CMD_GET_DISKFREE */
  131.   #define FS_FAT_FWRITE_UPDATE_DIR  1         /* 1 FS_FWrite modifies directory (default), 0 directory 
  132.                                                  is modified by FS_FClose */
  133.   /*
  134.     Do not change following defines !
  135.     They may become configurable in future versions of the file system.
  136.   */
  137.   #define FS_FAT_SEC_SIZE       0x200     /* do not change for FAT */
  138. #endif /* FS_USE_FAT_FSL */
  139. /*********************************************************************
  140. *
  141. *             RAMDISK_DRIVER defines
  142. */
  143. #if FS_USE_RAMDISK_DRIVER
  144.   /*
  145.     Define size of your RAM disk here.
  146.     You specify the number of sectors (512 bytes) here.
  147.   */
  148.   #define FS_RR_BLOCKNUM      32        /* 16KB RAM */
  149.   /*
  150.     Do not change following define !
  151.     It may become configurable in future versions of the file system.
  152.   */
  153.   #define FS_RR_BLOCKSIZE     0x200     /* do not change for FAT */
  154. #endif  /* FS_USE_RAMDISK_DRIVER */
  155. /*********************************************************************
  156. *
  157. *             SMC_DRIVER defines
  158. *
  159.   Settings of the generic Smartmedia Card driver.
  160.   For using SMC in your system, you will have to provide basic
  161.   hardware access functions. Please check devicesmchardwareXXXsmc_x_hw.c
  162.   and devicesmchardwareXXXsmc_x_hw.h for samples.
  163. */
  164. #if FS_USE_SMC_DRIVER
  165.   /*
  166.     Number of card readers in your system.
  167.     Please note, that even if your system does have more than one
  168.     SMC slot, it might be unable to access them both at the same
  169.     time, because they share resources (e.g. same data port). If that
  170.     is true for your system, you must ensure, that your implementation
  171.     of "FS_OS_Lock_deviceop(&_FS_smcdevice_driver,id)" blocks the device
  172.     driver for all values of "id"; the default implementation of the
  173.     file system's OS Layer does so.
  174.   */
  175.   #define FS_SMC_MAXUNIT                    2  /* EP7312 SMC + on board NAND */
  176.   /*
  177.     The following define does tell the generic driver, if your
  178.     system can directly check the SMC RY/BY line. 
  179.   */
  180.   #define FS_SMC_HW_SUPPORT_BSYLINE_CHECK   0  /* EP7312 does not support */
  181.   /*
  182.     FS_SMC_HW_NEEDS_POLL has to be set, if your SMC hardware driver
  183.     needs to be called periodically for status check (e.g. diskchange).
  184.     In such a case, the generic driver does provide a function
  185.     "void FS_smc_check_card(FS_u32 id)", which has to be called
  186.     periodically by your system for each card reader.
  187.   */
  188.   #define FS_SMC_HW_NEEDS_POLL              1  /* EP7312 needs poll for diskchange */
  189.   /*
  190.     Logical Block Read Cache Settings for SMC driver.
  191.     Options are not used if FS_USE_LB_READCACHE is 0.
  192.   */
  193.   #define FS_SMC_CACHENUM         10     /* Number of sector buffers; 0 disables cache for this device. */
  194.   /*
  195.     The minimum erase unit on an SMC is a physical block, which consists
  196.     of 16 or 32 pages. A page is 256+8 or 512+16 bytes. If the file system
  197.     is going to change a single sector (512 bytes) on the media, the SMC
  198.     driver usually has to copy the whole corresponding physical block to
  199.     a new block. To avoid that time consuming task for every single sector
  200.     write, you can provide the SMC driver with a number of sector caches
  201.     (512 bytes each). The driver will use them to cache sequential writes 
  202.     to the media. If you set the value to 0, the SMC driver will not cache 
  203.     any write access. A value of 1 makes no sense. The maximum of the media's 
  204.     cluster size (number of logical sectors) and the number of bytes you 
  205.     write with FS_FWrites divided by 512 is typically the best speed 
  206.     performance value. Bigger values usually make sense only, if you plan to 
  207.     bypass the FAT system by e.g. using the FS_IoCtl command
  208.     FS_CMD_WRITE_SECTOR for a large number of sequential sectors.
  209.   */
  210.   #define FS_SMC_PAGE_BUFFER 0         /* Number of sector write caches; 0 disables write cache function. */
  211. #endif /* FS_USE_SMC_DRIVER */
  212. /*********************************************************************
  213. *
  214. *             MMC_DRIVER defines
  215. *
  216.   Settings of the generic MMC/SD card driver.
  217.   For using MMC in your system, you will have to provide basic
  218.   hardware access functions. Please check devicemmc_sdhardwareXXXmmc_x_hw.c
  219.   and devicemmc_sdhardwareXXXmmc_x_hw.h for samples.
  220. */
  221. #if FS_USE_MMC_DRIVER
  222.   /*
  223.     Number of card readers in your system.
  224.     Please note, that even if your system does have more than one
  225.     MMC interface, it might be unable to access them both at the same
  226.     time, because they share resources (e.g. same data line). If that
  227.     is true for your system, you must ensure, that your implementation
  228.     of "FS_OS_Lock_deviceop(&_FS_smcdevice_driver,id)" blocks the device
  229.     driver for all values of "id"; the default implementation of the
  230.     file system's OS Layer does so.
  231.   */
  232.   #define FS_MMC_MAXUNIT                    1  
  233.   /*
  234.     FS_MMC_HW_NEEDS_POLL has to be set, if your MMC hardware driver
  235.     needs to be called periodically for status check (e.g. diskchange).
  236.   */
  237.   #define FS_MMC_HW_NEEDS_POLL              1
  238.   /*
  239.     Logical Block Read Cache Settings for MMC driver.
  240.     Options are not used if FS_USE_LB_READCACHE is 0.
  241.   */
  242.   #define FS_MMC_CACHENUM                   10  /* Number of sector buffers; 0 disables cache for this device. */
  243. #endif /* FS_USE_MMC_DRIVER */
  244. /*********************************************************************
  245. *
  246. *             IDE_DRIVER defines
  247. *
  248.   Settings of the generic IDE driver. This driver is also used to
  249.   access CF cards. For using IDE in your system, you will have to provide basic
  250.   hardware access functions. Please check deviceidehardwareXXXide_x_hw.c
  251.   and deviceidehardwareXXXide_x_hw.h for samples.
  252. */
  253. #if FS_USE_IDE_DRIVER
  254.   /*
  255.     Number of card readers in your system.
  256.     Please note, that even if your system does have more than one
  257.     IDE interface, it might be unable to access them both at the same
  258.     time, because they share resources (e.g. same data line). If that
  259.     is true for your system, you must ensure, that your implementation
  260.     of "FS_OS_Lock_deviceop(&_FS_idedevice_driver,id)" blocks the device
  261.     driver for all values of "id"; the default implementation of the
  262.     file system's OS Layer does so.
  263.   */
  264.   #define FS_IDE_MAXUNIT                    1
  265.   /*
  266.     FS_IDE_HW_NEEDS_POLL has to be set, if your IDE hardware driver
  267.     needs to be called periodically for status check (e.g. diskchange).
  268.   */
  269.   #define FS_IDE_HW_NEEDS_POLL              1  
  270.   /*
  271.     Logical Block Read Cache Settings for IDE driver.
  272.     Options are not used if FS_USE_LB_READCACHE is 0.
  273.   */
  274.   #define FS_IDE_CACHENUM         10     /* Number of sector buffers; 0 disables cache for this device. */
  275. #endif /* FS_USE_IDE_DRIVER */
  276. /*********************************************************************
  277. *
  278. *             FLASH_DRIVER defines
  279. */
  280. #if FS_USE_FLASH_DRIVER
  281.   /* Driver is currently not released */
  282.   /* Size of the used ram buffer, set to 0 if no ram buffer is used */
  283.   #define FS_FLASH_RAMBUFFER      0x4000
  284.   /* Enable/disable wear leveling for flash memory */
  285.   #define FS_FLASHWEARLEVELING 1 /* 1 = on, 0 = off */
  286. #endif
  287. /*********************************************************************
  288. *
  289. *             WINDRIVE_DRIVER defines
  290. *
  291.   This driver does allow to use any Windows logical driver on a
  292.   Windows NT system with the file system. Please be aware, that Win9X
  293.   is not supported, because it cannot access logical drives with
  294.   "CreateFile".
  295. */
  296. #if FS_USE_WINDRIVE_DRIVER
  297.   /*
  298.     The following define tells WINDRIVE, how many logical drives
  299.     of your NT system you are going to access with the file system.
  300.     if your are going to use more than 2 logical drives, you
  301.     will have to modify function "_FS_wd_devstatus" of module
  302.     devicewindriverwd_misc.c.
  303.   */
  304.   #define FS_WD_MAXUNIT         2             /* number of windows drives */
  305.   /*
  306.     Specify names of logical Windows drives used with the file system. For example,
  307.     "\\.\A:" is usually the floppy of your computer.
  308.   */
  309.   #define FS_WD_DEV0NAME        "\\.\A:"   /* Windows drive name for "windrv:0:" */
  310.   #define FS_WD_DEV1NAME        "\\.\B:"   /* Windows drive name for "windrv:1:" */
  311.   /*
  312.     To improve performance of WINDRIVE, it does use sector caches
  313.     for read/write operations to avoid real device operations for
  314.     each read/write access. The number of caches can be specified
  315.     below and must not be smaller than 1.
  316.   */
  317.   #define FS_WD_CACHENUM        40            /* number of read caches per drive */
  318.   #define FS_WD_WBUFFNUM        20            /* number of write caches per drive */
  319.   /*
  320.     Do not change following define !
  321.     It may become configurable in future versions of the file system.
  322.   */
  323.   #define FS_WD_BLOCKSIZE       0x200         /* do not change for FAT */
  324. #endif  /* FS_USE_WINDRIVE_DRIVER */
  325. #endif  /* _FS_CONF_H_ */