]> git.sur5r.net Git - freertos/blob - FreeRTOS-Labs/Source/FreeRTOS-Plus-FAT/History2.txt
Add the Labs projects provided in the V10.2.1_191129 zip file.
[freertos] / FreeRTOS-Labs / Source / FreeRTOS-Plus-FAT / History2.txt
1 > is there a repository I should be aware of when it comes to FreeRTOS Labs? \r
2 \r
3 Unfortunately there isn't. FreeRTOS+FAT has become a bit of an orphan. All time and energy goes to the products in the [AWS/FreeRTOS release](https://github.com/aws/amazon-freertos)\r
4 But I am still actively maintaining FreeRTOS+FAT: implementing requests and fixes.\r
5 \r
6 Please comment your findings with the above +FAT release.\r
7 \r
8 Here is a complete list of all changes since the 160919 Labs release:\r
9 \r
10 ● `ff_dir.c : FF_MkDir()`\r
11 refuse to create a directory with an empty name\r
12 \r
13 ● `ff_fat.c : FF_GetFreeSize()`\r
14 in case of an error, return 0\r
15 \r
16 ● `ff_file.c : FF_FileSize()`\r
17 This function returns the size of a file, or a negative number in case of an error.\r
18 Hence, the maximum size returned was returned is 2 GB.\r
19 We've added a new function:\r
20 `FF_Error_t FF_GetFileSize( FF_FILE *pxFile, uint32_t *pulSize );`\r
21 which separates the length from the error code.\r
22 \r
23 ● `ff_file.c : FF_ExtendFile()`\r
24 Sometimes while building up a file, it may be more efficient not to flush the changes immediately. When defining `ffconfigFILE_EXTEND_FLUSHES_BUFFERS` as `0`, there is no immediate flushing.\r
25 \r
26 ● `ff_file.c : FF_Seek()`\r
27 Seeking didn't work for sizes larger than 2 GB. Although the parameter `int32_t lOffset` is signed, it will now be casted to 32-bits unsigned:\r
28 `ulPosition = ( uint32_t )lOffset;`\r
29 All options (`SET`, `CUR`, and `END` ) re-tested.\r
30 \r
31 ● `ff_file.c : FF_Close()`\r
32 `FF_FlushCache()` is now called at the end of the function in order to also write the last changes.\r
33 \r
34 ● `ff_format.c : FF_Format()`\r
35 A variable `lRemaining` should have been declared unsigned: `uint32_t`.\r
36 Also: a small optimisation for large SD-cards:\r
37 "Putting the FAT-table into the second 4MB erase block gives a higher performance and a longer life-time"\r
38 \r
39 ● `ff_format.c : FF_Partition()`\r
40 `ulHiddenSectors` must be at least `1`\r
41 ( see [this post](https://sourceforge.net/p/freertos/discussion/382005/thread/d2b6524a/?limit=250#e1ea) )\r
42 \r
43 ● `ff_ioman.c : FF_CreateIOManger()`\r
44 `FF_CreateEvents` shall only be called in case an `pxIOManager` was successfully created.\r
45 \r
46 ● `ff_ioman.c : FF_DeleteIOManager()`\r
47 Added a call to `FF_DeleteEvents()`, which will delete the event group belonging to the I/O manager.\r
48 \r
49 ● `ff_ioman.c : FF_FlushCache()`\r
50 Added a user application hook per disk: `fnFlushApplicationHook()`. This is useful for e.g. NAND-drivers.\r
51 \r
52 ● `ff_ioman.c : FF_Mount()`\r
53 Make sure that `pcVolumeLabel` is null-terminated.\r
54 \r
55 ● `ff_ioman.c : FF_IncreaseFreeClusters()`\r
56 A lock is needed before `ulLastFreeCluster` can be changed. But before taking this lock, check if has already been taken to avoid a dead lock.\r
57 \r
58 ● `ff_locking.c : FF_DeleteEvents`\r
59 This is a new function which deletes ( frees up ) the event group belonging to an I/O manager.\r
60 \r
61 ● `ff_stdio.c : ff_filelength()`\r
62 This function will now call `FF_GetFileSize()` in order to get the `unsigned` length of a file, increasing the maximum reported size from 2 to 4 GB.\r
63 \r
64 ● `ff_sys.c : *`\r
65 This module combines several I/O managers ( = disks ) into a single file system that starts with a root `"/"`.\r
66 All code has been re-written ( re-styled ) and re-tested.\r