Skip to content

Commit ba87573

Browse files
authored
Merge pull request #44 from pennam/1.8.0_fixes
1.8.0 fixes
2 parents d2268d2 + a31f6a4 commit ba87573

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

envie_dfu/usbd_dfu_flash.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,9 @@ uint16_t Flash_If_Init(void)
107107
*/
108108
uint16_t Flash_If_DeInit(void)
109109
{
110-
boot_set_pending(false);
111110
flash.deinit();
112111
dfu_secondary_bd->deinit();
112+
boot_set_pending(false);
113113
return 0;
114114
}
115115

@@ -163,7 +163,10 @@ uint16_t Flash_If_Write(uint8_t * src, uint8_t * dest, uint32_t Len)
163163
if (isFileBlockFlash((uint32_t)dest)) {
164164
dest -= FILEBLOCK_BASE_ADDRESS;
165165
if (Len < dfu_secondary_bd->get_erase_size(0)) {
166-
Len = dfu_secondary_bd->get_erase_size(0);
166+
uint8_t* srcCopy = (uint8_t*)malloc(dfu_secondary_bd->get_erase_size(0));
167+
memcpy(srcCopy, src, Len);
168+
memset(&srcCopy[Len], dfu_secondary_bd->get_erase_value(), dfu_secondary_bd->get_erase_size(0) - Len);
169+
return dfu_secondary_bd->program(&srcCopy[0],(uint32_t)dest, dfu_secondary_bd->get_erase_size(0));
167170
}
168171
return dfu_secondary_bd->program(src, (uint32_t)dest, Len);
169172
} else if (isExternalFlash((uint32_t)dest)) {

0 commit comments

Comments
 (0)