diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2019-01-27 12:34:09 +0200 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2019-01-27 12:34:09 +0200 |
| commit | 2fb4421e0d771ea84e744856dc56ebc7b713cd86 (patch) | |
| tree | e361e6404a95b40d989a21da797ef540f828817d /Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c | |
| parent | 4a7a9de823b495c36d6d17d94229b43d7baa9ba2 (diff) | |
| download | Tango-2fb4421e0d771ea84e744856dc56ebc7b713cd86.tar.gz Tango-2fb4421e0d771ea84e744856dc56ebc7b713cd86.zip | |
Activate/Validate version support. buttons.
Diffstat (limited to 'Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c | 42 |
1 files changed, 35 insertions, 7 deletions
diff --git a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c index 3d4404f99..49f65a764 100644 --- a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c +++ b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c @@ -36,6 +36,14 @@ #include "drivers/Flash_Memory/fatfs/ff.h" #include "third_party/fatfs/src/ffconf.h" + +ErrorCode FileError_to_ErrorCode[FR_INVALID_PARAMETER+1] = {ERROR_CODE__NONE,ERROR_CODE__FILE_REQUEST_DISK_ERR,ERROR_CODE__FILE_REQUEST_INT_ERR,ERROR_CODE__FILE_REQUEST_NOT_READY,ERROR_CODE__FILE_REQUEST_NO_FILE, + ERROR_CODE__FILE_REQUEST_NO_PATH,ERROR_CODE__FILE_REQUEST_INVALID_NAME,ERROR_CODE__FILE_REQUEST_DENIED,ERROR_CODE__FILE_REQUEST_EXIST,ERROR_CODE__FILE_REQUEST_INVALID_OBJECT, + ERROR_CODE__FILE_REQUEST_WRITE_PROTECTED,ERROR_CODE__FILE_REQUEST_INVALID_DRIVE,ERROR_CODE__FILE_REQUEST_NOT_ENABLED,ERROR_CODE__FILE_REQUEST_NO_FILESYSTEM, + ERROR_CODE__FILE_REQUEST_MKFS_ABORTED,ERROR_CODE__FILE_REQUEST_TIMEOUT,ERROR_CODE__FILE_REQUEST_LOCKED,ERROR_CODE__FILE_REQUEST_NOT_ENOUGH_CORE,ERROR_CODE__FILE_REQUEST_TOO_MANY_OPEN_FILES, + ERROR_CODE__FILE_REQUEST_INVALID_PARAMETER}; + + FIL *FileHandle = 0; //the system supports a single active file char FileHandleChar[5]; char ErrorMsg[100]; @@ -45,13 +53,6 @@ int FileReceivedLength = 0; static char g_cCwdBuf[50] = "/"; uint32_t WrittenBytes = 0; -ErrorCode FileError_to_ErrorCode[FR_INVALID_PARAMETER+1] = {ERROR_CODE__NONE,ERROR_CODE__FILE_REQUEST_DISK_ERR,ERROR_CODE__FILE_REQUEST_INT_ERR,ERROR_CODE__FILE_REQUEST_NOT_READY,ERROR_CODE__FILE_REQUEST_NO_FILE, - ERROR_CODE__FILE_REQUEST_NO_PATH,ERROR_CODE__FILE_REQUEST_INVALID_NAME,ERROR_CODE__FILE_REQUEST_DENIED,ERROR_CODE__FILE_REQUEST_EXIST,ERROR_CODE__FILE_REQUEST_INVALID_OBJECT, - ERROR_CODE__FILE_REQUEST_WRITE_PROTECTED,ERROR_CODE__FILE_REQUEST_INVALID_DRIVE,ERROR_CODE__FILE_REQUEST_NOT_ENABLED,ERROR_CODE__FILE_REQUEST_NO_FILESYSTEM, - ERROR_CODE__FILE_REQUEST_MKFS_ABORTED,ERROR_CODE__FILE_REQUEST_TIMEOUT,ERROR_CODE__FILE_REQUEST_LOCKED,ERROR_CODE__FILE_REQUEST_NOT_ENOUGH_CORE,ERROR_CODE__FILE_REQUEST_TOO_MANY_OPEN_FILES, - ERROR_CODE__FILE_REQUEST_INVALID_PARAMETER}; - - ErrorCode getErrorCode(FRESULT Fresult) { return FileError_to_ErrorCode[Fresult]; @@ -696,3 +697,30 @@ FRESULT FileRead(char *path, uint32_t *Size, void **Buffer) my_free(fno); return Fresult; } +FRESULT FileOpen(char *path, uint32_t *Size, FIL *FileHandle) +{ + FRESULT Fresult = FR_OK; + FILINFO* fno = 0; + void* buffer = NULL; + uint32_t Bytes = 0; + uint32_t status = 0; + + fno = my_malloc(sizeof(FILINFO)); + if (fno == 0) + return ERROR; + memset (fno,0,sizeof(FILINFO)); + Fresult = f_stat(path,fno); + *Size = (uint32_t)fno->fsize; + if (Fresult == FR_OK) + { + FileHandle = my_malloc(sizeof(FIL)); + if (FileHandle == 0) + Fresult = FR_DENIED; + } + else + { + LOG_ERROR (Fresult,"f_stat error"); + } + my_free(fno); + return Fresult; +} |
