X-Git-Url: https://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/153a4a78fe07fcb6f1c7b246465b0f6e8eba41fd..d433698311f055d0f804c4009936e7d325ae5815:/armsrc/appmain.c diff --git a/armsrc/appmain.c b/armsrc/appmain.c index 51c5863f..a2c12803 100644 --- a/armsrc/appmain.c +++ b/armsrc/appmain.c @@ -10,7 +10,7 @@ // executes. //----------------------------------------------------------------------------- #include "usb_cdc.h" -#include "cmd.h" +//#include "cmd.h" #include "proxmark3.h" #include "apps.h" #include "util.h" @@ -182,9 +182,7 @@ static int ReadAdc(int ch) int AvgAdc(int ch) // was static - merlok { - int i; - int a = 0; - + int i, a = 0; for(i = 0; i < 32; ++i) a += ReadAdc(ch); @@ -194,9 +192,11 @@ int AvgAdc(int ch) // was static - merlok void MeasureAntennaTuning(void) { - uint8_t* LF_Results = BigBuf_malloc(256); + uint8_t LF_Results[256]; int i, adcval = 0, peak = 0, peakv = 0, peakf = 0; int vLf125 = 0, vLf134 = 0, vHf = 0; // in mV + + memset(LF_Results, 0, sizeof(LF_Results)); LED_B_ON(); /* @@ -210,7 +210,7 @@ void MeasureAntennaTuning(void) { FpgaDownloadAndGo(FPGA_BITSTREAM_LF); FpgaWriteConfWord(FPGA_MAJOR_MODE_LF_ADC | FPGA_LF_ADC_READER_FIELD); - + for (i = 255; i >= 19; i--) { WDT_HIT(); FpgaSendCommand(FPGA_CMD_SET_DIVISOR, i); @@ -227,9 +227,6 @@ void MeasureAntennaTuning(void) { } } - // for (i = 18; i >= 0; i--) - // LF_Results[i] = 0; - LED_A_ON(); // Let the FPGA drive the high-frequency antenna around 13.56 MHz. FpgaDownloadAndGo(FPGA_BITSTREAM_HF); @@ -239,8 +236,6 @@ void MeasureAntennaTuning(void) { cmd_send(CMD_MEASURED_ANTENNA_TUNING, vLf125 | (vLf134 << 16), vHf, peakf | (peakv << 16), LF_Results, 256); FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); - - BigBuf_free(); BigBuf_Clear_ext(false); LEDsoff(); } @@ -1055,17 +1050,17 @@ void UsbPacketReceived(uint8_t *packet, int len) case CMD_SIMULATE_TAG_LEGIC_RF: LegicRfSimulate(c->arg[0], c->arg[1], c->arg[2]); break; - case CMD_WRITER_LEGIC_RF: - LegicRfWriter( c->arg[0], c->arg[1], c->arg[2]); - break; - - case CMD_RAW_WRITER_LEGIC_RF: - LegicRfRawWriter(c->arg[0], c->arg[1], c->arg[2]); + LegicRfWriter( c->arg[0], c->arg[1], c->arg[2], c->d.asBytes); break; - case CMD_READER_LEGIC_RF: LegicRfReader(c->arg[0], c->arg[1], c->arg[2]); + break; + case CMD_LEGIC_INFO: + LegicRfInfo(); + break; + case CMD_LEGIC_ESET: + LegicEMemSet(c->arg[0], c->arg[1], c->d.asBytes); break; #endif @@ -1195,7 +1190,6 @@ void UsbPacketReceived(uint8_t *packet, int len) case CMD_MIFARE_DESFIRE: MifareSendCommand(c->arg[0], c->arg[1], c->d.asBytes); break; - case CMD_MIFARE_COLLECT_NONCES: break; #endif @@ -1226,7 +1220,7 @@ void UsbPacketReceived(uint8_t *packet, int len) case CMD_READER_ICLASS_REPLAY: ReaderIClass_Replay(c->arg[0], c->d.asBytes); break; - case CMD_ICLASS_EML_MEMSET: + case CMD_ICLASS_EML_MEMSET: emlSet(c->d.asBytes,c->arg[0], c->arg[1]); break; case CMD_ICLASS_WRITEBLOCK: @@ -1290,6 +1284,12 @@ void UsbPacketReceived(uint8_t *packet, int len) break; } case CMD_DOWNLOADED_SIM_SAMPLES_125K: { + // iceman; since changing fpga_bitstreams clears bigbuff, Its better to call it before. + // to be able to use this one for uploading data to device not only for LF, I use c->arg[1] + if ( c->arg[1] == 0 ) + FpgaDownloadAndGo(FPGA_BITSTREAM_LF); + else + FpgaDownloadAndGo(FPGA_BITSTREAM_HF); uint8_t *b = BigBuf_get_addr(); memcpy( b + c->arg[0], c->d.asBytes, USB_CMD_DATA_SIZE); cmd_send(CMD_ACK,0,0,0,0,0);