Repository for CDMS code

Dependencies:   SimpleDMA mbed-rtos mbed eeprom

Fork of COM_MNG_TMTC_SIMPLE by Shreesha S

Committer:
chaithanyarss
Date:
Tue Jul 12 17:07:17 2016 +0000
Revision:
257:7d404e9dc9e2
Parent:
52:0bd68655c651
Child:
259:066a7abd2a5f
pipi;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
aniruddhv 52:0bd68655c651 1 #include "FreescaleIAP.h"
aniruddhv 52:0bd68655c651 2
chaithanyarss 257:7d404e9dc9e2 3 int strt_add = flash_size() - (2*SECTOR_SIZE);
chaithanyarss 257:7d404e9dc9e2 4 uint32_t flasharray[32]; //256+(3*1024)
chaithanyarss 257:7d404e9dc9e2 5 uint32_t INITIAL_FLASH[32];
chaithanyarss 257:7d404e9dc9e2 6 /*corrected*/
chaithanyarss 257:7d404e9dc9e2 7 int *nativeflash = (int*)strt_add;
chaithanyarss 257:7d404e9dc9e2 8
chaithanyarss 257:7d404e9dc9e2 9 void FLASH_INI()
chaithanyarss 257:7d404e9dc9e2 10 {
chaithanyarss 257:7d404e9dc9e2 11 uint32_t read[32];
chaithanyarss 257:7d404e9dc9e2 12 for(int i=0;i<32;i++)
chaithanyarss 257:7d404e9dc9e2 13 {
chaithanyarss 257:7d404e9dc9e2 14 read[i] = nativeflash[i];
chaithanyarss 257:7d404e9dc9e2 15 }
chaithanyarss 257:7d404e9dc9e2 16
chaithanyarss 257:7d404e9dc9e2 17 if(read[0] == -1)
chaithanyarss 257:7d404e9dc9e2 18 for(int j=0;j<32;j++)
chaithanyarss 257:7d404e9dc9e2 19 {
chaithanyarss 257:7d404e9dc9e2 20 FCTN_CDMS_WR_FLASH(j,INITIAL_FLASH[j]);
chaithanyarss 257:7d404e9dc9e2 21 }
chaithanyarss 257:7d404e9dc9e2 22 else
chaithanyarss 257:7d404e9dc9e2 23 {
chaithanyarss 257:7d404e9dc9e2 24 for(int j=0;j<32;j++)
chaithanyarss 257:7d404e9dc9e2 25 {
chaithanyarss 257:7d404e9dc9e2 26 read[j] = nativeflash[j];
chaithanyarss 257:7d404e9dc9e2 27 }
chaithanyarss 257:7d404e9dc9e2 28 EPS_V_A_EN_STATUS = read[0] >> 31;
chaithanyarss 257:7d404e9dc9e2 29 BAE_SW_STATUS = (read[0] << 1) >> 30;
chaithanyarss 257:7d404e9dc9e2 30 CDMS_SD_SW_STATUS = (read[0] << 3) >> 30;
chaithanyarss 257:7d404e9dc9e2 31 PL_BEE_SW_STATUS = (read[0] << 5) >> 30;
chaithanyarss 257:7d404e9dc9e2 32 PL_EPS_LATCH_SW_EN = (read[0] << 7) >> 31;
chaithanyarss 257:7d404e9dc9e2 33 RTC_INIT_STATUS = (read[0] << 8) >> 30;
chaithanyarss 257:7d404e9dc9e2 34 CDMS_RTC_DISABLE = (read[0] << 10) >> 31;
chaithanyarss 257:7d404e9dc9e2 35 CDMS_RESET_COUNTER = read[0];
chaithanyarss 257:7d404e9dc9e2 36 TIME_LATEST_CDSMS_RESET = read[1];
chaithanyarss 257:7d404e9dc9e2 37 COM_TC_BYTES_LIMIT = read[2] >> 16;
chaithanyarss 257:7d404e9dc9e2 38 COM_RX_CURRENT_MAX = (read[2] << 16) >> 24;
chaithanyarss 257:7d404e9dc9e2 39 COM_RX_DISABLE_TIMEOUT = read[2];
chaithanyarss 257:7d404e9dc9e2 40 COM_PA_TMP_HIGH = read[3] >> 24;
chaithanyarss 257:7d404e9dc9e2 41 COM_PA_RECOVERY_TIMEOUT = (read[3] << 8) >> 24;
chaithanyarss 257:7d404e9dc9e2 42 COM_SESSION_TIMEOUT = (read[3] << 16) << 24;
chaithanyarss 257:7d404e9dc9e2 43 COM_RSSI_MIN = read[3];
chaithanyarss 257:7d404e9dc9e2 44 SD_LIB_BLK_CURRENT = read[4] >> 16;
chaithanyarss 257:7d404e9dc9e2 45 }
chaithanyarss 257:7d404e9dc9e2 46
chaithanyarss 257:7d404e9dc9e2 47 }
aniruddhv 52:0bd68655c651 48
aniruddhv 52:0bd68655c651 49 /*Writing to the Flash*/
chaithanyarss 257:7d404e9dc9e2 50 void FCTN_CDMS_WR_FLASH(uint16_t j,uint32_t datablock) //j-position to write address ; fdata - flash data to be written
aniruddhv 52:0bd68655c651 51 {
chaithanyarss 257:7d404e9dc9e2 52 for(int i=0;i<5;i++)
aniruddhv 52:0bd68655c651 53 {
aniruddhv 52:0bd68655c651 54 flasharray[i]=nativeflash[i];
aniruddhv 52:0bd68655c651 55 }
chaithanyarss 257:7d404e9dc9e2 56 flasharray[j]=datablock;
aniruddhv 52:0bd68655c651 57 erase_sector(strt_add);
chaithanyarss 257:7d404e9dc9e2 58 program_flash(strt_add, (char*)flasharray,32);
aniruddhv 52:0bd68655c651 59 }
aniruddhv 52:0bd68655c651 60 /*End*/
aniruddhv 52:0bd68655c651 61
chaithanyarss 257:7d404e9dc9e2 62 /*===================================================MMS Functions=================================================*/
chaithanyarss 257:7d404e9dc9e2 63
chaithanyarss 257:7d404e9dc9e2 64 void WRITE_TO_FLASH(uint8_t *);
chaithanyarss 257:7d404e9dc9e2 65
chaithanyarss 257:7d404e9dc9e2 66 void WRITE_TO_FLASH(uint8_t *flash)
aniruddhv 52:0bd68655c651 67 {
chaithanyarss 257:7d404e9dc9e2 68 uint32_t FLASH[5];
chaithanyarss 257:7d404e9dc9e2 69 FLASH[0] = ((uint32_t)flash[0] << 24) | ((uint32_t)flash[1] << 16) | ((uint32_t)flash[2] << 8) | ((uint32_t)flash[3]);
chaithanyarss 257:7d404e9dc9e2 70 FLASH[1] = ((uint32_t)flash[4] << 24) | ((uint32_t)flash[5] << 16) | ((uint32_t)flash[6] << 8) | ((uint32_t)flash[7]);
chaithanyarss 257:7d404e9dc9e2 71 FLASH[2] = ((uint32_t)flash[8] << 24) | ((uint32_t)flash[9] << 16) | ((uint32_t)flash[10] << 8) | ((uint32_t)flash[11]);
chaithanyarss 257:7d404e9dc9e2 72 FLASH[3] = ((uint32_t)flash[12] << 24) | ((uint32_t)flash[13] << 16) | ((uint32_t)flash[14] << 8) | ((uint32_t)flash[15]);
chaithanyarss 257:7d404e9dc9e2 73 FLASH[4] = ((uint32_t)flash[16] << 24) | ((uint32_t)flash[17] << 16) | ((uint32_t)flash[18] << 8) | ((uint32_t)flash[19]);
chaithanyarss 257:7d404e9dc9e2 74 erase_sector(strt_add);
chaithanyarss 257:7d404e9dc9e2 75 program_flash(strt_add, (char*)FLASH,160);
chaithanyarss 257:7d404e9dc9e2 76 }
chaithanyarss 257:7d404e9dc9e2 77
chaithanyarss 257:7d404e9dc9e2 78 void FCTN_CDMS_WR_S_FLASH(uint16_t , uint32_t);
chaithanyarss 257:7d404e9dc9e2 79
chaithanyarss 257:7d404e9dc9e2 80 void FCTN_CDMS_WR_S_FLASH(uint16_t mid, uint32_t datavalue)
chaithanyarss 257:7d404e9dc9e2 81 {
chaithanyarss 257:7d404e9dc9e2 82
aniruddhv 52:0bd68655c651 83 }