usbuart, jtagtap, swdptap: Factor out GPIO setup
This commit is contained in:
parent
7e91f68efa
commit
8b1ec3151f
@ -95,6 +95,20 @@ extern usbd_device *usbdev;
|
|||||||
#define LED_IDLE_RUN GPIO10
|
#define LED_IDLE_RUN GPIO10
|
||||||
#define LED_ERROR GPIO11
|
#define LED_ERROR GPIO11
|
||||||
|
|
||||||
|
#define TMS_SET_MODE() \
|
||||||
|
gpio_set_mode(TMS_PORT, GPIO_MODE_OUTPUT_50_MHZ, \
|
||||||
|
GPIO_CNF_OUTPUT_PUSHPULL, TMS_PIN);
|
||||||
|
#define SWDIO_MODE_FLOAT() \
|
||||||
|
gpio_set_mode(SWDIO_PORT, GPIO_MODE_INPUT, \
|
||||||
|
GPIO_CNF_INPUT_FLOAT, SWDIO_PIN);
|
||||||
|
#define SWDIO_MODE_DRIVE() \
|
||||||
|
gpio_set_mode(SWDIO_PORT, GPIO_MODE_OUTPUT_50_MHZ, \
|
||||||
|
GPIO_CNF_OUTPUT_PUSHPULL, SWDIO_PIN);
|
||||||
|
|
||||||
|
#define UART_PIN_SETUP() \
|
||||||
|
gpio_set_mode(USBUSART_PORT, GPIO_MODE_OUTPUT_2_MHZ, \
|
||||||
|
GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, USBUSART_TX_PIN);
|
||||||
|
|
||||||
#define USB_DRIVER stm32f103_usb_driver
|
#define USB_DRIVER stm32f103_usb_driver
|
||||||
#define USB_IRQ NVIC_USB_LP_CAN_RX0_IRQ
|
#define USB_IRQ NVIC_USB_LP_CAN_RX0_IRQ
|
||||||
#define USB_ISR usb_lp_can_rx0_isr
|
#define USB_ISR usb_lp_can_rx0_isr
|
||||||
|
@ -81,6 +81,20 @@ extern usbd_device *usbdev;
|
|||||||
#define LED_UART GPIO14
|
#define LED_UART GPIO14
|
||||||
#define LED_IDLE_RUN GPIO8
|
#define LED_IDLE_RUN GPIO8
|
||||||
|
|
||||||
|
#define TMS_SET_MODE() \
|
||||||
|
gpio_set_mode(TMS_PORT, GPIO_MODE_OUTPUT_50_MHZ, \
|
||||||
|
GPIO_CNF_OUTPUT_PUSHPULL, TMS_PIN);
|
||||||
|
#define SWDIO_MODE_FLOAT() \
|
||||||
|
gpio_set_mode(SWDIO_PORT, GPIO_MODE_INPUT, \
|
||||||
|
GPIO_CNF_INPUT_FLOAT, SWDIO_PIN);
|
||||||
|
#define SWDIO_MODE_DRIVE() \
|
||||||
|
gpio_set_mode(SWDIO_PORT, GPIO_MODE_OUTPUT_50_MHZ, \
|
||||||
|
GPIO_CNF_OUTPUT_PUSHPULL, SWDIO_PIN);
|
||||||
|
|
||||||
|
#define UART_PIN_SETUP() \
|
||||||
|
gpio_set_mode(USBUSART_PORT, GPIO_MODE_OUTPUT_2_MHZ, \
|
||||||
|
GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, USBUSART_TX_PIN);
|
||||||
|
|
||||||
#define USB_DRIVER stm32f103_usb_driver
|
#define USB_DRIVER stm32f103_usb_driver
|
||||||
#define USB_IRQ NVIC_USB_LP_CAN_RX0_IRQ
|
#define USB_IRQ NVIC_USB_LP_CAN_RX0_IRQ
|
||||||
#define USB_ISR usb_lp_can_rx0_isr
|
#define USB_ISR usb_lp_can_rx0_isr
|
||||||
|
@ -25,11 +25,11 @@
|
|||||||
#include "general.h"
|
#include "general.h"
|
||||||
|
|
||||||
#include "jtagtap.h"
|
#include "jtagtap.h"
|
||||||
|
#include "platform.h"
|
||||||
|
|
||||||
int jtagtap_init(void)
|
int jtagtap_init(void)
|
||||||
{
|
{
|
||||||
gpio_set_mode(TMS_PORT, GPIO_MODE_OUTPUT_50_MHZ,
|
TMS_SET_MODE();
|
||||||
GPIO_CNF_OUTPUT_PUSHPULL, TMS_PIN);
|
|
||||||
|
|
||||||
/* Go to JTAG mode for SWJ-DP */
|
/* Go to JTAG mode for SWJ-DP */
|
||||||
for(int i = 0; i <= 50; i++) jtagtap_next(1, 0); /* Reset SW-DP */
|
for(int i = 0; i <= 50; i++) jtagtap_next(1, 0); /* Reset SW-DP */
|
||||||
|
@ -38,14 +38,12 @@ static void swdptap_turnaround(uint8_t dir)
|
|||||||
if(dir == olddir) return;
|
if(dir == olddir) return;
|
||||||
olddir = dir;
|
olddir = dir;
|
||||||
|
|
||||||
if(dir)
|
if(dir)
|
||||||
gpio_set_mode(SWDIO_PORT, GPIO_MODE_INPUT,
|
SWDIO_MODE_FLOAT();
|
||||||
GPIO_CNF_INPUT_FLOAT, SWDIO_PIN);
|
|
||||||
gpio_set(SWCLK_PORT, SWCLK_PIN);
|
gpio_set(SWCLK_PORT, SWCLK_PIN);
|
||||||
gpio_clear(SWCLK_PORT, SWCLK_PIN);
|
gpio_clear(SWCLK_PORT, SWCLK_PIN);
|
||||||
if(!dir)
|
if(!dir)
|
||||||
gpio_set_mode(SWDIO_PORT, GPIO_MODE_OUTPUT_50_MHZ,
|
SWDIO_MODE_DRIVE();
|
||||||
GPIO_CNF_OUTPUT_PUSHPULL, SWDIO_PIN);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint8_t swdptap_bit_in(void)
|
static uint8_t swdptap_bit_in(void)
|
||||||
|
@ -39,9 +39,7 @@ void usbuart_init(void)
|
|||||||
|
|
||||||
rcc_peripheral_enable_clock(&USBUSART_APB_ENR, USBUSART_CLK_ENABLE);
|
rcc_peripheral_enable_clock(&USBUSART_APB_ENR, USBUSART_CLK_ENABLE);
|
||||||
|
|
||||||
/* UART TX to 'alternate function output push-pull' */
|
UART_PIN_SETUP();
|
||||||
gpio_set_mode(USBUSART_PORT, GPIO_MODE_OUTPUT_2_MHZ,
|
|
||||||
GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, USBUSART_TX_PIN);
|
|
||||||
|
|
||||||
/* Setup UART parameters. */
|
/* Setup UART parameters. */
|
||||||
usart_set_baudrate(USBUSART, 38400);
|
usart_set_baudrate(USBUSART, 38400);
|
||||||
|
@ -83,6 +83,20 @@ extern usbd_device *usbdev;
|
|||||||
#define LED_IDLE_RUN GPIO1
|
#define LED_IDLE_RUN GPIO1
|
||||||
#define LED_ERROR GPIO12
|
#define LED_ERROR GPIO12
|
||||||
|
|
||||||
|
#define TMS_SET_MODE() \
|
||||||
|
gpio_set_mode(TMS_PORT, GPIO_MODE_OUTPUT_50_MHZ, \
|
||||||
|
GPIO_CNF_OUTPUT_PUSHPULL, TMS_PIN);
|
||||||
|
#define SWDIO_MODE_FLOAT() \
|
||||||
|
gpio_set_mode(SWDIO_PORT, GPIO_MODE_INPUT, \
|
||||||
|
GPIO_CNF_INPUT_FLOAT, SWDIO_PIN);
|
||||||
|
#define SWDIO_MODE_DRIVE() \
|
||||||
|
gpio_set_mode(SWDIO_PORT, GPIO_MODE_OUTPUT_50_MHZ, \
|
||||||
|
GPIO_CNF_OUTPUT_PUSHPULL, SWDIO_PIN);
|
||||||
|
|
||||||
|
#define UART_PIN_SETUP() \
|
||||||
|
gpio_set_mode(USBUSART_PORT, GPIO_MODE_OUTPUT_2_MHZ, \
|
||||||
|
GPIO_CNF_OUTPUT_ALTFN_PUSHPULL, USBUSART_TX_PIN);
|
||||||
|
|
||||||
#define USB_DRIVER stm32f107_usb_driver
|
#define USB_DRIVER stm32f107_usb_driver
|
||||||
#define USB_IRQ NVIC_OTG_FS_IRQ
|
#define USB_IRQ NVIC_OTG_FS_IRQ
|
||||||
#define USB_ISR otg_fs_isr
|
#define USB_ISR otg_fs_isr
|
||||||
|
Loading…
x
Reference in New Issue
Block a user