now code can't use uninitialized fpga link and encoders/decoders

This commit is contained in:
merlokk 2019-07-17 19:02:01 +03:00
commit 1e0433c1d7

View file

@ -13,6 +13,7 @@
#define MAX_ISO14A_TIMEOUT 524288 #define MAX_ISO14A_TIMEOUT 524288
static uint32_t iso14a_timeout; static uint32_t iso14a_timeout;
static bool iso14443a_active = false;
uint8_t colpos = 0; uint8_t colpos = 0;
int rsamples = 0; int rsamples = 0;
@ -1551,6 +1552,9 @@ void PrepareDelayedTransfer(uint16_t delay) {
//------------------------------------------------------------------------------------- //-------------------------------------------------------------------------------------
static void TransmitFor14443a(const uint8_t *cmd, uint16_t len, uint32_t *timing) { static void TransmitFor14443a(const uint8_t *cmd, uint16_t len, uint32_t *timing) {
if (!iso14443a_active)
return;
FpgaWriteConfWord(FPGA_MAJOR_MODE_HF_ISO14443A | FPGA_HF_ISO14443A_READER_MOD); FpgaWriteConfWord(FPGA_MAJOR_MODE_HF_ISO14443A | FPGA_HF_ISO14443A_READER_MOD);
if (timing) { if (timing) {
@ -1923,6 +1927,9 @@ bool EmLogTrace(uint8_t *reader_data, uint16_t reader_len, uint32_t reader_Start
static int GetIso14443aAnswerFromTag(uint8_t *receivedResponse, uint8_t *receivedResponsePar, uint16_t offset) { static int GetIso14443aAnswerFromTag(uint8_t *receivedResponse, uint8_t *receivedResponsePar, uint16_t offset) {
uint32_t c = 0; uint32_t c = 0;
if (!iso14443a_active)
return false;
// Set FPGA mode to "reader listen mode", no modulation (listen // Set FPGA mode to "reader listen mode", no modulation (listen
// only, since we are receiving, not transmitting). // only, since we are receiving, not transmitting).
// Signal field is on with the appropriate LED // Signal field is on with the appropriate LED
@ -2354,6 +2361,14 @@ void iso14443a_setup(uint8_t fpga_minor_mode) {
UartReset(); UartReset();
NextTransferTime = 2 * DELAY_ARM2AIR_AS_READER; NextTransferTime = 2 * DELAY_ARM2AIR_AS_READER;
iso14a_set_timeout(1060); // 106 * 10ms default iso14a_set_timeout(1060); // 106 * 10ms default
iso14443a_active = true;
}
void iso14443a_off() {
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF);
LED_D_OFF();
iso14443a_active = false;
} }
/* Peter Fillmore 2015 /* Peter Fillmore 2015
@ -2558,7 +2573,7 @@ void ReaderIso14443a(PacketCommandNG *c) {
return; return;
OUT: OUT:
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); iso14443a_off();
set_tracing(false); set_tracing(false);
LEDsoff(); LEDsoff();
} }
@ -2854,7 +2869,7 @@ void ReaderMifare(bool first_try, uint8_t block, uint8_t keytype) {
reply_mix(CMD_ACK, isOK, 0, 0, buf, sizeof(buf)); reply_mix(CMD_ACK, isOK, 0, 0, buf, sizeof(buf));
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); iso14443a_off();
LEDsoff(); LEDsoff();
set_tracing(false); set_tracing(false);
} }
@ -3094,7 +3109,7 @@ void DetectNACKbug() {
//reply_mix(CMD_ACK, isOK, num_nacks, i, 0, 0); //reply_mix(CMD_ACK, isOK, num_nacks, i, 0, 0);
BigBuf_free(); BigBuf_free();
FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); iso14443a_off();
LEDsoff(); LEDsoff();
set_tracing(false); set_tracing(false);
} }