diff options
| author | Shlomo Hecht <shlomo@twine-s.com> | 2018-11-04 18:43:56 +0200 |
|---|---|---|
| committer | Shlomo Hecht <shlomo@twine-s.com> | 2018-11-04 18:43:56 +0200 |
| commit | 05538cca177a09a2d97c35700c6dd19a1bf5f7f0 (patch) | |
| tree | d2811615adcc1d0ef616f11830f68f6f5de1c568 /Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c | |
| parent | 6cfa1584d682e3b92236fa34ebd8587332dcb70f (diff) | |
| download | Tango-05538cca177a09a2d97c35700c6dd19a1bf5f7f0.tar.gz Tango-05538cca177a09a2d97c35700c6dd19a1bf5f7f0.zip | |
improve file system (still bugged). usb reconnect, reduce memory usage
Diffstat (limited to 'Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c')
| -rw-r--r-- | Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c index 6324c904e..de4f0937a 100644 --- a/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c +++ b/Software/Embedded_SW/Embedded/Common/SWUpdate/FileSystem.c @@ -386,12 +386,14 @@ uint32_t GetFilesRequestFunc(MessageContainer* requestContainer) #define MAX_NUM_OF_FILES 10 DIR dir; - FILINFO* fno[MAX_NUM_OF_FILES] = {0,0,0,0,0,0,0,0,0,0}; + FILINFO* fno[MAX_NUM_OF_FILES]; int NumOfFiles = 0; FRESULT Fresult = FR_OK; FileInfo **FilesInfo = (FileInfo**)malloc(sizeof(FileInfo *)*(MAX_NUM_OF_FILES)); FileInfo Data[MAX_NUM_OF_FILES]; + fno[0] = malloc(sizeof(FILINFO)); + memset (fno[0],0,sizeof(FILINFO)); Fresult = f_stat(request->path,fno[0]); if (Fresult == FR_OK) { @@ -404,6 +406,8 @@ uint32_t GetFilesRequestFunc(MessageContainer* requestContainer) { for (NumOfFiles = 1;NumOfFiles < MAX_NUM_OF_FILES;NumOfFiles++) { + fno[NumOfFiles] = malloc(sizeof(FILINFO)); + memset (fno[NumOfFiles],0,sizeof(FILINFO)); Fresult = f_readdir(&dir, &fno[NumOfFiles]); /* Read a directory item */ if (Fresult == FR_OK) { @@ -445,6 +449,10 @@ uint32_t GetFilesRequestFunc(MessageContainer* requestContainer) size_t container_size = message_container__pack(&responseContainer, container_buffer); free(responseContainer.data.data); SendChars(container_buffer, container_size); - + for (NumOfFiles = 0;NumOfFiles < MAX_NUM_OF_FILES;NumOfFiles++) + { + if (fno[NumOfFiles]) + free (fno[NumOfFiles]); + } return OK; } |
