CDMS_CODE_samp_23SEP_DMA_flag

Dependencies:   FreescaleIAP SimpleDMA mbed-rtos mbed

Fork of CDMS_CODE_samp_23SEP_DMA by iitm sat

Committer:
chaithanyarss
Date:
Sun Jul 03 09:33:33 2016 +0000
Revision:
214:6848a51af734
Parent:
52:0bd68655c651
Child:
218:c63cdba0550f
Reset CDMS added;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
aniruddhv 52:0bd68655c651 1 #include "FreescaleIAP.h"
aniruddhv 52:0bd68655c651 2
aniruddhv 52:0bd68655c651 3 int strt_add = flash_size() - (4*SECTOR_SIZE);
aniruddhv 52:0bd68655c651 4 uint32_t flasharray[256+(3*1024)];
aniruddhv 52:0bd68655c651 5 char *nativeflash = (char*)strt_add;
aniruddhv 52:0bd68655c651 6
chaithanyarss 214:6848a51af734 7 /*Initiation of Flash*/
chaithanyarss 214:6848a51af734 8 void FLASH_INIT()
chaithanyarss 214:6848a51af734 9 {
chaithanyarss 214:6848a51af734 10 uint32_t read[8];
chaithanyarss 214:6848a51af734 11 for(int i=0;i<8;i++)
chaithanyarss 214:6848a51af734 12 {
chaithanyarss 214:6848a51af734 13 read[i] = FCTN_CDMS_RD_FLASH(i);
chaithanyarss 214:6848a51af734 14 //printf("\n\r val is read after starting %x ",read[i]);
chaithanyarss 214:6848a51af734 15 }
chaithanyarss 214:6848a51af734 16
chaithanyarss 214:6848a51af734 17 if(read[0] == -1)
chaithanyarss 214:6848a51af734 18 for(int j=0;j<8;j++)
chaithanyarss 214:6848a51af734 19 {
chaithanyarss 214:6848a51af734 20 FCTN_CDMS_WR_FLASH(j,ARR_INITIAL_VAL[j]);
chaithanyarss 214:6848a51af734 21 }
chaithanyarss 214:6848a51af734 22 else
chaithanyarss 214:6848a51af734 23 {
chaithanyarss 214:6848a51af734 24 for(int j=0;j<8;j++)
chaithanyarss 214:6848a51af734 25 {
chaithanyarss 214:6848a51af734 26 read[j] = FCTN_CDMS_RD_FLASH(j);
chaithanyarss 214:6848a51af734 27 }
chaithanyarss 214:6848a51af734 28 ACS_ATS_STATUS = read[0]>>24;
chaithanyarss 214:6848a51af734 29 ACS_TR_XY_SW_STATUS = ((uint8_t)(read[0]>>22))&0x03;
chaithanyarss 214:6848a51af734 30 ACS_TR_Z_SW_STATUS = (read[0]>>20)&0x03;
chaithanyarss 214:6848a51af734 31 ACS_DETUMBLING_ALGO_TYPE = (read[0]>>19)&0x01;
chaithanyarss 214:6848a51af734 32 ACS_STATE = (read[0]>>16)&0x07;
chaithanyarss 214:6848a51af734 33 BCN_TX_SW_STATUS = ((uint8_t)(read[0]>>14))&0x03;
chaithanyarss 214:6848a51af734 34 BCN_SPND_TX = ((uint8_t)(read[0]>>13))&0x01;
chaithanyarss 214:6848a51af734 35 BCN_FEN = ((uint8_t)(read[0]>>12))&0x01;
chaithanyarss 214:6848a51af734 36 BCN_LONG_MSG_TYPE = ((uint8_t)(read[0]>>11))&0x01;
chaithanyarss 214:6848a51af734 37 EPS_BTRY_HTR_AUTO = ((uint8_t)(read[0]>>10))&0x03;//EPS_BATTERY_HEATER_ENABLE
chaithanyarss 214:6848a51af734 38 //now two spares in telemetry[5]
chaithanyarss 214:6848a51af734 39
chaithanyarss 214:6848a51af734 40 //updating the reset counter
chaithanyarss 214:6848a51af734 41 BAE_RESET_COUNTER = ((uint8_t)(read[0]))+1;
chaithanyarss 214:6848a51af734 42 read[0]=(read[0]&0xffffff00) | (uint32_t)BAE_RESET_COUNTER;
chaithanyarss 214:6848a51af734 43 FCTN_CDMS_WR_FLASH(0,read[0]);
chaithanyarss 214:6848a51af734 44
chaithanyarss 214:6848a51af734 45
chaithanyarss 214:6848a51af734 46 EPS_SOC_LEVEL_12 = (uint8_t)(read[1]>>24);
chaithanyarss 214:6848a51af734 47 EPS_SOC_LEVEL_23 = (uint8_t)(read[1]>>16);
chaithanyarss 214:6848a51af734 48 ACS_MAG_TIME_DELAY = (uint8_t)(read[1]>>8);
chaithanyarss 214:6848a51af734 49 ACS_DEMAG_TIME_DELAY = (uint8_t)read[1];
chaithanyarss 214:6848a51af734 50
chaithanyarss 214:6848a51af734 51 EPS_BAT_TEMP_LOW = (uint8_t)(read[2]>>24);
chaithanyarss 214:6848a51af734 52 EPS_BAT_TEMP_HIGH = (uint8_t)(read[2]>>16);
chaithanyarss 214:6848a51af734 53 EPS_BAT_TEMP_DEFAULT = (uint8_t)(read[2]>>8);
chaithanyarss 214:6848a51af734 54
chaithanyarss 214:6848a51af734 55 ACS_MM_X_COMSN = (uint16_t)(read[3]>>16);
chaithanyarss 214:6848a51af734 56 ACS_MM_Y_COMSN = (uint16_t)read[3];
chaithanyarss 214:6848a51af734 57
chaithanyarss 214:6848a51af734 58 ACS_MG_X_COMSN = (uint16_t)(read[4]>>16);
chaithanyarss 214:6848a51af734 59 ACS_MG_Y_COMSN = (uint16_t)read[4];
chaithanyarss 214:6848a51af734 60
chaithanyarss 214:6848a51af734 61 ACS_MM_Z_COMSN = (uint16_t)(read[5]>>16);
chaithanyarss 214:6848a51af734 62 ACS_MG_Z_COMSN = (uint16_t)read[5];
chaithanyarss 214:6848a51af734 63
chaithanyarss 214:6848a51af734 64 ACS_Z_FIXED_MOMENT = (uint16_t)(read[6]>>16);//assignvalues
chaithanyarss 214:6848a51af734 65
chaithanyarss 214:6848a51af734 66 }
chaithanyarss 214:6848a51af734 67
chaithanyarss 214:6848a51af734 68 }
chaithanyarss 214:6848a51af734 69
chaithanyarss 214:6848a51af734 70
aniruddhv 52:0bd68655c651 71 /*Writing to the Flash*/
aniruddhv 52:0bd68655c651 72 void FCTN_CDMS_WR_FLASH(uint16_t j,uint32_t block)
aniruddhv 52:0bd68655c651 73 {
aniruddhv 52:0bd68655c651 74 for(int64_t i=0;i<(256+(3*1024));i++)
aniruddhv 52:0bd68655c651 75 {
aniruddhv 52:0bd68655c651 76 flasharray[i]=nativeflash[i];
aniruddhv 52:0bd68655c651 77 }
aniruddhv 52:0bd68655c651 78 flasharray[j]=block;
aniruddhv 52:0bd68655c651 79 erase_sector(strt_add);
aniruddhv 52:0bd68655c651 80 program_flash(strt_add, (char*)&flasharray,4*(256+(1024*3)));
aniruddhv 52:0bd68655c651 81 }
aniruddhv 52:0bd68655c651 82
aniruddhv 52:0bd68655c651 83 /*Reading from Flash*/
aniruddhv 52:0bd68655c651 84 uint32_t FCTN_CDMS_RD_FLASH(uint16_t j)
aniruddhv 52:0bd68655c651 85 {
aniruddhv 52:0bd68655c651 86 for(int64_t i=0;i<(256+(3*1024));i++)
aniruddhv 52:0bd68655c651 87 {
aniruddhv 52:0bd68655c651 88 flasharray[i]=nativeflash[i];
aniruddhv 52:0bd68655c651 89 }
aniruddhv 52:0bd68655c651 90 return flasharray[j];
aniruddhv 52:0bd68655c651 91 }