Add nRF51 command for (only) erasing the UICR registers
Original implementation by: Benjamin Vedder <benjamin@vedder.se>
This commit is contained in:
parent
d987a8dd8c
commit
5ea01030e2
|
@ -31,6 +31,7 @@ static int nrf51_flash_write(struct target_flash *f,
|
|||
target_addr dest, const void *src, size_t len);
|
||||
|
||||
static bool nrf51_cmd_erase_all(target *t, int argc, const char **argv);
|
||||
static bool nrf51_cmd_erase_uicr(target *t, int argc, const char **argv);
|
||||
static bool nrf51_cmd_read_hwid(target *t, int argc, const char **argv);
|
||||
static bool nrf51_cmd_read_fwid(target *t, int argc, const char **argv);
|
||||
static bool nrf51_cmd_read_deviceid(target *t, int argc, const char **argv);
|
||||
|
@ -41,6 +42,7 @@ static bool nrf51_cmd_read(target *t, int argc, const char **argv);
|
|||
|
||||
const struct command_s nrf51_cmd_list[] = {
|
||||
{"erase_mass", (cmd_handler)nrf51_cmd_erase_all, "Erase entire flash memory"},
|
||||
{"erase_uicr", (cmd_handler)nrf51_cmd_erase_uicr, "Erase UICR registers"},
|
||||
{"read", (cmd_handler)nrf51_cmd_read, "Read device parameters"},
|
||||
{NULL, NULL, NULL}
|
||||
};
|
||||
|
@ -244,6 +246,31 @@ static bool nrf51_cmd_erase_all(target *t, int argc, const char **argv)
|
|||
return true;
|
||||
}
|
||||
|
||||
static bool nrf51_cmd_erase_uicr(target *t, int argc, const char **argv)
|
||||
{
|
||||
(void)argc;
|
||||
(void)argv;
|
||||
tc_printf(t, "erase..\n");
|
||||
|
||||
/* Enable erase */
|
||||
target_mem_write32(t, NRF51_NVMC_CONFIG, NRF51_NVMC_CONFIG_EEN);
|
||||
|
||||
/* Poll for NVMC_READY */
|
||||
while (target_mem_read32(t, NRF51_NVMC_READY) == 0)
|
||||
if(target_check_error(t))
|
||||
return false;
|
||||
|
||||
/* Erase UICR */
|
||||
target_mem_write32(t, NRF51_NVMC_ERASEUICR, 1);
|
||||
|
||||
/* Poll for NVMC_READY */
|
||||
while (target_mem_read32(t, NRF51_NVMC_READY) == 0)
|
||||
if(target_check_error(t))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool nrf51_cmd_read_hwid(target *t, int argc, const char **argv)
|
||||
{
|
||||
(void)argc;
|
||||
|
|
Loading…
Reference in New Issue