mirror of
https://gitea.osmocom.org/sim-card/simtrace2.git
synced 2026-03-16 21:28:33 +03:00
cardem: set more reasonable interrupt priorities
the ISO7816 UARTs have highest priority, while console has lowest. remaining sources (USB, ADC, GPIO) are in between. Change-Id: Ie6c97d61d8da3990b6e44144f36cb6d37d194307
This commit is contained in:
@@ -155,7 +155,7 @@ extern int main(void)
|
|||||||
WDT_Enable(WDT, WDT_MR_WDRSTEN | WDT_MR_WDDBGHLT | WDT_MR_WDIDLEHLT |
|
WDT_Enable(WDT, WDT_MR_WDRSTEN | WDT_MR_WDDBGHLT | WDT_MR_WDIDLEHLT |
|
||||||
(WDT_GetPeriod(2000) << 16) | WDT_GetPeriod(2000));
|
(WDT_GetPeriod(2000) << 16) | WDT_GetPeriod(2000));
|
||||||
|
|
||||||
PIO_InitializeInterrupts(0);
|
PIO_InitializeInterrupts(10);
|
||||||
|
|
||||||
print_banner();
|
print_banner();
|
||||||
board_main_top();
|
board_main_top();
|
||||||
|
|||||||
@@ -100,6 +100,7 @@ extern void UART_Configure( uint32_t baudrate, uint32_t masterClock)
|
|||||||
|
|
||||||
/* Enable TX interrupts */
|
/* Enable TX interrupts */
|
||||||
pUart->UART_IER = UART_IER_TXRDY;
|
pUart->UART_IER = UART_IER_TXRDY;
|
||||||
|
NVIC_SetPriority(CONSOLE_IRQ, 15); /* lowest priority */
|
||||||
NVIC_EnableIRQ(CONSOLE_IRQ);
|
NVIC_EnableIRQ(CONSOLE_IRQ);
|
||||||
|
|
||||||
/* Enable receiver and transmitter */
|
/* Enable receiver and transmitter */
|
||||||
|
|||||||
@@ -470,6 +470,7 @@ static int card_vcc_adc_init(void)
|
|||||||
ADC->ADC_CHER |= ADC_CHER_CH6;
|
ADC->ADC_CHER |= ADC_CHER_CH6;
|
||||||
ADC->ADC_IER |= ADC_IER_EOC6;
|
ADC->ADC_IER |= ADC_IER_EOC6;
|
||||||
#endif
|
#endif
|
||||||
|
NVIC_SetPriority(ADC_IRQn, 13);
|
||||||
NVIC_EnableIRQ(ADC_IRQn);
|
NVIC_EnableIRQ(ADC_IRQn);
|
||||||
ADC->ADC_CR |= ADC_CR_START;
|
ADC->ADC_CR |= ADC_CR_START;
|
||||||
|
|
||||||
@@ -573,6 +574,8 @@ void mode_cardemu_init(void)
|
|||||||
|
|
||||||
TRACE_ENTRY();
|
TRACE_ENTRY();
|
||||||
|
|
||||||
|
NVIC_SetPriority(UDP_IRQn, 14);
|
||||||
|
|
||||||
#ifdef PINS_CARDSIM
|
#ifdef PINS_CARDSIM
|
||||||
PIO_Configure(pins_cardsim, PIO_LISTSIZE(pins_cardsim));
|
PIO_Configure(pins_cardsim, PIO_LISTSIZE(pins_cardsim));
|
||||||
#endif
|
#endif
|
||||||
@@ -586,6 +589,7 @@ void mode_cardemu_init(void)
|
|||||||
|
|
||||||
/* configure USART as ISO-7816 slave (e.g. card) */
|
/* configure USART as ISO-7816 slave (e.g. card) */
|
||||||
ISO7816_Init(&cardem_inst[0].usart_info, CLK_SLAVE);
|
ISO7816_Init(&cardem_inst[0].usart_info, CLK_SLAVE);
|
||||||
|
NVIC_SetPriority(FIRST_USART_IRQ, 0);
|
||||||
NVIC_EnableIRQ(FIRST_USART_IRQ);
|
NVIC_EnableIRQ(FIRST_USART_IRQ);
|
||||||
PIO_ConfigureIt(&pin_usim1_rst, usim1_rst_irqhandler);
|
PIO_ConfigureIt(&pin_usim1_rst, usim1_rst_irqhandler);
|
||||||
PIO_EnableIt(&pin_usim1_rst);
|
PIO_EnableIt(&pin_usim1_rst);
|
||||||
@@ -613,6 +617,7 @@ void mode_cardemu_init(void)
|
|||||||
PIO_Configure(pins_usim2, PIO_LISTSIZE(pins_usim2));
|
PIO_Configure(pins_usim2, PIO_LISTSIZE(pins_usim2));
|
||||||
ISO7816_Init(&cardem_inst[1].usart_info, CLK_SLAVE);
|
ISO7816_Init(&cardem_inst[1].usart_info, CLK_SLAVE);
|
||||||
/* TODO enable timeout */
|
/* TODO enable timeout */
|
||||||
|
NVIC_SetPriority(USART0_IRQn, 0);
|
||||||
NVIC_EnableIRQ(USART0_IRQn);
|
NVIC_EnableIRQ(USART0_IRQn);
|
||||||
PIO_ConfigureIt(&pin_usim2_rst, usim2_rst_irqhandler);
|
PIO_ConfigureIt(&pin_usim2_rst, usim2_rst_irqhandler);
|
||||||
PIO_EnableIt(&pin_usim2_rst);
|
PIO_EnableIt(&pin_usim2_rst);
|
||||||
|
|||||||
Reference in New Issue
Block a user