|
13 | 13 | #include "OTASTM32H7.h" |
14 | 14 | #include <STM32H747_System.h> |
15 | 15 |
|
16 | | -static bool findProgramLength(DIR * dir, uint32_t & program_length); |
17 | | - |
18 | 16 | const char STM32H7OTACloudProcess::UPDATE_FILE_NAME[] = "/fs/UPDATE.BIN"; |
19 | 17 |
|
20 | 18 | STM32H7OTACloudProcess::STM32H7OTACloudProcess(MessageStream *ms, Client* client) |
@@ -76,7 +74,7 @@ OTACloudProcessInterface::State STM32H7OTACloudProcess::flashOTA() { |
76 | 74 | decompressed = nullptr; |
77 | 75 |
|
78 | 76 | /* Schedule the firmware update. */ |
79 | | - if(!storageOpen()) { |
| 77 | + if(!findProgramLength(_program_length)) { |
80 | 78 | return OtaStorageOpenFail; |
81 | 79 | } |
82 | 80 |
|
@@ -164,33 +162,25 @@ bool STM32H7OTACloudProcess::storageInit() { |
164 | 162 | return false; |
165 | 163 | } |
166 | 164 |
|
167 | | -bool STM32H7OTACloudProcess::storageOpen() { |
| 165 | +bool STM32H7OTACloudProcess::findProgramLength(uint32_t & program_length) { |
168 | 166 | DIR * dir = NULL; |
169 | | - if ((dir = opendir("/fs")) != NULL) |
170 | | - { |
171 | | - if (findProgramLength(dir, _program_length)) |
172 | | - { |
173 | | - closedir(dir); |
174 | | - return true; |
175 | | - } |
176 | | - closedir(dir); |
177 | | - } |
| 167 | + struct dirent * entry = NULL; |
| 168 | + bool found = false; |
178 | 169 |
|
179 | | - return false; |
180 | | -} |
| 170 | + if ((dir = opendir("/fs")) == NULL) { |
| 171 | + return false; |
| 172 | + } |
181 | 173 |
|
182 | | -bool findProgramLength(DIR * dir, uint32_t & program_length) { |
183 | | - struct dirent * entry = NULL; |
184 | 174 | while ((entry = readdir(dir)) != NULL) { |
185 | 175 | if (strcmp(entry->d_name, "UPDATE.BIN") == 0) { // FIXME use constants |
186 | 176 | struct stat stat_buf; |
187 | 177 | stat("/fs/UPDATE.BIN", &stat_buf); |
188 | 178 | program_length = stat_buf.st_size; |
189 | | - return true; |
| 179 | + found = true; |
190 | 180 | } |
191 | 181 | } |
192 | | - |
193 | | - return false; |
| 182 | + closedir(dir); |
| 183 | + return found; |
194 | 184 | } |
195 | 185 |
|
196 | 186 | extern uint32_t __etext; |
|
0 commit comments