diff options
author | Christina Quast <chrysh.ng+git@gmail.com> | 2015-04-13 22:38:05 +0200 |
---|---|---|
committer | Christina Quast <chrysh.ng+git@gmail.com> | 2015-04-13 22:38:05 +0200 |
commit | d52201f6dbb6b795a77f945446c291201f088165 (patch) | |
tree | 934faa877a81d417862e37cede1321398e9d0774 /firmware | |
parent | dcce4c32441753827186a1f8e815ef0fd7f4ccb7 (diff) |
phone.c: Enable/disable interrupts on init/exit
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/src_simtrace/phone.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/firmware/src_simtrace/phone.c b/firmware/src_simtrace/phone.c index 092c8af..f4f7660 100644 --- a/firmware/src_simtrace/phone.c +++ b/firmware/src_simtrace/phone.c @@ -169,9 +169,13 @@ void sendResponse_to_phone( uint8_t *pArg, uint8_t status, uint32_t transferred, PR("sendResp, stat: %X, trnsf: %x, rem: %x\n\r", status, transferred, remaining); PR("Resp: %x %x %x .. %x\n", host_to_sim_buf[0], host_to_sim_buf[1], host_to_sim_buf[2], host_to_sim_buf[transferred-1]); + USART_SetReceiverEnabled(USART_PHONE, 0); + USART_SetTransmitterEnabled(USART_PHONE, 1); for (uint32_t i = 0; i < transferred; i++ ) { ISO7816_SendChar(host_to_sim_buf[i], &usart_info); } + USART_SetTransmitterEnabled(USART_PHONE, 0); + USART_SetReceiverEnabled(USART_PHONE, 1); receive_from_host(); } @@ -193,6 +197,7 @@ void Phone_configure( void ) { void Phone_exit( void ) { PIO_DisableIt( &pinPhoneRST ) ; + NVIC_DisableIRQ(USART1_IRQn); USART_DisableIt( USART_PHONE, US_IER_RXRDY) ; USART_SetTransmitterEnabled(USART_PHONE, 0); USART_SetReceiverEnabled(USART_PHONE, 0); @@ -207,17 +212,18 @@ void Phone_init( void ) { PIO_EnableIt( &pinPhoneRST ) ; ISO7816_Init(&usart_info, CLK_SLAVE); - USART_SetTransmitterEnabled(USART_PHONE, 1); + USART_SetTransmitterEnabled(USART_PHONE, 0); USART_SetReceiverEnabled(USART_PHONE, 1); + USART_EnableIt(USART_PHONE, US_IER_RXRDY); // TODO: interrupt enable/disable is shared with sniffer + NVIC_EnableIRQ(USART1_IRQn); + /* Configure ISO7816 driver */ // FIXME: PIO_Configure(pPwr, PIO_LISTSIZE( pPwr )); // FIXME: Or do I need to call VBUS_CONFIGURE() here instead, which will call USBD_Connect() later? // USBD_Connect(); - USART_EnableIt( USART_PHONE, US_IER_RXRDY) ; - //Timer_Init(); receive_from_host(); |