Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: FreescaleIAP SimpleDMA mbed-rtos mbed
Fork of CDMS_CODE_samp_23SEP_DMA by
Revision 255:642ea552ac77, committed 2016-07-11
- Comitter:
- chaithanyarss
- Date:
- Mon Jul 11 14:33:02 2016 +0000
- Parent:
- 251:c766afa330a3
- Child:
- 256:0f9aeeaf5a1d
- Commit message:
- Integration and Testing is in progress
Changed in this revision
--- a/CDMS_HK.h Mon Jul 11 12:30:41 2016 +0000
+++ b/CDMS_HK.h Mon Jul 11 14:33:02 2016 +0000
@@ -1,5 +1,3 @@
-
-
void FCTN_CDMS_HK_MAIN();
void FCTN_CDMS_HK();
void VERIFY_COMRX();
@@ -41,8 +39,8 @@
{
while(1)
{
+ gHK_THREAD->signal_wait(HK_SIGNAL);
gPC.printf("Entering HK thread");
- gHK_THREAD->signal_wait(HK_SIGNAL);
gMutex.lock();
@@ -56,29 +54,28 @@
HANDLE_HW_FAULTS();
FUNC_CDMS_GPIO_STATUS(); //yet to be done
- uint8_t CDMS_quant[19];
+ uint8_t CDMS_quant[20];
+ CDMS_quant[1]= (uint8_t)quant_data.CDMS_temp_quant;
+ CDMS_quant[2]= (uint8_t)RSSI_volatge;
for(int i=0; i<16; i++) {
- CDMS_quant[i]= (uint8_t)quant_data.temp_quant[i];
+ CDMS_quant[i+4]= (uint8_t)quant_data.temp_quant[i];
}
- CDMS_quant[16]= (uint8_t)RSSI_volatge;
- CDMS_quant[17]= (uint8_t)quant_data.CDMS_temp_quant;
minMaxHkData();
- uint64_t time = FCTN_CDMS_RD_RTC(); //Reading Time from RTC
- gPC.printf("0x%08X \n",time);
- time = time>>7;
- uint32_t HK_time = (uint32_t)time;
- for(int i = 0; i<4; i++)
- CDMS_HEALTH_DATA[i] = HK_time >> i;
+ CDMS_HEALTH_DATA[1] = GPIO_STATUS; //Reading GPIO Pins
+ CDMS_HEALTH_DATA[0] = GPIO_STATUS >> 8;
+ COLLECT_CDMS_RAM();
+ for(int i = 0;i<84;i++)
+ CDMS_HEALTH_DATA[2+i] = CDMS_RAM[i]; //Reading RAM parameters
+ for(int i = 0;i<20;i++) //Collecting Data from Temp sensors
+ CDMS_HEALTH_DATA[86+i] = CDMS_quant[i];
- // Here: Have to FIT flash data.
- for(int i = 0; i<19; i++) //Collecting Data from Temp sensors
- CDMS_HEALTH_DATA[i+24] = CDMS_quant[i];
+ // Here: Have to FIT flash data.
+
+ uint64_t time = FCTN_CDMS_RD_RTC() >> 7; //Reading Time from RTC
+ for(int i = 124; i<128; i++)
+ CDMS_HEALTH_DATA[i] = time >> i*8;
- COLLECT_CDMS_RAM(); //Reading RAM parameters
-
- CDMS_HEALTH_DATA[126] = GPIO_STATUS; //Reading GPIO Pins
- CDMS_HEALTH_DATA[127] = GPIO_STATUS >> 8;
FCTN_SD_MNGR(); //Adding FSC & TMID to TM frame
CDMS_HK_FRAME[0] = 0x20;
CDMS_HK_FRAME[1] = FSC_CURRENT[4]+1;
@@ -91,7 +88,7 @@
uint16_t crc = crc16_gen(CDMS_HK_FRAME,132); /*Adding CRC to TM frame*/
CDMS_HK_FRAME[133] = crc;
CDMS_HK_FRAME[132] = crc >> 8;
-
+
exor(CDMS_HK_FRAME);
CDMS_HEALTH.convolutionEncode(CDMS_HK_FRAME , convoluted_CDMS_HK);
CDMS_HEALTH.convolutionEncode(CDMS_HK_FRAME + 67, convoluted_CDMS_HK + 135);
@@ -100,7 +97,7 @@
for(int i=0; i<288; i++)
CDMS_HEALTH_FINAL[i] = interleave_CDMS_HK[i];
- //SD_WRITE(CDMS_HEALTH_FINAL,FSC_CURRENT[4]+1,4);
+ SD_WRITE(CDMS_HEALTH_FINAL,FSC_CURRENT[4]+1,4);
gPC.printf("\rCompleted CDMS HK\n");
/*---------------------------------- BAE HK --------------------------------------------*/
@@ -115,7 +112,7 @@
for(int i = 0; i<15; i++)
gPC.printf("\r 0x%02X\n",BAE_HK[i]);
for(int i = 0; i<4; i++)
- BAE_HK[i] = HK_time >> i;
+ BAE_HK[i] = time >> i;
BAE_HK_FRAME[0] = 0x28;
BAE_HK_FRAME[1] = FSC_CURRENT[5]+1;
BAE_HK_FRAME[2] = (FSC_CURRENT[5]+1) >> 8;
@@ -280,6 +277,10 @@
GPIO_STATUS=(PL_BEE_SW_OC_FAULT)?(GPIO_STATUS)||((uint16_t)(0x1<<5)):(GPIO_STATUS)&(~((uint16_t)(0x1<<5)));
//PL_EPS_LATCH_SW_OC_FAULT // to be verified
GPIO_STATUS=(PL_EPS_LATCH_SW_OC_FAULT)?(GPIO_STATUS)||((uint16_t)(0x1<<4)):(GPIO_STATUS)&(~((uint16_t)(0x1<<4)));
+ //EPS_V_C_EN_STATUS
+ GPIO_STATUS=(EPS_V_C_EN_STATUS)?(GPIO_STATUS)||((uint16_t)(0x1<<3)):(GPIO_STATUS)&(~((uint16_t)(0x1<<3)));
+ //EPS_V_D_EN_STATUS
+ GPIO_STATUS=(EPS_V_D_EN_STATUS)?(GPIO_STATUS)||((uint16_t)(0x1<<2)):(GPIO_STATUS)&(~((uint16_t)(0x1<<2)));
}
@@ -398,72 +399,56 @@
void COLLECT_CDMS_RAM()
{
- /*--------------------Current FSC's---------------------*/
- for(int i=0; i<4; i++)
- CDMS_HEALTH_DATA[i+43] = FSC_LAST[5] >> (i*8);
- for(int i=0; i<4; i++)
- CDMS_HEALTH_DATA[i+47] = FSC_CURRENT[5] >> (i*8);
- for(int i=0; i<4; i++)
- CDMS_HEALTH_DATA[i+51] = FSC_LAST[4] >> (i*8);
- for(int i=0; i<4; i++)
- CDMS_HEALTH_DATA[i+55] = FSC_CURRENT[4] >> (i*8);
- for(int i=0; i<4; i++)
- CDMS_HEALTH_DATA[i+59] = FSC_LAST[3] >> (i*8);
- for(int i=0; i<4; i++)
- CDMS_HEALTH_DATA[i+63] = FSC_CURRENT[3] >> (i*8);
- for(int i=0; i<4; i++)
- CDMS_HEALTH_DATA[i+67] = FSC_LAST[2] >> (i*8);
- for(int i=0; i<4; i++)
- CDMS_HEALTH_DATA[i+71] = FSC_CURRENT[2] >> (i*8);
- for(int i=0; i<4; i++)
- CDMS_HEALTH_DATA[i+75] = FSC_LAST[1] >> (i*8);
- for(int i=0; i<4; i++)
- CDMS_HEALTH_DATA[i+79] = FSC_CURRENT[1] >> (i*8);
- /*---------------------Latest Time----------------------*/
- for(int i=0; i<4; i++)
- CDMS_HEALTH_DATA[i+83] = TIME_LATEST_SPI_SPEED >> (i*8);
- for(int i=0; i<4; i++)
- CDMS_HEALTH_DATA[i+87] = TIME_LATEST_SD_RD >> (i*8);
- for(int i=0; i<4; i++)
- CDMS_HEALTH_DATA[i+91] = TIME_LATEST_SD_WR >> (i*8);
- for(int i=0; i<4; i++)
- CDMS_HEALTH_DATA[i+95] = TIME_LATEST_I2C_SPEED >> (i*8);
- for(int i=0; i<4; i++)
- CDMS_HEALTH_DATA[i+99] = TIME_LATEST_I2C_BAE >> (i*8);
- for(int i=0; i<4; i++)
- CDMS_HEALTH_DATA[i+103] = TIME_LATEST_RTC >> (i*8);
- for(int i=0; i<2; i++)
- CDMS_HEALTH_DATA[i+107] = COMRX_RESET_COUNTER >> (i*8);
- for(int i=0; i<2; i++)
- CDMS_HEALTH_DATA[i+107] = PL_RCV_SC_DATA_COUNTER >> (i*8);
- for(int i=0; i<2; i++)
- CDMS_HEALTH_DATA[i+111] = PL_MAIN_COUNTER >> (i*8);
- for(int i=0; i<2; i++)
- CDMS_HEALTH_DATA[i+113] = CDMS_HK_MAIN_COUNTER >> (i*8);
- for(int i=0; i<2; i++)
- CDMS_HEALTH_DATA[i+115] = CDMS_I2C_ERR_BAE_COUNTER >> (i*8);
- for(int i=0; i<2; i++)
- CDMS_HEALTH_DATA[i+117] = CDMS_I2C_ERR_SPEED_COUNTER >> (i*8);
- CDMS_HEALTH_DATA[120] = CDMS_HEALTH_DATA[120] | CDMS_STANDBY_PL << 7;
- CDMS_HEALTH_DATA[120] = CDMS_HEALTH_DATA[120] | ((CDMS_INIT_STATUS << 6) & 0x40);
- CDMS_HEALTH_DATA[120] = CDMS_HEALTH_DATA[120] | ((CDMS_HK_MAIN_STATUS << 5) & 0x20);
- CDMS_HEALTH_DATA[120] = CDMS_HEALTH_DATA[120] | ((CDMS_HK_STATUS << 3) & 0x18);
- CDMS_HEALTH_DATA[120] = CDMS_HEALTH_DATA[120] | ((COMRX_STATUS << 2) & 0x04);
- CDMS_HEALTH_DATA[120] = CDMS_HEALTH_DATA[120] | ((CDMS_RTC_BL << 1) & 0x02);
- CDMS_HEALTH_DATA[120] = CDMS_HEALTH_DATA[120] & 0xFE;
-
- CDMS_HEALTH_DATA[121] = CDMS_HEALTH_DATA[121] | PL_RCV_SC_DATA_STATUS << 7;
- CDMS_HEALTH_DATA[121] = CDMS_HEALTH_DATA[121] | ((COM_SESSION << 6) & 0x40);
- CDMS_HEALTH_DATA[121] = CDMS_HEALTH_DATA[121] | ((COM_RX << 5) & 0x20);
- CDMS_HEALTH_DATA[121] = CDMS_HEALTH_DATA[121] | ((RF_SW_STATUS << 4) & 0x10);
- CDMS_HEALTH_DATA[121] = CDMS_HEALTH_DATA[121] | ((COM_TX << 3) & 0x08);
- CDMS_HEALTH_DATA[121] = CDMS_HEALTH_DATA[121] | ((COM_TX_STATUS << 2) & 0x04);
- CDMS_HEALTH_DATA[121] = CDMS_HEALTH_DATA[121] | ((COM_MNG_TMTC << 1) & 0x02);
- CDMS_HEALTH_DATA[121] = CDMS_HEALTH_DATA[121] | (CDMS_STANDBY_HK & 0x01);
-
- CDMS_HEALTH_DATA[122] = CDMS_HEALTH_DATA[122] | PL_INIT_STATUS << 7;
- CDMS_HEALTH_DATA[122] = CDMS_HEALTH_DATA[122] | ((PL_MAIN_STATUS << 6) & 0x40);
- CDMS_HEALTH_DATA[122] = CDMS_HEALTH_DATA[122] | ((PL_LOW_POWER << 5) & 0x20);
- CDMS_HEALTH_DATA[122] = CDMS_HEALTH_DATA[122] | ((PL_STATE << 3) & 0x18);
- CDMS_HEALTH_DATA[122] = CDMS_HEALTH_DATA[122] | (PL_STATUS & 0x07);
+ CDMS_RAM[0] = ((PL_INIT_STATUS<<7)&0x80)|((PL_MAIN_STATUS<<6)&0x40)|((PL_LOW_POWER<<5)&0x20)|((PL_STATE<<3)&0x18)|(PL_STATUS&0x07);
+ CDMS_RAM[1] = ((PL_RCV_SC_DATA_STATUS<<7)&0x80)|((COM_SESSION<<6)&0x40)|((COM_RX<<5)&0x20)|((RF_SW_STATUS<<4)&0x10)|((COM_TX<<3)&0x08)|((COM_TX_STATUS<<2)&0x04)|((COM_MNG_TMTC<<1)&0x02)|(EN_CDMS_HK&0x01);
+ CDMS_RAM[2] = ((EN_PL<<7)&0x80)|((EN_RCV_SC<<6)&0x40)|((CDMS_INIT_STATUS<<5)&0x20)|((CDMS_HK_MAIN_STATUS<<4)&0x10)|((CDMS_HK_STATUS<<2)&0x0C)|((COM_RX_STATUS<<1)&0x02)|(CDMS_RTC_BL&0x01);
+ CDMS_RAM[3] = CDMS_I2C_ERR_SPEED_COUNTER >> 8;
+ CDMS_RAM[4] = CDMS_I2C_ERR_SPEED_COUNTER;
+ CDMS_RAM[5] = CDMS_I2C_ERR_BAE_COUNTER >> 8;
+ CDMS_RAM[6] = CDMS_I2C_ERR_BAE_COUNTER;
+ CDMS_RAM[7] = CDMS_HK_MAIN_COUNTER >> 8;
+ CDMS_RAM[8] = CDMS_HK_MAIN_COUNTER;
+ CDMS_RAM[9] = PL_MAIN_COUNTER >> 8;
+ CDMS_RAM[10] = PL_MAIN_COUNTER;
+ CDMS_RAM[11] = PL_RCV_SC_DATA_COUNTER >> 8;
+ CDMS_RAM[12] = PL_RCV_SC_DATA_COUNTER;
+ CDMS_RAM[13] = COMRX_RESET_COUNTER >> 8;
+ CDMS_RAM[14] = COMRX_RESET_COUNTER;
+ CDMS_RAM[15] = CDMS_WR_SD_FAULT_COUNTER >> 8;
+ CDMS_RAM[16] = CDMS_WR_SD_FAULT_COUNTER;
+ CDMS_RAM[17] = SD_LIB_WRITES >> 8;
+ CDMS_RAM[18] = SD_LIB_WRITES;
+ for(int i = 0; i<4; i++)
+ CDMS_RAM[19+i] = TIME_LATEST_RTC >> i*8;
+ for(int i = 0; i<4; i++)
+ CDMS_RAM[23+i] = TIME_LATEST_I2C_BAE >> i*8;
+ for(int i = 0; i<4; i++)
+ CDMS_RAM[27+i] = TIME_LATEST_I2C_SPEED >> i*8;
+ for(int i = 0; i<4; i++)
+ CDMS_RAM[31+i] = TIME_LATEST_SD_WR >> i*8;
+ for(int i = 0; i<4; i++)
+ CDMS_RAM[35+i] = TIME_LATEST_SD_RD >> i*8;
+ for(int i = 0; i<4; i++)
+ CDMS_RAM[39+i] = TIME_LATEST_SPI_SPEED >> i*8;
+ for(int i = 0; i<4; i++)
+ CDMS_RAM[43+i] = FSC_CURRENT[1] >> i*8;
+ for(int i = 0; i<4; i++)
+ CDMS_RAM[47+i] = FSC_LAST[1] >> i*8;
+ for(int i = 0; i<4; i++)
+ CDMS_RAM[51+i] = FSC_CURRENT[2] >> i*8;
+ for(int i = 0; i<4; i++)
+ CDMS_RAM[55+i] = FSC_LAST[2] >> i*8;
+ for(int i = 0; i<4; i++)
+ CDMS_RAM[59+i] = FSC_CURRENT[3] >> i*8;
+ for(int i = 0; i<4; i++)
+ CDMS_RAM[63+i] = FSC_LAST[3] >> i*8;
+ for(int i = 0; i<4; i++)
+ CDMS_RAM[67+i] = FSC_CURRENT[4] >> i*8;
+ for(int i = 0; i<4; i++)
+ CDMS_RAM[71+i] = FSC_LAST[4] >> i*8;
+ for(int i = 0; i<4; i++)
+ CDMS_RAM[75+i] = FSC_CURRENT[5] >> i*8;
+ for(int i = 0; i<4; i++)
+ CDMS_RAM[79+i] = FSC_LAST[5] >> i*8;
+ CDMS_RAM[83] = 0x00;
}
\ No newline at end of file
--- a/CDMS_PL.h Mon Jul 11 12:30:41 2016 +0000 +++ b/CDMS_PL.h Mon Jul 11 14:33:02 2016 +0000 @@ -6,7 +6,7 @@ uint32_t pl_time; uint32_t TIME_LATEST_PL=0; uint8_t i; -uint8_t PL_BEE_SW_STATUS=0; +//extern uint8_t PL_BEE_SW_STATUS=0; //Serial pc(USBTX,USBRX);
--- a/COM_MNG_TMTC.h Mon Jul 11 12:30:41 2016 +0000
+++ b/COM_MNG_TMTC.h Mon Jul 11 14:33:02 2016 +0000
@@ -16,6 +16,25 @@
//DigitalIn tm_status_4m_pl(PIN61); //I2C interrupt to CDMS from PL
#define RESET_CDMS NVIC_SystemReset()
+#define BAE_TC{\
+ tc_ptr->next_TC = NULL;\
+ PUTshort_or_long(tc_ptr,SHORT_TC_CODE);\
+ PUTcrc_pass(tc_ptr,0x1);\
+ PUTexec_status(tc_ptr,0);\
+ tc_ptr->TC_string[0] = 0x01;\
+ tc_ptr->TC_string[1] = 0x60;\
+ tc_ptr->TC_string[2] = 0x81;\
+ tc_ptr->TC_string[3] = 0x21;\
+ tc_ptr->TC_string[4] = 0x00;\
+ tc_ptr->TC_string[5] = 0;\
+ tc_ptr->TC_string[6] = 0;\
+ tc_ptr->TC_string[7] = 0;\
+ tc_ptr->TC_string[8] = 0;\
+ uint16_t crc16 = crc16_gen(tc_ptr->TC_string, 9);\
+ tc_ptr->TC_string[9] = (crc16 & 0xFF00)>>8;\
+ tc_ptr->TC_string[10] = (crc16 & 0x00FF);\
+}
+
uint8_t received = 0;
uint16_t mid1;
@@ -31,7 +50,7 @@
uint8_t ACK_CODE;
void TM_PMS_PL_SCHEDULE(Base_tm* tm_pointer1,uint8_t psc);
-void ACK_L234(Base_tm* tm_pointer_short1,uint8_t ackCode,uint8_t psc);
+void ACK_L234(Base_tm* tm_pointer1,uint8_t ackCode,uint8_t psc);
#define delete_TC(tc_ptr) {\
if(tc_ptr == gHEAD_NODE_TCL){\
@@ -201,19 +220,19 @@
/*tm_ptr is the next_TM of a linked list, and should have the value NULL, i.e. tm_ptr should be the next_TM pointer of thte last node */
// CDMS TEAM CODE START
-void ACK_L234(Base_tm* tm_pointer_short1,uint8_t ackCode,uint8_t psc)
+void ACK_L234(Base_tm* tm_pointer1,uint8_t ackCode,uint8_t psc)
{
- tm_pointer_short1->TM_string[0] = 0xB0;
- tm_pointer_short1->TM_string[1] = psc;
- tm_pointer_short1->TM_string[2] = ackCode;
- tm_pointer_short1->TM_string[3] = 0x00;
- tm_pointer_short1->TM_string[4] = 0x00;
+ tm_pointer1->TM_string[0] = 0xB0;
+ tm_pointer1->TM_string[1] = psc;
+ tm_pointer1->TM_string[2] = ackCode;
+ tm_pointer1->TM_string[3] = 0x00;
+ tm_pointer1->TM_string[4] = 0x00;
for(uint8_t i=0;i<6;i++)
- tm_pointer_short1->TM_string[i+5] = 0;
- crc16 = crc16_gen(tm_pointer_short1->TM_string,11);
- tm_pointer_short1->TM_string[11] = (uint8_t)((crc16&0xFF00)>>8);
- tm_pointer_short1->TM_string[12] = (uint8_t)(crc16&0x00FF);
- tm_pointer_short1->next_TM = NULL;
+ tm_pointer1->TM_string[i+5] = 0;
+ crc16 = crc16_gen(tm_pointer1->TM_string,11);
+ tm_pointer1->TM_string[11] = (uint8_t)((crc16&0xFF00)>>8);
+ tm_pointer1->TM_string[12] = (uint8_t)(crc16&0x00FF);
+ tm_pointer1->next_TM = NULL;
}
void TM_PMS_PL_SCHEDULE(Base_tm *tm_pointer1,uint8_t psc)
{
@@ -348,26 +367,23 @@
//uint8_t ACKCODE = 0xB0;
bool y;
//gPC.printf("\rTC execution in progress\r\n");
- Base_tm *tm_pointer = new Long_tm;
+ Base_tm *tm_pointer = new Base_tm;
Base_tm *tm_ptr = tm_pointer;
- //Base_tm *tm_ptr = new Long_tm;
- Base_tm *tm_pointer_short = new Short_tm;
- Base_tm *tm_ptr_short = tm_pointer_short;
received = 0;
switch(GETapid(tc_ptr)) //checking APID's
{
case 1: //apid=01 implies it corresponds to bae
{
BAE_I2C_mutex.lock();
- //BAE_TC;
+ BAE_TC;
gPC.printf("Telecommand is for BAE\r\n");
gPC.printf("Sending TC to BAE...\r\n"); //interrupt to be sent to the bae
y = FCTN_I2C_WRITE((char*)tc_ptr->TC_string,TC_LONG_SIZE); // Check for SHORT and LONG TC and then send
if(y==1)
{
- ACK_L234(tm_ptr_short,0x03,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0x03,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else if(y==0)
{
@@ -390,17 +406,17 @@
}
else if(y==1)
{
- ACK_L234(tm_ptr_short,0x85,GETpacket_seq_count(tc_ptr));
+ ACK_L234(tm_pointer,0x85,GETpacket_seq_count(tc_ptr));
//gPC.printf("\n\rPTE->PDIR = 0x%08X",PTE->PDIR);
- return tm_ptr_short;
+ return tm_ptr;
break;
}
}
else if(BAE_I2C_GPIO == 0) //name to be changed later
{
gPC.printf("BAE_I2C_GPIO is not high\r\n");
- ACK_L234(tm_ptr_short,0x84,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0x84,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
}
BAE_I2C_mutex.unlock();
@@ -422,8 +438,8 @@
mid=((uint16_t)(tc_ptr->TC_string[3]<<4))+((uint16_t)(tc_ptr->TC_string[4]));
if(mid!=0x0000 && mid!=0x0001)
{
- ACK_L234(tm_ptr_short,0x02,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0x02,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
FCTN_CDMS_RD_L_RAM(tm_pointer);
@@ -446,15 +462,15 @@
if(mid!= && mid!=) //allowable MID values?
{
- ACK_L234(tm_ptr_short,0x02,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0x02,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
FCTN_CDMS_WR_S_FLASH(tc_ptr);
- ACK_L234(tm_ptr_short,???,GETpacket_seq_count(tc_ptr)); //ackCode = ? for success
+ ACK_L234(tm_pointer,???,GETpacket_seq_count(tc_ptr)); //ackCode = ? for success
- return tm_ptr_short;
+ return tm_ptr;
}
case 0x6:
{
@@ -464,20 +480,20 @@
if(mid<0x0002 || mid>0x000A) //allowable MID values?
{
- ACK_L234(tm_ptr_short,0x02,GETpacket_seq_count(tc_ptr)); //ackCode = ? for invalid mid
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0x02,GETpacket_seq_count(tc_ptr)); //ackCode = ? for invalid mid
+ return tm_ptr;
}
///Send TM for success after writing onto flash
FCTN_CDMS_WR_L_FLASH(mid);
- return tm_ptr_short;
+ return tm_ptr;
}
default:
{
gPC.printf("INVALID SERVICE SUBTYPE\r\n");
- ACK_L234(tm_ptr_short,0x02,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0x02,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
}
} */
@@ -494,13 +510,13 @@
P_PL_INIT();
- ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else if(CDMS_STANDBY==0)
{
- ACK_L234(tm_ptr_short,0x87,GETpacket_seq_count(tc_ptr)); //TC cannot be processed now
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0x87,GETpacket_seq_count(tc_ptr)); //TC cannot be processed now
+ return tm_ptr;
}
}
else if(GETpid(tc_ptr)==0x02)
@@ -511,13 +527,13 @@
P_PL_MAIN();
- ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else if(CDMS_STANDBY==0)
{
- ACK_L234(tm_ptr_short,0x87,GETpacket_seq_count(tc_ptr)); //TC cannot be processed now
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0x87,GETpacket_seq_count(tc_ptr)); //TC cannot be processed now
+ return tm_ptr;
}
}
else if(GETpid(tc_ptr)==0x03)
@@ -528,13 +544,13 @@
P_COM_INIT();
- ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else if(CDMS_STANDBY==0)
{
- ACK_L234(tm_ptr_short,0x87,GETpacket_seq_count(tc_ptr)); //TC cannot be processed now
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0x87,GETpacket_seq_count(tc_ptr)); //TC cannot be processed now
+ return tm_ptr;
}
}
else if(GETpid(tc_ptr)==0x04)
@@ -545,13 +561,13 @@
P_CDMS_HK_MAIN();
- ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else if(CDMS_STANDBY==0)
{
- ACK_L234(tm_ptr_short,0x87,GETpacket_seq_count(tc_ptr)); //TC cannot be processed now
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0x87,GETpacket_seq_count(tc_ptr)); //TC cannot be processed now
+ return tm_ptr;
}
}
else if(GETpid(tc_ptr)==0x05)
@@ -562,13 +578,13 @@
P_PL_RCV_SC_DATA();
- ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else if(CDMS_STANDBY==0)
{
- ACK_L234(tm_ptr_short,0x87,GETpacket_seq_count(tc_ptr)); //TC cannot be processed now
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0x87,GETpacket_seq_count(tc_ptr)); //TC cannot be processed now
+ return tm_ptr;
}
}
else if(GETpid(tc_ptr)==0x06)
@@ -579,13 +595,13 @@
P_CDMS_INIT_SD();
- ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else if(CDMS_STANDBY==0)
{
- ACK_L234(tm_ptr_short,0x87,GETpacket_seq_count(tc_ptr)); //TC cannot be processed now
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0x87,GETpacket_seq_count(tc_ptr)); //TC cannot be processed now
+ return tm_ptr;
}
}
else if(GETpid(tc_ptr)==0x11)
@@ -594,8 +610,8 @@
CDMS_SD_SW_ON();
- ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else if(GETpid(tc_ptr)==0x21)
{
@@ -603,8 +619,26 @@
CDMS_SD_SW_OFF();
- ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
+ }
+ else if(GETpid(tc_ptr)==0x12)
+ {
+ //gPC.printf("TC_SW_ON_SD\r\n"); // call PWR_SWCH_ON function
+
+ CDMS_RTC_ON();
+
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
+ }
+ else if(GETpid(tc_ptr)==0x22)
+ {
+ //gPC.printf("TC_SW_ON_SD\r\n"); // call PWR_SWCH_ON function
+
+ CDMS_RTC_OFF();
+
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else if(GETpid(tc_ptr)==0x13)
{
@@ -612,8 +646,8 @@
SW_ON_BAE();
- ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else if(GETpid(tc_ptr)==0x23)
{
@@ -621,8 +655,8 @@
SW_OFF_BAE();
- ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else if(GETpid(tc_ptr)==0x14)
{
@@ -630,8 +664,8 @@
SW_ON_PL_BEE();
- ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else if(GETpid(tc_ptr)==0x24)
{
@@ -639,8 +673,8 @@
SW_OFF_PL_BEE();
- ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else if(GETpid(tc_ptr)==0x15)
{
@@ -648,8 +682,8 @@
SW_ON_PL_EPS();
- ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else if(GETpid(tc_ptr)==0x25)
{
@@ -657,8 +691,8 @@
SW_OFF_PL_EPS();
- ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else if(GETpid(tc_ptr)==0x16)
{
@@ -667,8 +701,8 @@
SW_ON_V_A_EN();
- ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else if(GETpid(tc_ptr)==0x26)
{
@@ -676,8 +710,8 @@
SW_OFF_V_A_EN();
- ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else if(GETpid(tc_ptr)==0x31)
{
@@ -685,8 +719,8 @@
RST_SD();
- ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else if(GETpid(tc_ptr)==0x33)
{
@@ -694,8 +728,8 @@
RST_BAE();
- ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else if(GETpid(tc_ptr)==0x34)
{
@@ -703,15 +737,16 @@
RST_PL_BEE();
- ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else if(GETpid(tc_ptr)==0x38)
{
//gPC.printf()
CDMS_INTERNAL_RESET();
- ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr));
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else if(GETpid(tc_ptr)==0x40)
{
@@ -719,8 +754,8 @@
RST_HK_COUNTER();
- ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else if(GETpid(tc_ptr)==0x41)
{
@@ -728,22 +763,22 @@
RST_HK_COUNTER();
- ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0xA0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else if(GETpid(tc_ptr)==0xF1)
{
//gPC.printf("TC_CDMS_RD_RTC\r\n"); // call PWR_SWCH_ON function
- /*uint32_t time_temp = FCTN_CDMS_RD_RTC(); //RTC_RD_EROR has to incorporated
+ uint32_t time_temp = FCTN_CDMS_RD_RTC(); //RTC_RD_EROR has to incorporated
tm_pointer->TM_string[0] = 0x78;
tm_pointer->TM_string[1] = GETpacket_seq_count(tc_ptr);
tm_pointer->TM_string[2] = 0xA0;
tm_pointer->TM_string[3] = 0x00;
- tm_pointer->TM_string[4] = (uint8_t)((time & 0xFF000000)>>24);
- tm_pointer->TM_string[5] = (uint8_t)((time & 0x00FF0000)>>16);
- tm_pointer->TM_string[6] = (uint8_t)((time & 0x0000FF00)>>8);
- tm_pointer->TM_string[7] = (uint8_t)((time & 0x000000FF));
+ tm_pointer->TM_string[4] = (uint8_t)((time_temp & 0xFF000000)>>24);
+ tm_pointer->TM_string[5] = (uint8_t)((time_temp & 0x00FF0000)>>16);
+ tm_pointer->TM_string[6] = (uint8_t)((time_temp & 0x0000FF00)>>8);
+ tm_pointer->TM_string[7] = (uint8_t)((time_temp & 0x000000FF));
for(uint8_t i=0;i<124;i++)
{
tm_pointer->TM_string[i+8] = 0x00;
@@ -751,27 +786,28 @@
crc16 = crc16_gen(tm_ptr->TM_string,132);
tm_pointer->TM_string[132] = (uint8_t)((crc16&0xFF00)>>8);
tm_pointer->TM_string[133] = (uint8_t)(crc16&0x00FF);
- tm_pointer->next_TM = NULL;
- return tm_ptr; */ //incomplete
+ tm_pointer->next_TM = NULL; //incomplete
+ return tm_ptr;
}
else if(GETpid(tc_ptr)==0xF0)
{
uint8_t statusbits[64];
CDMS_RD_SD_HK(statusbits);
- ACK_L234(tm_ptr_short,0xC0,GETpacket_seq_count(tc_ptr));
+ ACK_L234(tm_pointer,0xC0,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
else
{
gPC.printf("INVALID FID\r\n");
- ACK_L234(tm_ptr_short,0x02,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0x02,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
}
else
{
gPC.printf("INVALID SERVICE SUBTYPE\r\n");
- ACK_L234(tm_ptr_short,0x02,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0x02,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
}
case 0x70:
@@ -871,15 +907,15 @@
else
{
gPC.printf("INVALID SERVICE SUBTYPE\r\n");
- ACK_L234(tm_ptr_short,0x02,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0x02,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
}
default:
{
gPC.printf("ILLEGAL TC");
- ACK_L234(tm_ptr_short,0x02,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0x02,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
}
}
@@ -895,8 +931,8 @@
if(y==1)
{
- ACK_L234(tm_ptr_short,0x03,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0x03,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
break;
}
else if(y==0)
@@ -921,28 +957,27 @@
}
else if(y==1)
{
- ACK_L234(tm_ptr_short,0x85,GETpacket_seq_count(tc_ptr));
+ ACK_L234(tm_pointer,0x85,GETpacket_seq_count(tc_ptr));
//gPC.printf("\n\rPTE->PDIR = 0x%08X",PTE->PDIR);
- return tm_ptr_short;
+ return tm_ptr;
break;
}
}
else if(PL_I2C_Intr == 0) //name to be changed later
{
gPC.printf("PL_I2C_Intr is not high\r\n");
- ACK_L234(tm_ptr_short,0x84,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0x84,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
}
}
default: //invalid TC
{
gPC.printf("INVALID TC\r\n");
- ACK_L234(tm_ptr_short,0x02,GETpacket_seq_count(tc_ptr));
- return tm_ptr_short;
+ ACK_L234(tm_pointer,0x02,GETpacket_seq_count(tc_ptr));
+ return tm_ptr;
}
}
- return;
}
// CDMS TEAM CODE END
// EXECUTE OBOSC
@@ -1493,8 +1528,6 @@
/*COM_POWER_OFF_TX;*/\
reset_all;\
/*PENDING : ENABLE THREADS*/\
- gPAY_SPI->bulkRead_resume(&payload_isr_fun);\
- HK_counter->start(10000);\
gSESSION_TIMEOUT.detach();\
gFLAGS = gFLAGS & (~COM_MNG_TMTC_RUNNING_FLAG);\
gFLAGS = gFLAGS & (~COM_SESSION_FLAG);\
--- a/DefinitionsAndGlobals.h Mon Jul 11 12:30:41 2016 +0000 +++ b/DefinitionsAndGlobals.h Mon Jul 11 14:33:02 2016 +0000 @@ -263,19 +263,23 @@ DigitalIn COMRX_OC_FAULT (PIN68); DigitalIn COMTX_OC_FAULT (PIN69); DigitalIn BAE_OC_FAULT (PIN92); -DigitalIn PL_GPIO_1_STATUS (PIN71); -DigitalIn PL_GPIO_2_STATUS (PIN81); -DigitalIn PL_GPIO_3_STATUS (PIN80); +DigitalOut PL_GPIO_1_STATUS (PIN71); +DigitalOut PL_GPIO_2_STATUS (PIN81); +DigitalOut PL_GPIO_3_STATUS (PIN80); DigitalIn PL_BEE_SW_OC_FAULT (PIN91); DigitalIn PL_EPS_LATCH_SW_OC_FAULT (PIN5); -DigitalIn V_D_EN_STATUS (PIN56); +DigitalOut EPS_V_C_EN_STATUS (PIN72); +DigitalOut EPS_V_D_EN_STATUS (PIN56); + DigitalIn SD_OC_FAULT (PIN90); DigitalOut SD_SW_EN_DS (PIN97); DigitalOut BAE_SW_EN_DS (PIN47); -DigitalOut TRXY_PWR_CNTRL (PIN84); -DigitalOut TRZ_PWR_CNTRL (PIN88); +DigitalOut TRXY_EN (PIN84); +DigitalOut TRZ_EN (PIN88); +DigitalOut V_A_EN (PIN99); +DigitalOut Sys_pwr_rst (PIN96); DigitalOut PYLD_DFF (PIN73); DigitalOut PYLD_DFF_CLK (PIN65); @@ -305,6 +309,8 @@ uint16_t COMRX_RESET_COUNTER; uint16_t PL_MAIN_COUNTER; uint16_t PL_RCV_SC_DATA_COUNTER; +uint16_t CDMS_WR_SD_FAULT_COUNTER; +uint16_t SD_LIB_WRITES = 0; //CDMS RAM parameters uint8_t PL_INIT_STATUS; @@ -318,8 +324,29 @@ uint8_t COM_TX; uint8_t COM_TX_STATUS; uint8_t COM_MNG_TMTC; -uint8_t CDMS_STANDBY_HK; -uint8_t CDMS_STANDBY_PL; +uint8_t EN_CDMS_HK; +uint8_t EN_PL; +uint8_t EN_RCV_SC; uint8_t CDMS_INIT_STATUS; uint8_t CDMS_HK_STATUS; -uint8_t CDMS_RTC_BL; \ No newline at end of file +uint8_t COM_RX_STATUS; +uint8_t CDMS_RTC_BL; + +//CDMS FLASH parameters +uint8_t EPS_V_A_EN_STATUS; +uint8_t BAE_SW_STATUS; +uint8_t CDMS_SD_SW_STATUS; +uint8_t PL_BEE_SW_STATUS; +uint8_t PL_EPS_LATCH_SW_EN; +uint8_t RTC_INIT_STATUS; +uint8_t CDMS_RTC_DISABLE; +uint16_t CDMS_RESET_COUNTER; +uint32_t TIME_LATEST_CDSMS_RESET; +uint16_t COM_TC_BYTES_LIMIT; +uint8_t COM_RX_CURRENT_MAX; +uint8_t COM_RX_DISABLE_TIMEOUT; +uint8_t COM_PA_TMP_HIGH; +uint8_t COM_PA_RECOVERY_TIMEOUT; +uint8_t COM_SESSION_TIMEOUT; +uint8_t COM_RSSI_MIN; +uint16_t SD_LIB_BLK_CURRENT; \ No newline at end of file
--- a/FMS_all.h Mon Jul 11 12:30:41 2016 +0000
+++ b/FMS_all.h Mon Jul 11 14:33:02 2016 +0000
@@ -1,4 +1,5 @@
+/*===================================================FMS Functions=================================================*/
//Run processes
void P_PL_INIT();
void P_PL_MAIN();
@@ -27,7 +28,7 @@
void SW_RST_PL_BEE();
void RST_BAE();
void RST_PL_BEE();
-void CDMS_INTERNAL_RESET();
+void CDMS_RESET();
void SYS_PWR_RESET(); // Have to be decided with EPS team.
void EPS_V_A_EN();
void EPS_V_C_EN();
@@ -36,7 +37,7 @@
uint8_t CDMS_RD_SD_HK(uint8_t *);
void CDMS_RD_RTC(uint64_t *);
void CDMS_CALIB_RTC();
-void CDMS_RESET();
+void TOTAL_RESET_WITH_CDMS();
void P_PL_INIT()
@@ -46,7 +47,7 @@
void P_PL_MAIN()
{
- // FCTN_CDMS_PL_MAIN((void *)NULL);
+ FCTN_CDMS_PL_MAIN((void *)NULL);
}
void P_COM_INIT()
@@ -81,12 +82,23 @@
void CDMS_RTC_ON()
{
-
+ //FCTN_CDMS_INIT_RTC();
+ SPI_mutex.lock();
+ gCS_RTC=1;
+ gCS_RTC=0;
+ spi.write(0x81); //register address with write flag
+ spi.write(0x00);//disabling stop bit in the seconds register
+ SPI_mutex.unlock();
}
void CDMS_RTC_OFF()
{
-
+ SPI_mutex.lock();
+ gCS_RTC=1;
+ gCS_RTC=0;
+ spi.write(0x81); //register address with write flag
+ spi.write(0x80);//enabling stop bit in the seconds register
+ SPI_mutex.unlock();
}
void SW_ON_BAE()
@@ -145,14 +157,12 @@
void SW_ON_V_A_EN()
{
- TRXY_PWR_CNTRL = 1;
- TRZ_PWR_CNTRL = 1;
+ V_A_EN = 1;
}
void SW_OFF_V_A_EN()
{
- TRXY_PWR_CNTRL = 0;
- TRZ_PWR_CNTRL = 0;
+ V_A_EN = 0;
}
void RST_SD()
@@ -197,16 +207,16 @@
void SYS_PWR_RESET() // Have to be decided with EPS team.
{
-
+ /*sys_pwr_rst = 0;
+ wait_ms(10);
+ sys_pwr_rst = 1;*/
}
void EPS_V_A_EN() // This is a reset function
{
- TRXY_PWR_CNTRL = 0;
- TRZ_PWR_CNTRL = 0;
+ V_A_EN = 0;
wait_ms(10);
- TRXY_PWR_CNTRL = 1;
- TRZ_PWR_CNTRL = 1;
+ V_A_EN = 1;
}
void EPS_V_C_EN() // This is a reset function
@@ -262,4 +272,4 @@
{
}
-*/
\ No newline at end of file
+*/
--- a/Flash.h Mon Jul 11 12:30:41 2016 +0000
+++ b/Flash.h Mon Jul 11 14:33:02 2016 +0000
@@ -25,4 +25,20 @@
flasharray[i]=nativeflash[i];
}
return flasharray[j];
-}
\ No newline at end of file
+}
+
+/*===================================================MMS Functions=================================================*/
+
+void WRITE_TO_FLASH(uint8_t *);
+
+void WRITE_TO_FLASH(uint8_t *flash)
+{
+ uint32_t FLASH[5];
+ FLASH[0] = ((uint32_t)flash[0] << 24) | ((uint32_t)flash[1] << 16) | ((uint32_t)flash[2] << 8) | ((uint32_t)flash[3]);
+ FLASH[1] = ((uint32_t)flash[4] << 24) | ((uint32_t)flash[5] << 16) | ((uint32_t)flash[6] << 8) | ((uint32_t)flash[7]);
+ FLASH[2] = ((uint32_t)flash[8] << 24) | ((uint32_t)flash[9] << 16) | ((uint32_t)flash[10] << 8) | ((uint32_t)flash[11]);
+ FLASH[3] = ((uint32_t)flash[12] << 24) | ((uint32_t)flash[13] << 16) | ((uint32_t)flash[14] << 8) | ((uint32_t)flash[15]);
+ FLASH[4] = ((uint32_t)flash[16] << 24) | ((uint32_t)flash[17] << 16) | ((uint32_t)flash[18] << 8) | ((uint32_t)flash[19]);
+ erase_sector(strt_add);
+ program_flash(strt_add, (char*)FLASH,160);
+}
--- a/RESET_functions.h Mon Jul 11 12:30:41 2016 +0000
+++ b/RESET_functions.h Mon Jul 11 14:33:02 2016 +0000
@@ -11,6 +11,7 @@
void RESET_RTC()
{
+ SPI_mutex.lock();
gCS_RTC=1;
gCS_RTC=0;
spi.write(0x81); //register address with write flag
@@ -33,6 +34,7 @@
gCS_RTC=0;
spi.write(0x8F);
spi.write(0x00);
+ SPI_mutex.unlock();
}
--- a/cdms_rtc.h Mon Jul 11 12:30:41 2016 +0000
+++ b/cdms_rtc.h Mon Jul 11 14:33:02 2016 +0000
@@ -12,6 +12,11 @@
spi.write(0x81); //register address with write flag
spi.write(0x80);//enabling stop bit in the seconds register
gCS_RTC=1;
+
+ gCS_RTC=0;
+ spi.write(0x81);
+ spi.write(0x00);//disabling the stop bit to restart the oscillator
+ gCS_RTC=1;
//clearing the halt bit
gCS_RTC=1;
@@ -31,12 +36,6 @@
spi.write(0x80|0x03);
spi.write(0x00);
gCS_RTC=1;
-
-
- gCS_RTC=0;
- spi.write(0x81);
- spi.write(0x00);//disabling the stop bit to restart the oscillator
- gCS_RTC=1;
gCS_RTC=0;
spi.write(0x80);
--- a/cdms_sd.h Mon Jul 11 12:30:41 2016 +0000 +++ b/cdms_sd.h Mon Jul 11 14:33:02 2016 +0000 @@ -31,7 +31,6 @@ uint32_t LOG_FIRST =5001; uint32_t LOG_LAST=6000; uint32_t SD_MNG_SECT=7000; -uint16_t SD_LIB_WRITES = 0; extern uint8_t SD_INIT_FLAGS;
--- a/main.cpp Mon Jul 11 12:30:41 2016 +0000 +++ b/main.cpp Mon Jul 11 14:33:02 2016 +0000 @@ -27,8 +27,8 @@ #include "adf.h" #include "COM_RCV_TC.h" //#include "Flash.h" +#include "CDMS_PL.h" #include "FMS_all.h" -#include "CDMS_PL.h" #include "COM_MNG_TMTC.h" #include "COM_POWER_ON_TX.h" #include "COM_POWER_OFF_TX.h"
