aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien George2018-09-05 15:22:05 +1000
committerDamien George2018-09-05 15:22:05 +1000
commita23719e0ad134dcc2e771bb6932fbfdc3ac33f17 (patch)
treec728aebcbeebfbcf80ad2b4fdea325a5cb66c754
parent5f3016c663042657338ab65a20fe8163500c5ba1 (diff)
stm32/mboot/main: Use correct formula for DFU download address.
As per ST's DfuSe specification, and following their example code.
-rw-r--r--ports/stm32/mboot/main.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/ports/stm32/mboot/main.c b/ports/stm32/mboot/main.c
index 32a8e76dd..888ba4534 100644
--- a/ports/stm32/mboot/main.c
+++ b/ports/stm32/mboot/main.c
@@ -760,7 +760,8 @@ static int dfu_process_dnload(void) {
}
} else if (dfu_state.wBlockNum > 1) {
// write data to memory
- ret = do_write(dfu_state.addr, dfu_state.buf, dfu_state.wLength);
+ uint32_t addr = (dfu_state.wBlockNum - 2) * DFU_XFER_SIZE + dfu_state.addr;
+ ret = do_write(addr, dfu_state.buf, dfu_state.wLength);
}
if (ret == 0) {
return DFU_STATUS_DNLOAD_IDLE;