RFAL issue
Hi,
In the RFAL implementation I found issue where the timer ID is compared with system time.
In the /source/rfal_nfc.c file the following snippet looks suspected (lines from 2288 to 2292):
if( ((platformGetSysTick() + RFAL_NFC_T_FIELD_OFF) > gNfcDev.discTmr) || (aux) ) /* In case Total Duration has expired or expring in less than tFIELD_OFF */
{
platformTimerDestroy( gNfcDev.discTmr );
gNfcDev.discTmr = (uint32_t)platformTimerCreate( RFAL_NFC_T_FIELD_OFF ); /* Ensure that Operating Field is in Off condition at least tFIELD_OFF */
}
The `discTmr` can contains a timer ID returned by the `platformTimerCreate()` function. When the timer ID value is less than sum of the `platformGetSysTick() + RFAL_NFC_T_FIELD_OFF` it can cause false result on the first condition:
((platformGetSysTick() + RFAL_NFC_T_FIELD_OFF) > gNfcDev.discTmr)
