/* -*- tab-width:8 -*- */
-
+#define DEBUG 1
/*
Copyright (C) 2011 Peter Zotov <whitequark@whitequark.org>
Use of this source code is governed by a BSD-style
0x100000, 0x20000, 0x20000, 0x1fff0000, 0x7800 }, // table 1, pm0059
{ 0x412, "F1 Low-density device", 0x1ffff7e0,
0x8000, 0x400, 0x2800, 0x1ffff000, 0x800 }, // table 1, pm0063
+ /*No flash size register? page size is variable */
{ 0x413, "F4 device", 0x1FFF7A10,
0x100000, 0x4000, 0x30000, 0x1fff0000, 0x7800 }, // table 1, pm0081
{ 0x414, "F1 High-density device", 0x1ffff7e0,
FLASH_PAGE = params->flash_pagesize;
+ //sl->flash_pgsz=0x4000;
+ //sl->flash_size=0x100000;
+
uint32_t flash_size;
stlink_read_mem32(sl, params->flash_size_reg, 4);
flash_size = sl->q_buf[0] | (sl->q_buf[1] << 8);
+ //flash_size=0x100000;
+
printf("Flash size is %d KiB.\n", flash_size);
// memory map is in 1k blocks.
current_memory_map = make_memory_map(params, flash_size * 0x400);
printf("flash_do: page %08x\n", page);
#endif
+ //todo:write flash already does erase so why is this here?
stlink_erase_flash_page(sl, page);
if(stlink_write_flash(sl, page, fb->data + (page - fb->addr),