From 391d8f94a5c0602f0d0c9ccd3642f4ab54361793 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Mon, 30 May 2016 13:31:43 -0700 Subject: [PATCH] Align loader to 32-bit boundary write_mem32 needs it to be aligned, and writing extra data is harmless at this point. Signed-off-by: Keith Packard --- src/stlink-common.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/stlink-common.c b/src/stlink-common.c index 18c76fb..533e670 100644 --- a/src/stlink-common.c +++ b/src/stlink-common.c @@ -1525,7 +1525,7 @@ int write_loader_to_sram(stlink_t *sl, stm32_addr_t* addr, size_t* size) { 0x00, 0x2a, 0xf8, 0xd3, - 0x00, 0xbe + 0x00, 0xbe, }; static const uint8_t loader_code_stm32l0[] = { @@ -1547,7 +1547,7 @@ int write_loader_to_sram(stlink_t *sl, stm32_addr_t* addr, size_t* size) { 0x00, 0x2a, 0xf8, 0xd3, - 0x00, 0xbe + 0x00, 0xbe, }; static const uint8_t loader_code_stm32f4[] = { @@ -1679,6 +1679,10 @@ int write_loader_to_sram(stlink_t *sl, stm32_addr_t* addr, size_t* size) { } memcpy(sl->q_buf, loader_code, loader_size); + + /* pad to 32-bits */ + loader_size = (loader_size + 3) & ~3; + stlink_write_mem32(sl, sl->sram_base, loader_size); *addr = sl->sram_base; -- 2.30.2