]> git.zerfleddert.de Git - proxmark3-svn/commitdiff
Merge branch 'master' of https://github.com/Proxmark/proxmark3
authoriceman1001 <iceman@iuse.se>
Wed, 1 Apr 2015 16:02:10 +0000 (18:02 +0200)
committericeman1001 <iceman@iuse.se>
Wed, 1 Apr 2015 16:02:10 +0000 (18:02 +0200)
Conflicts:
armsrc/Makefile
armsrc/lfops.c
client/cmdlft55xx.c
common/ldscript.common
common/lfdemod.c

Makefile
armsrc/Makefile
armsrc/ldscript
armsrc/lfops.c
client/cmddata.c
client/cmdlft55xx.c
common/ldscript.common
common/lfdemod.c

index 101212b49c0a7fbf3aadbe27033a68d1057ca47f..b558da2d74a5dfcdbadd47d3bb37a89ae3eb7b47 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -23,8 +23,8 @@ help:
        @echo + all           - Make bootrom, armsrc and the OS-specific host directory
        @echo + client        - Make only the OS-specific host directory
        @echo + flash-bootrom - Make bootrom and flash it
-       @echo + flash-os      - Make armsrc and flash os
-       @echo + flash-fpga    - Make armsrc and flash fpga
+       @echo + flash-os      - Make armsrc and flash os (includes fpga)
+       @echo + flash-fpga    - (Deprecated:) Make armsrc and flash fpga
        @echo + flash-both    - Make armsrc and flash os and fpga image
        @echo + flash-all     - Make bootrom and armsrc and flash bootrom, os and fpga image
        @echo + clean         - Clean in bootrom, armsrc and the OS-specific host directory
@@ -37,13 +37,13 @@ flash-bootrom: bootrom/obj/bootrom.elf $(FLASH_TOOL)
 flash-os: armsrc/obj/osimage.elf $(FLASH_TOOL)
        $(FLASH_TOOL) $(FLASH_PORT) $(subst /,$(PATHSEP),$<)
 
-flash-fpga: armsrc/obj/fpgaimage.elf $(FLASH_TOOL)
-       $(FLASH_TOOL) $(FLASH_PORT) $(subst /,$(PATHSEP),$<)
+#flash-fpga: armsrc/obj/fpgaimage.elf $(FLASH_TOOL)
+#      $(FLASH_TOOL) $(FLASH_PORT) $(subst /,$(PATHSEP),$<)
 
-flash-both: armsrc/obj/osimage.elf armsrc/obj/fpgaimage.elf $(FLASH_TOOL)
+flash-both: armsrc/obj/osimage.elf $(FLASH_TOOL)
        $(FLASH_TOOL) $(FLASH_PORT) $(subst /,$(PATHSEP),$(filter-out $(FLASH_TOOL),$^))
 
-flash-all: bootrom/obj/bootrom.elf armsrc/obj/osimage.elf armsrc/obj/fpgaimage.elf $(FLASH_TOOL)
+flash-all: bootrom/obj/bootrom.elf armsrc/obj/osimage.elf $(FLASH_TOOL)
        $(FLASH_TOOL) $(FLASH_PORT) -b $(subst /,$(PATHSEP),$(filter-out $(FLASH_TOOL),$^))
 
 newtarbin:
index d85244c74cb126f710a5a496c169fea2b732dc6f..3140a0e7602c15795bcab6304d7aa78880dd3805 100644 (file)
@@ -10,7 +10,7 @@ APP_INCLUDES = apps.h
 
 #remove one of the following defines and comment out the relevant line
 #in the next section to remove that particular feature from compilation  
-APP_CFLAGS     = -DWITH_LF -DWITH_ISO15693 -DWITH_ISO14443a -DWITH_ISO14443b -DWITH_ICLASS -DWITH_LEGICRF -DWITH_HITAG  -DWITH_CRC -DON_DEVICE -fno-strict-aliasing -Os
+APP_CFLAGS     = -DWITH_LF -DWITH_ISO15693 -DWITH_ISO14443a -DWITH_ISO14443b -DWITH_ICLASS -DWITH_LEGICRF -DWITH_HITAG  -DWITH_CRC -DON_DEVICE -fno-strict-aliasing -ffunction-sections -fdata-sections
 #-DWITH_LCD 
 
 #SRC_LCD = fonts.c LCD.c
@@ -52,7 +52,8 @@ APP_CFLAGS += -I.
 # Do not move this inclusion before the definition of {THUMB,ASM,ARM}SRC
 include ../common/Makefile.common
 
-OBJS = $(OBJDIR)/osimage.s19 $(OBJDIR)/fpgaimage.s19
+OBJS = $(OBJDIR)/osimage.s19 
+#$(OBJDIR)/fpgaimage.s19
 
 all: $(OBJS)
 
@@ -65,11 +66,11 @@ $(OBJDIR)/fpga_hf.o: fpga_hf.bit
 $(OBJDIR)/fullimage.elf: $(VERSIONOBJ) $(OBJDIR)/fpga_lf.o $(OBJDIR)/fpga_hf.o $(THUMBOBJ) $(ARMOBJ)
        $(CC) $(LDFLAGS) -Wl,-T,ldscript,-Map,$(patsubst %.elf,%.map,$@) -o $@ $^ $(LIBS)
 
-$(OBJDIR)/fpgaimage.elf: $(OBJDIR)/fullimage.elf
-       $(OBJCOPY) -F elf32-littlearm --only-section .fpgaimage $^ $@  
+#$(OBJDIR)/fpgaimage.elf: $(OBJDIR)/fullimage.elf
+#      $(OBJCOPY) -F elf32-littlearm --only-section .fpgaimage $^ $@  
 
 $(OBJDIR)/osimage.elf: $(OBJDIR)/fullimage.elf
-       $(OBJCOPY) -F elf32-littlearm --remove-section .fpgaimage $^ $@
+       $(OBJCOPY) -F elf32-littlearm $^ $@
 
 tarbin: $(OBJS)
        $(TAR) $(TARFLAGS) ../proxmark3-$(platform)-bin.tar $(OBJS:%=armsrc/%) $(OBJS:%.s19=armsrc/%.elf)
index d0be3b6a0c25d991e0793888f8ea340cbad9fded..840b819643dcb21e49b7fc4159f138706e142fb6 100644 (file)
@@ -11,8 +11,7 @@ INCLUDE ../common/ldscript.common
 
 PHDRS
 {
-       fpgaimage PT_LOAD FLAGS(4);
-       text PT_LOAD;
+       text PT_LOAD FLAGS(5);
        data PT_LOAD;
        bss PT_LOAD;
 }
@@ -20,11 +19,6 @@ PHDRS
 ENTRY(Vector)
 SECTIONS
 {
-       .fpgaimage : {
-               *(fpga_lf_bit.data)
-               *(fpga_hf_bit.data)
-       } >fpgaimage :fpgaimage
-
        .start : {
                *(.startos)
        } >osimage :text
@@ -40,6 +34,8 @@ SECTIONS
        .rodata : {
                *(.rodata)
                *(.rodata.*)
+               *(fpga_lf_bit.data)
+               *(fpga_hf_bit.data)
                KEEP(*(.version_information))
        } >osimage :text
 
index 1bd23e5a7251c27f2682ee1c684de79b3e858db2..d6d686e18279eca0f42eba25131ad1c81659b6b6 100644 (file)
@@ -953,7 +953,7 @@ void CmdIOdemodFSK(int findone, int *high, int *low, int ledcontrol)
                        code = bytebits_to_byte(dest+idx,32);
                        code2 = bytebits_to_byte(dest+idx+32,32);
                        version = bytebits_to_byte(dest+idx+27,8); //14,4
-                       facilitycode = bytebits_to_byte(dest+idx+18,8) ;
+               facilitycode = bytebits_to_byte(dest+idx+18,8);
                        number = (bytebits_to_byte(dest+idx+36,8)<<8)|(bytebits_to_byte(dest+idx+45,8)); //36,9
 
                        crc = bytebits_to_byte(dest+idx+54,8);
index 2563cb18a51b22edc16a19dfa24ebbefdba9cf4d..f2f1cfd7a2800596038f5dc6f53896a92a715a7e 100644 (file)
@@ -414,7 +414,10 @@ int ASKmanDemod(const char *Cmd, bool verbose, bool emSearch)
        int invert=0;
        int clk=0;
        int maxErr=100;
-       
+       //param_getdec(Cmd, 0, &clk);
+       //param_getdec(Cmd, 1, &invert);
+       //maxErr = param_get32ex(Cmd, 2, 0xFFFFFFFF, 10);
+       //if (maxErr == 0xFFFFFFFF) maxErr=100;
        uint8_t BitStream[MAX_GRAPH_TRACE_LEN]={0};
        sscanf(Cmd, "%i %i %i", &clk, &invert, &maxErr);
        if (invert != 0 && invert != 1) {
@@ -677,7 +680,7 @@ int ASKbiphaseDemod(const char *Cmd, bool verbose)
        ans = sscanf(Cmd, "%i %i %i %i", &offset, &clk, &invert, &maxErr);
 
        if (ans>0)
-               ans = ASKrawDemod(Cmd+2, FALSE);
+               ans = ASKrawDemod(Cmd+1, FALSE);
        else
                ans = ASKrawDemod(Cmd, FALSE);
        if (!ans) {
@@ -1148,7 +1151,7 @@ int FSKrawDemod(const char *Cmd, bool verbose)
 
        if (strlen(Cmd)>0 && strlen(Cmd)<=2) {
                 if (rfLen==1){
-                       invert=1;   //if invert option only is used
+                       invert = 1;   //if invert option only is used
                        rfLen = 0;
                 }
        }
@@ -1958,7 +1961,7 @@ int NRZrawDemod(const char *Cmd, bool verbose)
                if (g_debugMode) PrintAndLog("Too many errors found, clk: %d, invert: %d, numbits: %d, errCnt: %d",clk,invert,BitLen,errCnt);
                return 0;
        } 
-       if (errCnt<0|| BitLen<16){  //throw away static - allow 1 and -1 (in case of threshold command first)
+       if (errCnt<0 || BitLen<16){  //throw away static - allow 1 and -1 (in case of threshold command first)
                if (g_debugMode) PrintAndLog("no data found, clk: %d, invert: %d, numbits: %d, errCnt: %d",clk,invert,BitLen,errCnt);
                return 0;
        }
index 7d967d5d68827a44b64180dfe841afe2833015ec..ed7e2c800950464fa6858d8825028b4a7713e7ee 100644 (file)
@@ -737,7 +737,7 @@ int CmdT55xxReadTrace(const char *Cmd)
        uint32_t icr     = PackBits(si, 3, DemodBuffer); si += 3;\r
        uint32_t year    = PackBits(si, 4, DemodBuffer); si += 4;\r
        uint32_t quarter = PackBits(si, 2, DemodBuffer); si += 2;\r
-       uint32_t lotid   = PackBits(si, 14, DemodBuffer); si += 14;\r
+       uint32_t lotid    = PackBits(si, 14, DemodBuffer); si += 14;\r
        uint32_t wafer   = PackBits(si, 5, DemodBuffer); si += 5;\r
        uint32_t dw      = PackBits(si, 15, DemodBuffer); \r
        \r
@@ -761,7 +761,7 @@ int CmdT55xxReadTrace(const char *Cmd)
        PrintAndLog(" CID                                     : 0x%02X (%d) - %s", cid, cid, GetModelStrFromCID(cid));\r
        PrintAndLog(" ICR IC Revision                         : %d",icr );\r
        PrintAndLog(" Manufactured");\r
-       PrintAndLog("     Year/Quarter : %d/%d",year, quarter );\r
+       PrintAndLog("     Year/Quarter : 20?%d/%d",year, quarter);\r
        PrintAndLog("     Lot ID       : %d", lotid );\r
        PrintAndLog("     Wafer number : %d", wafer);\r
        PrintAndLog("     Die Number   : %d", dw);\r
@@ -923,94 +923,96 @@ char * GetBitRateStr(uint32_t id){
        char *retStr = buf;\r
                switch (id){\r
                case 0: \r
-                       sprintf(retStr,"%d - RF/8",id);\r
+                       snprintf(retStr,sizeof(buf),"%d - RF/8",id);\r
                        break;\r
                case 1:\r
-                       sprintf(retStr,"%d - RF/16",id);\r
+                       snprintf(retStr,sizeof(buf),"%d - RF/16",id);\r
                        break;\r
                case 2:         \r
-                       sprintf(retStr,"%d - RF/32",id);\r
+                       snprintf(retStr,sizeof(buf),"%d - RF/32",id);\r
                        break;\r
                case 3:\r
-                       sprintf(retStr,"%d - RF/40",id);\r
+                       snprintf(retStr,sizeof(buf),"%d - RF/40",id);\r
                        break;\r
                case 4:\r
-                       sprintf(retStr,"%d - RF/50",id);\r
+                       snprintf(retStr,sizeof(buf),"%d - RF/50",id);\r
                        break;\r
                case 5:\r
-                       sprintf(retStr,"%d - RF/64",id);\r
+                       snprintf(retStr,sizeof(buf),"%d - RF/64",id);\r
                        break;\r
                case 6:\r
-                       sprintf(retStr,"%d - RF/100",id);\r
+                       snprintf(retStr,sizeof(buf),"%d - RF/100",id);\r
                        break;\r
                case 7:\r
-                       sprintf(retStr,"%d - RF/128",id);\r
+                       snprintf(retStr,sizeof(buf),"%d - RF/128",id);\r
                        break;\r
                default:\r
-                       sprintf(retStr,"%d - (Unknown)",id);\r
+                       snprintf(retStr,sizeof(buf),"%d - (Unknown)",id);\r
                        break;\r
                }\r
 \r
        return buf;\r
 }\r
 \r
+\r
 char * GetSaferStr(uint32_t id){\r
        static char buf[20];\r
        char *retStr = buf;\r
        \r
-       sprintf(retStr,"%d",id);\r
+       snprintf(retStr,sizeof(buf),"%d",id);\r
        if (id == 6) {\r
-               sprintf(retStr,"%d - passwd",id);\r
+               snprintf(retStr,sizeof(buf),"%d - passwd",id);\r
        }\r
        if (id == 9 ){\r
-               sprintf(retStr,"%d - testmode",id);\r
+               snprintf(retStr,sizeof(buf),"%d - testmode",id);\r
        }\r
        \r
        return buf;\r
 }\r
+\r
 char * GetModulationStr( uint32_t id){\r
        static char buf[60];\r
        char *retStr = buf;\r
        \r
        switch (id){\r
                case 0: \r
-                       sprintf(retStr,"%d - DIRECT (ASK/NRZ)",id);\r
+                       snprintf(retStr,sizeof(buf),"%d - DIRECT (ASK/NRZ)",id);\r
                        break;\r
                case 1:\r
-                       sprintf(retStr,"%d - PSK 1 phase change when input changes",id);\r
+                       snprintf(retStr,sizeof(buf),"%d - PSK 1 phase change when input changes",id);\r
                        break;\r
                case 2:         \r
-                       sprintf(retStr,"%d - PSK 2 phase change on bitclk if input high",id);\r
+                       snprintf(retStr,sizeof(buf),"%d - PSK 2 phase change on bitclk if input high",id);\r
                        break;\r
                case 3:\r
-                       sprintf(retStr,"%d - PSK 3 phase change on rising edge of input",id);\r
+                       snprintf(retStr,sizeof(buf),"%d - PSK 3 phase change on rising edge of input",id);\r
                        break;\r
                case 4:\r
-                       sprintf(retStr,"%d - FSK 1 RF/8  RF/5",id);\r
+                       snprintf(retStr,sizeof(buf),"%d - FSK 1 RF/8  RF/5",id);\r
                        break;\r
                case 5:\r
-                       sprintf(retStr,"%d - FSK 2 RF/8  RF/10",id);\r
+                       snprintf(retStr,sizeof(buf),"%d - FSK 2 RF/8  RF/10",id);\r
                        break;\r
                case 6:\r
-                       sprintf(retStr,"%d - FSK 1a RF/5  RF/8",id);\r
+                       snprintf(retStr,sizeof(buf),"%d - FSK 1a RF/5  RF/8",id);\r
                        break;\r
                case 7:\r
-                       sprintf(retStr,"%d - FSK 2a RF/10  RF/8",id);\r
+                       snprintf(retStr,sizeof(buf),"%d - FSK 2a RF/10  RF/8",id);\r
                        break;\r
                case 8:\r
-                       sprintf(retStr,"%d - Manschester",id);\r
+                       snprintf(retStr,sizeof(buf),"%d - Manschester",id);\r
                        break;\r
                case 16:\r
-                       sprintf(retStr,"%d - Biphase",id);\r
+                       snprintf(retStr,sizeof(buf),"%d - Biphase",id);\r
                        break;\r
                case 0x18:\r
-                       sprintf(retStr,"%d - Biphase a - AKA Conditional Dephase Encoding(CDP)",id);\r
+                       snprintf(retStr,sizeof(buf),"%d - Biphase a - AKA Conditional Dephase Encoding(CDP)",id);\r
                        break;\r
                case 17:\r
-                       sprintf(retStr,"%d - Reserved",id);\r
+                       snprintf(retStr,sizeof(buf),"%d - Reserved",id);\r
                        break;\r
                default:\r
-                       sprintf(retStr,"0x%02X (Unknown)",id);\r
+                       snprintf(retStr,sizeof(buf),"0x%02X (Unknown)",id);\r
                        break;\r
                }\r
        return buf;\r
@@ -1028,48 +1030,48 @@ char * GetModelStrFromCID(uint32_t cid){
 \r
 char * GetSelectedModulationStr( uint8_t id){\r
 \r
-       static char buf[16];\r
+       static char buf[20];\r
        char *retStr = buf;\r
 \r
        switch (id){\r
                case DEMOD_FSK:\r
-                       sprintf(retStr,"FSK");\r
+                       snprintf(retStr,sizeof(buf),"FSK");\r
                        break;\r
                case DEMOD_FSK1:\r
-                       sprintf(retStr,"FSK1");\r
+                       snprintf(retStr,sizeof(buf),"FSK1");\r
                        break;\r
                case DEMOD_FSK1a:\r
-                       sprintf(retStr,"FSK1a");\r
+                       snprintf(retStr,sizeof(buf),"FSK1a");\r
                        break;\r
                case DEMOD_FSK2:\r
-                       sprintf(retStr,"FSK2");\r
+                       snprintf(retStr,sizeof(buf),"FSK2");\r
                        break;\r
                case DEMOD_FSK2a:\r
-                       sprintf(retStr,"FSK2a");\r
+                       snprintf(retStr,sizeof(buf),"FSK2a");\r
                        break;\r
                case DEMOD_ASK:         \r
-                       sprintf(retStr,"ASK");\r
+                       snprintf(retStr,sizeof(buf),"ASK");\r
                        break;\r
                case DEMOD_NRZ:\r
-                       sprintf(retStr,"DIRECT/NRZ");\r
+                       snprintf(retStr,sizeof(buf),"DIRECT/NRZ");\r
                        break;\r
                case DEMOD_PSK1:\r
-                       sprintf(retStr,"PSK1");\r
+                       snprintf(retStr,sizeof(buf),"PSK1");\r
                        break;\r
                case DEMOD_PSK2:\r
-                       sprintf(retStr,"PSK2");\r
+                       snprintf(retStr,sizeof(buf),"PSK2");\r
                        break;\r
                case DEMOD_PSK3:\r
-                       sprintf(retStr,"PSK3");\r
+                       snprintf(retStr,sizeof(buf),"PSK3");\r
                        break;\r
                case DEMOD_BI:\r
-                       sprintf(retStr,"BIPHASE");\r
+                       snprintf(retStr,sizeof(buf),"BIPHASE");\r
                        break;\r
                case DEMOD_BIa:\r
-                       sprintf(retStr,"BIPHASEa - (CDP)");\r
+                       snprintf(retStr,sizeof(buf),"BIPHASEa - (CDP)");\r
                        break;\r
                default:\r
-                       sprintf(retStr,"(Unknown)");\r
+                       snprintf(retStr,sizeof(buf),"(Unknown)");\r
                        break;\r
                }\r
        return buf;\r
index c1a48dfc5bc8903e3350349eb603fe45d8c97cf8..ea57ec24986fd43d33558413788f8afe63309b3b 100644 (file)
@@ -1,6 +1,7 @@
 /*
 -----------------------------------------------------------------------------
- This code is licensed to you under the terms of the GNU GPL, version 2 or,
+ This code is licensed to you under the ter 
+ms of the GNU GPL, version 2 or,
  at your option, any later version. See the LICENSE.txt file for the text of
  the license.
 -----------------------------------------------------------------------------
@@ -13,9 +14,7 @@ MEMORY
 {
        bootphase1 : ORIGIN = 0x00100000, LENGTH = 0x200             /* Phase 1 bootloader: Copies real bootloader to RAM */
        bootphase2 : ORIGIN = 0x00100200, LENGTH = 0x2000 - 0x200    /* Main bootloader code, stored in Flash, executed from RAM */
-       fpgaimage  : ORIGIN = 0x00102000, LENGTH = 96k - 0x2000      /* Place where the FPGA image will end up */
-       //osimage    : ORIGIN = 0x00118000, LENGTH = 256K - 96k        /* Place where the main OS will end up */
-       osimage    : ORIGIN = 0x00118000, LENGTH = 256K - 96k        /* Place where the main OS will end up */
+       osimage    : ORIGIN = 0x00102000, LENGTH = 256K - 0x2000     /* Place where the main OS will end up */
        ram        : ORIGIN = 0x00200000, LENGTH = 64K - 0x20        /* RAM, minus small common area */
        commonarea : ORIGIN = 0x00200000 + 64K - 0x20, LENGTH = 0x20 /* Communication between bootloader and main OS */
 }
index d3c2a01c96cc8d9c96bf9a5629487db4d5f0322b..ffa807febf702baf80ff6e48c93037f8d60b0350 100644 (file)
@@ -34,8 +34,8 @@ int getHiLo(uint8_t *BitStream, size_t size, int *high, int *low, uint8_t fuzzHi
                if (BitStream[i] < *low) *low = BitStream[i];
        }
        if (*high < 123) return -1; // just noise
-       *high = (int)(((*high-128)*(((float)fuzzHi)/100))+128);
-       *low = (int)(((*low-128)*(((float)fuzzLo)/100))+128);
+       *high = ((*high-128)*fuzzHi + 12800)/100;
+       *low = ((*low-128)*fuzzLo + 12800)/100;
        return 1;
 }
 
@@ -559,28 +559,26 @@ size_t aggregate_bits(uint8_t *dest, size_t size, uint8_t rfLen,
        size_t idx=0;
        size_t numBits=0;
        uint32_t n=1;
-       uint16_t lowWaves = ((rfLen*100/fclow));  // (((float)(rfLen))/((float)fclow));
-       uint16_t highWaves = ((rfLen*100/fchigh)); // (((float)(rfLen))/((float)fchigh));
        for( idx=1; idx < size; idx++) {
                n++;
                if (dest[idx]==lastval) continue; 
                
                //if lastval was 1, we have a 1->0 crossing
                if (dest[idx-1]==1) {
-                       if (!numBits && n < lowWaves/100) {
+                       if (!numBits && n < rfLen/fclow) {
                                n=0;
                                lastval = dest[idx];
                                continue;
                        }
-                       n = (size_t)((((n*1000)/lowWaves)+5)/10);
+                       n = (n * fclow + rfLen/2) / rfLen;
                } else {// 0->1 crossing 
                        //test first bitsample too small
-                       if (!numBits && n < highWaves/100) {
+                       if (!numBits && n < rfLen/fchigh) {
                                n=0;
                                lastval = dest[idx];
                                continue;
                        }
-                       n = (((n*1000)/highWaves)+5)/10
+                       n = (n * fchigh + rfLen/2) / rfLen
                }
                if (n == 0) n = 1;
 
@@ -590,11 +588,11 @@ size_t aggregate_bits(uint8_t *dest, size_t size, uint8_t rfLen,
                lastval=dest[idx];
        }//end for
        // if valid extra bits at the end were all the same frequency - add them in
-       if (n > highWaves/100) {
+       if (n > rfLen/fchigh) {
                if (dest[idx-2]==1) {
-                       n=(((n*1000)/lowWaves)+5)/10;
+                       n = (n * fclow + rfLen/2) / rfLen;
                } else {
-                       n=(((n*1000)/highWaves)+5)/10;
+                       n = (n * fchigh + rfLen/2) / rfLen;
                }
                memset(dest+numBits, dest[idx-1]^invert , n);
                numBits += n;
Impressum, Datenschutz