Browse Source

flash: cleanup stm32f2x loader

Change-Id: I89efdc45bcd61ded437d67d4cbee4c53345d4d76
Signed-off-by: Spencer Oliver <spen@spen-soft.co.uk>
Reviewed-on: http://openocd.zylin.com/197
Tested-by: jenkins
tags/v0.6.0-rc1
Spencer Oliver 12 years ago
parent
commit
88ca3aabfb
1 changed files with 20 additions and 21 deletions
  1. +20
    -21
      src/flash/nor/stm32f2x.c

+ 20
- 21
src/flash/nor/stm32f2x.c View File

@@ -317,29 +317,28 @@ static int stm32x_write_block(struct flash_bank *bank, uint8_t *buffer,
/* see contrib/loaders/flash/stm32f2x.S for src */

static const uint16_t stm32x_flash_write_code_16[] = {
// 00000000 <write>:
0x4b07, // ldr r3, [pc, #28] (20 <STM32_PROG16>)
0x6123, // str r3, [r4, #16]
0xf830, 0x3b02, //ldrh.w r3, [r0], #2
0xf821, 0x3b02, //strh.w r3, [r1], #2

//0000000c <busy>:
0x68e3, //ldr r3, [r4, #12]
0xf413, 0x3f80, // tst.w r3, #65536 ; 0x10000
0xd0fb, //beq.n c <busy>
0xf013, 0x0ff0, //tst.w r3, #240 ; 0xf0
0xd101, //bne.n 1e <exit>
0x3a01, //subs r2, #1
0xd1f0, //bne.n 0 <write>
//0000001e <exit>:
0xbe00, // bkpt 0x0000

//00000020 <STM32_PROG16>:
0x0101, 0x0000, // .word 0x00000101

/* 00000000 <write>: */
0x4b07, /* ldr r3, [pc, #28] (20 <STM32_PROG16>) */
0x6123, /* str r3, [r4, #16] */
0xf830, 0x3b02, /* ldrh.w r3, [r0], #2 */
0xf821, 0x3b02, /* strh.w r3, [r1], #2 */

/* 0000000c <busy>: */
0x68e3, /* ldr r3, [r4, #12] */
0xf413, 0x3f80, /* tst.w r3, #65536 ; 0x10000 */
0xd0fb, /* beq.n c <busy> */
0xf013, 0x0ff0, /* tst.w r3, #240 ; 0xf0 */
0xd101, /* bne.n 1e <exit> */
0x3a01, /* subs r2, #1 */
0xd1f0, /* bne.n 0 <write> */
/* 0000001e <exit>: */
0xbe00, /* bkpt 0x0000 */

/* 00000020 <STM32_PROG16>: */
0x0101, 0x0000, /* .word 0x00000101 */
};

// Flip endian
/* Flip endian */
uint8_t stm32x_flash_write_code[sizeof(stm32x_flash_write_code_16)*2];
for (unsigned i = 0; i < sizeof(stm32x_flash_write_code_16) / 2; i++)
{


Loading…
Cancel
Save