From 81b7e89434aad94a3cbddd5742341cd75e48efa5 Mon Sep 17 00:00:00 2001 From: iceman1001 Date: Mon, 16 Jan 2017 21:06:51 +0100 Subject: [PATCH] CHG: lowered the number of bytes collected for T55xxReadBlock. Was 12000 -> 7679 CHG: added some documentation about what arguments does. CHG: 'data tune' - added flush after printf. --- armsrc/appmain.c | 11 +++++++++-- armsrc/lfops.c | 2 +- client/cmddata.c | 1 + client/cmdlft55xx.c | 3 ++- client/cmdmain.c | 9 +++++++-- common/lfdemod.c | 5 +++-- 6 files changed, 23 insertions(+), 8 deletions(-) diff --git a/armsrc/appmain.c b/armsrc/appmain.c index 4f2a1cd8..4eabb319 100644 --- a/armsrc/appmain.c +++ b/armsrc/appmain.c @@ -1276,8 +1276,13 @@ void UsbPacketReceived(uint8_t *packet, int len) size_t len = 0; size_t startidx = c->arg[0]; uint8_t isok = FALSE; + // arg0 = startindex + // arg1 = length bytes to transfer + // arg2 = RFU + //Dbprintf("transfer to client parameters: %llu | %llu | %llu", c->arg[0], c->arg[1], c->arg[2]); + for(size_t i = 0; i < c->arg[1]; i += USB_CMD_DATA_SIZE) { - len = MIN((c->arg[1] - i),USB_CMD_DATA_SIZE); + len = MIN( (c->arg[1] - i), USB_CMD_DATA_SIZE); isok = cmd_send(CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K, i, len, BigBuf_get_traceLen(), BigBuf + startidx + i, len); if (!isok) Dbprintf("transfer to client failed :: | bytes %d", len); @@ -1289,7 +1294,9 @@ void UsbPacketReceived(uint8_t *packet, int len) } 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] + // to be able to use this one for uploading data to device + // arg1 = 0 upload for LF usage + // 1 upload for HF usage if ( c->arg[1] == 0 ) FpgaDownloadAndGo(FPGA_BITSTREAM_LF); else diff --git a/armsrc/lfops.c b/armsrc/lfops.c index 90b8d0b3..8b896573 100644 --- a/armsrc/lfops.c +++ b/armsrc/lfops.c @@ -1310,7 +1310,7 @@ void T55xxReadBlock(uint16_t arg0, uint8_t Block, uint32_t Pwd) { TurnReadLFOn(READ_GAP); // Acquisition - doT55x7Acquisition(12000); + doT55x7Acquisition(7679); // Turn the field off FpgaWriteConfWord(FPGA_MAJOR_MODE_OFF); // field off diff --git a/client/cmddata.c b/client/cmddata.c index 3e5bea1f..da7a6de7 100644 --- a/client/cmddata.c +++ b/client/cmddata.c @@ -2231,6 +2231,7 @@ int CmdTuneSamples(const char *Cmd) while(!WaitForResponseTimeout(CMD_MEASURED_ANTENNA_TUNING, &resp, 2000)) { timeout++; printf("."); + fflush(stdout); if (timeout > 7) { PrintAndLog("\nNo response from Proxmark. Aborting..."); return 1; diff --git a/client/cmdlft55xx.c b/client/cmdlft55xx.c index ec8c9de9..8342bf08 100644 --- a/client/cmdlft55xx.c +++ b/client/cmdlft55xx.c @@ -1274,7 +1274,8 @@ int AquireData( uint8_t page, uint8_t block, bool pwdmode, uint32_t password ){ return 0; } - uint8_t got[12288]; + //uint8_t got[12288]; + uint8_t got[7679]; GetFromBigBuf(got, sizeof(got), 0); if ( !WaitForResponseTimeout(CMD_ACK, NULL, 8000) ) { PrintAndLog("command execution time out"); diff --git a/client/cmdmain.c b/client/cmdmain.c index 1ddf219a..dc44a55c 100644 --- a/client/cmdmain.c +++ b/client/cmdmain.c @@ -192,9 +192,9 @@ void UsbCommandReceived(UsbCommand *UC) printf("\r#db# %s", s); fflush(stdout); } - else + else { PrintAndLog("#db# %s", s); - + } return; } break; @@ -204,7 +204,12 @@ void UsbCommandReceived(UsbCommand *UC) } case CMD_DOWNLOADED_RAW_ADC_SAMPLES_125K: case CMD_DOWNLOADED_EML_BIGBUF: { + // sample_buf is a array pointer, located in data.c + // arg0 = offset in transfer. Startindex of this chunk + // arg1 = length bytes to transfer + // arg2 = bigbuff tracelength (?) memcpy( sample_buf + (UC->arg[0]), UC->d.asBytes, UC->arg[1]); + //printf("DBG:: Download from device. chunk %llu | size %llu | tracelen:%llu \n", UC->arg[0], UC->arg[1], UC->arg[2]); break; } default: { diff --git a/common/lfdemod.c b/common/lfdemod.c index 46132703..b45a4097 100644 --- a/common/lfdemod.c +++ b/common/lfdemod.c @@ -602,10 +602,11 @@ int HIDdemodFSK(uint8_t *dest, size_t *size, uint32_t *hi2, uint32_t *hi, uint32 *hi2 = (*hi2<<1)|(*hi>>31); *hi = (*hi<<1)|(*lo>>31); //Then, shift in a 0 or one into low + *lo <<= 1; if (dest[idx] && !dest[idx+1]) // 1 0 - *lo=(*lo<<1)|1; + *lo |= 1; else // 0 1 - *lo=(*lo<<1)|0; + *lo |= 0; } return (int)startIdx; } -- 2.39.5