FatFs Configuration Options

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

Previous topic - Next topic

tha

FF_USE_LFN
ตัวเลือกนี้สวิทช์การรองรับสำหรับ long file name (LFN). เมื่อเปิดใช้งาน the LFN, Unicode support module ffunicode.c จำเป็นต้องถูกเพิ่มไปยัง the project. เมื่อใช้ stack สำหรับ the working buffer, ต้องระวังเรื่อง stack overflow. เมื่อใช้ heap memory สำหรับ the working buffer, memory management functions (ff_memalloc and ff_memfree) จำเป็นต้องถูกเพิ่มไปยัง the project.

tha

FF_MAX_LFN
LFN function ต้องการ certain internal working buffer สำหรับ the file name. ตัวเลือกนี้กำหนดขนาดของ the buffer และ the value สามารถอยู่ในช่วง 12 ถึง 255 characters (ตามจริงใน UTF-16 code units) ของ the LFN. The buffer ครอบครอง (FF_MAX_LFN + 1) * 2 bytes และเพิ่มเติม (FF_MAX_LFN + 44) / 15 * 32 bytes เมื่อ exFAT ถูกเปิดใช้งาน. ขอแนะนำให้ตั้งค่าเป็น 255 เพื่อรองรับ the LFN specification อย่างเต็มที่. ตัวเลือกนี้ไม่มีผลเมื่อ LFN ไม่ได้ถูกเปิดใช้งาน.

tha

FF_LFN_UNICODE
ตัวเลือกนี้สวิทช์ character encoding สำหรับ the file name บน the API. FatFs รองรับ the code point สูงถึง U+10FFFF. ตัวเลือกนี้ยังส่งผลต่อ behavior of string I/O functions ด้วย (ดู FF_STRF_ENCODE).

เมื่อ Unicode ถูกเลือก, FF_CODE_PAGE จะไม่มีความหมายใดๆเลย ยกเว้นสำหรับการเข้ากันได้กับระบบรุ่นเก่า, อย่างเช่น MS-DOS และระบบใดๆที่ไม่มีการรองรับสำหรับ LFN.
เมื่อ LFN ไม่ถูกเปิดใช้งาน, ตัวเลือกนี้จะไม่มีผลและ FatFs จะทำงานใน ANSI/OEM code บน the API. สำหรับข้อมูลเพิ่มเติม, อ่านที่นี่.


tha

FF_LFN_BUF, FF_SFN_BUF
ชุดของตัวเลือกนี้กำหนดขนาดของ file name members, fname[] and altname[], ใน the FILINFO structure ซึ่งถูกใช้เพื่ออ่าน the directory items. ค่าเหล่านี้ควรพอเพียงสำหรับ the file names ที่จะอ่าน. The maximum possible length ของ read file name ขึ้นอยู่กับ the character encoding scheme บน the API ดังต่อไปนี้:

ถ้า the size of name member ไม่เพียงพอสำหรับ the LFN, the item จะถูกถือว่าไม่มี LFN. เมื่อ LFN ไม่ถูกเปิดใช้งาน, ตัวเลือกเหล่านี้จะไม่มีผลอะไร.

tha

FF_FS_RPATH
ตัวเลือกนี้กำหนดค่า relative path function. สำหรับข้อมูลเพิ่มเติม, อ่านที่นี่.

tha

Volume/Drive Configurations

FF_VOLUMES
ตัวเลือกนี้กำหนดค่าจำนวนของ volumes (logical drives สูงถึง 10) ที่จะถูกใช้.

FF_STR_VOLUME_ID
ตัวเลือกนี้สวิทช์การรองรับสำหรับ string volume ID. เมื่อ arbitrary string สำหรับ the volume ID ถูกเปิดใช้งานสำหรับ the drive prefix, strings ที่กำหนดไว้ล่วงหน้าโดย  FF_VOLUME_STRS หรือ user defined strings สามารถถูกใช้เป็น drive prefix ใน the path name ด้วย. Numeric drive number ใช้ได้เสมอโดยไม่คำนึงถึงตัวเลือกนี้, และแต่ละรูปแบบของ drive prefix สามารถถูกเปิดใช้งานโดยตัวเลือกนี้ด้วย.

tha

FF_VOLUME_STRS
ตัวเลือกนี้กำหนด the volume ID strings สำหรับแต่ละ logical drives. Number of items ต้องไม่น้อยกว่า FF_VOLUMES. Valid characters สำหรับ the volume ID string คือ A-Z, a-z และ 0-9, อย่างไรก็ตาม, พวกมันจะถูกเปรียบเทียบโดยคำนึงถึงขนาดตัวพิมพ์. ถ้า FF_STR_VOLUME_ID == 0, ตัวเลือกนี้จะไม่มีผลอะไร. ถ้า FF_STR_VOLUME_ID >= 1 และตัวเลือกนี้ไม่ถูกกำหนด, a user defined volume string table จำเป็นต้องถูกกำหนดดังแสดงข้างล่าง. The table ไม่ควรถูกปรับเปลี่ยนกลางทาง.

tha

FF_MULTI_PARTITION
Disable (0) or Enable (1). ตัวเลือกนี้สวิทช์ multi-partition function. โดยค่าเริ่มต้น (0), แต่ละ logical drive number จะถูกผูกกับ the same physical drive number และมีเพียง a volume ใน the physical drive เท่านั้นที่ถูกตั้ง. เมื่อเปิดใช้งาน, แต่ละ logical drive จะถูกผูกกับ the partition บน the physical drive ที่แสดงรายการใน the user defined partition resolution table VolToPart[]. นอกจากนี้ f_fdisk funciton จะมีให้ใช้ประโยชน์. สำหรับข้อมูลเพิ่มเติม, อ่านที่นี่.