FatFs Configuration Options

Started by tha, May 12, 2022, 01:39:05 PM

Previous topic - Next topic

tha

FF_MIN_SS, FF_MAX_SS
ชุดของตัวเลือกนี้กำหนดขอบเขตของ sector size ที่ใช้สำหรับ the low level disk I/O interface, disk_read and disk_write function. Valid values คือ 512, 1024, 2048 and 4096. FF_MIN_SS กำหนด minimum sector size และ FF_MAX_SS กำหนด the maximum sector size. เซ็ตทั้งคู่ 512 เสมอสำหรับ memory card and harddisk. แต่ค่าที่มากกว่าอาจถูกต้องการสำหรับ on-board flash memory และบางประเภทของ optical media. เมื่อ FF_MAX_SS > FF_MIN_SS, การรองรับของ variable sector size ถูกเปิดใช้งานและ GET_SECTOR_SIZE command จำเป็นต้องถูกจัดให้มีใช้กับ the disk_ioctl function.

tha

FF_LBA64
ตัวเลือกนี้สวิทช์ media access interface เป็น 64-bit LBA และเปิดใช้งาน GUID Partition Table (GPT) สำหรับ partition management, Enabled (1) or Disabled (0). exFAT filesystem จำเป็นต้องถูกเปิดใช้งานเพื่อเปิดใช้งานคุณสมบัตินี้.

FF_MIN_GPT
ตัวเลือกนี้ระบุขอบเขตบนล่างของการกำหนดของ partitioning format เมื่อสร้าง patitions บน the drive ใน f_mkfs and f_fdisk function. เมื่อจำนวนของ available sectors เท่ากับหรือใหญ่กว่าค่านี้, the drive จะถูกแบ่งพาร์ติชั่นใน GPT. ตัวเลือกนี้จะไม่มีผลอะไรเมื่อ FF_LBA64 == 0.

FF_USE_TRIM
Disable (0) or Enable (1). ตัวเลือกนี้สวิทช์  ATA-TRIM function. เพื่อเปิดใช้งาน Trim function, CTRL_TRIM command ควรถูกจัดให้มีใช้กับ the disk_ioctl function ด้วย.

tha

System Configurations

FF_FS_TINY
Normal (0) or Tiny (1). The tiny configuration ลดขนาดของ the FIL structure, file object, FF_MAX_SS bytes แต่ละรายการ. แทนที่จะเป็น private sector buffer ถูกตัดออกจาก the file object, common(ร่วมกัน) sector buffer ใน the FATFS structure, filesystem object, ถูกใช้สำหรับ the file data transfer.

FF_FS_EXFAT
ตัวเลือกนี้สวิทช์การรองรับสำหรับ exFAT filesystem นอกเหนือจาก the FAT/FAT32 filesystem, Enabled (1) or Disabled (0). เพื่อเปิดใช้งาน exFAT,  LFN ต้องถูกเปิดใช้งานด้วยและการกำหนดค่า FF_LFN_UNICODE >= 1 and FF_MAX_LFN == 255 ขอแนะนำสำหรับ full-featured exFAT function. โปรดทราบว่าการเปิดใช้งาน exFAT จะละทิ้งความเข้ากันได้ของ ANSI C (C89) และต้องการ C99 เนื่องจากจำเป็นต้องใช้  64-bit integer type.


tha

FF_FS_NORTC
ใช้ RTC (0) หรือไม่ใช้ RTC (1). ตัวเลือกนี้ควบคุม timestamp featuer. ถ้า the system ไม่มี an RTC หรือ valid timestamp ไม่ถูกต้องการ, เซ็ต FF_FS_NORTC เป็น 1 เพื่อปิดใช้งาน the timestamp function. ทุกๆ objects ที่ปรับเปลี่ยนโดย FatFs จะมี a constant timestamp ที่กำหนดโดย FF_NORTC_MON, FF_NORTC_MDAY and FF_NORTC_YEAR. เพื่อใช้ the timestamp featuer, เซ็ต FF_FS_NORTC == 0 และเพิ่ม get_fattime function กับ the project เพื่อให้ได้รับ current time จาก the RTC. ตัวเลือกนี้จะไม่มีผลอะไรใน read-only configuration.

FF_NORTC_MON, FF_NORTC_MDAY, FF_NORTC_YEAR
ชุดของตัวเลือกนี้กำหนดเวลาที่ถูกใช้ใน no RTC systems. ตัวเลือกนี้จะไม่มีผลอะไรใน read-only configuration หรือ FF_FS_NORTC == 0.

tha

FF_FS_NOFSINFO
0 ถึง 3. ถ้าคุณต้องการทราบ correct free space บน the FAT32 volume, เซ็ต bit 0 ของตัวเลือกนี้, และ f_getfree function ในครั้งแรกหลังจาก volume mount จะบังคับ a full FAT scan. Bit 1 ควบคุมการใช้ของ last allocated cluster number สำหรับ new allocation.

tha

FF_FS_LOCK
ตัวเลือกนี้จะสวิทช์ file lock function เพื่อควบคุมการเปิดไฟล์ที่ซ้ำกันและการดำเนินการที่ผิดกฎเพื่อเปิด objects. โปรดทราบว่า the file lock function ไม่ขึ้นกับ re-entrancy. ตัวเลือกนี้ต้องเป็น 0 ใน read-only configuration.

0    ปิดใช้งาน file lock function. เพื่อหลีกเลี่ยงการพังลงของไฟล์โดย wrong file operation, application program จำเป็นต้องหลีก
      เลี่ยง illegal open, remove and rename กับ the open objects.
>0  เปิดใช้งาน file lock function. The value กำหนดจำนวนเท่าไหร่ที่ files/sub-directories สามารถถูกเปิดได้พร้อมกันภายใต้ the file
      lock control. Illigal operations ไปยัง the open object จะถูกปฏิเสธด้วย FR_LOCKED.

tha

FF_FS_REENTRANT
Disable (0) or Enable (1). ตัวเลือกนี้สวิทช์  the re-entrancy (thread safe) ของ the FatFs module เอง. โปรดทราบว่า file/directory เช้าถึงไปยัง the different volume เป็นการเข้าใหม่เสมอและมันสามารถทำงานได้พร้อมกันโดยไม่คำนึงถึงตัวเลือกนี้, อย่างไรก็ตาม, volume management functions, f_mount, f_mkfs and f_fdisk, จะไม่ re-entrant เสมอ. เฉพาะ file/directory เข้าถึงไปยัง the same volume, กล่าวอีกนัยหนึ่ง, การใช้งานแบบเอกสิทธิ์เฉพาะของแต่ละ filesystem object, อยู่ภายใต้การควบคุมของฟังชั่นนี้. เพื่อเปิดใช้งานคุณสมบัตินี้, user provided synchronization handlers, ff_req_grant, ff_rel_grant, ff_del_syncobj และ ff_cre_syncobj, จำเป็นต้องถูกเพิ่มไปยัง the project ด้วย. Sample code มีให้ใช้ประโยชน์ใน ffsystem.c.

tha

FF_FS_TIMEOUT
จำนวนของ time ticks เพื่อละทิ้ง the file function ด้วย FR_TIMEOUT เมื่อ wait time นานเกินไป. ตัวเลือกนี้จะไม่มีผลอะไรเมื่อ FF_FS_REENTRANT == 0.

FF_SYNC_t
ตัวเลือกนี้กำหนด O/S dependent sync object type. อย่างเช่น. HANDLE, ID, OS_EVENT*, SemaphoreHandle_t และอื่นๆ. A header file สำหรับ O/S definitions จำเป็นต้องถูกรวมไว้บางที่ใน the scope ของ ff.c. ตัวเลือกนี้จะไม่มีผลอะไรเมื่อ FF_FS_REENTRANT == 0.