GPIO for SWD: Slow down edges on more platforms.
This commit is contained in:
parent
80154c5c7a
commit
f71e18948a
|
@ -61,11 +61,11 @@ void platform_init(void)
|
||||||
srst_pin = SRST_PIN_V2;
|
srst_pin = SRST_PIN_V2;
|
||||||
}
|
}
|
||||||
/* Setup GPIO ports */
|
/* Setup GPIO ports */
|
||||||
gpio_set_mode(TMS_PORT, GPIO_MODE_OUTPUT_50_MHZ,
|
gpio_set_mode(TMS_PORT, GPIO_MODE_OUTPUT_2_MHZ,
|
||||||
GPIO_CNF_INPUT_FLOAT, TMS_PIN);
|
GPIO_CNF_INPUT_FLOAT, TMS_PIN);
|
||||||
gpio_set_mode(TCK_PORT, GPIO_MODE_OUTPUT_50_MHZ,
|
gpio_set_mode(TCK_PORT, GPIO_MODE_OUTPUT_2_MHZ,
|
||||||
GPIO_CNF_OUTPUT_PUSHPULL, TCK_PIN);
|
GPIO_CNF_OUTPUT_PUSHPULL, TCK_PIN);
|
||||||
gpio_set_mode(TDI_PORT, GPIO_MODE_OUTPUT_50_MHZ,
|
gpio_set_mode(TDI_PORT, GPIO_MODE_OUTPUT_2_MHZ,
|
||||||
GPIO_CNF_OUTPUT_PUSHPULL, TDI_PIN);
|
GPIO_CNF_OUTPUT_PUSHPULL, TDI_PIN);
|
||||||
|
|
||||||
platform_srst_set_val(false);
|
platform_srst_set_val(false);
|
||||||
|
@ -90,7 +90,7 @@ void platform_init(void)
|
||||||
void platform_srst_set_val(bool assert)
|
void platform_srst_set_val(bool assert)
|
||||||
{
|
{
|
||||||
if (assert) {
|
if (assert) {
|
||||||
gpio_set_mode(SRST_PORT, GPIO_MODE_OUTPUT_50_MHZ,
|
gpio_set_mode(SRST_PORT, GPIO_MODE_OUTPUT_2_MHZ,
|
||||||
GPIO_CNF_OUTPUT_OPENDRAIN, srst_pin);
|
GPIO_CNF_OUTPUT_OPENDRAIN, srst_pin);
|
||||||
gpio_clear(SRST_PORT, srst_pin);
|
gpio_clear(SRST_PORT, srst_pin);
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -78,7 +78,7 @@ int usbuart_debug_write(const char *buf, size_t len);
|
||||||
# define SWD_CR_MULT (1 << ((14 - 8) << 2))
|
# define SWD_CR_MULT (1 << ((14 - 8) << 2))
|
||||||
|
|
||||||
#define TMS_SET_MODE() \
|
#define TMS_SET_MODE() \
|
||||||
gpio_set_mode(TMS_PORT, GPIO_MODE_OUTPUT_50_MHZ, \
|
gpio_set_mode(TMS_PORT, GPIO_MODE_OUTPUT_2_MHZ, \
|
||||||
GPIO_CNF_OUTPUT_PUSHPULL, TMS_PIN);
|
GPIO_CNF_OUTPUT_PUSHPULL, TMS_PIN);
|
||||||
#define SWDIO_MODE_FLOAT() do { \
|
#define SWDIO_MODE_FLOAT() do { \
|
||||||
uint32_t cr = SWD_CR; \
|
uint32_t cr = SWD_CR; \
|
||||||
|
|
|
@ -67,11 +67,11 @@ void platform_init(void)
|
||||||
data |= AFIO_MAPR_SWJ_CFG_JTAG_OFF_SW_OFF;
|
data |= AFIO_MAPR_SWJ_CFG_JTAG_OFF_SW_OFF;
|
||||||
AFIO_MAPR = data;
|
AFIO_MAPR = data;
|
||||||
/* Setup JTAG GPIO ports */
|
/* Setup JTAG GPIO ports */
|
||||||
gpio_set_mode(TMS_PORT, GPIO_MODE_OUTPUT_50_MHZ,
|
gpio_set_mode(TMS_PORT, GPIO_MODE_OUTPUT_2_MHZ,
|
||||||
GPIO_CNF_INPUT_FLOAT, TMS_PIN);
|
GPIO_CNF_INPUT_FLOAT, TMS_PIN);
|
||||||
gpio_set_mode(TCK_PORT, GPIO_MODE_OUTPUT_50_MHZ,
|
gpio_set_mode(TCK_PORT, GPIO_MODE_OUTPUT_2_MHZ,
|
||||||
GPIO_CNF_OUTPUT_PUSHPULL, TCK_PIN);
|
GPIO_CNF_OUTPUT_PUSHPULL, TCK_PIN);
|
||||||
gpio_set_mode(TDI_PORT, GPIO_MODE_OUTPUT_50_MHZ,
|
gpio_set_mode(TDI_PORT, GPIO_MODE_OUTPUT_2_MHZ,
|
||||||
GPIO_CNF_OUTPUT_PUSHPULL, TDI_PIN);
|
GPIO_CNF_OUTPUT_PUSHPULL, TDI_PIN);
|
||||||
|
|
||||||
gpio_set_mode(TDO_PORT, GPIO_MODE_INPUT,
|
gpio_set_mode(TDO_PORT, GPIO_MODE_INPUT,
|
||||||
|
@ -118,7 +118,7 @@ void platform_srst_set_val(bool assert)
|
||||||
{
|
{
|
||||||
/* We reuse JSRST as SRST.*/
|
/* We reuse JSRST as SRST.*/
|
||||||
if (assert) {
|
if (assert) {
|
||||||
gpio_set_mode(JRST_PORT, GPIO_MODE_OUTPUT_50_MHZ,
|
gpio_set_mode(JRST_PORT, GPIO_MODE_OUTPUT_2_MHZ,
|
||||||
GPIO_CNF_OUTPUT_OPENDRAIN, JRST_PIN);
|
GPIO_CNF_OUTPUT_OPENDRAIN, JRST_PIN);
|
||||||
/* Wait until requested value is active.*/
|
/* Wait until requested value is active.*/
|
||||||
while (gpio_get(JRST_PORT, JRST_PIN))
|
while (gpio_get(JRST_PORT, JRST_PIN))
|
||||||
|
|
|
@ -72,7 +72,7 @@ int usbuart_debug_write(const char *buf, size_t len);
|
||||||
# define SWD_CR_MULT (1 << ((13 - 8) << 2))
|
# define SWD_CR_MULT (1 << ((13 - 8) << 2))
|
||||||
|
|
||||||
#define TMS_SET_MODE() \
|
#define TMS_SET_MODE() \
|
||||||
gpio_set_mode(TMS_PORT, GPIO_MODE_OUTPUT_50_MHZ, \
|
gpio_set_mode(TMS_PORT, GPIO_MODE_OUTPUT_2_MHZ, \
|
||||||
GPIO_CNF_OUTPUT_PUSHPULL, TMS_PIN);
|
GPIO_CNF_OUTPUT_PUSHPULL, TMS_PIN);
|
||||||
#define SWDIO_MODE_FLOAT() do { \
|
#define SWDIO_MODE_FLOAT() do { \
|
||||||
uint32_t cr = SWD_CR; \
|
uint32_t cr = SWD_CR; \
|
||||||
|
|
Loading…
Reference in New Issue