From 372552d7f02c7286ca58ca94dbd6f27091a3c752 Mon Sep 17 00:00:00 2001
From: Russ Butler <c1728p9@gmail.com>
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 {