mirror of https://github.com/ARMmbed/mbed-os.git
STM32 serial: use get_uart_index function for F4 devices
parent
066da18e0d
commit
172c02a856
|
@ -49,14 +49,18 @@ UART_HandleTypeDef uart_handlers[UART_NUM];
|
||||||
|
|
||||||
static uart_irq_handler irq_handler;
|
static uart_irq_handler irq_handler;
|
||||||
|
|
||||||
|
// Defined in serial_api.c
|
||||||
|
inline int8_t get_uart_index(int uart_base);
|
||||||
|
|
||||||
/******************************************************************************
|
/******************************************************************************
|
||||||
* INTERRUPTS HANDLING
|
* INTERRUPTS HANDLING
|
||||||
******************************************************************************/
|
******************************************************************************/
|
||||||
|
|
||||||
static void uart_irq(int id)
|
static void uart_irq(int uart_base)
|
||||||
{
|
{
|
||||||
|
int8_t id = get_uart_index(uart_base);
|
||||||
|
if (id >= 0) {
|
||||||
UART_HandleTypeDef * huart = &uart_handlers[id];
|
UART_HandleTypeDef * huart = &uart_handlers[id];
|
||||||
|
|
||||||
if (serial_irq_ids[id] != 0) {
|
if (serial_irq_ids[id] != 0) {
|
||||||
if (__HAL_UART_GET_FLAG(huart, UART_FLAG_TXE) != RESET) {
|
if (__HAL_UART_GET_FLAG(huart, UART_FLAG_TXE) != RESET) {
|
||||||
if (__HAL_UART_GET_IT_SOURCE(huart, UART_IT_TXE) != RESET) {
|
if (__HAL_UART_GET_IT_SOURCE(huart, UART_IT_TXE) != RESET) {
|
||||||
|
@ -76,70 +80,75 @@ static void uart_irq(int id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(USART1_BASE)
|
||||||
static void uart1_irq(void)
|
static void uart1_irq(void)
|
||||||
{
|
{
|
||||||
uart_irq(0);
|
uart_irq(USART1_BASE);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(USART2_BASE)
|
||||||
static void uart2_irq(void)
|
static void uart2_irq(void)
|
||||||
{
|
{
|
||||||
uart_irq(1);
|
uart_irq(USART2_BASE);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(USART3_BASE)
|
#if defined(USART3_BASE)
|
||||||
static void uart3_irq(void)
|
static void uart3_irq(void)
|
||||||
{
|
{
|
||||||
uart_irq(2);
|
uart_irq(USART3_BASE);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(UART4_BASE)
|
#if defined(UART4_BASE)
|
||||||
static void uart4_irq(void)
|
static void uart4_irq(void)
|
||||||
{
|
{
|
||||||
uart_irq(3);
|
uart_irq(UART4_BASE);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(UART5_BASE)
|
#if defined(UART5_BASE)
|
||||||
static void uart5_irq(void)
|
static void uart5_irq(void)
|
||||||
{
|
{
|
||||||
uart_irq(4);
|
uart_irq(UART5_BASE);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(USART6_BASE)
|
#if defined(USART6_BASE)
|
||||||
static void uart6_irq(void)
|
static void uart6_irq(void)
|
||||||
{
|
{
|
||||||
uart_irq(5);
|
uart_irq(USART6_BASE);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(UART7_BASE)
|
#if defined(UART7_BASE)
|
||||||
static void uart7_irq(void)
|
static void uart7_irq(void)
|
||||||
{
|
{
|
||||||
uart_irq(6);
|
uart_irq(UART7_BASE);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(UART8_BASE)
|
#if defined(UART8_BASE)
|
||||||
static void uart8_irq(void)
|
static void uart8_irq(void)
|
||||||
{
|
{
|
||||||
uart_irq(7);
|
uart_irq(UART8_BASE);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(UART9_BASE)
|
#if defined(UART9_BASE)
|
||||||
static void uart9_irq(void)
|
static void uart9_irq(void)
|
||||||
{
|
{
|
||||||
uart_irq(8);
|
uart_irq(UART9_BASE);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(UART10_BASE)
|
#if defined(UART10_BASE)
|
||||||
static void uart10_irq(void)
|
static void uart10_irq(void)
|
||||||
{
|
{
|
||||||
uart_irq(9);
|
uart_irq(UART10_BASE);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -163,7 +172,6 @@ void serial_irq_set(serial_t *obj, SerialIrq irq, uint32_t enable)
|
||||||
irq_n = USART1_IRQn;
|
irq_n = USART1_IRQn;
|
||||||
vector = (uint32_t)&uart1_irq;
|
vector = (uint32_t)&uart1_irq;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 1:
|
case 1:
|
||||||
irq_n = USART2_IRQn;
|
irq_n = USART2_IRQn;
|
||||||
vector = (uint32_t)&uart2_irq;
|
vector = (uint32_t)&uart2_irq;
|
||||||
|
|
Loading…
Reference in New Issue