mirror of
https://gitea.osmocom.org/sim-card/simtrace2.git
synced 2026-03-23 16:58:33 +03:00
mode_cardemu: Proper enabling/disabling of USART IRQ sources
we always have to disable all intrerrupts that we don't want to be enabled
This commit is contained in:
@@ -57,17 +57,22 @@ void card_emu_uart_enable(uint8_t uart_chan, uint8_t rxtx)
|
|||||||
Usart *usart = get_usart_by_chan(uart_chan);
|
Usart *usart = get_usart_by_chan(uart_chan);
|
||||||
switch (rxtx) {
|
switch (rxtx) {
|
||||||
case ENABLE_TX:
|
case ENABLE_TX:
|
||||||
|
USART_EnableIt(usart, US_IER_TXRDY);
|
||||||
|
USART_DisableIt(usart, ~US_IER_TXRDY);
|
||||||
USART_SetReceiverEnabled(usart, 0);
|
USART_SetReceiverEnabled(usart, 0);
|
||||||
USART_SetTransmitterEnabled(usart, 1);
|
USART_SetTransmitterEnabled(usart, 1);
|
||||||
break;
|
break;
|
||||||
case ENABLE_RX:
|
case ENABLE_RX:
|
||||||
USART_SetTransmitterEnabled(usart, 0);
|
USART_SetTransmitterEnabled(usart, 0);
|
||||||
USART_SetReceiverEnabled(usart, 1);
|
USART_SetReceiverEnabled(usart, 1);
|
||||||
|
USART_EnableIt(usart, US_IER_RXRDY);
|
||||||
|
USART_DisableIt(usart, ~US_IER_RXRDY);
|
||||||
break;
|
break;
|
||||||
case 0:
|
case 0:
|
||||||
default:
|
default:
|
||||||
USART_SetTransmitterEnabled(usart, 0);
|
USART_SetTransmitterEnabled(usart, 0);
|
||||||
USART_SetReceiverEnabled(usart, 0);
|
USART_SetReceiverEnabled(usart, 0);
|
||||||
|
USART_DisableIt(usart, 0xFFFFFFFF);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -142,14 +147,14 @@ void mode_cardemu_init(void)
|
|||||||
|
|
||||||
PIO_Configure(pins_usim1, PIO_LISTSIZE(pins_usim1));
|
PIO_Configure(pins_usim1, PIO_LISTSIZE(pins_usim1));
|
||||||
ISO7816_Init(&usart_info[0], CLK_SLAVE);
|
ISO7816_Init(&usart_info[0], CLK_SLAVE);
|
||||||
USART_EnableIt(USART1, US_IER_RXRDY);
|
//USART_EnableIt(USART1, US_IER_RXRDY);
|
||||||
NVIC_EnableIRQ(USART1_IRQn);
|
NVIC_EnableIRQ(USART1_IRQn);
|
||||||
ch1 = card_emu_init(0, 2, 0);
|
ch1 = card_emu_init(0, 2, 0);
|
||||||
|
|
||||||
#ifdef CARDEMU_SECOND_UART
|
#ifdef CARDEMU_SECOND_UART
|
||||||
PIO_Configure(pins_usim2, PIO_LISTSIZE(pins_usim2));
|
PIO_Configure(pins_usim2, PIO_LISTSIZE(pins_usim2));
|
||||||
ISO7816_Init(&usart_info[1], CLK_SLAVE);
|
ISO7816_Init(&usart_info[1], CLK_SLAVE);
|
||||||
USART_EnableIt(USART0, US_IER_RXRDY);
|
//USART_EnableIt(USART0, US_IER_RXRDY);
|
||||||
NVIC_EnableIRQ(USART0_IRQn);
|
NVIC_EnableIRQ(USART0_IRQn);
|
||||||
ch2 = card_emu_init(1, 0, 1);
|
ch2 = card_emu_init(1, 0, 1);
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user