µC/FS expects that any call to a function that accesses a removable device may fail, since the device may be removed, powered off or suddenly unresponsive. If µC/FS detects such an event, the device will need to be refreshed or closed and re-opened. FSDev_Refresh()
refreshes a device:
Code Block | ||
---|---|---|
| ||
chngd = FSDev_Refresh((CPU_CHAR *)"ide:0:", /* <-- device name */
(FS_ERR *)&err); /* <-- return error */ |
There are several cases to consider:
- If the return error is
FS_ERR_NONE
and the return value (a) isDEF_YES
, then a new device (e.g., SD card) has been inserted. All files and directories that are open on volumes on the device must be closed and all volumes that are open on the device must be closed or refreshed. - If the return error is
FS_ERR_NONE
and the return value (a) isDEF_NO
, then the same device (e.g., SD card) is still inserted. The application can continue to access open files, directories and volumes. - If the return error is neither
FS_ERR_NONE
norFS_ERR_DEV_INVALID_LOW_FMT
, then no functioning device is present. The device must be refreshed at a later time.
...