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:47:05 2016 +0000
Revision:
215:570251b23c7b
Parent:
52:0bd68655c651
Child:
218:c63cdba0550f
Reset 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 215:570251b23c7b 7 /*Initiation of Flash*/
chaithanyarss 215:570251b23c7b 8 void FLASH_INIT()
chaithanyarss 215:570251b23c7b 9 {
chaithanyarss 215:570251b23c7b 10 uint32_t read[8];
chaithanyarss 215:570251b23c7b 11 for(int i=0;i<8;i++)
chaithanyarss 215:570251b23c7b 12 {
chaithanyarss 215:570251b23c7b 13 read[i] = FCTN_CDMS_RD_FLASH(i);
chaithanyarss 215:570251b23c7b 14 //printf("\n\r val is read after starting %x ",read[i]);
chaithanyarss 215:570251b23c7b 15 }
chaithanyarss 215:570251b23c7b 16
chaithanyarss 215:570251b23c7b 17 if(read[0] == -1)
chaithanyarss 215:570251b23c7b 18 for(int j=0;j<8;j++)
chaithanyarss 215:570251b23c7b 19 {
chaithanyarss 215:570251b23c7b 20 FCTN_CDMS_WR_FLASH(j,ARR_INITIAL_VAL[j]);
chaithanyarss 215:570251b23c7b 21 }
chaithanyarss 215:570251b23c7b 22 else
chaithanyarss 215:570251b23c7b 23 {
chaithanyarss 215:570251b23c7b 24 for(int j=0;j<8;j++)
chaithanyarss 215:570251b23c7b 25 {
chaithanyarss 215:570251b23c7b 26 read[j] = FCTN_CDMS_RD_FLASH(j);
chaithanyarss 215:570251b23c7b 27 }
chaithanyarss 215:570251b23c7b 28 ACS_ATS_STATUS = read[0]>>24;
chaithanyarss 215:570251b23c7b 29 ACS_TR_XY_SW_STATUS = ((uint8_t)(read[0]>>22))&0x03;
chaithanyarss 215:570251b23c7b 30 ACS_TR_Z_SW_STATUS = (read[0]>>20)&0x03;
chaithanyarss 215:570251b23c7b 31 ACS_DETUMBLING_ALGO_TYPE = (read[0]>>19)&0x01;
chaithanyarss 215:570251b23c7b 32 ACS_STATE = (read[0]>>16)&0x07;
chaithanyarss 215:570251b23c7b 33 BCN_TX_SW_STATUS = ((uint8_t)(read[0]>>14))&0x03;
chaithanyarss 215:570251b23c7b 34 BCN_SPND_TX = ((uint8_t)(read[0]>>13))&0x01;
chaithanyarss 215:570251b23c7b 35 BCN_FEN = ((uint8_t)(read[0]>>12))&0x01;
chaithanyarss 215:570251b23c7b 36 BCN_LONG_MSG_TYPE = ((uint8_t)(read[0]>>11))&0x01;
chaithanyarss 215:570251b23c7b 37 EPS_BTRY_HTR_AUTO = ((uint8_t)(read[0]>>10))&0x03;//EPS_BATTERY_HEATER_ENABLE
chaithanyarss 215:570251b23c7b 38 //now two spares in telemetry[5]
chaithanyarss 215:570251b23c7b 39
chaithanyarss 215:570251b23c7b 40 //updating the reset counter
chaithanyarss 215:570251b23c7b 41 BAE_RESET_COUNTER = ((uint8_t)(read[0]))+1;
chaithanyarss 215:570251b23c7b 42 read[0]=(read[0]&0xffffff00) | (uint32_t)BAE_RESET_COUNTER;
chaithanyarss 215:570251b23c7b 43 FCTN_CDMS_WR_FLASH(0,read[0]);
chaithanyarss 215:570251b23c7b 44
chaithanyarss 215:570251b23c7b 45
chaithanyarss 215:570251b23c7b 46 EPS_SOC_LEVEL_12 = (uint8_t)(read[1]>>24);
chaithanyarss 215:570251b23c7b 47 EPS_SOC_LEVEL_23 = (uint8_t)(read[1]>>16);
chaithanyarss 215:570251b23c7b 48 ACS_MAG_TIME_DELAY = (uint8_t)(read[1]>>8);
chaithanyarss 215:570251b23c7b 49 ACS_DEMAG_TIME_DELAY = (uint8_t)read[1];
chaithanyarss 215:570251b23c7b 50
chaithanyarss 215:570251b23c7b 51 EPS_BAT_TEMP_LOW = (uint8_t)(read[2]>>24);
chaithanyarss 215:570251b23c7b 52 EPS_BAT_TEMP_HIGH = (uint8_t)(read[2]>>16);
chaithanyarss 215:570251b23c7b 53 EPS_BAT_TEMP_DEFAULT = (uint8_t)(read[2]>>8);
chaithanyarss 215:570251b23c7b 54
chaithanyarss 215:570251b23c7b 55 ACS_MM_X_COMSN = (uint16_t)(read[3]>>16);
chaithanyarss 215:570251b23c7b 56 ACS_MM_Y_COMSN = (uint16_t)read[3];
chaithanyarss 215:570251b23c7b 57
chaithanyarss 215:570251b23c7b 58 ACS_MG_X_COMSN = (uint16_t)(read[4]>>16);
chaithanyarss 215:570251b23c7b 59 ACS_MG_Y_COMSN = (uint16_t)read[4];
chaithanyarss 215:570251b23c7b 60
chaithanyarss 215:570251b23c7b 61 ACS_MM_Z_COMSN = (uint16_t)(read[5]>>16);
chaithanyarss 215:570251b23c7b 62 ACS_MG_Z_COMSN = (uint16_t)read[5];
chaithanyarss 215:570251b23c7b 63
chaithanyarss 215:570251b23c7b 64 ACS_Z_FIXED_MOMENT = (uint16_t)(read[6]>>16);//assignvalues
chaithanyarss 215:570251b23c7b 65
chaithanyarss 215:570251b23c7b 66 }
chaithanyarss 215:570251b23c7b 67
chaithanyarss 215:570251b23c7b 68 }
chaithanyarss 215:570251b23c7b 69
chaithanyarss 215:570251b23c7b 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 }