kopia lustrzana https://github.com/stlink-org/stlink
Temp fix to work with F4 up to 64k of flash, changed chip detection
Can debug with up to 64k flash on the F4pull/24/head
rodzic
43974f34ad
commit
d6ab5b0c3f
|
@ -1,5 +1,5 @@
|
|||
/* -*- 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
|
||||
|
@ -49,6 +49,7 @@ struct chip_params {
|
|||
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,
|
||||
|
@ -176,11 +177,16 @@ int main(int argc, char** argv) {
|
|||
|
||||
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);
|
||||
|
@ -531,6 +537,7 @@ static int flash_go(stlink_t *sl) {
|
|||
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),
|
||||
|
|
Ładowanie…
Reference in New Issue