diff options
| author | Damien George | 2018-09-05 15:22:05 +1000 |
|---|---|---|
| committer | Damien George | 2018-09-05 15:22:05 +1000 |
| commit | a23719e0ad134dcc2e771bb6932fbfdc3ac33f17 (patch) | |
| tree | c728aebcbeebfbcf80ad2b4fdea325a5cb66c754 | |
| parent | 5f3016c663042657338ab65a20fe8163500c5ba1 (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.c | 3 |
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; |
