To be debugged

Dependencies:   FreescaleIAP mbed-rtos mbed

Fork of TFR_BAE_vr1_1_Debug153 by Bragadeesh S

Committer:
sakthipriya
Date:
Wed Dec 30 04:57:46 2015 +0000
Revision:
4:39a4ae8c7ecd
Parent:
3:07e15677a75c
Child:
5:bb592f3185cc
for Pradeep's use

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sakthipriya 0:7b4c00e3912f 1 #include "mbed.h"
sakthipriya 0:7b4c00e3912f 2 #include "TCTM.h"
sakthipriya 3:07e15677a75c 3 #include "crc.h"
sakthipriya 4:39a4ae8c7ecd 4 #include "EPS.h"
sakthipriya 0:7b4c00e3912f 5
sakthipriya 4:39a4ae8c7ecd 6 #include "FreescaleIAP.h"
sakthipriya 4:39a4ae8c7ecd 7
sakthipriya 4:39a4ae8c7ecd 8 extern BAE_HK_actual actual_data;
sakthipriya 4:39a4ae8c7ecd 9 extern BAE_HK_min_max bae_HK_minmax;
sakthipriya 4:39a4ae8c7ecd 10 extern uint32_t BAE_STATUS;
sakthipriya 0:7b4c00e3912f 11
sakthipriya 3:07e15677a75c 12 uint8_t* FCTN_BAE_TM_TC (uint8_t* tc)
sakthipriya 0:7b4c00e3912f 13
sakthipriya 3:07e15677a75c 14 {
sakthipriya 3:07e15677a75c 15 uint8_t service_type=(tc[2]&0xF0);
sakthipriya 3:07e15677a75c 16 uint8_t* tm;
sakthipriya 3:07e15677a75c 17 uint16_t crc16;
sakthipriya 3:07e15677a75c 18
sakthipriya 3:07e15677a75c 19
sakthipriya 3:07e15677a75c 20 switch(service_type)
sakthipriya 3:07e15677a75c 21 {
sakthipriya 3:07e15677a75c 22 case 0x60:
sakthipriya 3:07e15677a75c 23 {
sakthipriya 3:07e15677a75c 24 printf("Memory Management Service\r\n");
sakthipriya 3:07e15677a75c 25 uint8_t service_subtype=(tc[2]&0x0F);
sakthipriya 3:07e15677a75c 26
sakthipriya 3:07e15677a75c 27 switch(service_subtype)
sakthipriya 3:07e15677a75c 28 {
sakthipriya 3:07e15677a75c 29 case 0x01:
sakthipriya 3:07e15677a75c 30 {
sakthipriya 3:07e15677a75c 31 printf("Read from Flash\r\n");
sakthipriya 3:07e15677a75c 32 }
sakthipriya 3:07e15677a75c 33 case 0x02:
sakthipriya 3:07e15677a75c 34 {
sakthipriya 4:39a4ae8c7ecd 35 printf("Read from RAM\r\n");
sakthipriya 4:39a4ae8c7ecd 36 switch(tc[3])
sakthipriya 4:39a4ae8c7ecd 37 {
sakthipriya 4:39a4ae8c7ecd 38 case 0x00:
sakthipriya 4:39a4ae8c7ecd 39 {
sakthipriya 4:39a4ae8c7ecd 40 printf("Read HK\r\n");
sakthipriya 4:39a4ae8c7ecd 41 tm[0] = 0x60;
sakthipriya 4:39a4ae8c7ecd 42 tm[1] = tc[0];
sakthipriya 4:39a4ae8c7ecd 43 tm[2] = ACK_CODE;
sakthipriya 4:39a4ae8c7ecd 44 for (int i=4; i<132;i++)
sakthipriya 4:39a4ae8c7ecd 45 {
sakthipriya 4:39a4ae8c7ecd 46
sakthipriya 4:39a4ae8c7ecd 47 }
sakthipriya 4:39a4ae8c7ecd 48 crc16 = CRC::crc16_gen(tm,132);
sakthipriya 4:39a4ae8c7ecd 49 tm[132] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 4:39a4ae8c7ecd 50 tm[133] = (uint8_t)(crc16&0x00FF);
sakthipriya 4:39a4ae8c7ecd 51
sakthipriya 4:39a4ae8c7ecd 52
sakthipriya 4:39a4ae8c7ecd 53 }
sakthipriya 4:39a4ae8c7ecd 54 case 0x01:
sakthipriya 4:39a4ae8c7ecd 55 {
sakthipriya 4:39a4ae8c7ecd 56 printf("Read min max data");
sakthipriya 4:39a4ae8c7ecd 57 }
sakthipriya 4:39a4ae8c7ecd 58 case 0x02:
sakthipriya 4:39a4ae8c7ecd 59 {
sakthipriya 4:39a4ae8c7ecd 60 printf("Read status");
sakthipriya 4:39a4ae8c7ecd 61
sakthipriya 4:39a4ae8c7ecd 62 }
sakthipriya 4:39a4ae8c7ecd 63 }
sakthipriya 3:07e15677a75c 64 }
sakthipriya 3:07e15677a75c 65 case 0x05:
sakthipriya 3:07e15677a75c 66 {
sakthipriya 3:07e15677a75c 67 printf("Write on Flash\r\n");
sakthipriya 3:07e15677a75c 68 }
sakthipriya 3:07e15677a75c 69 default:
sakthipriya 3:07e15677a75c 70 {
sakthipriya 3:07e15677a75c 71 printf("Invalid TC");
sakthipriya 3:07e15677a75c 72 //ACK_L234_TM
sakthipriya 3:07e15677a75c 73 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 74 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 75 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 76 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 77 {
sakthipriya 3:07e15677a75c 78 tm[i]=0x00;
sakthipriya 0:7b4c00e3912f 79 }
sakthipriya 3:07e15677a75c 80 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 81 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 82 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 83 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 84 {
sakthipriya 3:07e15677a75c 85 tm[i]=0x00;
sakthipriya 0:7b4c00e3912f 86 }
sakthipriya 3:07e15677a75c 87 return tm;
sakthipriya 3:07e15677a75c 88 }
sakthipriya 3:07e15677a75c 89 }
sakthipriya 0:7b4c00e3912f 90 }
sakthipriya 0:7b4c00e3912f 91
sakthipriya 3:07e15677a75c 92 case 0x80:
sakthipriya 3:07e15677a75c 93 {
sakthipriya 3:07e15677a75c 94 printf("Function Management Service\r\n");
sakthipriya 3:07e15677a75c 95 uint8_t service_subtype=(tc[2]&0x0F);
sakthipriya 3:07e15677a75c 96
sakthipriya 3:07e15677a75c 97 switch(service_subtype)
sakthipriya 3:07e15677a75c 98 {
sakthipriya 3:07e15677a75c 99 case 0x01:
sakthipriya 3:07e15677a75c 100 {
sakthipriya 3:07e15677a75c 101 printf("FMS Activated\r\n");
sakthipriya 3:07e15677a75c 102
sakthipriya 3:07e15677a75c 103 uint8_t pid=tc[3];
sakthipriya 3:07e15677a75c 104 switch(pid)
sakthipriya 3:07e15677a75c 105 {
sakthipriya 3:07e15677a75c 106 case 0x01:
sakthipriya 3:07e15677a75c 107 {
sakthipriya 3:07e15677a75c 108 printf("Run P_EPS_INIT\r\n");
sakthipriya 3:07e15677a75c 109 //ACK_L234_TM
sakthipriya 3:07e15677a75c 110 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 111 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 112 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 113 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 114 {
sakthipriya 3:07e15677a75c 115 tm[i]=0x00;
sakthipriya 3:07e15677a75c 116 }
sakthipriya 3:07e15677a75c 117 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 118 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 119 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 120 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 121 {
sakthipriya 3:07e15677a75c 122 tm[i]=0x00;
sakthipriya 3:07e15677a75c 123 }
sakthipriya 3:07e15677a75c 124 return tm;
sakthipriya 3:07e15677a75c 125
sakthipriya 3:07e15677a75c 126 }
sakthipriya 3:07e15677a75c 127 case 0x02:
sakthipriya 3:07e15677a75c 128 {
sakthipriya 3:07e15677a75c 129 printf("Run P_EPS_MAIN\r\n");
sakthipriya 3:07e15677a75c 130 //ACK_L234_TM
sakthipriya 3:07e15677a75c 131 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 132 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 133 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 134 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 135 {
sakthipriya 3:07e15677a75c 136 tm[i]=0x00;
sakthipriya 3:07e15677a75c 137 }
sakthipriya 3:07e15677a75c 138 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 139 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 140 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 141 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 142 {
sakthipriya 3:07e15677a75c 143 tm[i]=0x00;
sakthipriya 3:07e15677a75c 144 }
sakthipriya 3:07e15677a75c 145 return tm;
sakthipriya 3:07e15677a75c 146 }
sakthipriya 3:07e15677a75c 147 case 0x03:
sakthipriya 3:07e15677a75c 148 {
sakthipriya 3:07e15677a75c 149 printf("Run P_ACS_INIT\r\n");
sakthipriya 3:07e15677a75c 150 //ACK_L234_TM
sakthipriya 3:07e15677a75c 151 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 152 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 153 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 154 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 155 {
sakthipriya 3:07e15677a75c 156 tm[i]=0x00;
sakthipriya 3:07e15677a75c 157 }
sakthipriya 3:07e15677a75c 158 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 159 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 160 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 161 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 162 {
sakthipriya 3:07e15677a75c 163 tm[i]=0x00;
sakthipriya 3:07e15677a75c 164 }
sakthipriya 3:07e15677a75c 165 return tm;
sakthipriya 3:07e15677a75c 166 }
sakthipriya 3:07e15677a75c 167 case 0x04:
sakthipriya 3:07e15677a75c 168 {
sakthipriya 3:07e15677a75c 169 printf("Run P_ACS_ACQ_DATA\r\n");
sakthipriya 3:07e15677a75c 170 //ACK_L234_TM
sakthipriya 3:07e15677a75c 171 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 172 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 173 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 174 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 175 {
sakthipriya 3:07e15677a75c 176 tm[i]=0x00;
sakthipriya 3:07e15677a75c 177 }
sakthipriya 3:07e15677a75c 178 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 179 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 180 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 181 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 182 {
sakthipriya 3:07e15677a75c 183 tm[i]=0x00;
sakthipriya 3:07e15677a75c 184 }
sakthipriya 3:07e15677a75c 185 return tm;
sakthipriya 3:07e15677a75c 186 }
sakthipriya 3:07e15677a75c 187 case 0x05:
sakthipriya 3:07e15677a75c 188 {
sakthipriya 3:07e15677a75c 189 printf("Run P_ACS_MAIN\r\n");
sakthipriya 3:07e15677a75c 190 //ACK_L234_TM
sakthipriya 3:07e15677a75c 191 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 192 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 193 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 194 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 195 {
sakthipriya 3:07e15677a75c 196 tm[i]=0x00;
sakthipriya 3:07e15677a75c 197 }
sakthipriya 3:07e15677a75c 198 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 199 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 200 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 201 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 202 {
sakthipriya 3:07e15677a75c 203 tm[i]=0x00;
sakthipriya 3:07e15677a75c 204 }
sakthipriya 3:07e15677a75c 205 return tm;
sakthipriya 3:07e15677a75c 206 }
sakthipriya 3:07e15677a75c 207 case 0x06:
sakthipriya 3:07e15677a75c 208 {
sakthipriya 3:07e15677a75c 209 printf("Run P_BCN_INIT\r\n");
sakthipriya 3:07e15677a75c 210 //ACK_L234_TM
sakthipriya 3:07e15677a75c 211 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 212 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 213 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 214 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 215 {
sakthipriya 3:07e15677a75c 216 tm[i]=0x00;
sakthipriya 3:07e15677a75c 217 }
sakthipriya 3:07e15677a75c 218 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 219 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 220 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 221 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 222 {
sakthipriya 3:07e15677a75c 223 tm[i]=0x00;
sakthipriya 3:07e15677a75c 224 }
sakthipriya 3:07e15677a75c 225 return tm;
sakthipriya 3:07e15677a75c 226 }
sakthipriya 3:07e15677a75c 227 case 0x07:
sakthipriya 3:07e15677a75c 228 {
sakthipriya 3:07e15677a75c 229 printf("Run P_BCN_TX_MAIN\r\n");
sakthipriya 3:07e15677a75c 230 //ACK_L234_TM
sakthipriya 3:07e15677a75c 231 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 232 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 233 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 234 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 235 {
sakthipriya 3:07e15677a75c 236 tm[i]=0x00;
sakthipriya 3:07e15677a75c 237 }
sakthipriya 3:07e15677a75c 238 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 239 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 240 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 241 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 242 {
sakthipriya 3:07e15677a75c 243 tm[i]=0x00;
sakthipriya 3:07e15677a75c 244 }
sakthipriya 3:07e15677a75c 245 return tm;
sakthipriya 3:07e15677a75c 246 }
sakthipriya 3:07e15677a75c 247 case 0x11:
sakthipriya 3:07e15677a75c 248 {
sakthipriya 3:07e15677a75c 249 printf("SW_ON_ACS_ATS1_SW_ENABLE\r\n");
sakthipriya 3:07e15677a75c 250 //ACK_L234_TM
sakthipriya 3:07e15677a75c 251 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 252 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 253 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 254 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 255 {
sakthipriya 3:07e15677a75c 256 tm[i]=0x00;
sakthipriya 3:07e15677a75c 257 }
sakthipriya 3:07e15677a75c 258 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 259 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 260 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 261 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 262 {
sakthipriya 3:07e15677a75c 263 tm[i]=0x00;
sakthipriya 3:07e15677a75c 264 }
sakthipriya 3:07e15677a75c 265 return tm;
sakthipriya 3:07e15677a75c 266 }
sakthipriya 3:07e15677a75c 267 case 0x12:
sakthipriya 3:07e15677a75c 268 {
sakthipriya 3:07e15677a75c 269 printf("SW_ON_ACS_ATS2_SW_ENABLE\r\n");
sakthipriya 3:07e15677a75c 270 //ACK_L234_TM
sakthipriya 3:07e15677a75c 271 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 272 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 273 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 274 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 275 {
sakthipriya 3:07e15677a75c 276 tm[i]=0x00;
sakthipriya 3:07e15677a75c 277 }
sakthipriya 3:07e15677a75c 278 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 279 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 280 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 281 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 282 {
sakthipriya 3:07e15677a75c 283 tm[i]=0x00;
sakthipriya 3:07e15677a75c 284 }
sakthipriya 3:07e15677a75c 285 return tm;
sakthipriya 3:07e15677a75c 286 }
sakthipriya 3:07e15677a75c 287 case 0x13:
sakthipriya 3:07e15677a75c 288 {
sakthipriya 3:07e15677a75c 289 printf("SW_ON_ACS_TR_XY_ENABLE\r\n");
sakthipriya 3:07e15677a75c 290 //ACK_L234_TM
sakthipriya 3:07e15677a75c 291 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 292 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 293 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 294 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 295 {
sakthipriya 3:07e15677a75c 296 tm[i]=0x00;
sakthipriya 3:07e15677a75c 297 }
sakthipriya 3:07e15677a75c 298 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 299 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 300 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 301 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 302 {
sakthipriya 3:07e15677a75c 303 tm[i]=0x00;
sakthipriya 3:07e15677a75c 304 }
sakthipriya 3:07e15677a75c 305 return tm;
sakthipriya 3:07e15677a75c 306 }
sakthipriya 3:07e15677a75c 307 case 0x14:
sakthipriya 3:07e15677a75c 308 {
sakthipriya 3:07e15677a75c 309 printf("SW_ON_ACS_TR_Z_ENABLE\r\n");
sakthipriya 3:07e15677a75c 310 //ACK_L234_TM
sakthipriya 3:07e15677a75c 311 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 312 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 313 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 314 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 315 {
sakthipriya 3:07e15677a75c 316 tm[i]=0x00;
sakthipriya 3:07e15677a75c 317 }
sakthipriya 3:07e15677a75c 318 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 319 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 320 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 321 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 322 {
sakthipriya 3:07e15677a75c 323 tm[i]=0x00;
sakthipriya 3:07e15677a75c 324 }
sakthipriya 3:07e15677a75c 325 return tm;
sakthipriya 3:07e15677a75c 326 }
sakthipriya 3:07e15677a75c 327 case 0x15:
sakthipriya 3:07e15677a75c 328 {
sakthipriya 3:07e15677a75c 329 printf("SW_ON_BCN_TX_SW_ENABLE\r\n");
sakthipriya 3:07e15677a75c 330 //ACK_L234_TM
sakthipriya 3:07e15677a75c 331 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 332 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 333 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 334 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 335 {
sakthipriya 3:07e15677a75c 336 tm[i]=0x00;
sakthipriya 3:07e15677a75c 337 }
sakthipriya 3:07e15677a75c 338 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 339 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 340 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 341 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 342 {
sakthipriya 3:07e15677a75c 343 tm[i]=0x00;
sakthipriya 3:07e15677a75c 344 }
sakthipriya 3:07e15677a75c 345 return tm;
sakthipriya 3:07e15677a75c 346 }
sakthipriya 3:07e15677a75c 347 case 0x21:
sakthipriya 3:07e15677a75c 348 {
sakthipriya 3:07e15677a75c 349 printf("SW_OFF_ACS_ATS1_SW_ENABLE\r\n");
sakthipriya 3:07e15677a75c 350 //ACK_L234_TM
sakthipriya 3:07e15677a75c 351 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 352 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 353 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 354 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 355 {
sakthipriya 3:07e15677a75c 356 tm[i]=0x00;
sakthipriya 3:07e15677a75c 357 }
sakthipriya 3:07e15677a75c 358 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 359 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 360 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 361 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 362 {
sakthipriya 3:07e15677a75c 363 tm[i]=0x00;
sakthipriya 3:07e15677a75c 364 }
sakthipriya 3:07e15677a75c 365 return tm;
sakthipriya 3:07e15677a75c 366 }
sakthipriya 3:07e15677a75c 367 case 0x22:
sakthipriya 3:07e15677a75c 368 {
sakthipriya 3:07e15677a75c 369 printf("SW_OFF_ACS_ATS2_SW_ENABLE\r\n");
sakthipriya 3:07e15677a75c 370 //ACK_L234_TM
sakthipriya 3:07e15677a75c 371 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 372 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 373 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 374 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 375 {
sakthipriya 3:07e15677a75c 376 tm[i]=0x00;
sakthipriya 3:07e15677a75c 377 }
sakthipriya 3:07e15677a75c 378 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 379 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 380 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 381 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 382 {
sakthipriya 3:07e15677a75c 383 tm[i]=0x00;
sakthipriya 3:07e15677a75c 384 }
sakthipriya 3:07e15677a75c 385 return tm;
sakthipriya 3:07e15677a75c 386 }
sakthipriya 3:07e15677a75c 387 case 0x23:
sakthipriya 3:07e15677a75c 388 {
sakthipriya 3:07e15677a75c 389 printf("SW_OFF_ACS_TR_XY_ENABLE\r\n");
sakthipriya 3:07e15677a75c 390 //ACK_L234_TM
sakthipriya 3:07e15677a75c 391 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 392 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 393 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 394 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 395 {
sakthipriya 3:07e15677a75c 396 tm[i]=0x00;
sakthipriya 3:07e15677a75c 397 }
sakthipriya 3:07e15677a75c 398 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 399 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 400 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 401 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 402 {
sakthipriya 3:07e15677a75c 403 tm[i]=0x00;
sakthipriya 3:07e15677a75c 404 }
sakthipriya 3:07e15677a75c 405 return tm;
sakthipriya 3:07e15677a75c 406 }
sakthipriya 3:07e15677a75c 407 case 0x24:
sakthipriya 3:07e15677a75c 408 {
sakthipriya 3:07e15677a75c 409 printf("SW_OFF_ACS_TR_Z_ENABLE\r\n");
sakthipriya 3:07e15677a75c 410 //ACK_L234_TM
sakthipriya 3:07e15677a75c 411 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 412 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 413 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 414 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 415 {
sakthipriya 3:07e15677a75c 416 tm[i]=0x00;
sakthipriya 3:07e15677a75c 417 }
sakthipriya 3:07e15677a75c 418 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 419 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 420 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 421 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 422 {
sakthipriya 3:07e15677a75c 423 tm[i]=0x00;
sakthipriya 3:07e15677a75c 424 }
sakthipriya 3:07e15677a75c 425 return tm;
sakthipriya 3:07e15677a75c 426 }
sakthipriya 3:07e15677a75c 427 case 0x25:
sakthipriya 3:07e15677a75c 428 {
sakthipriya 3:07e15677a75c 429 printf("SW_OFF_BCN_TX_SW_ENABLE\r\n");
sakthipriya 3:07e15677a75c 430 //ACK_L234_TM
sakthipriya 3:07e15677a75c 431 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 432 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 433 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 434 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 435 {
sakthipriya 3:07e15677a75c 436 tm[i]=0x00;
sakthipriya 3:07e15677a75c 437 }
sakthipriya 3:07e15677a75c 438 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 439 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 440 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 441 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 442 {
sakthipriya 3:07e15677a75c 443 tm[i]=0x00;
sakthipriya 3:07e15677a75c 444 }
sakthipriya 3:07e15677a75c 445 return tm;
sakthipriya 3:07e15677a75c 446 }
sakthipriya 3:07e15677a75c 447 case 0x31:
sakthipriya 3:07e15677a75c 448 {
sakthipriya 3:07e15677a75c 449 printf("ACS_ATS_SW_RESET\r\n");
sakthipriya 3:07e15677a75c 450 //ACK_L234_TM
sakthipriya 3:07e15677a75c 451 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 452 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 453 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 454 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 455 {
sakthipriya 3:07e15677a75c 456 tm[i]=0x00;
sakthipriya 3:07e15677a75c 457 }
sakthipriya 3:07e15677a75c 458 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 459 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 460 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 461 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 462 {
sakthipriya 3:07e15677a75c 463 tm[i]=0x00;
sakthipriya 3:07e15677a75c 464 }
sakthipriya 3:07e15677a75c 465 return tm;
sakthipriya 3:07e15677a75c 466 }
sakthipriya 3:07e15677a75c 467 case 0x32:
sakthipriya 3:07e15677a75c 468 {
sakthipriya 3:07e15677a75c 469 printf("BCN_SW_RESET\r\n");
sakthipriya 3:07e15677a75c 470 //ACK_L234_TM
sakthipriya 3:07e15677a75c 471 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 472 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 473 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 474 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 475 {
sakthipriya 3:07e15677a75c 476 tm[i]=0x00;
sakthipriya 3:07e15677a75c 477 }
sakthipriya 3:07e15677a75c 478 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 479 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 480 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 481 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 482 {
sakthipriya 3:07e15677a75c 483 tm[i]=0x00;
sakthipriya 3:07e15677a75c 484 }
sakthipriya 3:07e15677a75c 485 return tm;
sakthipriya 3:07e15677a75c 486 }
sakthipriya 3:07e15677a75c 487 case 0x33:
sakthipriya 3:07e15677a75c 488 {
sakthipriya 3:07e15677a75c 489 printf("BAE_RESET\r\n");
sakthipriya 3:07e15677a75c 490 //ACK_L234_TM
sakthipriya 3:07e15677a75c 491 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 492 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 493 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 494 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 495 {
sakthipriya 3:07e15677a75c 496 tm[i]=0x00;
sakthipriya 3:07e15677a75c 497 }
sakthipriya 3:07e15677a75c 498 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 499 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 500 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 501 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 502 {
sakthipriya 3:07e15677a75c 503 tm[i]=0x00;
sakthipriya 3:07e15677a75c 504 }
sakthipriya 3:07e15677a75c 505 return tm;
sakthipriya 3:07e15677a75c 506 }
sakthipriya 3:07e15677a75c 507 case 0x34:
sakthipriya 3:07e15677a75c 508 {
sakthipriya 3:07e15677a75c 509 printf("CDMS_SW_RESET\r\n");
sakthipriya 3:07e15677a75c 510 //ACK_L234_TM
sakthipriya 3:07e15677a75c 511 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 512 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 513 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 514 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 515 {
sakthipriya 3:07e15677a75c 516 tm[i]=0x00;
sakthipriya 3:07e15677a75c 517 }
sakthipriya 3:07e15677a75c 518 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 519 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 520 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 521 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 522 {
sakthipriya 3:07e15677a75c 523 tm[i]=0x00;
sakthipriya 3:07e15677a75c 524 }
sakthipriya 3:07e15677a75c 525 return tm;
sakthipriya 3:07e15677a75c 526 }
sakthipriya 3:07e15677a75c 527 case 0xE0:
sakthipriya 3:07e15677a75c 528 {
sakthipriya 3:07e15677a75c 529 printf("CMSN_ACS_ALGO\r\n");
sakthipriya 3:07e15677a75c 530 //FMS_TM
sakthipriya 3:07e15677a75c 531 tm[0]=0xF0;
sakthipriya 3:07e15677a75c 532 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 533 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 534 for(uint8_t i=3;i<132;i++)
sakthipriya 3:07e15677a75c 535 {
sakthipriya 3:07e15677a75c 536 tm[i]=0x00;
sakthipriya 3:07e15677a75c 537 }
sakthipriya 3:07e15677a75c 538 crc16 = CRC::crc16_gen(tm,132);
sakthipriya 3:07e15677a75c 539 tm[132] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 540 tm[133] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 541 return tm;
sakthipriya 3:07e15677a75c 542 }
sakthipriya 3:07e15677a75c 543 case 0xE1:
sakthipriya 3:07e15677a75c 544 {
sakthipriya 3:07e15677a75c 545 printf("CMSN_ACS_HW\r\n");
sakthipriya 3:07e15677a75c 546 //FMS_TM
sakthipriya 3:07e15677a75c 547 tm[0]=0xF0;
sakthipriya 3:07e15677a75c 548 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 549 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 550 for(uint8_t i=3;i<132;i++)
sakthipriya 3:07e15677a75c 551 {
sakthipriya 3:07e15677a75c 552 tm[i]=0x00;
sakthipriya 3:07e15677a75c 553 }
sakthipriya 3:07e15677a75c 554 crc16 = CRC::crc16_gen(tm,132);
sakthipriya 3:07e15677a75c 555 tm[132] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 556 tm[133] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 557 return tm;
sakthipriya 3:07e15677a75c 558 }
sakthipriya 3:07e15677a75c 559 case 0xC1:
sakthipriya 3:07e15677a75c 560 {
sakthipriya 3:07e15677a75c 561 printf("Reset HK_Counter\r\n");
sakthipriya 3:07e15677a75c 562 //ACK_L234_TM
sakthipriya 3:07e15677a75c 563 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 564 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 565 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 566 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 567 {
sakthipriya 3:07e15677a75c 568 tm[i]=0x00;
sakthipriya 3:07e15677a75c 569 }
sakthipriya 3:07e15677a75c 570 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 571 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 572 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 573 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 574 {
sakthipriya 3:07e15677a75c 575 tm[i]=0x00;
sakthipriya 3:07e15677a75c 576 }
sakthipriya 3:07e15677a75c 577 return tm;
sakthipriya 3:07e15677a75c 578 }
sakthipriya 3:07e15677a75c 579 default:
sakthipriya 3:07e15677a75c 580 {
sakthipriya 3:07e15677a75c 581 printf("Invalid TC\r\n");
sakthipriya 3:07e15677a75c 582 //ACK_L234_TM
sakthipriya 3:07e15677a75c 583 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 584 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 585 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 586 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 587 {
sakthipriya 3:07e15677a75c 588 tm[i]=0x00;
sakthipriya 3:07e15677a75c 589 }
sakthipriya 3:07e15677a75c 590 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 591 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 592 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 593 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 594 {
sakthipriya 3:07e15677a75c 595 tm[i]=0x00;
sakthipriya 3:07e15677a75c 596 }
sakthipriya 3:07e15677a75c 597 return tm;
sakthipriya 3:07e15677a75c 598 }
sakthipriya 3:07e15677a75c 599 }
sakthipriya 3:07e15677a75c 600
sakthipriya 3:07e15677a75c 601 default:
sakthipriya 3:07e15677a75c 602 {
sakthipriya 3:07e15677a75c 603 printf("Invalid TC\r\n");
sakthipriya 3:07e15677a75c 604 //ACK_L234_TM
sakthipriya 3:07e15677a75c 605 tm[0]=0xB0;
sakthipriya 3:07e15677a75c 606 tm[1]=tc[0];
sakthipriya 3:07e15677a75c 607 tm[2]=ACK_CODE;
sakthipriya 3:07e15677a75c 608 for(uint8_t i=3;i<11;i++)
sakthipriya 3:07e15677a75c 609 {
sakthipriya 3:07e15677a75c 610 tm[i]=0x00;
sakthipriya 3:07e15677a75c 611 }
sakthipriya 3:07e15677a75c 612 crc16 = CRC::crc16_gen(tm,11);
sakthipriya 3:07e15677a75c 613 tm[11] = (uint8_t)((crc16&0xFF00)>>8);
sakthipriya 3:07e15677a75c 614 tm[12] = (uint8_t)(crc16&0x00FF);
sakthipriya 3:07e15677a75c 615 for(uint8_t i=13;i<134;i++)
sakthipriya 3:07e15677a75c 616 {
sakthipriya 3:07e15677a75c 617 tm[i]=0x00;
sakthipriya 3:07e15677a75c 618 }
sakthipriya 3:07e15677a75c 619 return tm;
sakthipriya 3:07e15677a75c 620 }
sakthipriya 3:07e15677a75c 621 }
sakthipriya 3:07e15677a75c 622 }
sakthipriya 3:07e15677a75c 623 }
sakthipriya 3:07e15677a75c 624 }
sakthipriya 4:39a4ae8c7ecd 625 }
sakthipriya 4:39a4ae8c7ecd 626
sakthipriya 4:39a4ae8c7ecd 627
sakthipriya 4:39a4ae8c7ecd 628
sakthipriya 4:39a4ae8c7ecd 629
sakthipriya 4:39a4ae8c7ecd 630 int strt_add = flash_size() - (2*SECTOR_SIZE);
sakthipriya 4:39a4ae8c7ecd 631 uint32_t flasharray[8]; //256+(3*1024)
sakthipriya 4:39a4ae8c7ecd 632 char *nativeflash = (char*)strt_add;
sakthipriya 4:39a4ae8c7ecd 633
sakthipriya 4:39a4ae8c7ecd 634 /*Writing to the Flash*/
sakthipriya 4:39a4ae8c7ecd 635 void FCTN_CDMS_WR_FLASH(uint16_t j,uint32_t fdata) //j-position to write address ; fdata - flash data to be written
sakthipriya 4:39a4ae8c7ecd 636 {
sakthipriya 4:39a4ae8c7ecd 637 for(int i=0;i<8;i++)
sakthipriya 4:39a4ae8c7ecd 638 {
sakthipriya 4:39a4ae8c7ecd 639 flasharray[i]=nativeflash[i];
sakthipriya 4:39a4ae8c7ecd 640 }
sakthipriya 4:39a4ae8c7ecd 641 flasharray[j]=fdata;
sakthipriya 4:39a4ae8c7ecd 642 erase_sector(strt_add);
sakthipriya 4:39a4ae8c7ecd 643 program_flash(strt_add, (char*)&flasharray,4*8);
sakthipriya 4:39a4ae8c7ecd 644 }
sakthipriya 4:39a4ae8c7ecd 645 /*End*/
sakthipriya 4:39a4ae8c7ecd 646
sakthipriya 4:39a4ae8c7ecd 647 /*Reading from Flash*/
sakthipriya 4:39a4ae8c7ecd 648 uint32_t FCTN_CDMS_RD_FLASH(uint16_t j)
sakthipriya 4:39a4ae8c7ecd 649 {
sakthipriya 4:39a4ae8c7ecd 650 for(int i=0;i<8;i++)
sakthipriya 4:39a4ae8c7ecd 651 {
sakthipriya 4:39a4ae8c7ecd 652 flasharray[i]=nativeflash[i];
sakthipriya 4:39a4ae8c7ecd 653 }
sakthipriya 4:39a4ae8c7ecd 654 return flasharray[j];
sakthipriya 4:39a4ae8c7ecd 655 }
sakthipriya 4:39a4ae8c7ecd 656 /*End*/