stm32: Portability changes
Allow to compile on STM32F0 platform too.
This commit is contained in:
parent
41719c5559
commit
b887a8d355
|
@ -418,7 +418,9 @@ static void dfu_detach_complete(usbd_device *dev, struct usb_setup_data *req)
|
|||
platform_request_boot();
|
||||
|
||||
/* Reset core to enter bootloader */
|
||||
#if defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7EM__)
|
||||
scb_reset_core();
|
||||
#endif
|
||||
}
|
||||
|
||||
static enum usbd_request_return_codes cdcacm_control_request(usbd_device *dev,
|
||||
|
|
|
@ -40,7 +40,7 @@ char *serial_no_read(char *s)
|
|||
uint16_t *uid = (uint16_t *)DESIG_UNIQUE_ID_BASE;
|
||||
# if defined(STM32F4) || defined(STM32F7)
|
||||
int offset = 3;
|
||||
# elif defined(STM32L0) || defined(STM32F3)
|
||||
# elif defined(STM32L0) || defined(STM32F0) || defined(STM32F3)
|
||||
int offset = 5;
|
||||
# endif
|
||||
sprintf(s, "%04X%04X%04X",
|
||||
|
|
|
@ -50,8 +50,12 @@
|
|||
#define TX_LED_ACT (1 << 0)
|
||||
#define RX_LED_ACT (1 << 1)
|
||||
|
||||
#define RX_FIFO_SIZE (128)
|
||||
#define TX_BUF_SIZE (128)
|
||||
/* F072 with st_usbfs_v2_usb_drive drops characters at the 64 byte boundary!*/
|
||||
#if !defined(USART_DMA_BUF_SIZE)
|
||||
# define USART_DMA_BUF_SIZE 128
|
||||
#endif
|
||||
#define RX_FIFO_SIZE (USART_DMA_BUF_SIZE)
|
||||
#define TX_BUF_SIZE (USART_DMA_BUF_SIZE)
|
||||
|
||||
/* TX double buffer */
|
||||
static uint8_t buf_tx[TX_BUF_SIZE * 2];
|
||||
|
@ -164,11 +168,19 @@ void usbuart_init(void)
|
|||
|
||||
/* Enable interrupts */
|
||||
nvic_set_priority(USBUSART_IRQ, IRQ_PRI_USBUSART);
|
||||
#if defined(USBUSART_DMA_RXTX_IRQ)
|
||||
nvic_set_priority(USBUSART_DMA_RXTX_IRQ, IRQ_PRI_USBUSART_DMA);
|
||||
#else
|
||||
nvic_set_priority(USBUSART_DMA_TX_IRQ, IRQ_PRI_USBUSART_DMA);
|
||||
nvic_set_priority(USBUSART_DMA_RX_IRQ, IRQ_PRI_USBUSART_DMA);
|
||||
#endif
|
||||
nvic_enable_irq(USBUSART_IRQ);
|
||||
#if defined(USBUSART_DMA_RXTX_IRQ)
|
||||
nvic_enable_irq(USBUSART_DMA_RXTX_IRQ);
|
||||
#else
|
||||
nvic_enable_irq(USBUSART_DMA_TX_IRQ);
|
||||
nvic_enable_irq(USBUSART_DMA_RX_IRQ);
|
||||
#endif
|
||||
|
||||
/* Finally enable the USART */
|
||||
usart_enable(USBUSART);
|
||||
|
@ -392,7 +404,11 @@ static void usbuart_run(void)
|
|||
|
||||
void USBUSART_ISR(void)
|
||||
{
|
||||
#if defined(USBUSART_DMA_RXTX_IRQ)
|
||||
nvic_disable_irq(USBUSART_DMA_RXTX_IRQ);
|
||||
#else
|
||||
nvic_disable_irq(USBUSART_DMA_RX_IRQ);
|
||||
#endif
|
||||
|
||||
/* Get IDLE flag and reset interrupt flags */
|
||||
const bool isIdle = usart_get_flag(USBUSART, USART_FLAG_IDLE);
|
||||
|
@ -409,7 +425,11 @@ void USBUSART_ISR(void)
|
|||
usbuart_run();
|
||||
}
|
||||
|
||||
#if defined(USBUSART_DMA_RXTX_IRQ)
|
||||
nvic_enable_irq(USBUSART_DMA_RXTX_IRQ);
|
||||
#else
|
||||
nvic_enable_irq(USBUSART_DMA_RX_IRQ);
|
||||
#endif
|
||||
}
|
||||
|
||||
void USBUSART_DMA_TX_ISR(void)
|
||||
|
@ -449,6 +469,16 @@ void USBUSART_DMA_RX_ISR(void)
|
|||
nvic_enable_irq(USBUSART_IRQ);
|
||||
}
|
||||
|
||||
#if defined(USBUSART_DMA_RXTX_ISR)
|
||||
void USBUSART_DMA_RXTX_ISR(void)
|
||||
{
|
||||
if (dma_get_interrupt_flag(USBUSART_DMA_BUS, USBUSART_DMA_RX_CHAN, DMA_CGIF))
|
||||
USBUSART_DMA_RX_ISR();
|
||||
if (dma_get_interrupt_flag(USBUSART_DMA_BUS, USBUSART_DMA_TX_CHAN, DMA_CGIF))
|
||||
USBUSART_DMA_TX_ISR();
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_DEBUG
|
||||
enum {
|
||||
RDI_SYS_OPEN = 0x01,
|
||||
|
|
Loading…
Reference in New Issue