GPIO for SWD: Slow down edges on more platforms.

This commit is contained in:
Uwe Bonnes 2020-10-24 20:35:07 +02:00 committed by UweBonnes
parent 80154c5c7a
commit f71e18948a
4 changed files with 10 additions and 10 deletions

View File

@ -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 {

View File

@ -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; \

View File

@ -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))

View File

@ -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; \