From 4af5c03d75a15e42263cf30f3a6e8228594133ce Mon Sep 17 00:00:00 2001 From: Gareth McMullin Date: Tue, 21 Apr 2015 20:05:41 +1200 Subject: lmi: Use registers for stub parameters. --- src/lmi.c | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/lmi.c b/src/lmi.c index 6bf2240..e2d1809 100644 --- a/src/lmi.c +++ b/src/lmi.c @@ -29,7 +29,7 @@ #include "cortexm.h" #define SRAM_BASE 0x20000000 -#define STUB_BUFFER_BASE (SRAM_BASE + 0x30) +#define STUB_BUFFER_BASE ALIGN(SRAM_BASE + sizeof(lmi_flash_write_stub), 4) #define BLOCK_SIZE 0x400 @@ -109,15 +109,9 @@ int lmi_flash_write(struct target_flash *f, { target *t = f->t; - /* FIXME rewrite stub to use register args */ - uint32_t data[(len>>2)+2]; - data[0] = dest; - data[1] = len >> 2; - memcpy(&data[2], src, len); - target_mem_write(t, SRAM_BASE, lmi_flash_write_stub, sizeof(lmi_flash_write_stub)); - target_mem_write(t, STUB_BUFFER_BASE, data, len + 8); - return cortexm_run_stub(t, SRAM_BASE, 0, 0, 0, 0); + target_mem_write(t, STUB_BUFFER_BASE, src, len); + return cortexm_run_stub(t, SRAM_BASE, dest, STUB_BUFFER_BASE, len, 0); } -- cgit v1.2.3