diff options
author | Kai Geissdoerfer <kai.geissdoerfer@tu-dresden.de> | 2018-08-13 12:35:09 +0200 |
---|---|---|
committer | Tomas Vanek <vanekt@fbl.cz> | 2018-09-17 17:15:03 +0100 |
commit | ad41246cf66d96b506694a0100e1bbf792d5ea77 (patch) | |
tree | a585602ccc0ebc396424a4642ecbb259373be1b4 /src | |
parent | 8c67115c7b02a10668c9b05cd4fd95a8a7d01c88 (diff) | |
download | riscv-openocd-ad41246cf66d96b506694a0100e1bbf792d5ea77.zip riscv-openocd-ad41246cf66d96b506694a0100e1bbf792d5ea77.tar.gz riscv-openocd-ad41246cf66d96b506694a0100e1bbf792d5ea77.tar.bz2 |
flash/nrf5: time-based timeout waiting for flash controller
Change-Id: Id214df154dc359ca130c8d8fe1554d106621b9cd
Signed-off-by: Kai Geissdoerfer <kai.geissdoerfer@tu-dresden.de>
Reviewed-on: http://openocd.zylin.com/4648
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
Diffstat (limited to 'src')
-rw-r--r-- | src/flash/nor/nrf5.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/flash/nor/nrf5.c b/src/flash/nor/nrf5.c index 16459c7..1994bbc 100644 --- a/src/flash/nor/nrf5.c +++ b/src/flash/nor/nrf5.c @@ -26,6 +26,7 @@ #include <target/algorithm.h> #include <target/armv7m.h> #include <helper/types.h> +#include <helper/time_support.h> enum { NRF5_FLASH_BASE = 0x00000000, @@ -240,7 +241,8 @@ static int nrf5_wait_for_nvmc(struct nrf5_info *chip) { uint32_t ready; int res; - int timeout = 100; + int timeout_ms = 200; + int64_t ts_start = timeval_ms(); do { res = target_read_u32(chip->target, NRF5_NVMC_READY, &ready); @@ -252,8 +254,9 @@ static int nrf5_wait_for_nvmc(struct nrf5_info *chip) if (ready == 0x00000001) return ERROR_OK; - alive_sleep(1); - } while (timeout--); + keep_alive(); + + } while ((timeval_ms()-ts_start) < timeout_ms); LOG_DEBUG("Timed out waiting for NVMC_READY"); return ERROR_FLASH_BUSY; |