MCPcopy Create free account
hub / github.com/bmorcelli/Launcher / writeAppDataWithDeferredHeader

Function writeAppDataWithDeferredHeader

src/idf/idf_update.cpp:244–269  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

242}
243
244bool writeAppDataWithDeferredHeader(const uint8_t *data, size_t len) {
245 size_t offset = 0;
246
247 if (ctx.app_header_pending && ctx.app_header_len < kAppHeaderHoldSize) {
248 const size_t copy_len = std::min(kAppHeaderHoldSize - ctx.app_header_len, len);
249 memcpy(ctx.app_header + ctx.app_header_len, data, copy_len);
250 ctx.app_header_len += copy_len;
251 ctx.written += copy_len;
252 offset += copy_len;
253
254 if (ctx.app_header_len == 1 && ctx.app_header[0] != ESP_IMAGE_HEADER_MAGIC) {
255 setError(LAUNCHER_UPDATE_ERROR_MAGIC_BYTE);
256 return false;
257 }
258 if (ctx.app_header_len != kAppHeaderHoldSize) return true;
259 }
260
261 if (offset >= len) return true;
262
263 const size_t partition_offset = ctx.written;
264 const size_t write_len = len - offset;
265 if (!writeFlash(partition_offset, data + offset, write_len)) return false;
266
267 ctx.written += write_len;
268 return true;
269}
270
271bool writeData(const uint8_t *data, size_t len) {
272 if (ctx.target == LAUNCHER_UPDATE_APP) return writeAppDataWithDeferredHeader(data, len);

Callers 1

writeDataFunction · 0.85

Calls 2

writeFlashFunction · 0.85
setErrorFunction · 0.70

Tested by

no test coverage detected