]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - armsrc/appmain.c
CHG: FpgaSetupDMA, handle when it returns NULL.
[proxmark3-svn] / armsrc / appmain.c
index 2ba3d75c8762fcd0475691946a4f69c3d8c91eb1..59011df26cea2641419d8f988877ead406a81b0e 100644 (file)
@@ -9,18 +9,14 @@
 // The main application code. This is the first thing called after start.c
 // executes.
 //-----------------------------------------------------------------------------
-
 #include "usb_cdc.h"
 #include "cmd.h"
-
 #include "proxmark3.h"
 #include "apps.h"
 #include "util.h"
 #include "printf.h"
 #include "string.h"
-
 #include <stdarg.h>
-
 #include "legicrf.h"
 #include "hitag2.h"
 #include "hitagS.h"
@@ -28,6 +24,7 @@
 #include "BigBuf.h"
 #include "mifareutil.h"
 #include "pcf7931.h"
+
 #ifdef WITH_LCD
  #include "LCD.h"
 #endif
@@ -38,8 +35,6 @@
  #include "protocols.h"
 #endif
 
-#define abs(x) ( ((x)<0) ? -(x) : (x) )
-
 //=============================================================================
 // A buffer where we can queue things up to be sent through the FPGA, for
 // any purpose (fake tag, as reader, whatever). We go MSB first, since that
@@ -76,6 +71,11 @@ void ToSendStuffBit(int b) {
        }
 }
 
+void PrintToSendBuffer(void){
+       DbpString("Printing ToSendBuffer:");
+       Dbhexdump(ToSendMax, ToSend, 0);
+}
+
 //=============================================================================
 // Debug print functions, to go out over USB, to the usual PC-side client.
 //=============================================================================
@@ -832,7 +832,7 @@ void ListenReaderField(int limit) {
 
                if (limit != HF_ONLY) {
                        if(mode == 1) {
-                               if (abs(lf_av - lf_baseline) > REPORT_CHANGE) 
+                               if (ABS(lf_av - lf_baseline) > REPORT_CHANGE) 
                                        LED_D_ON();
                                else
                                        LED_D_OFF();
@@ -840,7 +840,7 @@ void ListenReaderField(int limit) {
 
                        lf_av_new = AvgAdc(ADC_CHAN_LF);
                        // see if there's a significant change
-                       if(abs(lf_av - lf_av_new) > REPORT_CHANGE) {
+                       if(ABS(lf_av - lf_av_new) > REPORT_CHANGE) {
                                Dbprintf("LF 125/134kHz Field Change: %5dmV", (MAX_ADC_LF_VOLTAGE * lf_av_new) >> 10);
                                lf_av = lf_av_new;
                                if (lf_av > lf_max)
@@ -850,7 +850,7 @@ void ListenReaderField(int limit) {
 
                if (limit != LF_ONLY) {
                        if (mode == 1){
-                               if (abs(hf_av - hf_baseline) > REPORT_CHANGE)   
+                               if (ABS(hf_av - hf_baseline) > REPORT_CHANGE)   
                                        LED_B_ON();
                                else
                                        LED_B_OFF();
@@ -858,7 +858,7 @@ void ListenReaderField(int limit) {
 
                        hf_av_new = AvgAdc(ADC_CHAN_HF);
                        // see if there's a significant change
-                       if(abs(hf_av - hf_av_new) > REPORT_CHANGE) {
+                       if(ABS(hf_av - hf_av_new) > REPORT_CHANGE) {
                                Dbprintf("HF 13.56MHz Field Change: %5dmV", (MAX_ADC_HF_VOLTAGE * hf_av_new) >> 10);
                                hf_av = hf_av_new;
                                if (hf_av > hf_max)
@@ -1013,10 +1013,10 @@ void UsbPacketReceived(uint8_t *packet, int len)
                case CMD_TEST_HITAGS_TRACES:// Tests every challenge within the given file
                        check_challenges((bool)c->arg[0],(byte_t*)c->d.asBytes);
                        break;
-               case CMD_READ_HITAG_S://Reader for only Hitag S tags, args = key or challenge
+               case CMD_READ_HITAG_S: //Reader for only Hitag S tags, args = key or challenge
                        ReadHitagS((hitag_function)c->arg[0],(hitag_data*)c->d.asBytes);
                        break;
-               case CMD_WR_HITAG_S://writer for Hitag tags args=data to write,page and key or challenge
+               case CMD_WR_HITAG_S: //writer for Hitag tags args=data to write,page and key or challenge
                        WritePageHitagS((hitag_function)c->arg[0],(hitag_data*)c->d.asBytes,c->arg[2]);
                        break;
 #endif
@@ -1064,20 +1064,18 @@ void UsbPacketReceived(uint8_t *packet, int len)
 #endif
 
 #ifdef WITH_ISO14443b
-               case CMD_READ_SRI512_TAG:
-                       ReadSTMemoryIso14443b(0x0F);
-                       break;
-               case CMD_READ_SRIX4K_TAG:
-                       ReadSTMemoryIso14443b(0x7F);
+               case CMD_READ_SRI_TAG:
+                       ReadSTMemoryIso14443b(c->arg[0]);
                        break;
                case CMD_SNOOP_ISO_14443B:
                        SnoopIso14443b();
                        break;
                case CMD_SIMULATE_TAG_ISO_14443B:
-                       SimulateIso14443bTag();
+                       SimulateIso14443bTag(c->arg[0]);
                        break;
                case CMD_ISO_14443B_COMMAND:
-                       SendRawCommand14443B(c->arg[0],c->arg[1],c->arg[2],c->d.asBytes);
+                       //SendRawCommand14443B(c->arg[0],c->arg[1],c->arg[2],c->d.asBytes);
+                       SendRawCommand14443B_Ex(c);
                        break;
 #endif
 
@@ -1091,14 +1089,12 @@ void UsbPacketReceived(uint8_t *packet, int len)
                case CMD_SIMULATE_TAG_ISO_14443a:
                        SimulateIso14443aTag(c->arg[0], c->arg[1], c->d.asBytes);  // ## Simulate iso14443a tag - pass tag type & UID
                        break;
-                       
                case CMD_EPA_PACE_COLLECT_NONCE:
                        EPA_PACE_Collect_Nonce(c);
                        break;
                case CMD_EPA_PACE_REPLAY:
                        EPA_PACE_Replay(c);
                        break;
-                       
                case CMD_READER_MIFARE:
             ReaderMifare(c->arg[0], c->arg[1]);
                        break;
Impressum, Datenschutz