target/kinetis: flash read write return bool
This commit is contained in:
parent
a6e5b18707
commit
b78818b9ee
|
@ -111,8 +111,8 @@ static bool kinetis_cmd_unsafe(target *t, int argc, char **argv)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int kinetis_flash_cmd_erase(target_flash_s *f, target_addr_t addr, size_t len);
|
static bool kinetis_flash_cmd_erase(target_flash_s *f, target_addr_t addr, size_t len);
|
||||||
static int kinetis_flash_cmd_write(target_flash_s *f, target_addr_t dest, const void *src, size_t len);
|
static bool kinetis_flash_cmd_write(target_flash_s *f, target_addr_t dest, const void *src, size_t len);
|
||||||
static bool kinetis_flash_done(target_flash_s *f);
|
static bool kinetis_flash_done(target_flash_s *f);
|
||||||
|
|
||||||
struct kinetis_flash {
|
struct kinetis_flash {
|
||||||
|
@ -432,24 +432,23 @@ static bool kinetis_fccob_cmd(target *t, uint8_t cmd, uint32_t addr, const uint3
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int kinetis_flash_cmd_erase(target_flash_s *const f, target_addr_t addr, size_t len)
|
static bool kinetis_flash_cmd_erase(target_flash_s *const f, target_addr_t addr, size_t len)
|
||||||
{
|
{
|
||||||
while (len) {
|
while (len) {
|
||||||
if (kinetis_fccob_cmd(f->t, FTFx_CMD_ERASE_SECTOR, addr, NULL, 0)) {
|
if (!kinetis_fccob_cmd(f->t, FTFx_CMD_ERASE_SECTOR, addr, NULL, 0))
|
||||||
/* Different targets have different flash erase sizes */
|
return false;
|
||||||
if (len > f->blocksize)
|
|
||||||
len -= f->blocksize;
|
/* Different targets have different flash erase sizes */
|
||||||
else
|
if (len > f->blocksize)
|
||||||
len = 0;
|
len -= f->blocksize;
|
||||||
addr += f->blocksize;
|
else
|
||||||
} else {
|
len = 0;
|
||||||
return 1;
|
addr += f->blocksize;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return 0;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int kinetis_flash_cmd_write(target_flash_s *f, target_addr_t dest, const void *src, size_t len)
|
static bool kinetis_flash_cmd_write(target_flash_s *f, target_addr_t dest, const void *src, size_t len)
|
||||||
{
|
{
|
||||||
struct kinetis_flash *const kf = (struct kinetis_flash *)f;
|
struct kinetis_flash *const kf = (struct kinetis_flash *)f;
|
||||||
|
|
||||||
|
@ -466,17 +465,18 @@ static int kinetis_flash_cmd_write(target_flash_s *f, target_addr_t dest, const
|
||||||
write_cmd = FTFx_CMD_PROGRAM_LONGWORD;
|
write_cmd = FTFx_CMD_PROGRAM_LONGWORD;
|
||||||
|
|
||||||
while (len) {
|
while (len) {
|
||||||
if (kinetis_fccob_cmd(f->t, write_cmd, dest, src, kf->write_len >> 2U)) {
|
if (!kinetis_fccob_cmd(f->t, write_cmd, dest, src, kf->write_len >> 2U))
|
||||||
if (len > kf->write_len)
|
return false;
|
||||||
len -= kf->write_len;
|
|
||||||
else
|
if (len > kf->write_len)
|
||||||
len = 0;
|
len -= kf->write_len;
|
||||||
dest += kf->write_len;
|
else
|
||||||
src += kf->write_len;
|
len = 0;
|
||||||
} else
|
dest += kf->write_len;
|
||||||
return 1;
|
src += kf->write_len;
|
||||||
}
|
}
|
||||||
return 0;
|
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool kinetis_flash_done(target_flash_s *const f)
|
static bool kinetis_flash_done(target_flash_s *const f)
|
||||||
|
|
Loading…
Reference in New Issue