X-Git-Url: http://git.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/bfb01844fb0ce48e960374c3bc6ecf208b6c6bb0..0472d76de484018f2d11425417f3078a08a2e3d3:/armsrc/appmain.c diff --git a/armsrc/appmain.c b/armsrc/appmain.c index 99776a98..8c2aefbb 100644 --- a/armsrc/appmain.c +++ b/armsrc/appmain.c @@ -301,39 +301,42 @@ void SendVersion(void) // measure the USB Speed by sending SpeedTestBufferSize bytes to client and measuring the elapsed time. // Note: this mimics GetFromBigbuf(), i.e. we have the overhead of the UsbCommand structure included. -void printUSBSpeed(uint32_t SpeedTestBufferSize) +void printUSBSpeed(void) { Dbprintf("USB Speed:"); - Dbprintf(" Sending %d bytes payload...", SpeedTestBufferSize); + Dbprintf(" Sending USB packets to client..."); + #define USB_SPEED_TEST_MIN_TIME 1500 // in milliseconds uint8_t *test_data = BigBuf_get_addr(); + uint32_t end_time; - uint32_t start_time = GetTickCount(); - + uint32_t start_time = end_time = GetTickCount(); + uint32_t bytes_transferred = 0; + LED_B_ON(); - for(size_t i=0; i Client = %d Bytes/s", - end_time - start_time, - 1000* SpeedTestBufferSize / (end_time - start_time)); + Dbprintf(" Time elapsed: %dms", end_time - start_time); + Dbprintf(" Bytes transferred: %d", bytes_transferred); + Dbprintf(" USB Transfer Speed PM3 -> Client = %d Bytes/s", + 1000 * bytes_transferred / (end_time - start_time)); } /** * Prints runtime information about the PM3. **/ -void SendStatus(uint32_t SpeedTestBufferSize) +void SendStatus(void) { BigBuf_print_status(); Fpga_print_status(); printConfig(); //LF Sampling config - printUSBSpeed(SpeedTestBufferSize); + printUSBSpeed(); Dbprintf("Various"); Dbprintf(" MF_DBGLEVEL......%d", MF_DBGLEVEL); Dbprintf(" ToSendMax........%d",ToSendMax); @@ -984,6 +987,9 @@ void UsbPacketReceived(uint8_t *packet, int len) ReadPCF7931(); cmd_send(CMD_ACK,0,0,0,0,0); break; + case CMD_PCF7931_WRITE: + WritePCF7931(c->d.asDwords[0],c->d.asDwords[1],c->d.asDwords[2],c->d.asDwords[3],c->d.asDwords[4],c->d.asDwords[5],c->d.asDwords[6], c->d.asDwords[9], c->d.asDwords[7]-128,c->d.asDwords[8]-128, c->arg[0], c->arg[1], c->arg[2]); + break; case CMD_EM4X_READ_WORD: EM4xReadWord(c->arg[1], c->arg[2],c->d.asBytes[0]); break; @@ -1172,11 +1178,34 @@ void UsbPacketReceived(uint8_t *packet, int len) ReaderIClass(c->arg[0]); break; case CMD_READER_ICLASS_REPLAY: - ReaderIClass_Replay(c->arg[0], c->d.asBytes); + 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: + iClass_WriteBlock(c->arg[0], c->d.asBytes); + break; + case CMD_ICLASS_READCHECK: // auth step 1 + iClass_ReadCheck(c->arg[0], c->arg[1]); + break; + case CMD_ICLASS_READBLOCK: + iClass_ReadBlk(c->arg[0]); + break; + case CMD_ICLASS_AUTHENTICATION: //check + iClass_Authentication(c->d.asBytes); + break; + case CMD_ICLASS_DUMP: + iClass_Dump(c->arg[0], c->arg[1]); + break; + case CMD_ICLASS_CLONE: + iClass_Clone(c->arg[0], c->arg[1], c->d.asBytes); + break; +#endif +#ifdef WITH_HFSNOOP + case CMD_HF_SNIFFER: + HfSnoop(c->arg[0], c->arg[1]); + break; #endif case CMD_BUFF_CLEAR: @@ -1242,7 +1271,7 @@ void UsbPacketReceived(uint8_t *packet, int len) SendVersion(); break; case CMD_STATUS: - SendStatus(c->arg[0]); + SendStatus(); break; case CMD_PING: cmd_send(CMD_ACK,0,0,0,0,0); @@ -1314,7 +1343,7 @@ void __attribute__((noreturn)) AppMain(void) AT91C_BASE_PMC->PMC_SCER = AT91C_PMC_PCK0; // PCK0 is PLL clock / 4 = 96Mhz / 4 = 24Mhz AT91C_BASE_PMC->PMC_PCKR[0] = AT91C_PMC_CSS_PLL_CLK | - AT91C_PMC_PRES_CLK_4; + AT91C_PMC_PRES_CLK_4; // 4 for 24Mhz pck0, 2 for 48 MHZ pck0 AT91C_BASE_PIOA->PIO_OER = GPIO_PCK0; // Reset SPI