working version
Dependencies: mbed mbed-rtos SimpleDMA FreescaleIAP eeprom
Fork of CDMS_CODE_FM_28JAN2017 by
main.cpp@357:f3d48d62e00e, 2022-04-03 (annotated)
- Committer:
- samp1234
- Date:
- Sun Apr 03 15:35:53 2022 +0000
- Revision:
- 357:f3d48d62e00e
- Parent:
- 356:197c93dc2012
First commit test
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
shreeshas95 | 7:fcd26c28411d | 1 | // TESTING PUSH PULL IN MAIN CPP |
shreeshas95 | 7:fcd26c28411d | 2 | |
shreeshas95 | 0:f016e9e8d48b | 3 | #include "mbed.h" |
samp1234 | 357:f3d48d62e00e | 4 | #include "eeprom.h" |
ee12b079 | 98:fd99ddc0e0a1 | 5 | |
ee12b079 | 99:efde3df6cd94 | 6 | #define DEBUG 1 |
ee12b079 | 98:fd99ddc0e0a1 | 7 | |
shreeshas95 | 101:bece931236a2 | 8 | #include "SimpleDMA.h" |
shreeshas95 | 101:bece931236a2 | 9 | #include "dmaSPIslave.h" |
shreeshas95 | 0:f016e9e8d48b | 10 | #include "rtos.h" |
shreeshas95 | 1:a0055b3280c8 | 11 | #include "mbed_debug.h" |
aniruddhv | 262:752c8689944a | 12 | void rx_read(); |
shreeshas95 | 0:f016e9e8d48b | 13 | #include "Structures.h" |
shreeshas95 | 103:b55559925dc1 | 14 | #include "pinconfig.h" |
shreeshas95 | 0:f016e9e8d48b | 15 | #include "DefinitionsAndGlobals.h" |
shreeshas95 | 0:f016e9e8d48b | 16 | #include "crc.h" |
shreeshas95 | 103:b55559925dc1 | 17 | #include "i2c.h" |
samp1234 | 357:f3d48d62e00e | 18 | #include "EEPROM.h" |
samp1234 | 357:f3d48d62e00e | 19 | //#include "Flash.h" |
shreeshas95 | 1:a0055b3280c8 | 20 | #include "COM_SND_TM_functions.h" |
ee12b079 | 210:f4acf895b598 | 21 | #include "cdms_rtc.h" |
ee12b079 | 300:609c3e4240c9 | 22 | #include "COM_SND_TM.h" |
ee12b079 | 99:efde3df6cd94 | 23 | #include "cdms_sd.h" |
krishanprajapat | 117:bfdc807f3d3c | 24 | #include "common_functions.h" |
ee12b079 | 210:f4acf895b598 | 25 | #include "RESET_functions.h" |
ee12b079 | 289:9bd62b69874c | 26 | #include "CDMS_PL.h" |
ee12b079 | 210:f4acf895b598 | 27 | #include "CDMS_HK.h" |
shreeshas95 | 1:a0055b3280c8 | 28 | #include "adf.h" |
shreeshas95 | 0:f016e9e8d48b | 29 | #include "COM_RCV_TC.h" |
ee12b079 | 210:f4acf895b598 | 30 | #include "FMS_all.h" |
chaithanyarss | 261:1e54415b34d3 | 31 | #include "Compression.h" |
shreeshas95 | 0:f016e9e8d48b | 32 | #include "COM_MNG_TMTC.h" |
aniruddhv | 262:752c8689944a | 33 | #include "COM_POWER_OFF_TX.h" |
shreeshas95 | 4:104dd82c99b8 | 34 | #include "COM_POWER_ON_TX.h" |
aniruddhv | 262:752c8689944a | 35 | #include "OBSRS.h" |
shreeshas95 | 0:f016e9e8d48b | 36 | #include "ThreadsAndFunctions.h" |
samp1234 | 352:022c513aee03 | 37 | //#include "TEST_PL.h" |
shreeshas95 | 0:f016e9e8d48b | 38 | |
shreeshas95 | 0:f016e9e8d48b | 39 | int main() |
prasanthbj05 | 267:783c248a6207 | 40 | { |
samp1234 | 352:022c513aee03 | 41 | |
ee12b079 | 285:fe33b39dd267 | 42 | //RELAY SWITCHING |
ee12b079 | 284:5bfd48ce169d | 43 | |
ee12b079 | 285:fe33b39dd267 | 44 | |
ee12b079 | 285:fe33b39dd267 | 45 | RF_SW_CNTRL_BCN = 1; |
ee12b079 | 285:fe33b39dd267 | 46 | Thread::wait(25); |
ee12b079 | 285:fe33b39dd267 | 47 | RF_SW_CNTRL_BCN = 0; |
ee12b079 | 284:5bfd48ce169d | 48 | PYLD_DFF = 1; |
ee12b079 | 284:5bfd48ce169d | 49 | |
ee12b079 | 284:5bfd48ce169d | 50 | for(int i= 0; i< 10 ; i++) |
ee12b079 | 284:5bfd48ce169d | 51 | {PYLD_DFF_CLK = !PYLD_DFF_CLK; |
ee12b079 | 284:5bfd48ce169d | 52 | wait_us(10);} |
ee12b079 | 284:5bfd48ce169d | 53 | |
ee12b079 | 185:3b3cd96a7811 | 54 | CDMS_I2C_GPIO = 0; |
ee12b079 | 210:f4acf895b598 | 55 | PL_I2C_GPIO = 0; |
ee12b079 | 162:48fda0b8d573 | 56 | |
shreeshas95 | 0:f016e9e8d48b | 57 | RX1M.baud(1200); |
shreeshas95 | 0:f016e9e8d48b | 58 | gRX_HEAD_DATA_NODE = new COM_RX_DATA_NODE; |
shreeshas95 | 0:f016e9e8d48b | 59 | gRX_HEAD_DATA_NODE->next_node = NULL; |
shreeshas95 | 0:f016e9e8d48b | 60 | gRX_CURRENT_DATA_NODE = gRX_HEAD_DATA_NODE; |
shreeshas95 | 2:2caf2a9a13aa | 61 | gRX_COUNT = 0; |
shreeshas95 | 0:f016e9e8d48b | 62 | RX1M.attach(&rx_read, Serial::RxIrq); |
shreeshas95 | 0:f016e9e8d48b | 63 | |
samp1234 | 357:f3d48d62e00e | 64 | gPC.baud(1200);//changed for bypassing COM |
samp1234 | 311:af5ab655ba00 | 65 | |
shreeshas95 | 0:f016e9e8d48b | 66 | |
ee12b079 | 288:aa93d6652381 | 67 | //Base_tm *tm_ptr = NULL; |
ee12b079 | 288:aa93d6652381 | 68 | //SET_BCN_STANDBY(tm_ptr); |
ee12b079 | 288:aa93d6652381 | 69 | //gPC.puts("set Bcn off\r\n"); |
ee12b079 | 285:fe33b39dd267 | 70 | |
shreeshas95 | 0:f016e9e8d48b | 71 | // COMMON SPI |
shreeshas95 | 0:f016e9e8d48b | 72 | spi.format(8,0); |
chaithanyarss | 261:1e54415b34d3 | 73 | spi.frequency(500000); |
samp1234 | 357:f3d48d62e00e | 74 | |
samp1234 | 357:f3d48d62e00e | 75 | //FLASH_INI(); |
samp1234 | 357:f3d48d62e00e | 76 | INIT_EEPROM(); //changed Mar 2018 |
samp1234 | 357:f3d48d62e00e | 77 | RESET_WATCHDOG(); |
samp1234 | 356:197c93dc2012 | 78 | if ((BAE_STATUS & 0x03) == 0x03) |
samp1234 | 356:197c93dc2012 | 79 | {SW_OFF_BAE();} |
samp1234 | 357:f3d48d62e00e | 80 | uint8_t sd_stat_temp = SD_STATUS & 0x03; |
samp1234 | 352:022c513aee03 | 81 | SD_CARD_fromuC_ENA3 = 0; |
samp1234 | 352:022c513aee03 | 82 | SD_CARD_fromISO_ENA4 = 0; |
spacelab | 308:7c3872365d58 | 83 | SD_SW_EN_DS = 0; |
spacelab | 308:7c3872365d58 | 84 | wait(1); |
samp1234 | 352:022c513aee03 | 85 | SD_CARD_fromuC_ENA3 = 1; |
samp1234 | 352:022c513aee03 | 86 | SD_CARD_fromISO_ENA4 = 1; |
spacelab | 308:7c3872365d58 | 87 | SD_SW_EN_DS = 1; |
samp1234 | 356:197c93dc2012 | 88 | |
spacelab | 308:7c3872365d58 | 89 | wait(1); |
shreeshas95 | 0:f016e9e8d48b | 90 | // SD CARD |
ee12b079 | 86:a26f5f22631d | 91 | cs_sd = 1; |
shreeshas95 | 2:2caf2a9a13aa | 92 | gCS_RTC = 1; |
ee12b079 | 90:df55a5f68331 | 93 | gCS_ADF = 1; |
ee12b079 | 93:4d76de54a699 | 94 | |
samp1234 | 357:f3d48d62e00e | 95 | FCTN_CDMS_SD_INIT();/* sd card initialization*/ |
samp1234 | 357:f3d48d62e00e | 96 | |
samp1234 | 357:f3d48d62e00e | 97 | CDMS_RTC_DISABLE = 1; |
samp1234 | 357:f3d48d62e00e | 98 | //RTC_INIT_STATUS = test_buffer |
samp1234 | 356:197c93dc2012 | 99 | if((CDMS_RTC_DISABLE & 0x01) == 1) |
samp1234 | 356:197c93dc2012 | 100 | { |
samp1234 | 356:197c93dc2012 | 101 | CDMS_RTC_ON(); |
samp1234 | 356:197c93dc2012 | 102 | } |
samp1234 | 356:197c93dc2012 | 103 | if((RTC_INIT_STATUS & 0x01) != 1) //Joel |
samp1234 | 357:f3d48d62e00e | 104 | { |
samp1234 | 356:197c93dc2012 | 105 | FCTN_CDMS_INIT_RTC();/* rtc initialization*/ |
samp1234 | 357:f3d48d62e00e | 106 | |
samp1234 | 357:f3d48d62e00e | 107 | //INIT_40mins |
samp1234 | 357:f3d48d62e00e | 108 | |
samp1234 | 357:f3d48d62e00e | 109 | /*BAE_SW_EN_DS = 0; //DISABLE BAE |
samp1234 | 357:f3d48d62e00e | 110 | SD_SW_EN_DS = 0; //DISABLE SD |
samp1234 | 357:f3d48d62e00e | 111 | uint64_t ini_time = FCTN_CDMS_RD_RTC(); |
samp1234 | 357:f3d48d62e00e | 112 | uint32_t T_check_ini = (((ini_time >> 7)& 0x00000FC0)>>6); |
samp1234 | 357:f3d48d62e00e | 113 | uint32_t T_diff = T_check_ini; |
samp1234 | 357:f3d48d62e00e | 114 | |
samp1234 | 357:f3d48d62e00e | 115 | expired=0; |
samp1234 | 357:f3d48d62e00e | 116 | Ticker Sftw_Timer; |
samp1234 | 357:f3d48d62e00e | 117 | gPC.printf("\rGoing to start Ticker\n"); |
samp1234 | 357:f3d48d62e00e | 118 | Sftw_Timer.attach(&int_acq1, 2500.0); |
samp1234 | 357:f3d48d62e00e | 119 | |
samp1234 | 357:f3d48d62e00e | 120 | while (T_check_ini - T_diff < T_INI) |
samp1234 | 357:f3d48d62e00e | 121 | { |
samp1234 | 357:f3d48d62e00e | 122 | RESET_WATCHDOG(); |
samp1234 | 357:f3d48d62e00e | 123 | wait_ms(10000); |
samp1234 | 357:f3d48d62e00e | 124 | ini_time = FCTN_CDMS_RD_RTC(); |
samp1234 | 357:f3d48d62e00e | 125 | T_check_ini = (((ini_time >> 7)& 0x00000FC0)>>6); |
samp1234 | 357:f3d48d62e00e | 126 | gPC.printf("ini_time %d",T_check_ini); |
samp1234 | 357:f3d48d62e00e | 127 | if (expired == 1) |
samp1234 | 357:f3d48d62e00e | 128 | break; |
samp1234 | 357:f3d48d62e00e | 129 | } |
samp1234 | 357:f3d48d62e00e | 130 | BAE_SW_EN_DS = 1; //ENABLE BAE |
samp1234 | 357:f3d48d62e00e | 131 | SD_SW_EN_DS = 1; //ENABLE SD*/ |
samp1234 | 357:f3d48d62e00e | 132 | } |
samp1234 | 357:f3d48d62e00e | 133 | |
samp1234 | 356:197c93dc2012 | 134 | if(sd_stat_temp == DEVICE_DISABLED) |
samp1234 | 356:197c93dc2012 | 135 | { |
samp1234 | 356:197c93dc2012 | 136 | SD_STATUS = sd_stat_temp; |
samp1234 | 356:197c93dc2012 | 137 | // SD_STATUS = 0x03; |
samp1234 | 356:197c93dc2012 | 138 | SD_SW_EN_DS = 0; |
samp1234 | 356:197c93dc2012 | 139 | } |
samp1234 | 356:197c93dc2012 | 140 | else if(sd_stat_temp == DEVICE_OC_FAULT) |
samp1234 | 356:197c93dc2012 | 141 | { |
samp1234 | 356:197c93dc2012 | 142 | SD_STATUS = sd_stat_temp; |
samp1234 | 356:197c93dc2012 | 143 | } |
samp1234 | 357:f3d48d62e00e | 144 | |
samp1234 | 356:197c93dc2012 | 145 | CDMS_RESET_COUNTER+=1; |
samp1234 | 357:f3d48d62e00e | 146 | WRITE_TO_EEPROM(7,CDMS_RESET_COUNTER); |
samp1234 | 356:197c93dc2012 | 147 | gPC.printf("\n\r%d\n",CDMS_RESET_COUNTER); |
chaithanyarss | 324:c0a5228cc666 | 148 | TIME_LATEST_CDSMS_RESET = FCTN_CDMS_RD_RTC() >> 7; |
samp1234 | 357:f3d48d62e00e | 149 | //FCTN_CDMS_WR_FLASH(8,TIME_LATEST_CDSMS_RESET); |
samp1234 | 357:f3d48d62e00e | 150 | WRITE_TO_EEPROM(8,TIME_LATEST_CDSMS_RESET); |
samp1234 | 353:e1803e801e20 | 151 | |
samp1234 | 354:eb6c863756a8 | 152 | // gPC.printf("%d \n", READ_FROM_EERPOM(8)); |
samp1234 | 357:f3d48d62e00e | 153 | uint8_t test[512]; |
samp1234 | 352:022c513aee03 | 154 | |
samp1234 | 357:f3d48d62e00e | 155 | for(int i =0; i<512; i++) |
samp1234 | 357:f3d48d62e00e | 156 | test[i] = 0; |
samp1234 | 357:f3d48d62e00e | 157 | test[2] = 0xF; |
samp1234 | 357:f3d48d62e00e | 158 | test[3] = 0xA0; |
samp1234 | 357:f3d48d62e00e | 159 | test[10] = 0xF; |
samp1234 | 357:f3d48d62e00e | 160 | test[11] = 0xA0; |
samp1234 | 357:f3d48d62e00e | 161 | test[18] = 0xF; |
samp1234 | 357:f3d48d62e00e | 162 | test[19] = 0xA0; |
samp1234 | 357:f3d48d62e00e | 163 | |
samp1234 | 357:f3d48d62e00e | 164 | disk_write(test,80000); |
samp1234 | 356:197c93dc2012 | 165 | |
samp1234 | 356:197c93dc2012 | 166 | SD_MNG_SECT = SD_LIB_BLK_CURRENT; |
samp1234 | 356:197c93dc2012 | 167 | |
chaithanyarss | 326:e424f70b86c0 | 168 | FCTN_SD_MNGR(); |
chaithanyarss | 324:c0a5228cc666 | 169 | |
ee12b079 | 113:b8991d9e3b6c | 170 | #if DEBUG |
ee12b079 | 113:b8991d9e3b6c | 171 | gPC.puts("welcome to mng_tmtc\r\n"); |
ee12b079 | 113:b8991d9e3b6c | 172 | #endif |
ee12b079 | 113:b8991d9e3b6c | 173 | |
ee12b079 | 246:565458eefd94 | 174 | #if DEBUG |
ee12b079 | 246:565458eefd94 | 175 | gPC.puts("allocating threads\r\n"); |
ee12b079 | 246:565458eefd94 | 176 | #endif |
ee12b079 | 185:3b3cd96a7811 | 177 | |
ee12b079 | 338:d63eb331a67d | 178 | //DMA iobject decalaration |
ee12b079 | 338:d63eb331a67d | 179 | gPAY_SPI = new dmaSPISlave(PAY_SPI_MOSI, PAY_SPI_MISO, PAY_SPI_CLK, PAY_SPI_CS); |
ee12b079 | 338:d63eb331a67d | 180 | |
aniruddhv | 264:f7d8f9f361e3 | 181 | // COM_POWER_ON_TX(); |
aniruddhv | 264:f7d8f9f361e3 | 182 | |
shreeshas95 | 0:f016e9e8d48b | 183 | // COM_MNG_TMTC THREAD |
ee12b079 | 268:ded5306a1fd1 | 184 | gCOM_MNG_TMTC_THREAD = new Thread(COM_MNG_TMTC_FUN); |
spacelab | 308:7c3872365d58 | 185 | gCOM_MNG_TMTC_THREAD->set_priority(osPriorityRealtime); |
ee12b079 | 246:565458eefd94 | 186 | |
ee12b079 | 246:565458eefd94 | 187 | gHK_THREAD = new Thread(FCTN_CDMS_HK_MAIN); |
samp1234 | 357:f3d48d62e00e | 188 | //gHK_THREAD->set_priority(osPriorityHigh); |
samp1234 | 357:f3d48d62e00e | 189 | gHK_THREAD->set_priority(osPriorityNormal); |
ee12b079 | 246:565458eefd94 | 190 | |
ee12b079 | 113:b8991d9e3b6c | 191 | gSCIENCE_THREAD = new Thread(SCIENCE_FUN); |
spacelab | 308:7c3872365d58 | 192 | gSCIENCE_THREAD->set_priority(osPriorityHigh); |
ee12b079 | 246:565458eefd94 | 193 | |
ee12b079 | 99:efde3df6cd94 | 194 | #if DEBUG |
prasanthbj05 | 266:ae588e75cfa4 | 195 | gPC.puts("completed allocating threads\r\n"); |
prasanthbj05 | 267:783c248a6207 | 196 | #endif |
ee12b079 | 246:565458eefd94 | 197 | |
ee12b079 | 170:286ef9dad36a | 198 | master.frequency(400000); |
ee12b079 | 246:565458eefd94 | 199 | |
ee12b079 | 271:72529b247333 | 200 | HK_counter = new RtosTimer(hk_isr, osTimerPeriodic,(void * )NULL); |
samp1234 | 357:f3d48d62e00e | 201 | //gHK_THREAD->signal_set(HK_SIGNAL); |
samp1234 | 357:f3d48d62e00e | 202 | HK_counter->stop(); |
samp1234 | 357:f3d48d62e00e | 203 | wait_ms(0.1); |
samp1234 | 357:f3d48d62e00e | 204 | HK_counter->start(10000); |
samp1234 | 357:f3d48d62e00e | 205 | // HK_counter->start(10000); |
samp1234 | 357:f3d48d62e00e | 206 | // |
chaithanyarss | 303:b49b486a7107 | 207 | //PL_wo_dma = new RtosTimer(payload_isr_fun_dma, osTimerPeriodic,(void * )NULL); |
samp1234 | 357:f3d48d62e00e | 208 | //gSCIENCE_THREAD->signal_set(SCIENCE_SIGNAL); |
samp1234 | 357:f3d48d62e00e | 209 | //PL_wo_dma->stop(); |
samp1234 | 357:f3d48d62e00e | 210 | //wait_ms(0.1); |
chaithanyarss | 303:b49b486a7107 | 211 | //PL_wo_dma->start(6000); |
ee12b079 | 203:424308159a56 | 212 | |
chaithanyarss | 261:1e54415b34d3 | 213 | /*Timeout flipper; |
chaithanyarss | 261:1e54415b34d3 | 214 | flipper.attach(BAE_TC,31);*/ |
ee12b079 | 203:424308159a56 | 215 | |
ee12b079 | 232:b1458c1e9199 | 216 | /*while(1){ |
chaithanyarss | 228:335da5b0d3e4 | 217 | gPC.printf("PL_TC sending\r\n"); |
ee12b079 | 199:9f03d6ca94c9 | 218 | |
chaithanyarss | 228:335da5b0d3e4 | 219 | Base_tm *tm_ptr = new Long_tm; |
chaithanyarss | 228:335da5b0d3e4 | 220 | PL_TC(tm_ptr); |
chaithanyarss | 228:335da5b0d3e4 | 221 | wait(1); |
chaithanyarss | 228:335da5b0d3e4 | 222 | } |
ee12b079 | 232:b1458c1e9199 | 223 | gPC.printf("PL_TC sent");*/ |
chaithanyarss | 290:3159ff1081a2 | 224 | //test_pl_main(); |
shreeshas95 | 0:f016e9e8d48b | 225 | while(true){ |
ee12b079 | 97:717c7908c822 | 226 | Thread::wait(osWaitForever); |
ee12b079 | 96:4ca92f9775e0 | 227 | gLEDG = !gLEDG; |
shreeshas95 | 0:f016e9e8d48b | 228 | } |
shreeshas95 | 0:f016e9e8d48b | 229 | } |