From 372552d7f02c7286ca58ca94dbd6f27091a3c752 Mon Sep 17 00:00:00 2001 From: Russ Butler Date: Wed, 21 Dec 2016 21:17:50 -0600 Subject: [PATCH] Revert "Added swd_uninit_debug() function. Used new function in reset routine for nRF5x, as well as target_flash.c uninit." This reverts commit c074a58052873296fa9f918341cb0e06e6ab0c03. This is reverted because it causes some lpc targets such as the lpc812 to enter a bad state after programming, since the DP is turned off while the debug logic is still enabled. --- source/daplink/interface/swd_host.c | 19 ------------------- source/daplink/interface/swd_host.h | 1 - source/daplink/interface/target_flash.c | 1 - .../nordic/target_reset_nrf5x_sam3u2c.c | 7 ++----- 4 files changed, 2 insertions(+), 26 deletions(-) diff --git a/source/daplink/interface/swd_host.c b/source/daplink/interface/swd_host.c index d7fd74bce..5b01eb584 100644 --- a/source/daplink/interface/swd_host.c +++ b/source/daplink/interface/swd_host.c @@ -831,25 +831,6 @@ uint8_t swd_init_debug(void) return 1; } -uint8_t swd_uninit_debug(void) -{ - // Assume debug is powered up already - // Clear (CSYSPWRUPREQ | CDBGPWRUPREQ) in DP_CTRL_STAT register - uint32_t ctrl_stat_read; - - if (!swd_write_dp(DP_CTRL_STAT, 0x0)) { - return 0; - } - - do { - if (!swd_read_dp(DP_CTRL_STAT, &ctrl_stat_read)) { - return 0; - } - } while ((ctrl_stat_read & (CSYSPWRUPREQ | CDBGPWRUPREQ))); - - return 1; -} - __attribute__((weak)) void swd_set_target_reset(uint8_t asserted) { (asserted) ? PIN_nRESET_OUT(0) : PIN_nRESET_OUT(1); diff --git a/source/daplink/interface/swd_host.h b/source/daplink/interface/swd_host.h index 18be111e5..06337c3e0 100644 --- a/source/daplink/interface/swd_host.h +++ b/source/daplink/interface/swd_host.h @@ -37,7 +37,6 @@ extern "C" { uint8_t swd_init(void); uint8_t swd_off(void); uint8_t swd_init_debug(void); -uint8_t swd_uninit_debug(void); uint8_t swd_read_dp(uint8_t adr, uint32_t *val); uint8_t swd_write_dp(uint8_t adr, uint32_t val); uint8_t swd_read_ap(uint32_t adr, uint32_t *val); diff --git a/source/daplink/interface/target_flash.c b/source/daplink/interface/target_flash.c index a198488e4..4f28286de 100644 --- a/source/daplink/interface/target_flash.c +++ b/source/daplink/interface/target_flash.c @@ -79,7 +79,6 @@ static error_t target_flash_uninit(void) target_set_state(RESET_RUN); } - swd_uninit_debug(); swd_off(); return ERROR_SUCCESS; } diff --git a/source/target/nordic/target_reset_nrf5x_sam3u2c.c b/source/target/nordic/target_reset_nrf5x_sam3u2c.c index 0e8529366..ca7d2b96c 100644 --- a/source/target/nordic/target_reset_nrf5x_sam3u2c.c +++ b/source/target/nordic/target_reset_nrf5x_sam3u2c.c @@ -70,11 +70,8 @@ void swd_set_target_reset(uint8_t asserted) swd_write_memory(0xE000ED0C, (uint8_t *)&swd_mem_write_data, 4); //os_dly_wait(1); } - swd_uninit_debug(); } - else { - swd_init_debug(); - + else { swd_read_ap(0x010000FC, &ap_index_return); if (ap_index_return == 0x02880000) { // Device has CTRL-AP @@ -83,7 +80,7 @@ void swd_set_target_reset(uint8_t asserted) else { // No CTRL-AP - Soft reset has been performed } - swd_uninit_debug(); + PIOA->PIO_MDER = PIN_SWDIO | PIN_SWCLK | PIN_nRESET; } } else {