mirror of
https://gitea.osmocom.org/sim-card/simtrace2.git
synced 2026-03-17 05:38:33 +03:00
fix newline \n\r with \r\n
This commit is contained in:
@@ -264,24 +264,24 @@ struct msgb *usb_buf_alloc_st(uint8_t ep, uint8_t msg_class, uint8_t msg_type)
|
||||
if (!msg) { // allocation failed, we might be out of memory
|
||||
struct usb_buffered_ep *bep = usb_get_buf_ep(ep);
|
||||
if (!bep) {
|
||||
TRACE_ERROR("ep %u: %s queue does not exist\n\r",
|
||||
TRACE_ERROR("ep %u: %s queue does not exist\r\n",
|
||||
ep, __func__);
|
||||
return NULL;
|
||||
}
|
||||
if (llist_empty(&bep->queue)) {
|
||||
TRACE_ERROR("ep %u: %s EOMEM (queue already empty)\n\r",
|
||||
TRACE_ERROR("ep %u: %s EOMEM (queue already empty)\r\n",
|
||||
ep, __func__);
|
||||
return NULL;
|
||||
}
|
||||
msg = msgb_dequeue_count(&bep->queue, &bep->queue_len);
|
||||
if (!msg) {
|
||||
TRACE_ERROR("ep %u: %s no msg in non-empty queue\n\r",
|
||||
TRACE_ERROR("ep %u: %s no msg in non-empty queue\r\n",
|
||||
ep, __func__);
|
||||
return NULL;
|
||||
}
|
||||
usb_buf_free(msg);
|
||||
msg = NULL;
|
||||
TRACE_DEBUG("ep %u: %s queue msg dropped\n\r",
|
||||
TRACE_DEBUG("ep %u: %s queue msg dropped\r\n",
|
||||
ep, __func__);
|
||||
}
|
||||
}
|
||||
@@ -313,7 +313,7 @@ static void flush_rx_buffer(struct card_handle *ch)
|
||||
rd = (struct cardemu_usb_msg_rx_data *) msg->l2h;
|
||||
rd->data_len = msgb_l2len(msg) - sizeof(*rd);
|
||||
|
||||
TRACE_DEBUG("%u: %s (%u)\n\r",
|
||||
TRACE_DEBUG("%u: %s (%u)\r\n",
|
||||
ch->num, __func__, rd->data_len);
|
||||
|
||||
usb_buf_upd_len_and_submit(msg);
|
||||
@@ -460,11 +460,11 @@ static void card_set_state(struct card_handle *ch,
|
||||
static int tx_byte_atr(struct card_handle *ch)
|
||||
{
|
||||
if (NULL == ch) {
|
||||
TRACE_ERROR("ATR TX: no card handle provided\n\r");
|
||||
TRACE_ERROR("ATR TX: no card handle provided\r\n");
|
||||
return 0;
|
||||
}
|
||||
if (ISO_S_IN_ATR != ch->state) {
|
||||
TRACE_ERROR("%u: ATR TX: no in ATR state\n\r", ch->num);
|
||||
TRACE_ERROR("%u: ATR TX: no in ATR state\r\n", ch->num);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1174,7 +1174,7 @@ int card_emu_set_atr(struct card_handle *ch, const uint8_t *atr, uint8_t len)
|
||||
for (i = 0; i < ch->atr.len; i++) {
|
||||
TRACE_INFO_WP("%02x ", atr[i]);
|
||||
}
|
||||
TRACE_INFO_WP("\n\r");
|
||||
TRACE_INFO_WP("\r\n");
|
||||
#endif
|
||||
/* FIXME: race condition with transmitting ATR to reader? */
|
||||
|
||||
|
||||
@@ -184,7 +184,7 @@ static void RDRtoPCDatablock_ATR( void )
|
||||
if( length > 5 ) {
|
||||
ccidDriver.ProtocolDataStructure[1] = Atr[3]&0x0F; // TD(1)
|
||||
ccidDriver.bProtocol = Atr[3]&0x0F; // TD(1)
|
||||
TRACE_INFO("Protocol data structure: 0x%x\n\r",
|
||||
TRACE_INFO("Protocol data structure: 0x%x\r\n",
|
||||
ccidDriver.ProtocolDataStructure[1]);
|
||||
}
|
||||
|
||||
@@ -367,7 +367,7 @@ static void PCtoRDRIccPowerOn( void )
|
||||
// for emulation only //JCB
|
||||
if ( ccidDriver.sCcidCommand.bSpecific_0 != VOLTS_5_0 ) {
|
||||
|
||||
TRACE_ERROR("POWER_NOT_SUPPORTED\n\r");
|
||||
TRACE_ERROR("POWER_NOT_SUPPORTED\r\n");
|
||||
}
|
||||
|
||||
else {
|
||||
@@ -428,7 +428,7 @@ static void PCtoRDRXfrBlock( void )
|
||||
uint16_t msglen = 0;
|
||||
uint32_t ret;
|
||||
|
||||
TRACE_DEBUG("PCtoRDRXfrBlock\n\r");
|
||||
TRACE_DEBUG("PCtoRDRXfrBlock\r\n");
|
||||
|
||||
// Check the block length
|
||||
if ( ccidDriver.sCcidCommand.wLength > (configurationDescriptorsFS->ccid.dwMaxCCIDMessageLength-10) ) {
|
||||
@@ -439,7 +439,7 @@ static void PCtoRDRXfrBlock( void )
|
||||
// check bBWI
|
||||
else if ( 0 != ccidDriver.sCcidCommand.bSpecific_0 ) {
|
||||
|
||||
TRACE_ERROR("Bad bBWI\n\r");
|
||||
TRACE_ERROR("Bad bBWI\r\n");
|
||||
}
|
||||
else {
|
||||
|
||||
@@ -463,16 +463,16 @@ static void PCtoRDRXfrBlock( void )
|
||||
}
|
||||
else {
|
||||
if (ccidDriver.ProtocolDataStructure[1] == PROTOCOL_T1) {
|
||||
TRACE_DEBUG("Not supported T=1\n\r");
|
||||
TRACE_DEBUG("Not supported T=1\r\n");
|
||||
}
|
||||
else {
|
||||
TRACE_DEBUG("Not supported 0x%x\n\r", ccidDriver.ProtocolDataStructure[1]);
|
||||
TRACE_DEBUG("Not supported 0x%x\r\n", ccidDriver.ProtocolDataStructure[1]);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case CCID_FEATURES_EXC_APDU:
|
||||
TRACE_DEBUG("Not supported CCID_FEATURES_EXC_APDU\n\r");
|
||||
TRACE_DEBUG("Not supported CCID_FEATURES_EXC_APDU\r\n");
|
||||
break;
|
||||
|
||||
default:
|
||||
@@ -482,7 +482,7 @@ static void PCtoRDRXfrBlock( void )
|
||||
}
|
||||
|
||||
ccidDriver.sCcidMessage.wLength = msglen;
|
||||
TRACE_DEBUG("USB: 0x%X, 0x%X, 0x%X, 0x%X, 0x%X\n\r", ccidDriver.sCcidMessage.abData[0],
|
||||
TRACE_DEBUG("USB: 0x%X, 0x%X, 0x%X, 0x%X, 0x%X\r\n", ccidDriver.sCcidMessage.abData[0],
|
||||
ccidDriver.sCcidMessage.abData[1],
|
||||
ccidDriver.sCcidMessage.abData[2],
|
||||
ccidDriver.sCcidMessage.abData[3],
|
||||
@@ -614,7 +614,7 @@ static void PCtoRDRSecure( void )
|
||||
{
|
||||
TRACE_DEBUG(".");
|
||||
|
||||
TRACE_DEBUG("For user\n\r");
|
||||
TRACE_DEBUG("For user\r\n");
|
||||
}
|
||||
|
||||
//------------------------------------------------------------------------------
|
||||
@@ -628,7 +628,7 @@ static void PCtoRDRSecure( void )
|
||||
static void PCtoRDRMechanical( void )
|
||||
{
|
||||
TRACE_DEBUG(".");
|
||||
TRACE_DEBUG("Not implemented\n\r");
|
||||
TRACE_DEBUG("Not implemented\r\n");
|
||||
|
||||
RDRtoPCSlotStatus();
|
||||
}
|
||||
@@ -682,7 +682,7 @@ static void vCCIDCommandNotSupported( void )
|
||||
// Command not supported
|
||||
// vCCIDReportError(CMD_NOT_SUPPORTED);
|
||||
|
||||
TRACE_DEBUG("CMD_NOT_SUPPORTED\n\r");
|
||||
TRACE_DEBUG("CMD_NOT_SUPPORTED\r\n");
|
||||
|
||||
// Header fields settings
|
||||
ccidDriver.sCcidMessage.bMessageType = RDR_TO_PC_SLOTSTATUS;
|
||||
@@ -708,7 +708,7 @@ static void vCCIDSendResponse( void )
|
||||
ccidDriver.sCcidMessage.bSizeToSend, 0, 0 );
|
||||
} while (bStatus != USBD_STATUS_SUCCESS);
|
||||
|
||||
TRACE_DEBUG("bStatus: 0x%x\n\r", bStatus);
|
||||
TRACE_DEBUG("bStatus: 0x%x\r\n", bStatus);
|
||||
}
|
||||
|
||||
|
||||
@@ -723,7 +723,7 @@ static void CCIDCommandDispatcher( void *pArg, uint8_t status, uint32_t transfer
|
||||
TRACE_ERROR("USB error: %d", status);
|
||||
return;
|
||||
}
|
||||
TRACE_DEBUG("Command: 0x%X 0x%x 0x%X 0x%X 0x%X 0x%X 0x%X\n\r\n\r",
|
||||
TRACE_DEBUG("Command: 0x%X 0x%x 0x%X 0x%X 0x%X 0x%X 0x%X\r\n\r\n",
|
||||
(unsigned int)ccidDriver.sCcidCommand.bMessageType,
|
||||
(unsigned int)ccidDriver.sCcidCommand.wLength,
|
||||
(unsigned int)ccidDriver.sCcidCommand.bSlot,
|
||||
@@ -735,10 +735,10 @@ static void CCIDCommandDispatcher( void *pArg, uint8_t status, uint32_t transfer
|
||||
// Check the slot number
|
||||
if ( ccidDriver.sCcidCommand.bSlot > 0 ) {
|
||||
|
||||
TRACE_ERROR("BAD_SLOT_NUMBER\n\r");
|
||||
TRACE_ERROR("BAD_SLOT_NUMBER\r\n");
|
||||
}
|
||||
|
||||
TRACE_INFO("typ=0x%X\n\r", ccidDriver.sCcidCommand.bMessageType);
|
||||
TRACE_INFO("typ=0x%X\r\n", ccidDriver.sCcidCommand.bMessageType);
|
||||
|
||||
ccidDriver.sCcidMessage.bStatus = 0;
|
||||
|
||||
@@ -807,7 +807,7 @@ static void CCIDCommandDispatcher( void *pArg, uint8_t status, uint32_t transfer
|
||||
}
|
||||
else {
|
||||
// command not supported
|
||||
TRACE_INFO("Not supported: PC_TO_RDR_T0APDU\n\r");
|
||||
TRACE_INFO("Not supported: PC_TO_RDR_T0APDU\r\n");
|
||||
vCCIDCommandNotSupported();
|
||||
}
|
||||
MessageToSend = 1;
|
||||
@@ -834,7 +834,7 @@ static void CCIDCommandDispatcher( void *pArg, uint8_t status, uint32_t transfer
|
||||
break;
|
||||
|
||||
default:
|
||||
TRACE_DEBUG("default: Not supported: 0x%X\n\r", ccidDriver.sCcidCommand.bMessageType);
|
||||
TRACE_DEBUG("default: Not supported: 0x%X\r\n", ccidDriver.sCcidCommand.bMessageType);
|
||||
vCCIDCommandNotSupported();
|
||||
MessageToSend = 1;
|
||||
break;
|
||||
@@ -853,7 +853,7 @@ static void CCIDCommandDispatcher( void *pArg, uint8_t status, uint32_t transfer
|
||||
//------------------------------------------------------------------------------
|
||||
static void CCID_RequestHandler(const USBGenericRequest *pRequest)
|
||||
{
|
||||
TRACE_DEBUG("CCID_RHl\n\r");
|
||||
TRACE_DEBUG("CCID_RHl\r\n");
|
||||
|
||||
// Check if this is a class request
|
||||
if (USBGenericRequest_GetType(pRequest) == USBGenericRequest_CLASS) {
|
||||
@@ -862,23 +862,23 @@ static void CCID_RequestHandler(const USBGenericRequest *pRequest)
|
||||
switch (USBGenericRequest_GetRequest(pRequest)) {
|
||||
|
||||
case CCIDGenericRequest_ABORT:
|
||||
TRACE_DEBUG("CCIDGenericRequest_ABORT\n\r");
|
||||
TRACE_DEBUG("CCIDGenericRequest_ABORT\r\n");
|
||||
break;
|
||||
|
||||
case CCIDGenericRequest_GET_CLOCK_FREQUENCIES:
|
||||
TRACE_DEBUG("Not supported: CCIDGenericRequest_GET_CLOCK_FREQUENCIES\n\r");
|
||||
TRACE_DEBUG("Not supported: CCIDGenericRequest_GET_CLOCK_FREQUENCIES\r\n");
|
||||
// A CCID with bNumClockSupported equal to 00h does not have
|
||||
// to support this request
|
||||
break;
|
||||
|
||||
case CCIDGenericRequest_GET_DATA_RATES:
|
||||
TRACE_DEBUG("Not supported: CCIDGenericRequest_GET_DATA_RATES\n\r");
|
||||
TRACE_DEBUG("Not supported: CCIDGenericRequest_GET_DATA_RATES\r\n");
|
||||
// A CCID with bNumDataRatesSupported equal to 00h does not have
|
||||
// to support this request.
|
||||
break;
|
||||
|
||||
default:
|
||||
TRACE_WARNING( "CCIDDriver_RequestHandler: Unsupported request (%d)\n\r",
|
||||
TRACE_WARNING( "CCIDDriver_RequestHandler: Unsupported request (%d)\r\n",
|
||||
USBGenericRequest_GetRequest(pRequest));
|
||||
USBD_Stall(0);
|
||||
}
|
||||
@@ -892,7 +892,7 @@ static void CCID_RequestHandler(const USBGenericRequest *pRequest)
|
||||
else {
|
||||
|
||||
// Unsupported request type
|
||||
TRACE_WARNING( "CCIDDriver_RequestHandler: Unsupported request type (%d)\n\r",
|
||||
TRACE_WARNING( "CCIDDriver_RequestHandler: Unsupported request type (%d)\r\n",
|
||||
USBGenericRequest_GetType(pRequest));
|
||||
USBD_Stall(0);
|
||||
}
|
||||
@@ -921,7 +921,7 @@ void USBDCallbacks_RequestReceived(const USBGenericRequest *request)
|
||||
void CCID_SmartCardRequest( void )
|
||||
{
|
||||
unsigned char bStatus;
|
||||
TRACE_DEBUG("CCID_req\n\r");
|
||||
TRACE_DEBUG("CCID_req\r\n");
|
||||
|
||||
do {
|
||||
|
||||
|
||||
@@ -92,7 +92,7 @@ uint32_t ISO7816_GetChar( uint8_t *pCharToReceive, Usart_info *usart)
|
||||
while( ((us_base->US_CSR & US_CSR_RXRDY) == 0) ) {
|
||||
WDT_Restart(WDT);
|
||||
if(timeout++ > 12000 * (BOARD_MCK/1000000)) {
|
||||
TRACE_WARNING("TimeOut\n\r");
|
||||
TRACE_WARNING("TimeOut\r\n");
|
||||
return( 0 );
|
||||
}
|
||||
}
|
||||
@@ -107,9 +107,9 @@ uint32_t ISO7816_GetChar( uint8_t *pCharToReceive, Usart_info *usart)
|
||||
(1<<10)));
|
||||
|
||||
if (status != 0 ) {
|
||||
TRACE_DEBUG("R:0x%" PRIX32 "\n\r", status);
|
||||
TRACE_DEBUG("R:0x%" PRIX32 "\n\r", us_base->US_CSR);
|
||||
TRACE_DEBUG("Nb:0x%" PRIX32 "\n\r", us_base->US_NER );
|
||||
TRACE_DEBUG("R:0x%" PRIX32 "\r\n", status);
|
||||
TRACE_DEBUG("R:0x%" PRIX32 "\r\n", us_base->US_CSR);
|
||||
TRACE_DEBUG("Nb:0x%" PRIX32 "\r\n", us_base->US_NER );
|
||||
us_base->US_CR = US_CR_RSTSTA;
|
||||
}
|
||||
|
||||
@@ -159,11 +159,11 @@ uint32_t ISO7816_SendChar( uint8_t CharToSend, Usart_info *usart )
|
||||
|
||||
if (status != 0 ) {
|
||||
TRACE_INFO("******* status: 0x%" PRIX32 " (Overrun: %" PRIX32
|
||||
", NACK: %" PRIX32 ", Timeout: %" PRIX32 ", underrun: %" PRIX32 ")\n\r",
|
||||
", NACK: %" PRIX32 ", Timeout: %" PRIX32 ", underrun: %" PRIX32 ")\r\n",
|
||||
status, ((status & US_CSR_OVRE)>> 5), ((status & US_CSR_NACK) >> 13),
|
||||
((status & US_CSR_TIMEOUT) >> 8), ((status & (1 << 10)) >> 10));
|
||||
TRACE_INFO("E (USART CSR reg):0x%" PRIX32 "\n\r", us_base->US_CSR);
|
||||
TRACE_INFO("Nb (Number of errors):0x%" PRIX32 "\n\r", us_base->US_NER );
|
||||
TRACE_INFO("E (USART CSR reg):0x%" PRIX32 "\r\n", us_base->US_CSR);
|
||||
TRACE_INFO("Nb (Number of errors):0x%" PRIX32 "\r\n", us_base->US_NER );
|
||||
us_base->US_CR = US_CR_RSTSTA;
|
||||
}
|
||||
|
||||
@@ -219,13 +219,13 @@ uint32_t ISO7816_XfrBlockTPDU_T0(const uint8_t *pAPDU,
|
||||
uint8_t cmdCase;
|
||||
uint32_t status = 0;
|
||||
|
||||
TRACE_INFO("pAPDU[0]=0x%X\n\r",pAPDU[0]);
|
||||
TRACE_INFO("pAPDU[1]=0x%X\n\r",pAPDU[1]);
|
||||
TRACE_INFO("pAPDU[2]=0x%X\n\r",pAPDU[2]);
|
||||
TRACE_INFO("pAPDU[3]=0x%X\n\r",pAPDU[3]);
|
||||
TRACE_INFO("pAPDU[4]=0x%X\n\r",pAPDU[4]);
|
||||
TRACE_INFO("pAPDU[5]=0x%X\n\r",pAPDU[5]);
|
||||
TRACE_INFO("wlength=%d\n\r",wLength);
|
||||
TRACE_INFO("pAPDU[0]=0x%X\r\n",pAPDU[0]);
|
||||
TRACE_INFO("pAPDU[1]=0x%X\r\n",pAPDU[1]);
|
||||
TRACE_INFO("pAPDU[2]=0x%X\r\n",pAPDU[2]);
|
||||
TRACE_INFO("pAPDU[3]=0x%X\r\n",pAPDU[3]);
|
||||
TRACE_INFO("pAPDU[4]=0x%X\r\n",pAPDU[4]);
|
||||
TRACE_INFO("pAPDU[5]=0x%X\r\n",pAPDU[5]);
|
||||
TRACE_INFO("wlength=%d\r\n",wLength);
|
||||
|
||||
ISO7816_SendChar( pAPDU[0], &usart_sim ); /* CLA */
|
||||
ISO7816_SendChar( pAPDU[1], &usart_sim ); /* INS */
|
||||
@@ -272,7 +272,7 @@ uint32_t ISO7816_XfrBlockTPDU_T0(const uint8_t *pAPDU,
|
||||
}
|
||||
}
|
||||
|
||||
TRACE_DEBUG("CASE=0x%X NeNc=0x%X\n\r", cmdCase, NeNc);
|
||||
TRACE_DEBUG("CASE=0x%X NeNc=0x%X\r\n", cmdCase, NeNc);
|
||||
|
||||
/* Handle Procedure Bytes */
|
||||
do {
|
||||
@@ -280,20 +280,20 @@ uint32_t ISO7816_XfrBlockTPDU_T0(const uint8_t *pAPDU,
|
||||
if (status != 0) {
|
||||
return status;
|
||||
}
|
||||
TRACE_INFO("procByte: 0x%X\n\r", procByte);
|
||||
TRACE_INFO("procByte: 0x%X\r\n", procByte);
|
||||
/* Handle NULL */
|
||||
if ( procByte == ISO_NULL_VAL ) {
|
||||
TRACE_INFO("INS\n\r");
|
||||
TRACE_INFO("INS\r\n");
|
||||
continue;
|
||||
}
|
||||
/* Handle SW1 */
|
||||
else if ( ((procByte & 0xF0) ==0x60) || ((procByte & 0xF0) ==0x90) ) {
|
||||
TRACE_INFO("SW1\n\r");
|
||||
TRACE_INFO("SW1\r\n");
|
||||
SW1 = 1;
|
||||
}
|
||||
/* Handle INS */
|
||||
else if ( pAPDU[1] == procByte) {
|
||||
TRACE_INFO("HdlINS\n\r");
|
||||
TRACE_INFO("HdlINS\r\n");
|
||||
if (cmdCase == CASE2) {
|
||||
/* receive data from card */
|
||||
do {
|
||||
@@ -317,14 +317,14 @@ uint32_t ISO7816_XfrBlockTPDU_T0(const uint8_t *pAPDU,
|
||||
#pragma GCC diagnostic ignored "-Wsign-compare"
|
||||
if ( pAPDU[1] == (procByte ^ 0xff)) {
|
||||
#pragma GCC diagnostic pop
|
||||
TRACE_INFO("HdlINS+\n\r");
|
||||
TRACE_INFO("HdlINS+\r\n");
|
||||
if (cmdCase == CASE2) {
|
||||
/* receive data from card */
|
||||
status = ISO7816_GetChar(&pMessage[indexMsg++], &usart_sim);
|
||||
if (status != 0) {
|
||||
return status;
|
||||
}
|
||||
TRACE_INFO("Rcv: 0x%X\n\r", pMessage[indexMsg-1]);
|
||||
TRACE_INFO("Rcv: 0x%X\r\n", pMessage[indexMsg-1]);
|
||||
}
|
||||
else {
|
||||
status = ISO7816_SendChar(pAPDU[indexApdu++], &usart_sim);
|
||||
@@ -336,7 +336,7 @@ uint32_t ISO7816_XfrBlockTPDU_T0(const uint8_t *pAPDU,
|
||||
}
|
||||
else {
|
||||
/* ?? */
|
||||
TRACE_INFO("procByte=0x%X\n\r", procByte);
|
||||
TRACE_INFO("procByte=0x%X\r\n", procByte);
|
||||
break;
|
||||
}
|
||||
} while (NeNc != 0);
|
||||
@@ -356,7 +356,7 @@ uint32_t ISO7816_XfrBlockTPDU_T0(const uint8_t *pAPDU,
|
||||
return status;
|
||||
}
|
||||
|
||||
TRACE_WARNING("SW1=0x%X, SW2=0x%X\n\r", pMessage[indexMsg-2], pMessage[indexMsg-1]);
|
||||
TRACE_WARNING("SW1=0x%X, SW2=0x%X\r\n", pMessage[indexMsg-2], pMessage[indexMsg-1]);
|
||||
|
||||
*retlen = indexMsg;
|
||||
return status;
|
||||
@@ -368,7 +368,7 @@ uint32_t ISO7816_XfrBlockTPDU_T0(const uint8_t *pAPDU,
|
||||
*/
|
||||
void ISO7816_Escape( void )
|
||||
{
|
||||
TRACE_DEBUG("For user, if needed\n\r");
|
||||
TRACE_DEBUG("For user, if needed\r\n");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -376,7 +376,7 @@ void ISO7816_Escape( void )
|
||||
*/
|
||||
void ISO7816_RestartClock( void )
|
||||
{
|
||||
TRACE_DEBUG("ISO7816_RestartClock\n\r");
|
||||
TRACE_DEBUG("ISO7816_RestartClock\r\n");
|
||||
USART_SIM->US_BRGR = 13;
|
||||
}
|
||||
|
||||
@@ -385,7 +385,7 @@ void ISO7816_RestartClock( void )
|
||||
*/
|
||||
void ISO7816_StopClock( void )
|
||||
{
|
||||
TRACE_DEBUG("ISO7816_StopClock\n\r");
|
||||
TRACE_DEBUG("ISO7816_StopClock\r\n");
|
||||
USART_SIM->US_BRGR = 0;
|
||||
}
|
||||
|
||||
@@ -394,8 +394,8 @@ void ISO7816_StopClock( void )
|
||||
*/
|
||||
void ISO7816_toAPDU( void )
|
||||
{
|
||||
TRACE_DEBUG("ISO7816_toAPDU\n\r");
|
||||
TRACE_DEBUG("Not supported at this time\n\r");
|
||||
TRACE_DEBUG("ISO7816_toAPDU\r\n");
|
||||
TRACE_DEBUG("Not supported at this time\r\n");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -549,26 +549,26 @@ void ISO7816_Decode_ATR( uint8_t* pAtr )
|
||||
uint32_t y;
|
||||
uint8_t offset;
|
||||
|
||||
printf("\n\r");
|
||||
printf("ATR: Answer To Reset:\n\r");
|
||||
printf("\r\n");
|
||||
printf("ATR: Answer To Reset:\r\n");
|
||||
printf("TS = 0x%X Initial character ",pAtr[0]);
|
||||
if( pAtr[0] == 0x3B ) {
|
||||
|
||||
printf("Direct Convention\n\r");
|
||||
printf("Direct Convention\r\n");
|
||||
}
|
||||
else {
|
||||
if( pAtr[0] == 0x3F ) {
|
||||
|
||||
printf("Inverse Convention\n\r");
|
||||
printf("Inverse Convention\r\n");
|
||||
}
|
||||
else {
|
||||
printf("BAD Convention\n\r");
|
||||
printf("BAD Convention\r\n");
|
||||
}
|
||||
}
|
||||
|
||||
printf("T0 = 0x%X Format caracter\n\r",pAtr[1]);
|
||||
printf(" Number of historical bytes: K = %d\n\r", pAtr[1]&0x0F);
|
||||
printf(" Presence further interface byte:\n\r");
|
||||
printf("T0 = 0x%X Format caracter\r\n",pAtr[1]);
|
||||
printf(" Number of historical bytes: K = %d\r\n", pAtr[1]&0x0F);
|
||||
printf(" Presence further interface byte:\r\n");
|
||||
if( pAtr[1]&0x80 ) {
|
||||
printf("TA ");
|
||||
}
|
||||
@@ -582,7 +582,7 @@ void ISO7816_Decode_ATR( uint8_t* pAtr )
|
||||
printf("TD ");
|
||||
}
|
||||
if( pAtr[1] != 0 ) {
|
||||
printf(" present\n\r");
|
||||
printf(" present\r\n");
|
||||
}
|
||||
|
||||
i = 2;
|
||||
@@ -598,11 +598,11 @@ void ISO7816_Decode_ATR( uint8_t* pAtr )
|
||||
printf("FI = %d ", (pAtr[i]>>8));
|
||||
printf("DI = %d", (pAtr[i]&0x0F));
|
||||
}
|
||||
printf("\n\r");
|
||||
printf("\r\n");
|
||||
i++;
|
||||
}
|
||||
if (y & 0x20) { /* TB[i] */
|
||||
printf("TB[%d] = 0x%X\n\r", offset, pAtr[i]);
|
||||
printf("TB[%d] = 0x%X\r\n", offset, pAtr[i]);
|
||||
i++;
|
||||
}
|
||||
if (y & 0x40) { /* TC[i] */
|
||||
@@ -610,11 +610,11 @@ void ISO7816_Decode_ATR( uint8_t* pAtr )
|
||||
if( offset == 1 ) {
|
||||
printf("Extra Guard Time: N = %d", pAtr[i]);
|
||||
}
|
||||
printf("\n\r");
|
||||
printf("\r\n");
|
||||
i++;
|
||||
}
|
||||
if (y & 0x80) { /* TD[i] */
|
||||
printf("TD[%d] = 0x%X\n\r", offset, pAtr[i]);
|
||||
printf("TD[%d] = 0x%X\r\n", offset, pAtr[i]);
|
||||
y = pAtr[i++] & 0xF0;
|
||||
}
|
||||
else {
|
||||
@@ -624,13 +624,13 @@ void ISO7816_Decode_ATR( uint8_t* pAtr )
|
||||
}
|
||||
|
||||
/* Historical Bytes */
|
||||
printf("Historical bytes:\n\r");
|
||||
printf("Historical bytes:\r\n");
|
||||
y = pAtr[1] & 0x0F;
|
||||
for( j=0; j < y; j++ ) {
|
||||
printf(" 0x%X", pAtr[i]);
|
||||
i++;
|
||||
}
|
||||
printf("\n\r\n\r");
|
||||
printf("\r\n\r\n");
|
||||
|
||||
}
|
||||
|
||||
@@ -645,7 +645,7 @@ void ISO7816_Set_Reset_Pin(const Pin *pPinIso7816RstMC) {
|
||||
void ISO7816_Init( Usart_info *usart, bool master_clock )
|
||||
{
|
||||
uint32_t clk;
|
||||
TRACE_DEBUG("ISO_Init\n\r");
|
||||
TRACE_DEBUG("ISO_Init\r\n");
|
||||
|
||||
Usart *us_base = usart->base;
|
||||
uint32_t us_id = usart->id;
|
||||
|
||||
@@ -18,18 +18,18 @@
|
||||
|
||||
void print_banner(void)
|
||||
{
|
||||
printf("\n\r\n\r"
|
||||
"=============================================================================\n\r"
|
||||
"SIMtrace2 firmware " GIT_VERSION ", BOARD=" BOARD ", APP=" APPLICATION "\n\r"
|
||||
"(C) 2010-2019 by Harald Welte, 2018-2019 by Kevin Redon\n\r"
|
||||
"=============================================================================\n\r");
|
||||
printf("\r\n\r\n"
|
||||
"=============================================================================\r\n"
|
||||
"SIMtrace2 firmware " GIT_VERSION ", BOARD=" BOARD ", APP=" APPLICATION "\r\n"
|
||||
"(C) 2010-2019 by Harald Welte, 2018-2019 by Kevin Redon\r\n"
|
||||
"=============================================================================\r\n");
|
||||
|
||||
#if (TRACE_LEVEL >= TRACE_LEVEL_INFO)
|
||||
/* print chip-unique ID */
|
||||
unsigned int unique_id[4];
|
||||
EEFC_ReadUniqueID(unique_id);
|
||||
TRACE_INFO("Chip ID: 0x%08lx (Ext 0x%08lx)\n\r", CHIPID->CHIPID_CIDR, CHIPID->CHIPID_EXID);
|
||||
TRACE_INFO("Serial Nr. %08x-%08x-%08x-%08x\n\r",
|
||||
TRACE_INFO("Chip ID: 0x%08lx (Ext 0x%08lx)\r\n", CHIPID->CHIPID_CIDR, CHIPID->CHIPID_EXID);
|
||||
TRACE_INFO("Serial Nr. %08x-%08x-%08x-%08x\r\n",
|
||||
unique_id[0], unique_id[1], unique_id[2], unique_id[3]);
|
||||
|
||||
/* print reset cause */
|
||||
@@ -42,9 +42,9 @@ void print_banner(void)
|
||||
"user reset (NRST pin detected low)",
|
||||
};
|
||||
if (reset_cause < ARRAY_SIZE(reset_causes)) {
|
||||
TRACE_INFO("Reset Cause: %s\n\r", reset_causes[reset_cause]);
|
||||
TRACE_INFO("Reset Cause: %s\r\n", reset_causes[reset_cause]);
|
||||
} else {
|
||||
TRACE_INFO("Reset Cause: 0x%lx\n\r", (RSTC->RSTC_SR & RSTC_SR_RSTTYP_Msk) >> RSTC_SR_RSTTYP_Pos);
|
||||
TRACE_INFO("Reset Cause: 0x%lx\r\n", (RSTC->RSTC_SR & RSTC_SR_RSTTYP_Msk) >> RSTC_SR_RSTTYP_Pos);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -84,15 +84,15 @@ static const Pin pinSmartCard = SMARTCARD_CONNECT_PIN;
|
||||
static void ISR_PioSmartCard(const Pin * pPin)
|
||||
{
|
||||
/* FIXME: why is pinSmartCard.pio->PIO_ISR the wrong number?
|
||||
printf("+++++ Trying to check for pending interrupts (PIO ISR: 0x%X)\n\r", pinSmartCard.pio->PIO_ISR);
|
||||
printf("+++++ Mask: 0x%X\n\r", pinSmartCard.mask);
|
||||
printf("+++++ Trying to check for pending interrupts (PIO ISR: 0x%X)\r\n", pinSmartCard.pio->PIO_ISR);
|
||||
printf("+++++ Mask: 0x%X\r\n", pinSmartCard.mask);
|
||||
Output:
|
||||
+++++ Trying to check for pending interrupts (PIO ISR: 0x400)) = 1<<10
|
||||
+++++ Mask: 0x100 = 1<<8
|
||||
*/
|
||||
// PA10 is DTXD, which is the debug uart transmit pin
|
||||
|
||||
printf("Interrupt!!\n\r");
|
||||
printf("Interrupt!!\r\n");
|
||||
/* Check all pending interrupts */
|
||||
// FIXME: this if condition is not always true...
|
||||
// if ( (pinSmartCard.pio->PIO_ISR & pinSmartCard.mask) != 0 )
|
||||
@@ -100,11 +100,11 @@ Output:
|
||||
/* Check current level on pin */
|
||||
if (PIO_Get(&pinSmartCard) == 0) {
|
||||
sim_inserted = 1;
|
||||
printf("-I- Smartcard inserted\n\r");
|
||||
printf("-I- Smartcard inserted\r\n");
|
||||
CCID_Insertion();
|
||||
} else {
|
||||
sim_inserted = 0;
|
||||
printf("-I- Smartcard removed\n\r");
|
||||
printf("-I- Smartcard removed\r\n");
|
||||
CCID_Removal();
|
||||
}
|
||||
}
|
||||
@@ -115,7 +115,7 @@ Output:
|
||||
*/
|
||||
static void ConfigureCardDetection(void)
|
||||
{
|
||||
printf("+++++ Configure PIOs\n\r");
|
||||
printf("+++++ Configure PIOs\r\n");
|
||||
PIO_Configure(&pinSmartCard, 1);
|
||||
NVIC_EnableIRQ(PIOA_IRQn);
|
||||
PIO_EnableIt(&pinSmartCard);
|
||||
@@ -177,7 +177,7 @@ void CCID_init(void)
|
||||
|
||||
// FIXME. what if smcard is not inserted?
|
||||
if (PIO_Get(&pinSmartCard) == 0) {
|
||||
printf("SIM card inserted\n\r");
|
||||
printf("SIM card inserted\r\n");
|
||||
CCID_Insertion();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ volatile ringbuf sim_rcv_buf = { {0}, 0, 0 };
|
||||
static void Callback_PhoneRST_ISR(uint8_t * pArg, uint8_t status,
|
||||
uint32_t transferred, uint32_t remaining)
|
||||
{
|
||||
printf("rstCB\n\r");
|
||||
printf("rstCB\r\n");
|
||||
PIO_EnableIt(&pinPhoneRST);
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ void ISR_PhoneRST(const Pin * pPin)
|
||||
{
|
||||
int ret;
|
||||
// FIXME: no printfs in ISRs?
|
||||
printf("+++ Int!! %lx\n\r", pinPhoneRST.pio->PIO_ISR);
|
||||
printf("+++ Int!! %lx\r\n", pinPhoneRST.pio->PIO_ISR);
|
||||
if (((pinPhoneRST.pio->PIO_ISR & pinPhoneRST.mask) != 0)) {
|
||||
if (PIO_Get(&pinPhoneRST) == 0) {
|
||||
printf(" 0 ");
|
||||
@@ -136,8 +136,8 @@ void update_fidi(Usart_info *usart, uint8_t fidi)
|
||||
}
|
||||
usart->base->US_FIDI = (ratio & 0x7ff);
|
||||
usart->base->US_CR |= US_CR_RXEN | US_CR_STTTO;
|
||||
//TRACE_INFO("updated USART(%u) Fi(%u)/Di(%u) ratio(%d): %u\n\r", usart->id, fi, di, ratio, usart->base->US_FIDI);
|
||||
//TRACE_INFO("updated USART(%u) Fi(%u)/Di(%u) ratio(%d): %u\r\n", usart->id, fi, di, ratio, usart->base->US_FIDI);
|
||||
} else {
|
||||
//TRACE_WARNING("computed Fi/Di ratio %d unsupported\n\r", ratio); /* don't print since this is function is also called by ISRs */
|
||||
//TRACE_WARNING("computed Fi/Di ratio %d unsupported\r\n", ratio); /* don't print since this is function is also called by ISRs */
|
||||
}
|
||||
}
|
||||
|
||||
@@ -211,7 +211,7 @@ static void update_wt(uint8_t wi, uint8_t d)
|
||||
wt_d = d;
|
||||
}
|
||||
wt = wt_wi * 960UL * wt_d;
|
||||
TRACE_INFO("WT updated to %lu ETU\n\r", wt);
|
||||
TRACE_INFO("WT updated to %lu ETU\r\n", wt);
|
||||
}
|
||||
|
||||
/*! Allocate USB buffer and push + initialize simtrace_msg_hdr
|
||||
@@ -262,7 +262,7 @@ static void change_state(enum iso7816_3_sniff_state iso_state_new)
|
||||
{
|
||||
/* sanity check */
|
||||
if (iso_state_new == iso_state) {
|
||||
TRACE_WARNING("Already in ISO 7816 state %u\n\r", iso_state);
|
||||
TRACE_WARNING("Already in ISO 7816 state %u\r\n", iso_state);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -295,7 +295,7 @@ static void change_state(enum iso7816_3_sniff_state iso_state_new)
|
||||
|
||||
/* save new state */
|
||||
iso_state = iso_state_new;
|
||||
TRACE_INFO("Changed to ISO 7816-3 state %u\n\r", iso_state);
|
||||
TRACE_INFO("Changed to ISO 7816-3 state %u\r\n", iso_state);
|
||||
}
|
||||
|
||||
const struct value_string data_flags[] = {
|
||||
@@ -353,7 +353,7 @@ static void usb_send_data(enum simtrace_msg_type_sniff type, const uint8_t* data
|
||||
for (i = 0; i < length; i++) {
|
||||
printf("%02x ", data[i]);
|
||||
}
|
||||
printf("\n\r");
|
||||
printf("\r\n");
|
||||
|
||||
/* Send data over USB */
|
||||
struct msgb *usb_msg = usb_msg_alloc_hdr(SIMTRACE_USB_EP_CARD_DATAIN, SIMTRACE_MSGC_SNIFF, type);
|
||||
@@ -377,11 +377,11 @@ static void usb_send_atr(uint32_t flags)
|
||||
{
|
||||
/* Check state */
|
||||
if (ISO7816_S_IN_ATR != iso_state) {
|
||||
TRACE_WARNING("Can't print ATR in ISO 7816-3 state %u\n\r", iso_state);
|
||||
TRACE_WARNING("Can't print ATR in ISO 7816-3 state %u\r\n", iso_state);
|
||||
return;
|
||||
}
|
||||
if (atr_i >= ARRAY_SIZE(atr)) {
|
||||
TRACE_ERROR("ATR buffer overflow\n\r");
|
||||
TRACE_ERROR("ATR buffer overflow\r\n");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -401,11 +401,11 @@ static void process_byte_atr(uint8_t byte)
|
||||
|
||||
/* sanity check */
|
||||
if (ISO7816_S_IN_ATR != iso_state) {
|
||||
TRACE_ERROR("Processing ATR data in wrong ISO 7816-3 state %u\n\r", iso_state);
|
||||
TRACE_ERROR("Processing ATR data in wrong ISO 7816-3 state %u\r\n", iso_state);
|
||||
return;
|
||||
}
|
||||
if (atr_i >= ARRAY_SIZE(atr)) {
|
||||
TRACE_ERROR("ATR data overflow\n\r");
|
||||
TRACE_ERROR("ATR data overflow\r\n");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -425,7 +425,7 @@ static void process_byte_atr(uint8_t byte)
|
||||
atr_state = ATR_S_WAIT_T0; /* wait for format byte */
|
||||
break;
|
||||
default:
|
||||
TRACE_WARNING("Invalid TS received\n\r");
|
||||
TRACE_WARNING("Invalid TS received\r\n");
|
||||
led_blink(LED_RED, BLINK_2F_O); /* indicate error to user */
|
||||
usb_send_atr(SNIFF_DATA_FLAG_ERROR_MALFORMED); /* send ATR to host software using USB */
|
||||
change_state(ISO7816_S_WAIT_ATR); /* reset state */
|
||||
@@ -503,7 +503,7 @@ static void process_byte_atr(uint8_t byte)
|
||||
change_state(ISO7816_S_WAIT_TPDU); /* go to next state */
|
||||
break;
|
||||
default:
|
||||
TRACE_INFO("Unknown ATR state %u\n\r", atr_state);
|
||||
TRACE_INFO("Unknown ATR state %u\r\n", atr_state);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -521,7 +521,7 @@ static void usb_send_pps(uint32_t flags)
|
||||
} else if (ISO7816_S_IN_PPS_RSP == iso_state) {
|
||||
pps_cur = pps_rsp;
|
||||
} else {
|
||||
TRACE_ERROR("Can't print PPS in ISO 7816-3 state %u\n\r", iso_state);
|
||||
TRACE_ERROR("Can't print PPS in ISO 7816-3 state %u\r\n", iso_state);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -577,7 +577,7 @@ static void process_byte_pps(uint8_t byte)
|
||||
} else if (ISO7816_S_IN_PPS_RSP == iso_state) {
|
||||
pps_cur = pps_rsp;
|
||||
} else {
|
||||
TRACE_ERROR("Processing PPS data in wrong ISO 7816-3 state %u\n\r", iso_state);
|
||||
TRACE_ERROR("Processing PPS data in wrong ISO 7816-3 state %u\r\n", iso_state);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -589,7 +589,7 @@ static void process_byte_pps(uint8_t byte)
|
||||
pps_cur[0] = byte;
|
||||
pps_state = PPS_S_WAIT_PPS0; /* go to next state */
|
||||
} else {
|
||||
TRACE_INFO("Invalid PPSS received\n\r");
|
||||
TRACE_INFO("Invalid PPSS received\r\n");
|
||||
led_blink(LED_RED, BLINK_2F_O); /* indicate error to user */
|
||||
usb_send_pps(SNIFF_DATA_FLAG_ERROR_MALFORMED); /* send ATR to host software using USB */
|
||||
change_state(ISO7816_S_WAIT_TPDU); /* go back to TPDU state */
|
||||
@@ -654,22 +654,22 @@ static void process_byte_pps(uint8_t byte)
|
||||
fn = 1;
|
||||
dn = 1;
|
||||
}
|
||||
TRACE_INFO("PPS negotiation successful: Fn=%u Dn=%u\n\r",
|
||||
TRACE_INFO("PPS negotiation successful: Fn=%u Dn=%u\r\n",
|
||||
iso7816_3_fi_table[fn], iso7816_3_di_table[dn]);
|
||||
update_fidi(&sniff_usart, pps_cur[2]);
|
||||
update_wt(0, iso7816_3_di_table[dn]);
|
||||
usb_send_fidi(pps_cur[2]); /* send Fi/Di change notification to host software over USB */
|
||||
} else { /* checksum is invalid */
|
||||
TRACE_INFO("PPS negotiation failed\n\r");
|
||||
TRACE_INFO("PPS negotiation failed\r\n");
|
||||
}
|
||||
change_state(ISO7816_S_WAIT_TPDU); /* go to next state */
|
||||
}
|
||||
break;
|
||||
case PPS_S_WAIT_END:
|
||||
TRACE_WARNING("Unexpected PPS received %u\n\r", pps_state);
|
||||
TRACE_WARNING("Unexpected PPS received %u\r\n", pps_state);
|
||||
break;
|
||||
default:
|
||||
TRACE_WARNING("Unknown PPS state %u\n\r", pps_state);
|
||||
TRACE_WARNING("Unknown PPS state %u\r\n", pps_state);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -682,7 +682,7 @@ static void usb_send_tpdu(uint32_t flags)
|
||||
{
|
||||
/* Check state */
|
||||
if (ISO7816_S_IN_TPDU != iso_state) {
|
||||
TRACE_WARNING("Can't print TPDU in ISO 7816-3 state %u\n\r", iso_state);
|
||||
TRACE_WARNING("Can't print TPDU in ISO 7816-3 state %u\r\n", iso_state);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -694,11 +694,11 @@ static void process_byte_tpdu(uint8_t byte)
|
||||
{
|
||||
/* sanity check */
|
||||
if (ISO7816_S_IN_TPDU != iso_state) {
|
||||
TRACE_ERROR("Processing TPDU data in wrong ISO 7816-3 state %u\n\r", iso_state);
|
||||
TRACE_ERROR("Processing TPDU data in wrong ISO 7816-3 state %u\r\n", iso_state);
|
||||
return;
|
||||
}
|
||||
if (tpdu_packet_i >= ARRAY_SIZE(tpdu_packet)) {
|
||||
TRACE_ERROR("TPDU data overflow\n\r");
|
||||
TRACE_ERROR("TPDU data overflow\r\n");
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -706,7 +706,7 @@ static void process_byte_tpdu(uint8_t byte)
|
||||
switch (tpdu_state) {
|
||||
case TPDU_S_CLA:
|
||||
if (0xff == byte) {
|
||||
TRACE_WARNING("0xff is not a valid class byte\n\r");
|
||||
TRACE_WARNING("0xff is not a valid class byte\r\n");
|
||||
led_blink(LED_RED, BLINK_2F_O); /* indicate error to user */
|
||||
usb_send_tpdu(SNIFF_DATA_FLAG_ERROR_MALFORMED); /* send ATR to host software using USB */
|
||||
change_state(ISO7816_S_WAIT_TPDU); /* go back to TPDU state */
|
||||
@@ -718,7 +718,7 @@ static void process_byte_tpdu(uint8_t byte)
|
||||
break;
|
||||
case TPDU_S_INS:
|
||||
if ((0x60 == (byte & 0xf0)) || (0x90 == (byte & 0xf0))) {
|
||||
TRACE_WARNING("invalid CLA 0x%02x\n\r", byte);
|
||||
TRACE_WARNING("invalid CLA 0x%02x\r\n", byte);
|
||||
led_blink(LED_RED, BLINK_2F_O); /* indicate error to user */
|
||||
usb_send_tpdu(SNIFF_DATA_FLAG_ERROR_MALFORMED); /* send ATR to host software using USB */
|
||||
change_state(ISO7816_S_WAIT_TPDU); /* go back to TPDU state */
|
||||
@@ -758,7 +758,7 @@ static void process_byte_tpdu(uint8_t byte)
|
||||
tpdu_packet[tpdu_packet_i++] = byte;
|
||||
tpdu_state = TPDU_S_SW2;
|
||||
} else {
|
||||
TRACE_WARNING("invalid SW1 0x%02x\n\r", byte);
|
||||
TRACE_WARNING("invalid SW1 0x%02x\r\n", byte);
|
||||
led_blink(LED_RED, BLINK_2F_O); /* indicate error to user */
|
||||
usb_send_tpdu(SNIFF_DATA_FLAG_ERROR_MALFORMED); /* send ATR to host software using USB */
|
||||
change_state(ISO7816_S_WAIT_TPDU); /* go back to TPDU state */
|
||||
@@ -787,7 +787,7 @@ static void process_byte_tpdu(uint8_t byte)
|
||||
}
|
||||
break;
|
||||
default:
|
||||
TRACE_ERROR("unhandled TPDU state %u\n\r", tpdu_state);
|
||||
TRACE_ERROR("unhandled TPDU state %u\r\n", tpdu_state);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -801,11 +801,11 @@ void Sniffer_usart_isr(void)
|
||||
uint32_t csr = sniff_usart.base->US_CSR;
|
||||
/* Verify if there was an error */
|
||||
if (csr & US_CSR_OVRE) {
|
||||
TRACE_WARNING("USART overrun error\n\r");
|
||||
TRACE_WARNING("USART overrun error\r\n");
|
||||
sniff_usart.base->US_CR |= US_CR_RSTSTA;
|
||||
}
|
||||
if (csr & US_CSR_FRAME) {
|
||||
TRACE_WARNING("USART framing error\n\r");
|
||||
TRACE_WARNING("USART framing error\r\n");
|
||||
sniff_usart.base->US_CR |= US_CR_RSTSTA;
|
||||
}
|
||||
|
||||
@@ -817,7 +817,7 @@ void Sniffer_usart_isr(void)
|
||||
wt_remaining = wt;
|
||||
/* Store sniffed data into buffer (also clear interrupt */
|
||||
if (rbuf_is_full(&sniff_buffer)) {
|
||||
TRACE_ERROR("USART buffer full\n\r");
|
||||
TRACE_ERROR("USART buffer full\r\n");
|
||||
} else {
|
||||
rbuf_write(&sniff_buffer, byte);
|
||||
}
|
||||
@@ -853,7 +853,7 @@ static void Sniffer_reset_isr(const Pin* pPin)
|
||||
{
|
||||
/* Ensure an edge on the reset pin cause the interrupt */
|
||||
if (pPin->id != pin_rst.id || 0 == (pPin->mask & pin_rst.mask)) {
|
||||
TRACE_ERROR("Pin other than reset caused a interrupt\n\r");
|
||||
TRACE_ERROR("Pin other than reset caused a interrupt\r\n");
|
||||
return;
|
||||
}
|
||||
/* Update the ISO state according to the reset change (reset is active low) */
|
||||
@@ -889,13 +889,13 @@ void Sniffer_usart0_irq(void)
|
||||
/* Called during USB enumeration after device is enumerated by host */
|
||||
void Sniffer_configure(void)
|
||||
{
|
||||
TRACE_INFO("Sniffer config\n\r");
|
||||
TRACE_INFO("Sniffer config\r\n");
|
||||
}
|
||||
|
||||
/* called when *different* configuration is set by host */
|
||||
void Sniffer_exit(void)
|
||||
{
|
||||
TRACE_INFO("Sniffer exit\n\r");
|
||||
TRACE_INFO("Sniffer exit\r\n");
|
||||
/* Disable USART */
|
||||
USART_DisableIt(sniff_usart.base, US_IER_RXRDY);
|
||||
/* NOTE: don't forget to set the IRQ according to the USART peripheral used */
|
||||
@@ -909,7 +909,7 @@ void Sniffer_exit(void)
|
||||
/* called when *Sniffer* configuration is set by host */
|
||||
void Sniffer_init(void)
|
||||
{
|
||||
TRACE_INFO("Sniffer Init\n\r");
|
||||
TRACE_INFO("Sniffer Init\r\n");
|
||||
|
||||
/* Configure pins to sniff communication between phone and card */
|
||||
PIO_Configure(pins_sniff, PIO_LISTSIZE(pins_sniff));
|
||||
@@ -958,7 +958,7 @@ static void usb_send_change(uint32_t flags)
|
||||
}
|
||||
|
||||
if (flags & SNIFF_CHANGE_FLAG_TIMEOUT_WT) {
|
||||
printf("waiting time (WT) timeout\n\r");
|
||||
printf("waiting time (WT) timeout\r\n");
|
||||
}
|
||||
|
||||
/* Send message over USB */
|
||||
@@ -1028,7 +1028,7 @@ void Sniffer_run(void)
|
||||
process_byte_pps(byte);
|
||||
break;
|
||||
default:
|
||||
TRACE_ERROR("Data received in unknown state %u\n\r", iso_state);
|
||||
TRACE_ERROR("Data received in unknown state %u\r\n", iso_state);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1054,13 +1054,13 @@ void Sniffer_run(void)
|
||||
}
|
||||
if (ISO7816_S_RESET != iso_state) {
|
||||
change_state(ISO7816_S_RESET);
|
||||
printf("reset asserted\n\r");
|
||||
printf("reset asserted\r\n");
|
||||
}
|
||||
}
|
||||
if (change_flags & SNIFF_CHANGE_FLAG_RESET_DEASSERT) {
|
||||
if (ISO7816_S_WAIT_ATR != iso_state) {
|
||||
change_state(ISO7816_S_WAIT_ATR);
|
||||
printf("reset de-asserted\n\r");
|
||||
printf("reset de-asserted\r\n");
|
||||
}
|
||||
}
|
||||
if (change_flags & SNIFF_CHANGE_FLAG_TIMEOUT_WT) {
|
||||
|
||||
@@ -439,7 +439,7 @@ signed int vfprintf(FILE *pStream, const char *pFormat, va_list ap)
|
||||
return rc;
|
||||
}
|
||||
if (rc >= MAX_STRING_SIZE) {
|
||||
fputs("stdio.c: increase MAX_STRING_SIZE\n\r", stderr);
|
||||
fputs("stdio.c: increase MAX_STRING_SIZE\r\n", stderr);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -469,7 +469,7 @@ signed int vfprintf_sync(FILE *pStream, const char *pFormat, va_list ap)
|
||||
return rc;
|
||||
}
|
||||
if (rc >= MAX_STRING_SIZE) {
|
||||
fputs_sync("stdio.c: increase MAX_STRING_SIZE\n\r", stderr);
|
||||
fputs_sync("stdio.c: increase MAX_STRING_SIZE\r\n", stderr);
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user