Fat 16/32 File System Statement of Work
Objectives
* Port an existing fat16/32 file system to replace the current file system in the Unison PIC32 RTOS
* Use existing file system as a framework and replace calls to the current file system underlying routines with calls to the fat 16/32 file system.
* Rework the ram file system low level routines to work with the fat 16/32 file system or replace these routines with those from the fat 16/32 system.
* Upgrade opendir, closedir, readdir - small posix stub routines
* Run the existing file system test program in non verbose mode to prove it works correctly.
* Work using MPLAB and the PIC32 simulator.
* Compile time will change from fat 16 to fat 32.
* Document changes made
## Deliverables
Fat 16/32 File System Statement of Work
Objectives
* Port an existing fat16/32 file system to replace the current file system in the Unison PIC32 RTOS
* Use existing file system as a framework and replace calls to the current file system underlying routines with calls to the fat 16/32 file system.
* Rework the ram file system low level routines to work with the fat 16/32 file system or replace these routines with those from the fat 16/32 system.
* Run the existing file system test program in non verbose mode to prove it works correctly.
* Work using MPLAB and the PIC32 simulator.
* Compile time changes from fat 16 to fat 32.
* Document changes made
FatFS functions with mapping required and direct replacement functions in current fsys:
* [f_mount][1] - Register/Unregister a Work Area
<!-- -->
* [f_open][2] - Open/Create a File
* [f_close][3] - Close a File
* [f_read][4] - Read File
* [f_write][5] - Write File
* [f_lseek][6] - Move File R/W Pointer
* [f_truncate][7] - Truncate File
* [f_sync][8] - Flush Cached Data
* [f_opendir][9] - Open a Directory (replace open? by? adding opendir closedir calls)
* [f_readdir][10] - Read a Directory Item (modify getdirent? and add readdir call)
* [f_getfree][11] - Get Free Clusters
* [f_stat][12] - Get File Status
* [f_mkdir][13] - Create a Directory
* [f_unlink][14] - Remove a File or Directory
* [f_chmod][15] - Change Attribute
* [f_rename][16] - Rename/Move a File or Directory
* [f_mkfs][17] - Create a File System on the Drive
* A few other routines might be required including utime for timestamping which has corresponding calendar
Assumptions
* All I/O will be eliminated from the system.
* The timers will be present to provide measurements for the file system test.
* Xprintf I/O to an internal buffer will record results.
Contractor Supplied Items
* mplab 8.1 or later
* c32 compiler
* file system test
* existing source code for file system complete with a demonstration example which needs to be modified with the fat 16/32 software ([login to view URL] with credit card for 0.01 us)
* file system test project currently operational in non verbose mode
* tiny fatfs from: <[login to view URL]> with fat specs
* other components delivered with commitment
Deliverables
* file system test project updated with fat16 and fat 32 software with a running file system test
* documentation