CDMS_CODE_samp_23SEP_DMA_flag

Dependencies:   FreescaleIAP SimpleDMA mbed-rtos mbed

Fork of CDMS_CODE_samp_23SEP_DMA by iitm sat

Revision:
214:6848a51af734
Parent:
52:0bd68655c651
Child:
218:c63cdba0550f
--- a/Flash.h	Sat Jul 02 15:28:21 2016 +0000
+++ b/Flash.h	Sun Jul 03 09:33:33 2016 +0000
@@ -4,6 +4,70 @@
 uint32_t flasharray[256+(3*1024)];
 char *nativeflash = (char*)strt_add;
 
+/*Initiation of Flash*/
+void FLASH_INIT()
+{
+    uint32_t read[8]; 
+    for(int i=0;i<8;i++)
+        {  
+            read[i] = FCTN_CDMS_RD_FLASH(i);
+            //printf("\n\r val is read after starting %x  ",read[i]);
+        }
+            
+    if(read[0] == -1)
+        for(int j=0;j<8;j++)
+            {   
+                FCTN_CDMS_WR_FLASH(j,ARR_INITIAL_VAL[j]); 
+            } 
+    else
+       {
+        for(int j=0;j<8;j++)
+            {   
+                read[j] = FCTN_CDMS_RD_FLASH(j);
+            }
+        ACS_ATS_STATUS  = read[0]>>24;
+        ACS_TR_XY_SW_STATUS = ((uint8_t)(read[0]>>22))&0x03;
+        ACS_TR_Z_SW_STATUS = (read[0]>>20)&0x03;
+        ACS_DETUMBLING_ALGO_TYPE = (read[0]>>19)&0x01;
+        ACS_STATE = (read[0]>>16)&0x07;
+        BCN_TX_SW_STATUS = ((uint8_t)(read[0]>>14))&0x03;
+        BCN_SPND_TX = ((uint8_t)(read[0]>>13))&0x01;
+        BCN_FEN = ((uint8_t)(read[0]>>12))&0x01;
+        BCN_LONG_MSG_TYPE = ((uint8_t)(read[0]>>11))&0x01;
+        EPS_BTRY_HTR_AUTO = ((uint8_t)(read[0]>>10))&0x03;//EPS_BATTERY_HEATER_ENABLE
+        //now two spares in telemetry[5]
+        
+        //updating the reset counter
+        BAE_RESET_COUNTER = ((uint8_t)(read[0]))+1;
+        read[0]=(read[0]&0xffffff00) | (uint32_t)BAE_RESET_COUNTER;
+        FCTN_CDMS_WR_FLASH(0,read[0]);
+        
+                
+        EPS_SOC_LEVEL_12 = (uint8_t)(read[1]>>24); 
+        EPS_SOC_LEVEL_23 = (uint8_t)(read[1]>>16);
+        ACS_MAG_TIME_DELAY = (uint8_t)(read[1]>>8);
+        ACS_DEMAG_TIME_DELAY = (uint8_t)read[1];
+                
+        EPS_BAT_TEMP_LOW = (uint8_t)(read[2]>>24);
+        EPS_BAT_TEMP_HIGH = (uint8_t)(read[2]>>16);
+        EPS_BAT_TEMP_DEFAULT = (uint8_t)(read[2]>>8);
+                                                                    
+        ACS_MM_X_COMSN = (uint16_t)(read[3]>>16);                                                                
+        ACS_MM_Y_COMSN = (uint16_t)read[3];
+                                                                    
+        ACS_MG_X_COMSN = (uint16_t)(read[4]>>16);
+        ACS_MG_Y_COMSN = (uint16_t)read[4];
+                                                                
+        ACS_MM_Z_COMSN = (uint16_t)(read[5]>>16);
+        ACS_MG_Z_COMSN = (uint16_t)read[5];
+                                                                    
+        ACS_Z_FIXED_MOMENT = (uint16_t)(read[6]>>16);//assignvalues 
+            
+        }
+    
+}
+
+
 /*Writing to the Flash*/
 void FCTN_CDMS_WR_FLASH(uint16_t j,uint32_t block)
 {
@@ -15,7 +79,6 @@
     erase_sector(strt_add);
     program_flash(strt_add, (char*)&flasharray,4*(256+(1024*3)));
 }
-/*End*/
 
 /*Reading from Flash*/
 uint32_t FCTN_CDMS_RD_FLASH(uint16_t j)