35 #define SCLIB_MAX_ATR_LEN 32 36 #define SCLIB_MIN_ATR_LEN 2 39 #define SCLIB_PROTOCOL_UNDEFINED 0x00000000 40 #define SCLIB_PROTOCOL_T0 0x00000001 41 #define SCLIB_PROTOCOL_T1 0x00000002 43 #define SCLIB_SUCCESS 0x00000000 44 // error code generate by interrupt handler 45 #define SCLIB_ERR_CARD_REMOVED 0x00000001 46 #define SCLIB_ERR_OVER_RUN 0x00000002 47 #define SCLIB_ERR_PARITY_ERROR 0x00000003 48 #define SCLIB_ERR_NO_STOP 0x00000004 49 #define SCLIB_ERR_SILENT_BYTE 0x00000005 50 #define SCLIB_ERR_CMD 0x00000006 51 #define SCLIB_ERR_UNSUPPORTEDCARD 0x00000007 52 #define SCLIB_ERR_READ 0x00000008 53 #define SCLIB_ERR_WRITE 0x00000009 54 #define SCLIB_ERR_TIME0OUT 0x0000000A 55 #define SCLIB_ERR_TIME1OUT 0x0000000B 56 #define SCLIB_ERR_TIME2OUT 0x0000000C 57 #define SCLIB_ERR_AUTOCONVENTION 0x0000000D 58 #define SCLIB_ERR_CLOCK 0x0000000E 59 #define SCLIB_ERR_BGTIMEOUT 0x0000000E 60 // error code generate while parsing ATR and process PPS 61 #define SCLIB_ERR_ATR_UNRECOGNIZED 0x00001001 62 #define SCLIB_ERR_ATR_INVALID_PARAM 0x00001002 63 #define SCLIB_ERR_ATR_INVALID_TCK 0x00001003 64 #define SCLIB_ERR_PPS 0x00001004 65 // error code for T=1 protocol 66 #define SCLIB_ERR_T1_PARITY 0x00002001 67 #define SCLIB_ERR_T1_ICC 0x00002002 68 #define SCLIB_ERR_T1_PROTOCOL 0x00002003 69 #define SCLIB_ERR_T1_ABORT_RECEIVED 0x00002004 70 #define SCLIB_ERR_T1_RESYNCH_RECEIVED 0x00002005 71 #define SCLIB_ERR_T1_VPP_ERROR_RECEIVED 0x00002006 72 #define SCLIB_ERR_T1_WTXRES_RECEIVED 0x00002007 73 #define SCLIB_ERR_T1_IFSRES_RECEIVED 0x00002008 74 #define SCLIB_ERR_T1_ABORTRES_RECEIVED 0x00002009 75 #define SCLIB_ERR_T1_CHECKSUM 0x0000200A 78 #define SCLIB_ERR_T0_PROTOCOL 0x00003003 81 #define SCLIB_ERR_DEACTIVE 0x0000F001 82 #define SCLIB_ERR_CARDBUSY 0x0000F002 190 int32_t
SCLIB_StartTransmission(uint32_t num, uint8_t *cmdBuf, uint32_t cmdLen, uint8_t *rspBuf, uint32_t *rspLen);
215 #if defined (__GNUC__) uint32_t ATR_Len
ATR length, between SCLIB_MAX_ATR_LEN and SCLIB_MIN_ATR_LEN.
void *__dso_handle __attribute__((weak))
uint32_t SCLIB_CheckTimeOutEvent(uint32_t num)
Process time out event in IRQ handler.
int32_t SCLIB_StartTransmission(uint32_t num, uint8_t *cmdBuf, uint32_t cmdLen, uint8_t *rspBuf, uint32_t *rspLen)
Start a smartcard transmission.
uint32_t SCLIB_CheckTxRxEvent(uint32_t num)
Process card transmission event in IRQ handler.
int32_t SCLIB_ColdReset(uint32_t num)
Cold reset a smartcard.
#define SCLIB_MAX_ATR_LEN
Max ATR length. ISO-7816 8.2.1.
__weak void SCLIB_RequestTimeExtension(uint32_t u32Protocol)
A callback called by library while smartcard request for a time extension.
int32_t SCLIB_ActivateDelay(uint32_t num, uint32_t u32EMVCheck, uint32_t u32Delay)
Activate a smartcard with large delay between set VCC high and start CLK output.
Nano102/112 peripheral access layer header file. This file contains all the peripheral register's def...
uint32_t T
Protocol, ether SCLIB_PROTOCOL_T0 or SCLIB_PROTOCOL_T1.
int32_t SCLIB_GetCardInfo(uint32_t num, SCLIB_CARD_INFO_T *s_info)
Get the card information (e.g., protocol selected, ATR...) after activation success.
uint32_t SCLIB_CheckErrorEvent(uint32_t num)
Process error event in IRQ handler.
A structure holds smartcard information.
uint32_t SCLIB_CheckCDEvent(uint32_t num)
Process card detect event in IRQ handler.
int32_t SCLIB_WarmReset(uint32_t num)
Warm reset a smartcard.
int32_t SCLIB_SetIFSD(uint32_t num, uint8_t size)
Set interface device max information field size (IFSD)
void SCLIB_Deactivate(uint32_t num)
Deactivate a smartcard.
int32_t SCLIB_Activate(uint32_t num, uint32_t u32EMVCheck)
Activate a smartcard.