arm studio build

Dependencies:   libxDot-mbed5

Revision:
13:1f3a8d0be511
Parent:
12:7944e4dbe853
Child:
14:fc836a5a5d2f
--- a/src/wbit_util.cpp	Thu Jan 17 14:21:33 2019 +0000
+++ b/src/wbit_util.cpp	Thu Jan 17 20:17:31 2019 +0000
@@ -14,12 +14,10 @@
 uint8_t key_AppEUI[] = { 0x90, 0xF1, 0x47, 0x90, 0x6C, 0x48, 0x1D, 0x29 };   //AppEui                              
 uint8_t key_AppKey[] = { 0x0F, 0xF9, 0xA2, 0x90, 0x2E, 0xAA, 0x6B, 0x8C, 0x6A, 0x4E, 0xFD, 0x67, 0xF9, 0xA6, 0xF3, 0xD3 };   ////OTAA appkey    => loriot "Appkey" -> common to all nodes    
 
-
-//ADP keys: for xdot spoofer eui ---> need to be uploaded from proc, using EUI: 
-static uint8_t network_address[] =  { 0x01,0x48,0xF8,0x9A}; //0148F89A
-static uint8_t network_session_key[] = { 0x67, 0x9B, 0x67, 0x1F, 0x4B, 0xF4, 0x04, 0xD9, 0xD7, 0x1F, 0x9E, 0x00, 0xB3, 0x5D, 0x02, 0x48 };
-static uint8_t data_session_key[] =    { 0xB5, 0xB4, 0x2A, 0xB0, 0x2C, 0xC7, 0x8F, 0x5D, 0x83, 0x99, 0x73, 0xB7, 0x24, 0x63, 0x6B, 0xBC };
-
+//ADP keys: for xdot spoofer eui ---> need to be uploaded from proc, using EUI: #spoofer (EUI 00-80-00-00-04-00-FF-FF) 
+static uint8_t network_address[] =  {0x01,0x59,0xE2,0xC7};
+static uint8_t network_session_key[] = {0xBA, 0xEF, 0x4D, 0xA3, 0x66, 0xD1, 0x85, 0xDE, 0xB1, 0xCD, 0x79, 0x15, 0xC7, 0xEB, 0x72, 0x35};
+static uint8_t data_session_key[] = {0xF9,0x13,0x94,0x0D,0x12,0x95,0x96,0x5A,0xF4,0x34,0xBB,0xA9,0x8E,0x2A,0x83,0x10};
 
 
 //============================================================================
@@ -62,7 +60,7 @@
             pc.printf(" %x",pNvm->key_AppKey[i]);        
         pc.printf("\r\nbLogOutputOn: %d ",pNvm->bLogOutputOn); 
 
-        pc.printf("\r\n static backup keys:"); 
+        pc.printf("\r\nstatic backup keys:"); 
         pc.printf("\r\nkey_AppEUI:");      
         for (i = 0; i < sizeof(key_AppEUI);i++) 
             pc.printf(" %x",key_AppEUI[i]);
@@ -83,15 +81,28 @@
         pc.printf("\r\nnetworkSessionKey:");      
         for (i = 0; i < 16;i++) 
             pc.printf(" %x",pNvmABP->key_nsk[i]);
-        pc.printf("\r\n:appicationSessonKey"); 
+        pc.printf("\r\nappicationSessonKey"); 
         for (i = 0; i < 16; i++)
             pc.printf(" %x",pNvmABP->key_aps[i]);        
-        pc.printf("\r\n:DevAddr");             
+        pc.printf("\r\nDevAddr");             
         for (i = 0 ; i < 8; i++)
             pc.printf(" %x",pNvmABP->devAdr[i]);        
      }  
      if(verbose)pc.printf("\r\n************************************************************\r\n");      
-}                              
+}   
+//==============================================================================
+//getChkSum
+//compute chksum
+// *pData : pointer to byte data array
+// len    : len of byte data array
+//==============================================================================
+uint8_t getChkSum(uint8_t *pData,uint8_t len ){
+    uint8_t i;
+    uint8_t chksum= 0;      
+    for (i = 0 ; i < len;i++)chksum += pData[i];
+    return chksum;    
+}   
+/*                        
 //==============================================================================
 //getNvmChkSum
 //compute chksum for nvm data; don't include chksum byte in nvm struc
@@ -103,14 +114,15 @@
     
     for (i = 0 ; i < sizeof(nvm)-1;i++)chksum += pData[i];
     return chksum;    
-}    
+} 
+*/   
 //==============================================================================
 //getNvmADPChkSum
 //compute chksum for nvm data; don't include chksum byte in nvm struc
 // TODO: COMBINE TWO CHKSUM PROCEDURES
 //==============================================================================
-uint8_t getNvmABPChkSum(nvmABP *pNvmABP){
-    
+/*
+uint8_t getNvmABPChkSum(nvmABP *pNvmABP){    
     uint8_t i;
     uint8_t chksum= 0;   
     uint8_t *pData = (uint8_t *)pNvmABP;
@@ -118,12 +130,15 @@
     for (i = 0 ; i < sizeof(nvmABP)-1;i++)chksum += pData[i];
     return chksum;       
 }
+*/
 //==============================================================================
 //nvmWrite
 //write nvmData struc to nvm memory
 //==============================================================================
 bool nvmWrite(nvm *pNvm){   
-   pNvm->chksum = getNvmChkSum(pNvm);
+   //pNvm->chksum = getNvmChkSum(pNvm);
+   uint8_t len = sizeof(pNvm)-1; //doesn't include chksum byte
+   pNvm->chksum = getChkSum((uint8_t *)pNvm,len);
    printNmvData(pNvm);
    return dot->nvmWrite(NVM_ADDR_OTAA,pNvm,sizeof(nvm));     
 }
@@ -132,13 +147,16 @@
 //write nvmABPData struc to nvm memory   TODO: WRITE PROCEDUREES
 //==============================================================================
 bool nvmWriteABP(nvmABP *pNvmABP){   
-   pNvmABP->chksum = getNvmABPChkSum(pNvmABP);
+//   pNvmABP->chksum = getNvmABPChkSum(pNvmABP);
+   uint8_t len = sizeof(pNvmABP)-1; //doesn't include chksum byte
+   pNvmABP->chksum = getChkSum((uint8_t *)pNvmABP,len);
+   if(verbose)pc.printf("\r\n writing ABP creds to nvm:"); 
    printNvmABPData(pNvmABP);
-   return dot->nvmWrite(NVM_ADDR_OTAA,pNvmABP,sizeof(nvmABP));     
+   return dot->nvmWrite(NVM_ADDR_ABP,pNvmABP,sizeof(nvmABP));     
 }
 //==============================================================================
 //nvmRestorekeys
-//restore hard coded keys to nvm and also logdisplay enable/disable
+//restore OTAA hard coded keys to nvm and also logdisplay enable/disable
 //==============================================================================
 bool nvmRestore(nvm *pNvm){
     uint8_t i;
@@ -148,8 +166,10 @@
     for (i = 0; i < sizeof(key_AppKey);i++){
         pNvm->key_AppKey[i] = key_AppKey[i];   
     }
-    pNvm->chksum = getNvmChkSum(pNvm);
-    if(verbose)pc.printf("\r\n restoring backup keys:"); 
+    uint8_t len = sizeof(pNvm)-1; //doesn't include chksum byte
+    pNvm->chksum = getChkSum((uint8_t *)pNvm,len);
+    //pNvm->chksum = getNvmChkSum(pNvm);
+    if(verbose)pc.printf("\r\n restoring OTAA backup keys:"); 
     printNmvData(pNvm);
     return dot->nvmWrite(NVM_ADDR_OTAA,pNvm,sizeof(nvm));    
 }       
@@ -159,12 +179,13 @@
 //- if bad chksum then default to hard code network keys 
 //==============================================================================
 bool nvmRead(nvm *pNvm){     
-   uint8_t i;  
    dot->nvmRead(NVM_ADDR_OTAA,pNvm,sizeof(nvm));  
-   uint8_t chksum = getNvmChkSum(pNvm);
+   uint8_t len = sizeof(pNvm)-1; //doesn't include chksum byte
+   uint8_t chksum = getChkSum((uint8_t *)pNvm,len);
+   //uint8_t chksum = getNvmChkSum(pNvm);
    
    if (chksum == pNvm->chksum){
-       logInfo("nvmRead: chksum ok");           
+       logInfo("nvmRead: nvm OTAA chksum ok");           
        return true;
    }    
    return false;
@@ -176,12 +197,13 @@
 //- if bad chksum then default to hard code network keys 
 //==============================================================================
 bool nvmReadABP(nvmABP *pNvmABP){     
-   uint8_t i;  
-   dot->nvmRead(NVM_ADDR_OTAA,pNvmABP,sizeof(nvmABP));  
-   uint8_t chksum = getNvmABPChkSum(pNvmABP);
+   dot->nvmRead(NVM_ADDR_ABP,pNvmABP,sizeof(nvmABP));  
+   //uint8_t chksum = getNvmABPChkSum(pNvmABP);
+   uint8_t len = sizeof(pNvmABP)-1; //doesn't include chksum byte
+   uint8_t chksum = getChkSum((uint8_t *)pNvmABP,len);
    
    if (chksum == pNvmABP->chksum){
-       logInfo("nvmRead: chksum ok");           
+       logInfo("nvmRead: ABP chksum ok");           
        return true;
    }    
    return false;