topic: add reset functions for SWD

Add swd_init_reset and swd_add_reset.
Add adapter_assert_reset and adapter_deassert_reset, and call them instead
of JTAG reset functions.

Change-Id: Ib2551c6fbb45513e0ae0dc331cfe3ee3f922298a
Signed-off-by: Simon Qian <simonqian.openocd@gmail.com>
Reviewed-on: http://openocd.zylin.com/526
Tested-by: jenkins
Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
This commit is contained in:
Simon Qian
2012-03-17 15:21:59 +08:00
committed by Spencer Oliver
parent a2935397b4
commit 7743e0fb43
7 changed files with 110 additions and 12 deletions

View File

@@ -31,6 +31,7 @@
#include "config.h"
#endif
#include "jtag/interface.h"
#include "breakpoints.h"
#include "cortex_m.h"
#include "target_request.h"
@@ -995,10 +996,7 @@ static int cortex_m3_assert_reset(struct target *target)
if (jtag_reset_config & RESET_HAS_SRST) {
/* default to asserting srst */
if (jtag_reset_config & RESET_SRST_PULLS_TRST)
jtag_add_reset(1, 1);
else
jtag_add_reset(0, 1);
adapter_assert_reset();
} else {
/* Use a standard Cortex-M3 software reset mechanism.
* We default to using VECRESET as it is supported on all current cores.
@@ -1051,7 +1049,7 @@ static int cortex_m3_deassert_reset(struct target *target)
target_state_name(target));
/* deassert reset lines */
jtag_add_reset(0, 0);
adapter_deassert_reset();
return ERROR_OK;
}