aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c
diff options
context:
space:
mode:
authorAvi Levkovich <avi@twine-s.com>2019-08-01 17:23:44 +0300
committerAvi Levkovich <avi@twine-s.com>2019-08-01 17:23:44 +0300
commit06c6cfec8af9c3b3f930da7fe4394ee885d24352 (patch)
tree2667eb76e8fb204db99608e91b49bf73d8b0ecd3 /Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c
parent42471da0b2a19c964fc2c3df39cc2e8a6aaf5e2e (diff)
parent18c4c73f8b654dca09e1333d1f6a35e4cbdc9b17 (diff)
downloadTango-06c6cfec8af9c3b3f930da7fe4394ee885d24352.tar.gz
Tango-06c6cfec8af9c3b3f930da7fe4394ee885d24352.zip
Merge branch 'master' of https://twinetfs.visualstudio.com/_git/Tango
Diffstat (limited to 'Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c')
-rw-r--r--Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c
index f4c52f000..48e29e54c 100644
--- a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c
+++ b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c
@@ -600,7 +600,9 @@ uint32_t GetFilesRequestFunc(MessageContainer* requestContainer)
Data[i].name = fno[i]->fname;
Data[i].has_length = true;
Data[i].length = fno[i]->fsize;
+ Data[i].has_lastmodifieddate = true;
Data[i].lastmodifieddate = fno[i]->fdate;
+ Data[i].has_lastmodifiedtime = true;
Data[i].lastmodifiedtime = fno[i]->ftime;
if (i==0)
usnprintf(&FullPath[i], 50, "%s", request->path);
@@ -644,7 +646,7 @@ uint32_t GetFilesRequestFunc(MessageContainer* requestContainer)
}
return Fresult;
}
-FRESULT FileWrite(void * buffer, uint16_t size,char *path)
+FRESULT FileWrite(void * buffer, uint16_t size,char *path, uint32_t timeout)
{
FRESULT Fresult = FR_OK;
FIL *FileHandle = 0; //the system supports a single active file
@@ -657,7 +659,11 @@ FRESULT FileWrite(void * buffer, uint16_t size,char *path)
Fresult = FR_DENIED;
else
{
- Semaphore_pend(FFS_Sem, BIOS_WAIT_FOREVER);
+ if (Semaphore_pend(FFS_Sem, timeout) == false)
+ {
+ LOG_ERROR (false,"file system busy error");
+ return FR_TIMEOUT;
+ }
Fresult = f_open(FileHandle,path,FA_WRITE | FA_OPEN_ALWAYS);
if (Fresult == FR_OK)