1 |
kusanagi |
1.1 |
/*****************************************************************************/ |
2 |
|
|
/* Module : TestUtility */ |
3 |
|
|
/* C.I. No. : */ |
4 |
|
|
/* Revision : */ |
5 |
|
|
/* Date : */ |
6 |
|
|
/* Belonging to : */ |
7 |
|
|
/* : */ |
8 |
|
|
/* File Name : TS_Test_p.c */ |
9 |
|
|
/* Program Type : */ |
10 |
|
|
/* Sub-modules : */ |
11 |
|
|
/* */ |
12 |
|
|
/*****************************************************************************/ |
13 |
|
|
/* S W D e v e l o p m e n t E n v i r o n m e n t */ |
14 |
|
|
/* */ |
15 |
|
|
/* Host system : */ |
16 |
|
|
/* SW Compiler : */ |
17 |
|
|
/* Author */ |
18 |
|
|
/* : */ |
19 |
|
|
/*****************************************************************************/ |
20 |
|
|
/* U p d a t i n g */ |
21 |
|
|
/* */ |
22 |
|
|
/* Revision : */ |
23 |
|
|
/* */ |
24 |
|
|
/* */ |
25 |
|
|
/*****************************************************************************/ |
26 |
|
|
|
27 |
|
|
|
28 |
|
|
/*============================= Include File ================================*/ |
29 |
|
|
|
30 |
|
|
#include <src/INFN/LU_SourceFileID_INFN.h> |
31 |
|
|
#define __FILEID__ _TS_Test_INFN__c |
32 |
|
|
#include <src/INFN/PRH_ParamHandler_INFN_auto.h> |
33 |
|
|
#include <src/INFN/PRH_ParamHandler_INFN.h> |
34 |
|
|
#include <src/INFN/LU_LogUtility_INFN.h> |
35 |
|
|
|
36 |
|
|
LU_DECL_MASK(); |
37 |
|
|
|
38 |
|
|
|
39 |
|
|
#include <src/TestUtility/Test/TS_Test_p.h> |
40 |
|
|
#include <src/ModeManager/ModeCoordinator/MC_ModeCoordinator_p.h> |
41 |
|
|
#include <src/FileManager/MMSUManager/FT_MMSUManager_p.h> |
42 |
|
|
#include <src/FileManager/FileSystem/FS_FileSystem_p.h> |
43 |
|
|
#include <src/MCMDManager/MCMDDispatcher/MD_MCMDDispatcher_p.h> |
44 |
|
|
#include <src/MCMDManager/MCMDArea/MA_MCMDArea_p.h> |
45 |
|
|
#include <src/TM_TCManager/TMTCManager/TM_TMTCManager_p.h> |
46 |
|
|
#include <src/SRAMManager/SRAMPageManager/SM_SRAMPageManager_p.h> |
47 |
|
|
#include <src/SRAMManager/SRAMPageManager/SM_SRAMPageManager_op.h> |
48 |
|
|
#include <src/HKManager/HistoryArea/HA_HistoryArea_p.h> |
49 |
|
|
|
50 |
|
|
|
51 |
|
|
#include <src/INFN/LU_SourceFileID_INFN.h> |
52 |
|
|
/*==================================== define ===============================*/ |
53 |
|
|
|
54 |
|
|
#define DISABLE 0 |
55 |
|
|
#define ENABLE 1 |
56 |
|
|
#define LENGTH_OUT_CMDS 0x0100 |
57 |
|
|
|
58 |
|
|
#define BITE_FILLER 0x0204 |
59 |
|
|
|
60 |
|
|
#define HA_EVENT_00 0 |
61 |
|
|
#define HA_EVENT_01 1 |
62 |
|
|
#define HA_EVENT_02 2 |
63 |
|
|
#define HA_EVENT_03 3 |
64 |
|
|
#define HA_EVENT_04 4 |
65 |
|
|
#define HA_EVENT_05 5 |
66 |
|
|
#define HA_EVENT_06 6 |
67 |
|
|
#define HA_EVENT_07 7 |
68 |
|
|
#define HA_EVENT_08 8 |
69 |
|
|
#define HA_EVENT_09 9 |
70 |
|
|
#define HA_EVENT_10 10 |
71 |
|
|
#define HA_EVENT_11 11 |
72 |
|
|
#define HA_EVENT_12 12 |
73 |
|
|
#define HA_EVENT_13 13 |
74 |
|
|
#define HA_EVENT_14 14 |
75 |
|
|
#define HA_EVENT_15 15 |
76 |
|
|
|
77 |
|
|
typedef unsigned char UBYTE; |
78 |
|
|
typedef unsigned short int UWORD; |
79 |
|
|
typedef unsigned long int UDWORD; |
80 |
|
|
|
81 |
|
|
static unsigned int teststate; |
82 |
|
|
static unsigned int pkts; |
83 |
|
|
MA_HEADER_MCMD McMd; |
84 |
|
|
static MsgTsk MaintMsg; |
85 |
|
|
static MsgTsk ActiveMsg; |
86 |
|
|
static MsgTsk TestMsg; |
87 |
|
|
static MsgTsk CalMsg; |
88 |
|
|
static MsgTsk ExpMsg; |
89 |
|
|
|
90 |
|
|
/*================================ Prototype ================================*/ |
91 |
|
|
|
92 |
|
|
|
93 |
|
|
void TS_TmTc(void); |
94 |
|
|
|
95 |
|
|
/*============================== Local Variables ============================*/ |
96 |
|
|
|
97 |
|
|
static unsigned int TmValue[85]; |
98 |
|
|
static unsigned int val; |
99 |
|
|
static unsigned int sensore; |
100 |
|
|
|
101 |
|
|
/* array for test the memory load output */ |
102 |
|
|
static TM_TC_ML TmMemoryLoad[16]; |
103 |
|
|
|
104 |
|
|
/*****************************************************************************/ |
105 |
|
|
|
106 |
|
|
/*============= S W _ T E S T I N T E R N A L F U N C T I O N ===========*/ |
107 |
|
|
|
108 |
|
|
/*****************************************************************************/ |
109 |
|
|
/* prototype |
110 |
|
|
* |
111 |
|
|
* |
112 |
|
|
* Description |
113 |
|
|
* |
114 |
|
|
* |
115 |
|
|
* Input parameters: |
116 |
|
|
* |
117 |
|
|
* |
118 |
|
|
* |
119 |
|
|
* Output parameters: rtems_status_code |
120 |
|
|
* |
121 |
|
|
*/ |
122 |
|
|
/*****************************************************************************/ |
123 |
|
|
|
124 |
|
|
status_code TS_piTestInit (void) |
125 |
|
|
{ |
126 |
|
|
status_code status; |
127 |
|
|
unsigned int OldPriority; |
128 |
|
|
unsigned int transiz; |
129 |
|
|
unsigned char* pRc; |
130 |
|
|
|
131 |
|
|
status =SUCCESSFUL; |
132 |
|
|
status |=OS_piTaskReady(TS_TASK,TS_tkTest); |
133 |
|
|
status |=OS_piTaskPriority(TS_TASK,20,&OldPriority); |
134 |
|
|
return (status); |
135 |
|
|
} |
136 |
|
|
|
137 |
|
|
|
138 |
|
|
/*****************************************************************************/ |
139 |
|
|
/* TS_tkTest |
140 |
|
|
* |
141 |
|
|
* |
142 |
|
|
* Input parameters: NONE |
143 |
|
|
* |
144 |
|
|
* Output parameters: NONE |
145 |
|
|
* |
146 |
|
|
*/ |
147 |
|
|
/*****************************************************************************/ |
148 |
|
|
|
149 |
|
|
task TS_tkTest (task_argument unused) |
150 |
|
|
{ |
151 |
|
|
status_code status; |
152 |
|
|
unsigned int MsgSize; |
153 |
|
|
unsigned int counter; |
154 |
|
|
unsigned int level; |
155 |
|
|
unsigned int i; |
156 |
|
|
unsigned int length; |
157 |
|
|
MsgTsk RxMsg; |
158 |
|
|
MsgTsk SndMsg; |
159 |
|
|
|
160 |
|
|
|
161 |
|
|
volatile unsigned short confStatRegVal[100]; |
162 |
|
|
unsigned char buf[100]; |
163 |
|
|
|
164 |
|
|
|
165 |
|
|
SD_DAQ_WRESULT pageInfo; |
166 |
|
|
unsigned int loop; |
167 |
|
|
unsigned int pageCounter; |
168 |
|
|
unsigned int tst_value; |
169 |
|
|
|
170 |
|
|
counter =1; |
171 |
|
|
|
172 |
|
|
/* |
173 |
|
|
SndMsg.Code =TS_TM_TC; |
174 |
|
|
SndMsg.LlInfo =0; |
175 |
|
|
status =TS_piSndMsgTest (&SndMsg); |
176 |
|
|
*/ |
177 |
|
|
|
178 |
|
|
length = 16; |
179 |
|
|
for (i=0; i<length; i++) |
180 |
|
|
{ |
181 |
|
|
TmMemoryLoad[i].Code = 0x19; /* or 0x1a for ML 2 */ |
182 |
|
|
TmMemoryLoad[i].Value = (i*0x1234)&0xFFFF; |
183 |
|
|
} |
184 |
|
|
|
185 |
|
|
val = 1; |
186 |
|
|
sensore = TM_CC_DIAG_ACQ_1; |
187 |
|
|
while( FOREVER ) |
188 |
|
|
{ |
189 |
|
|
// Check mailbox queue |
190 |
|
|
RxMsg.Code =NULL_MSG_TS; |
191 |
|
|
if ((status =OS_piMsgQueueReceive (TS_MAILBOX,(void*)&RxMsg, |
192 |
|
|
&MsgSize,WAIT, NO_TIMEOUT)) == SUCCESSFUL) |
193 |
|
|
{ |
194 |
|
|
switch (RxMsg.Code) |
195 |
|
|
{ |
196 |
|
|
case TS_TM_TC: |
197 |
|
|
while( counter ) |
198 |
|
|
{ |
199 |
|
|
TS_TmTc(); |
200 |
|
|
counter--; |
201 |
|
|
} |
202 |
|
|
break; |
203 |
|
|
|
204 |
|
|
case TS_GO_SELECT_MODE: |
205 |
|
|
{ |
206 |
|
|
unsigned int timetagFlag; |
207 |
|
|
unsigned int Mode; |
208 |
|
|
unsigned int CurrentState; |
209 |
|
|
unsigned int cnt; |
210 |
|
|
unsigned char pippo2[LENGTH_OUT_CMDS]; |
211 |
|
|
MA_HEADER_MCMD* PtrMcmd; |
212 |
|
|
|
213 |
|
|
PtrMcmd = (MA_HEADER_MCMD*)RxMsg.Info; |
214 |
|
|
/* Delete MCMD from partition */ |
215 |
|
|
Mode =(unsigned int)*(((unsigned short*)PtrMcmd->PtrMCMD)+OFFSET_HEADER); |
216 |
|
|
Mode &= 0xFF; |
217 |
|
|
timetagFlag =( *(((unsigned short*)PtrMcmd->PtrMCMD)+1)&TIMETAG_MASK ) ? |
218 |
|
|
TIMETAG_MCMD : IMMEDIATE_MCMD; |
219 |
|
|
MA_piDelBufferMCMD(PtrMcmd->PtrMCMD,timetagFlag); |
220 |
|
|
HA_piLogHistoryEntry2 (PtrMcmd->Type,status); |
221 |
|
|
|
222 |
|
|
pippo2[0x00]=0xFA; |
223 |
|
|
pippo2[0x01]=0xFE; |
224 |
|
|
pippo2[0x02]=0xDE; |
225 |
|
|
pippo2[0x03]=0x1A; |
226 |
|
|
pippo2[0x04]='O'; |
227 |
|
|
pippo2[0x05]='B'; |
228 |
|
|
pippo2[0x06]='T'; |
229 |
|
|
pippo2[0x07]='_'; |
230 |
|
|
pippo2[0x08]='C'; |
231 |
|
|
pippo2[0x09]='N'; |
232 |
|
|
pippo2[0x0A]='T'; |
233 |
|
|
pippo2[0x0B]=0x1E; |
234 |
|
|
/* fill the body of the command data */ |
235 |
|
|
for (cnt = 0x0C; cnt < LENGTH_OUT_CMDS; pippo2[cnt++]=0xAA); |
236 |
|
|
/* copy the data in the calibration page 2 (es) */ |
237 |
|
|
PM_pi_CopyToSRAM (SM_CALEXP2, pippo2, sizeof(pippo2)); |
238 |
|
|
/* select the calibration page 2 */ |
239 |
|
|
PM_pi_UseCalibrationPage (SM_CALEXP2); |
240 |
|
|
|
241 |
|
|
switch(Mode) |
242 |
|
|
{ |
243 |
|
|
case 1 : //MM_INFN_SUBMODEA0 |
244 |
|
|
MC_piGetState(&CurrentState); |
245 |
|
|
if(CurrentState != MC_MAINTENANCE_STATE) |
246 |
|
|
MC_piSetState(MC_MAINTENANCE_STATE); |
247 |
|
|
break; |
248 |
|
|
case 2 : // MM_INFN_SUBMODEA1 |
249 |
|
|
MC_piGetState(&CurrentState); |
250 |
|
|
if(CurrentState != MC_MAINTENANCE_STATE) |
251 |
|
|
MC_piSetState(MC_MAINTENANCE_STATE); |
252 |
|
|
break; |
253 |
|
|
case 3 : // MM_INFN_SUBMODEA2: |
254 |
|
|
MC_piGetState(&CurrentState); |
255 |
|
|
if(CurrentState != MC_MAINTENANCE_STATE) |
256 |
|
|
MC_piSetState(MC_MAINTENANCE_STATE); |
257 |
|
|
break; |
258 |
|
|
case 4 : // MM_INFN_SUBMODEB1: |
259 |
|
|
MC_piGetState(&CurrentState); |
260 |
|
|
if(CurrentState != MC_ACTIVE_STATE) |
261 |
|
|
{ |
262 |
|
|
MC_piSetState(MC_ACTIVE_STATE); |
263 |
|
|
} |
264 |
|
|
FT_piChangeAcqMode(SM_EXP64/*it was SM_EXPERIMENT*/); |
265 |
|
|
PM_pi_SetExpPktCpyFlag(FALSE); |
266 |
|
|
break; |
267 |
|
|
case 5 : // MM_INFN_SUBMODEB2: |
268 |
|
|
MC_piGetState(&CurrentState); |
269 |
|
|
if(CurrentState != MC_ACTIVE_STATE) |
270 |
|
|
{ |
271 |
|
|
MC_piSetState(MC_ACTIVE_STATE); |
272 |
|
|
} |
273 |
|
|
FT_piChangeAcqMode(SM_EXP64); |
274 |
|
|
PM_pi_SetExpPktCpyFlag(FALSE); |
275 |
|
|
break; |
276 |
|
|
case 6 : // MM_INFN_SUBMODEB3: |
277 |
|
|
MC_piGetState(&CurrentState); |
278 |
|
|
if(CurrentState != MC_ACTIVE_STATE) |
279 |
|
|
{ |
280 |
|
|
MC_piSetState(MC_ACTIVE_STATE); |
281 |
|
|
} |
282 |
|
|
FT_piChangeAcqMode(SM_DAQSETUP); |
283 |
|
|
break; |
284 |
|
|
case 7 : // MM_INFN_SUBMODEB4: |
285 |
|
|
MC_piGetState(&CurrentState); |
286 |
|
|
if(CurrentState != MC_ACTIVE_STATE) |
287 |
|
|
{ |
288 |
|
|
MC_piSetState(MC_ACTIVE_STATE); |
289 |
|
|
FT_piChangeAcqMode(SM_DAQSETUP); |
290 |
|
|
} |
291 |
|
|
break; |
292 |
|
|
case 8 : // TEST low level transfers (LABEN test mode) |
293 |
|
|
TS_try(TS_TEST_SRAM); |
294 |
|
|
break; |
295 |
|
|
case 9 : // TEST Memory Module ON (LABEN test mode) |
296 |
|
|
TS_try(TS_MEM_TEST); |
297 |
|
|
break; |
298 |
|
|
case 10 : // set acquisition freq in erc32 Memory to 1/10 (LABEN test mode) |
299 |
|
|
MC_piGetState(&CurrentState); |
300 |
|
|
if(CurrentState != MC_ACTIVE_STATE) |
301 |
|
|
{ |
302 |
|
|
MC_piSetState(MC_ACTIVE_STATE); |
303 |
|
|
} |
304 |
|
|
FT_piChangeAcqMode(SM_EXP64/*it was SM_EXPERIMENT*/); |
305 |
|
|
PM_pi_SetExpPktCpyFlag(FALSE); |
306 |
|
|
break; |
307 |
|
|
case 11 : // write data via PCMCIA (LABEN test mode) |
308 |
|
|
TS_try(TS_WRITE_FILE); |
309 |
|
|
break; |
310 |
|
|
default : |
311 |
|
|
break; |
312 |
|
|
} |
313 |
|
|
} |
314 |
|
|
break; |
315 |
|
|
|
316 |
|
|
case TS_MEM_TEST: |
317 |
|
|
{ |
318 |
|
|
FT_piModuleTest(); |
319 |
|
|
} break; |
320 |
|
|
case TS_TEST_SRAM: |
321 |
|
|
{ |
322 |
|
|
unsigned int patternIndex; |
323 |
|
|
unsigned int patternIndexVerify; |
324 |
|
|
unsigned int errors; |
325 |
|
|
unsigned int pattern[TS_MAX_FIX_PATTERN] = {0x00000000,0x00000055,0x000000AA,0x000000FF}; |
326 |
|
|
unsigned int address; |
327 |
|
|
unsigned int pageAddress; |
328 |
|
|
unsigned int SRAMAddress; |
329 |
|
|
unsigned int value; |
330 |
|
|
unsigned int pageDim; |
331 |
|
|
unsigned int lengthSRAM = 0x40000; /* 256kB */ |
332 |
|
|
unsigned int page; |
333 |
|
|
unsigned int modAddress; |
334 |
|
|
unsigned int cnt; |
335 |
|
|
unsigned int repeat; |
336 |
|
|
unsigned int timeOutCMD; |
337 |
|
|
TI_TIME obt; |
338 |
|
|
unsigned int numCharPrinted = 0; |
339 |
|
|
static unsigned int bufTest[TS_ERROR_BUFFER_DIM]; |
340 |
|
|
|
341 |
|
|
|
342 |
|
|
/* packet counter for header */ |
343 |
|
|
cnt = 0; |
344 |
|
|
/* number of errors find */ |
345 |
|
|
errors = 0; |
346 |
|
|
/* current pattern index used for write pages */ |
347 |
|
|
patternIndex = 0; |
348 |
|
|
/* current pattern index used for read pages */ |
349 |
|
|
patternIndexVerify = TS_MAX_PATTERN; |
350 |
|
|
|
351 |
|
|
for (repeat = 0; repeat < TS_NUM_OF_CYCLE; repeat++) |
352 |
|
|
{ |
353 |
|
|
/* write 256Kb of SRAM with a fixed page size */ |
354 |
|
|
/* increase the page dimension */ |
355 |
|
|
for (pageDim = 0x0400; pageDim <= lengthSRAM; pageDim <<= 1 ) |
356 |
|
|
{ |
357 |
|
|
/* write a collection of pages */ |
358 |
|
|
for (page = 0; page < (lengthSRAM/pageDim); page++) |
359 |
|
|
{ |
360 |
|
|
SD_piSetSRAMRWAddress(page*pageDim); |
361 |
|
|
|
362 |
|
|
/* Retrive OBT */ |
363 |
|
|
TI_piGetTimeInfo_ms(&obt); |
364 |
|
|
/* write header */ |
365 |
|
|
SD_piWriteSRAM(PAM_HRD1); |
366 |
|
|
SD_piWriteSRAM(PAM_HRD2); |
367 |
|
|
SD_piWriteSRAM(PAM_HRD3); |
368 |
|
|
SD_piWriteSRAM(PAM_HRD4); |
369 |
|
|
/* Write the OBT */ |
370 |
|
|
SD_piWriteSRAM((BYTE)((obt>>24) & 0x000000FF)); |
371 |
|
|
SD_piWriteSRAM((BYTE)((obt>>16) & 0x000000FF)); |
372 |
|
|
SD_piWriteSRAM((BYTE)((obt>>8 ) & 0x000000FF)); |
373 |
|
|
SD_piWriteSRAM((BYTE)( obt & 0x000000FF)); |
374 |
|
|
|
375 |
|
|
/* Write the packet counter */ |
376 |
|
|
SD_piWriteSRAM((BYTE)((cnt>>16) & 0x000000FF)); |
377 |
|
|
SD_piWriteSRAM((BYTE)((cnt>>8 ) & 0x000000FF)); |
378 |
|
|
SD_piWriteSRAM((BYTE)( cnt++ & 0x000000FF)); |
379 |
|
|
/* write packet id #2 */ |
380 |
|
|
SD_piWriteSRAM(PAM_HRD_PHY_EVENT); |
381 |
|
|
|
382 |
|
|
for (pageAddress = TS_PKT_HEADER_LENGTH; pageAddress < pageDim; pageAddress++) |
383 |
|
|
{ |
384 |
|
|
/* write patterns in SRAM: 00, 55, AA, FF, Addresses */ |
385 |
|
|
if (patternIndex < TS_MAX_FIX_PATTERN) |
386 |
|
|
SD_piWriteSRAM(pattern[patternIndex]); |
387 |
|
|
else |
388 |
|
|
SD_piWriteSRAM(pageAddress * 3); |
389 |
|
|
} |
390 |
|
|
|
391 |
|
|
patternIndex++; |
392 |
|
|
if (patternIndex >= TS_MAX_PATTERN) |
393 |
|
|
patternIndex = 0; |
394 |
|
|
|
395 |
|
|
} /* for (page = 0;... */ |
396 |
|
|
|
397 |
|
|
/* read SRAM */ |
398 |
|
|
|
399 |
|
|
/* save the data in SRAM in to memory module */ |
400 |
|
|
FT_piSavePage(0, lengthSRAM -1, FS_HK); |
401 |
|
|
|
402 |
|
|
/* wait until the buffer on CMD I/F is empty */ |
403 |
|
|
timeOutCMD = 0; |
404 |
|
|
while ((SD_piGetCMDCounterLeft() != 0) && (timeOutCMD < TS_TIMEOUT_CMD_LOOP)) |
405 |
|
|
{ |
406 |
|
|
OS_piTaskSuspend(1); |
407 |
|
|
timeOutCMD++; |
408 |
|
|
} |
409 |
|
|
|
410 |
|
|
/* send out the data in SRAM throgh CMD I/F */ |
411 |
|
|
FT_piSavePage(0, lengthSRAM -1, FS_CMD); |
412 |
|
|
|
413 |
|
|
for (SRAMAddress = 0; SRAMAddress < lengthSRAM; SRAMAddress++) |
414 |
|
|
{ |
415 |
|
|
|
416 |
|
|
/* evaluate the address into virtual page */ |
417 |
|
|
pageAddress = SRAMAddress % pageDim; |
418 |
|
|
if (pageAddress == 0) |
419 |
|
|
{ |
420 |
|
|
SD_piSetSRAMRWAddress(SRAMAddress); |
421 |
|
|
patternIndexVerify++; |
422 |
|
|
if (patternIndexVerify >= TS_MAX_PATTERN) |
423 |
|
|
patternIndexVerify = 0; |
424 |
|
|
} |
425 |
|
|
|
426 |
|
|
/* read a value from SRAM */ |
427 |
|
|
value = SD_piReadSRAM(); |
428 |
|
|
|
429 |
|
|
/* skip the header check and verify the packet data */ |
430 |
|
|
if ((pageAddress >= TS_PKT_HEADER_LENGTH) && |
431 |
|
|
(numCharPrinted + TS_NEXT_REPORT_LENGTH < TS_ERROR_BUFFER_DIM)) |
432 |
|
|
{ |
433 |
|
|
if (patternIndexVerify < TS_MAX_FIX_PATTERN) |
434 |
|
|
{ |
435 |
|
|
/* check fixed pattern */ |
436 |
|
|
if ((pattern[patternIndexVerify] & 0x000000FF) != value) |
437 |
|
|
{ |
438 |
|
|
errors++; |
439 |
|
|
address = SD_piGetSRAMRWAddress(); |
440 |
|
|
bufTest[numCharPrinted++] = address -1; |
441 |
|
|
bufTest[numCharPrinted++] = value; |
442 |
|
|
} |
443 |
|
|
} |
444 |
|
|
else |
445 |
|
|
{ |
446 |
|
|
/* check variable pattern */ |
447 |
|
|
if (((SRAMAddress * 3) & 0x000000FF) != value) |
448 |
|
|
{ |
449 |
|
|
errors++; |
450 |
|
|
address = SD_piGetSRAMRWAddress(); |
451 |
|
|
bufTest[numCharPrinted++] = address -1; |
452 |
|
|
bufTest[numCharPrinted++] = value; |
453 |
|
|
} |
454 |
|
|
} |
455 |
|
|
} |
456 |
|
|
} |
457 |
|
|
|
458 |
|
|
OS_piTaskSuspend(TS_TE_TIME_FOR_ACQUIRE_CMD); |
459 |
|
|
sprintf(buf," Page number: %d - Wait for acquiring data", cnt); |
460 |
|
|
TS_piWriteOnUART(buf); |
461 |
|
|
} /* "for" that increase the page dimension */ |
462 |
|
|
} /* "for" that repeat the test n times for store 11.25 MB*/ |
463 |
|
|
TS_piWriteOnUART("Test Ended"); |
464 |
|
|
} break; |
465 |
|
|
|
466 |
|
|
case TS_WRITE_FILE: |
467 |
|
|
{ |
468 |
|
|
static unsigned char data[TS_DATA_LENGTH]; |
469 |
|
|
unsigned int arrayIndex; |
470 |
|
|
TI_TIME obt; |
471 |
|
|
|
472 |
|
|
data[0x00] = PAM_HRD1; |
473 |
|
|
data[0x01] = PAM_HRD2; |
474 |
|
|
data[0x02] = PAM_HRD3; |
475 |
|
|
data[0x03] = PAM_HRD4; |
476 |
|
|
|
477 |
|
|
/* Retrive OBT */ |
478 |
|
|
TI_piGetTimeInfo_ms(&obt); |
479 |
|
|
|
480 |
|
|
/* Write the OBT */ |
481 |
|
|
data[0x04] = ((obt>>24) & 0x000000FF); |
482 |
|
|
data[0x05] = ((obt>>16) & 0x000000FF); |
483 |
|
|
data[0x06] = ((obt>>8 ) & 0x000000FF); |
484 |
|
|
data[0x07] = ( obt & 0x000000FF); |
485 |
|
|
|
486 |
|
|
/* Write a fun counter */ |
487 |
|
|
data[0x08] = 'E'; |
488 |
|
|
data[0x09] = 'R'; |
489 |
|
|
data[0x0a] = 'C'; |
490 |
|
|
|
491 |
|
|
data[0x0B] = PAM_HRD_PHY_EVENT; |
492 |
|
|
|
493 |
|
|
/* write a simple data body */ |
494 |
|
|
for (arrayIndex = TS_PKT_HEADER_LENGTH; |
495 |
|
|
arrayIndex < TS_DATA_LENGTH; |
496 |
|
|
data[arrayIndex++] = 0xAA); |
497 |
|
|
|
498 |
|
|
/* write the packet */ |
499 |
|
|
PM_pi_StorePacket (TS_DATA_LENGTH, (void*)data, FS_HK); |
500 |
|
|
|
501 |
|
|
}break; |
502 |
|
|
|
503 |
|
|
case 1010: |
504 |
|
|
{ |
505 |
|
|
MsgTsk SndMsg; |
506 |
|
|
TI_TIME Time_begin, Time_end; |
507 |
|
|
int loop, delay, cmd; |
508 |
|
|
void* p; |
509 |
|
|
volatile unsigned short *pIR, *pCS; |
510 |
|
|
unsigned int index; |
511 |
|
|
unsigned short Format, |
512 |
|
|
* pFormat; |
513 |
|
|
|
514 |
|
|
sprintf(buf,"Starting case 10 "); |
515 |
|
|
puts(buf); |
516 |
|
|
|
517 |
|
|
status = TI_piGetTimeInfo_ms (&Time_begin); |
518 |
|
|
sprintf(buf,"Time_begin=%ld", Time_begin); |
519 |
|
|
puts(buf); |
520 |
|
|
SndMsg.Code =TM_CYCLIC_ACQUISITION; |
521 |
|
|
SndMsg.LlInfo =0; |
522 |
|
|
//TM_piSndMsgTMTCManager (&SndMsg); |
523 |
|
|
status = TI_piGetTimeInfo_ms (&Time_end); |
524 |
|
|
sprintf(buf,"Time_end=%ld", Time_end); |
525 |
|
|
puts(buf); |
526 |
|
|
|
527 |
|
|
sprintf(buf,"end case 10: \n"); |
528 |
|
|
puts(buf); |
529 |
|
|
break; |
530 |
|
|
} |
531 |
|
|
|
532 |
|
|
default: |
533 |
|
|
break; |
534 |
|
|
} // switch |
535 |
|
|
} // if |
536 |
|
|
} // while |
537 |
|
|
} |
538 |
|
|
|
539 |
|
|
/*****************************************************************************/ |
540 |
|
|
/* TS_piSndMsgTest |
541 |
|
|
* |
542 |
|
|
* |
543 |
|
|
* Input parameters: NONE |
544 |
|
|
* |
545 |
|
|
* Output parameters: NONE |
546 |
|
|
* |
547 |
|
|
*/ |
548 |
|
|
/*****************************************************************************/ |
549 |
|
|
|
550 |
|
|
status_code TS_piSndMsgTest (MsgTsk* SndMsg) |
551 |
|
|
{ |
552 |
|
|
status_code status; |
553 |
|
|
|
554 |
|
|
status =OS_piMsgQueueSend(TS_MAILBOX,(void*)SndMsg,sizeof(MsgTsk)); |
555 |
|
|
return (status); |
556 |
|
|
} |
557 |
|
|
|
558 |
|
|
|
559 |
|
|
|
560 |
|
|
|
561 |
|
|
/*****************************************************************************/ |
562 |
|
|
/* TS_piPutLog |
563 |
|
|
* |
564 |
|
|
* |
565 |
|
|
* Input parameters: NONE |
566 |
|
|
* |
567 |
|
|
* Output parameters: NONE |
568 |
|
|
* |
569 |
|
|
*/ |
570 |
|
|
/*****************************************************************************/ |
571 |
|
|
status_code TS_piPutLog (MsgTsk* msg) { |
572 |
|
|
UBYTE EntryType; |
573 |
|
|
static unsigned char buf[100],str[100],str2[100]; |
574 |
|
|
unsigned int entry; |
575 |
|
|
unsigned char code; |
576 |
|
|
unsigned int time; |
577 |
|
|
unsigned int rep1,rep2,rep3,line,fileid; |
578 |
|
|
|
579 |
|
|
#if 0 |
580 |
|
|
// console_outbyte_polled(0,msg->LlInfo*sizeof(UWORD)); |
581 |
|
|
//console_outbyte_polled(1,msg->LlInfo*sizeof(UWORD)); |
582 |
|
|
for(entry=0;entry<msg->LlInfo*sizeof(UWORD);entry++) { |
583 |
|
|
console_outbyte_polled(0,msg->Info[entry]); |
584 |
|
|
//console_outbyte_polled(1,msg->Info[entry]); |
585 |
|
|
} |
586 |
|
|
#endif |
587 |
|
|
|
588 |
|
|
/* ignore all the rest: */ |
589 |
|
|
//return SUCCESSFUL; |
590 |
|
|
|
591 |
|
|
EntryType = msg->Info[0] >> 4; |
592 |
|
|
|
593 |
|
|
entry =EntryType; |
594 |
|
|
code =msg->Info[1]; |
595 |
|
|
time =(((UWORD*)(msg->Info))[1] << 16) + ((UWORD*)(msg->Info))[2]; |
596 |
|
|
rep1 =0; |
597 |
|
|
rep2 =0; |
598 |
|
|
rep3 =0; |
599 |
|
|
|
600 |
|
|
switch( EntryType ) { |
601 |
|
|
case HA_EVENT_04: |
602 |
|
|
sprintf(str,""); |
603 |
|
|
break; |
604 |
|
|
case HA_EVENT_00: |
605 |
|
|
case HA_EVENT_01: |
606 |
|
|
case HA_EVENT_02: |
607 |
|
|
case HA_EVENT_03: |
608 |
|
|
case HA_EVENT_06: |
609 |
|
|
rep1 = ((UWORD*)(msg->Info))[3]; |
610 |
|
|
sprintf(str,"R1: %10d 0x%x",rep1,rep1); |
611 |
|
|
break; |
612 |
|
|
|
613 |
|
|
case HA_EVENT_10: |
614 |
|
|
rep1 = ((UWORD*)(msg->Info))[3]; |
615 |
|
|
rep2 = ((UWORD*)(msg->Info))[4]; |
616 |
|
|
sprintf(str,"R1: %10d %x - R2: %10d 0x%x ",rep1,rep1,rep2,rep2); |
617 |
|
|
break; |
618 |
|
|
|
619 |
|
|
case HA_EVENT_05: |
620 |
|
|
line = ((UWORD*)(msg->Info))[3]; |
621 |
|
|
rep2 = ((UWORD*)(msg->Info))[4]; |
622 |
|
|
rep1 = ((UWORD*)(msg->Info))[5]; |
623 |
|
|
rep3 = rep1 | (rep2<<16); |
624 |
|
|
LU_GetSourceInfo(str2,code,line); |
625 |
|
|
sprintf(str,"INFN: Info1: %9u 0x%08x [%s]",rep3,rep3,str2); |
626 |
|
|
break; |
627 |
|
|
case HA_EVENT_07: |
628 |
|
|
case HA_EVENT_11: |
629 |
|
|
rep1 = ((UWORD*)(msg->Info))[3]; |
630 |
|
|
rep2 = ((UWORD*)(msg->Info))[4]; |
631 |
|
|
rep3 = ((UWORD*)(msg->Info))[5]; |
632 |
|
|
sprintf(str,"R1: %10d 0x%x - R2: %10d 0x%x - R3: %10d %x ",rep1,rep1,rep2,rep2,rep3,rep3); |
633 |
|
|
break; |
634 |
|
|
default: |
635 |
|
|
break; |
636 |
|
|
} |
637 |
|
|
|
638 |
|
|
sprintf(buf,"%2d OBT: %5ld Code: %3d - %s",entry,time,code,str); |
639 |
|
|
|
640 |
|
|
TS_piWriteOnUART(buf); |
641 |
|
|
return (SUCCESSFUL); |
642 |
|
|
|
643 |
|
|
} |
644 |
|
|
|
645 |
|
|
|
646 |
|
|
|
647 |
|
|
|
648 |
|
|
/*****************************************************************************/ |
649 |
|
|
|
650 |
|
|
/*============= S W _ T E S T I N T E R N A L F U N C T I O N ===========*/ |
651 |
|
|
|
652 |
|
|
/*****************************************************************************/ |
653 |
|
|
|
654 |
|
|
void TS_TmTc(void) |
655 |
|
|
{ |
656 |
|
|
status_code status; |
657 |
|
|
unsigned int value; |
658 |
|
|
|
659 |
|
|
/* Analogic parameters */ |
660 |
|
|
status =TM_piGetTMValue (TM_DEA_ANA_1 , TM_CURRENT_VAL, &TmValue[0x00]); |
661 |
|
|
status =TM_piGetTMValue (TM_DEA_ANA_2 , TM_CURRENT_VAL, &TmValue[0x01]); |
662 |
|
|
status =TM_piGetTMValue (TM_DEA_ANA_3 , TM_CURRENT_VAL, &TmValue[0x02]); |
663 |
|
|
status =TM_piGetTMValue (TM_DEA_ANA_4 , TM_CURRENT_VAL, &TmValue[0x03]); |
664 |
|
|
status =TM_piGetTMValue (TM_DEA_ANA_5 , TM_CURRENT_VAL, &TmValue[0x04]); |
665 |
|
|
status =TM_piGetTMValue (TM_DEA_ANA_6 , TM_CURRENT_VAL, &TmValue[0x05]); |
666 |
|
|
status =TM_piGetTMValue (TM_DEA_ANA_7 , TM_CURRENT_VAL, &TmValue[0x06]); |
667 |
|
|
status =TM_piGetTMValue (TM_DEA_ANA_8 , TM_CURRENT_VAL, &TmValue[0x07]); |
668 |
|
|
status =TM_piGetTMValue (TM_DEA_ANA_9 , TM_CURRENT_VAL, &TmValue[0x08]); |
669 |
|
|
status =TM_piGetTMValue (TM_DEA_ANA_10 , TM_CURRENT_VAL, &TmValue[0x09]); |
670 |
|
|
status =TM_piGetTMValue (TM_DEA_ANA_11 , TM_CURRENT_VAL, &TmValue[0x0A]); |
671 |
|
|
status =TM_piGetTMValue (TM_DEA_ANA_12 , TM_CURRENT_VAL, &TmValue[0x0B]); |
672 |
|
|
status =TM_piGetTMValue (TM_DEA_ANA_13 , TM_CURRENT_VAL, &TmValue[0x0C]); |
673 |
|
|
status =TM_piGetTMValue (TM_DEA_ANA_14 , TM_CURRENT_VAL, &TmValue[0x0D]); |
674 |
|
|
status =TM_piGetTMValue (TM_DEA_ANA_15 , TM_CURRENT_VAL, &TmValue[0x0E]); |
675 |
|
|
status =TM_piGetTMValue (TM_DEA_ANA_16 , TM_CURRENT_VAL, &TmValue[0x0F]); |
676 |
|
|
|
677 |
|
|
status =TM_piGetTMValue (TM_TH_ANA_1 , TM_CURRENT_VAL, &TmValue[0x10]); |
678 |
|
|
status =TM_piGetTMValue (TM_TH_ANA_2 , TM_CURRENT_VAL, &TmValue[0x11]); |
679 |
|
|
status =TM_piGetTMValue (TM_TH_ANA_3 , TM_CURRENT_VAL, &TmValue[0x12]); |
680 |
|
|
status =TM_piGetTMValue (TM_TH_ANA_4 , TM_CURRENT_VAL, &TmValue[0x13]); |
681 |
|
|
status =TM_piGetTMValue (TM_TH_ANA_5 , TM_CURRENT_VAL, &TmValue[0x14]); |
682 |
|
|
status =TM_piGetTMValue (TM_TH_ANA_6 , TM_CURRENT_VAL, &TmValue[0x15]); |
683 |
|
|
status =TM_piGetTMValue (TM_TH_ANA_7 , TM_CURRENT_VAL, &TmValue[0x16]); |
684 |
|
|
status =TM_piGetTMValue (TM_TH_ANA_8 , TM_CURRENT_VAL, &TmValue[0x17]); |
685 |
|
|
status =TM_piGetTMValue (TM_TH_ANA_9 , TM_CURRENT_VAL, &TmValue[0x18]); |
686 |
|
|
status =TM_piGetTMValue (TM_TH_ANA_10 , TM_CURRENT_VAL, &TmValue[0x19]); |
687 |
|
|
status =TM_piGetTMValue (TM_TH_ANA_11 , TM_CURRENT_VAL, &TmValue[0x1A]); |
688 |
|
|
status =TM_piGetTMValue (TM_TH_ANA_12 , TM_CURRENT_VAL, &TmValue[0x1B]); |
689 |
|
|
status =TM_piGetTMValue (TM_TH_ANA_13 , TM_CURRENT_VAL, &TmValue[0x1C]); |
690 |
|
|
status =TM_piGetTMValue (TM_TH_ANA_14 , TM_CURRENT_VAL, &TmValue[0x1D]); |
691 |
|
|
status =TM_piGetTMValue (TM_TH_ANA_15 , TM_CURRENT_VAL, &TmValue[0x1E]); |
692 |
|
|
status =TM_piGetTMValue (TM_TH_ANA_16 , TM_CURRENT_VAL, &TmValue[0x1F]); |
693 |
|
|
|
694 |
|
|
status =TM_piGetTMValue (TM_BIL_DIAG_ACQ_1 , TM_CURRENT_VAL, &TmValue[0x20]); |
695 |
|
|
status =TM_piGetTMValue (TM_BIL_DIAG_ACQ_2 , TM_CURRENT_VAL, &TmValue[0x21]); |
696 |
|
|
status =TM_piGetTMValue (TM_BIL_DIAG_ACQ_3 , TM_CURRENT_VAL, &TmValue[0x22]); |
697 |
|
|
status =TM_piGetTMValue (TM_BIL_DIAG_ACQ_4 , TM_CURRENT_VAL, &TmValue[0x23]); |
698 |
|
|
status =TM_piGetTMValue (TM_BIL_DIAG_ACQ_5 , TM_CURRENT_VAL, &TmValue[0x24]); |
699 |
|
|
status =TM_piGetTMValue (TM_BIL_DIAG_ACQ_6 , TM_CURRENT_VAL, &TmValue[0x25]); |
700 |
|
|
status =TM_piGetTMValue (TM_BIL_DIAG_ACQ_7 , TM_CURRENT_VAL, &TmValue[0x26]); |
701 |
|
|
status =TM_piGetTMValue (TM_BIL_DIAG_ACQ_8 , TM_CURRENT_VAL, &TmValue[0x27]); |
702 |
|
|
|
703 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_1 , TM_CURRENT_VAL, &TmValue[0x28]); |
704 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_2 , TM_CURRENT_VAL, &TmValue[0x29]); |
705 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_3 , TM_CURRENT_VAL, &TmValue[0x2A]); |
706 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_4 , TM_CURRENT_VAL, &TmValue[0x2B]); |
707 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_5 , TM_CURRENT_VAL, &TmValue[0x2C]); |
708 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_6 , TM_CURRENT_VAL, &TmValue[0x2D]); |
709 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_7 , TM_CURRENT_VAL, &TmValue[0x2E]); |
710 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_8 , TM_CURRENT_VAL, &TmValue[0x2F]); |
711 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_9 , TM_CURRENT_VAL, &TmValue[0x30]); |
712 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_10 , TM_CURRENT_VAL, &TmValue[0x31]); |
713 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_11 , TM_CURRENT_VAL, &TmValue[0x32]); |
714 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_12 , TM_CURRENT_VAL, &TmValue[0x33]); |
715 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_13 , TM_CURRENT_VAL, &TmValue[0x34]); |
716 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_14 , TM_CURRENT_VAL, &TmValue[0x35]); |
717 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_15 , TM_CURRENT_VAL, &TmValue[0x36]); |
718 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_16 , TM_CURRENT_VAL, &TmValue[0x37]); |
719 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_17 , TM_CURRENT_VAL, &TmValue[0x38]); |
720 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_18 , TM_CURRENT_VAL, &TmValue[0x39]); |
721 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_19 , TM_CURRENT_VAL, &TmValue[0x3a]); |
722 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_20 , TM_CURRENT_VAL, &TmValue[0x3b]); |
723 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_21 , TM_CURRENT_VAL, &TmValue[0x3c]); |
724 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_22 , TM_CURRENT_VAL, &TmValue[0x3d]); |
725 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_23 , TM_CURRENT_VAL, &TmValue[0x3e]); |
726 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_24 , TM_CURRENT_VAL, &TmValue[0x3f]); |
727 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_25 , TM_CURRENT_VAL, &TmValue[0x40]); |
728 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_26 , TM_CURRENT_VAL, &TmValue[0x41]); |
729 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_27 , TM_CURRENT_VAL, &TmValue[0x42]); |
730 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_28 , TM_CURRENT_VAL, &TmValue[0x43]); |
731 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_29 , TM_CURRENT_VAL, &TmValue[0x44]); |
732 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_30 , TM_CURRENT_VAL, &TmValue[0x45]); |
733 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_31 , TM_CURRENT_VAL, &TmValue[0x46]); |
734 |
|
|
status =TM_piGetTMValue (TM_CC_DIAG_ACQ_32 , TM_CURRENT_VAL, &TmValue[0x47]); |
735 |
|
|
|
736 |
|
|
status =TM_piGetTMValue (TM_DBL_ACQ_3 , TM_CURRENT_VAL, &TmValue[0x48]); |
737 |
|
|
status =TM_piGetTMValue (TM_DBL_ACQ_4 , TM_CURRENT_VAL, &TmValue[0x49]); |
738 |
|
|
status =TM_piGetTMValue (TM_DBL_ACQ_7 , TM_CURRENT_VAL, &TmValue[0x4a]); |
739 |
|
|
status =TM_piGetTMValue (TM_DBL_ACQ_8 , TM_CURRENT_VAL, &TmValue[0x4b]); |
740 |
|
|
status =TM_piGetTMValue (TM_DS_16_ACQ_1 , TM_CURRENT_VAL, &TmValue[0x4c]); |
741 |
|
|
status =TM_piGetTMValue (TM_DS_16_ACQ_2 , TM_CURRENT_VAL, &TmValue[0x4d]); |
742 |
|
|
|
743 |
|
|
/* Start cyclic telemetry acquisition */ |
744 |
|
|
// TM_piStartAutomaticTMSeq(); |
745 |
|
|
|
746 |
|
|
|
747 |
|
|
} |
748 |
|
|
|
749 |
|
|
|
750 |
|
|
status_code Sys_test (void) |
751 |
|
|
{ |
752 |
|
|
BYTE *cmds; |
753 |
|
|
BYTE sw; |
754 |
|
|
BYTE pktbuffer[10]; |
755 |
|
|
MsgTsk sndMsg; |
756 |
|
|
UINT16 mcmdw[12]; |
757 |
|
|
int mcmdttag_direct; |
758 |
|
|
|
759 |
|
|
cmds = (BYTE*)0x21f0048; |
760 |
|
|
sw = *cmds; |
761 |
|
|
|
762 |
|
|
switch(sw) |
763 |
|
|
{ |
764 |
|
|
// Experiment acquisition (2 pkts) |
765 |
|
|
case 1:{ |
766 |
|
|
teststate = 0x0001; |
767 |
|
|
*cmds = 0x00; |
768 |
|
|
pkts = 10; |
769 |
|
|
MC_piSetState(MC_ACTIVE_STATE); |
770 |
|
|
FT_piChangeAcqMode(SM_EXP64/*it was SM_EXPERIMENT*/); |
771 |
|
|
PM_pi_SetExpPktCpyFlag(TRUE); |
772 |
|
|
} break; |
773 |
|
|
// INFN Pachet storage |
774 |
|
|
case 2:{ |
775 |
|
|
teststate = 0x0100; |
776 |
|
|
*cmds = 0x00; |
777 |
|
|
MC_piSetState(MC_ACTIVE_STATE); |
778 |
|
|
} break; |
779 |
|
|
// Bite |
780 |
|
|
case 3:{ |
781 |
|
|
teststate = 0x1000; |
782 |
|
|
*cmds = 0x00; |
783 |
|
|
MC_piSetState(MC_MAINTENANCE_STATE); |
784 |
|
|
} break; |
785 |
|
|
// Raw Downlink MCMD (4 sectors) |
786 |
|
|
case 4:{ |
787 |
|
|
teststate = 0x3000; |
788 |
|
|
*cmds = 0x00; |
789 |
|
|
MC_piSetState(MC_ACTIVE_STATE); |
790 |
|
|
} break; |
791 |
|
|
// Downlink RPB-EOT simulation (4 sectors) |
792 |
|
|
case 5:{ |
793 |
|
|
teststate = 0x4000; |
794 |
|
|
*cmds = 0x00; |
795 |
|
|
} break; |
796 |
|
|
// File1 Downlink MCMD (4 sectors) |
797 |
|
|
case 6:{ |
798 |
|
|
teststate = 0x5000; |
799 |
|
|
*cmds = 0x00; |
800 |
|
|
MC_piSetState(MC_ACTIVE_STATE); |
801 |
|
|
} break; |
802 |
|
|
} |
803 |
|
|
|
804 |
|
|
switch(teststate){ |
805 |
|
|
case 1:{ |
806 |
|
|
ERC32_Force_interrupt(ERC32_INTERRUPT_EXTERNAL_5); |
807 |
|
|
teststate = 0x02; |
808 |
|
|
} break; |
809 |
|
|
case 2:{ |
810 |
|
|
ERC32_Force_interrupt(ERC32_INTERRUPT_EXTERNAL_1); |
811 |
|
|
teststate = 0x03; |
812 |
|
|
} break; |
813 |
|
|
case 3:{ |
814 |
|
|
ERC32_Force_interrupt(ERC32_INTERRUPT_EXTERNAL_5); |
815 |
|
|
teststate = 0x04; |
816 |
|
|
} break; |
817 |
|
|
case 4:{ |
818 |
|
|
ERC32_Force_interrupt(ERC32_INTERRUPT_EXTERNAL_1); |
819 |
|
|
teststate = 0x05; |
820 |
|
|
} break; |
821 |
|
|
case 5:{ |
822 |
|
|
ERC32_Force_interrupt(ERC32_INTERRUPT_EXTERNAL_4); |
823 |
|
|
teststate = 0x06; |
824 |
|
|
} break; |
825 |
|
|
case 6:{ |
826 |
|
|
ERC32_Force_interrupt(ERC32_INTERRUPT_EXTERNAL_4); |
827 |
|
|
teststate = 0x00; |
828 |
|
|
} break; |
829 |
|
|
case 0x0100:{ |
830 |
|
|
PM_pi_StorePacket(10, &pktbuffer[0],FS_CMD); |
831 |
|
|
teststate = 0x0200; |
832 |
|
|
} break; |
833 |
|
|
case 0x0200:{ |
834 |
|
|
PM_pi_StorePacket(10, &pktbuffer[0],FS_CMD); |
835 |
|
|
teststate = 0x0300; |
836 |
|
|
} break; |
837 |
|
|
case 0x0300:{ |
838 |
|
|
ERC32_Force_interrupt(ERC32_INTERRUPT_EXTERNAL_4); |
839 |
|
|
teststate = 0x0000; |
840 |
|
|
} break; |
841 |
|
|
case 0x1000:{ |
842 |
|
|
mcmdw[0] = 0x1122; |
843 |
|
|
mcmdw[1] = 0x3344; |
844 |
|
|
mcmdw[2] = 0x5566; |
845 |
|
|
mcmdw[3] = 0x7788; |
846 |
|
|
mcmdw[4] = 0x99BB; |
847 |
|
|
mcmdw[5] = 0xAA55; |
848 |
|
|
McMd.TimeTag = 0; |
849 |
|
|
McMd.Type = BITE; |
850 |
|
|
McMd.Length = 2; |
851 |
|
|
mcmdttag_direct = IMMEDIATE_MCMD; |
852 |
|
|
sndMsg.Code = MD_MCMD_EXEC; |
853 |
|
|
MA_piGetBufferMCMD(&McMd.PtrMCMD, mcmdttag_direct); |
854 |
|
|
memcpy((unsigned short int*)McMd.PtrMCMD, &mcmdw[0], sizeof(McMd)); |
855 |
|
|
*(MA_HEADER_MCMD*)sndMsg.Info = McMd; |
856 |
|
|
sndMsg.LlInfo = sizeof(MA_HEADER_MCMD); |
857 |
|
|
MD_piSndMsgMCMDDispatcher(&sndMsg); |
858 |
|
|
teststate = 0x2000; |
859 |
|
|
} break; |
860 |
|
|
case 0x2000:{ |
861 |
|
|
ERC32_Force_interrupt(ERC32_INTERRUPT_EXTERNAL_1); |
862 |
|
|
teststate = 0x0000; |
863 |
|
|
} break; |
864 |
|
|
case 0x3000:{ |
865 |
|
|
mcmdw[0] = 0x1122; |
866 |
|
|
mcmdw[1] = 0x3344; |
867 |
|
|
mcmdw[2] = 0x5566; |
868 |
|
|
mcmdw[3] = 0x7788; |
869 |
|
|
mcmdw[4] = 0x99BB; |
870 |
|
|
mcmdw[5] = 0x004a; |
871 |
|
|
McMd.TimeTag = 0; |
872 |
|
|
McMd.Type = DOWN_LINK; |
873 |
|
|
McMd.Length = 2; |
874 |
|
|
mcmdttag_direct = IMMEDIATE_MCMD; |
875 |
|
|
sndMsg.Code = MD_MCMD_EXEC; |
876 |
|
|
MA_piGetBufferMCMD(&McMd.PtrMCMD, mcmdttag_direct); |
877 |
|
|
memcpy((unsigned short int*)McMd.PtrMCMD, &mcmdw[0], sizeof(McMd)); |
878 |
|
|
*(MA_HEADER_MCMD*)sndMsg.Info = McMd; |
879 |
|
|
sndMsg.LlInfo = sizeof(MA_HEADER_MCMD); |
880 |
|
|
MD_piSndMsgMCMDDispatcher(&sndMsg); |
881 |
|
|
pkts = 4; |
882 |
|
|
teststate = 0x0000; |
883 |
|
|
} break; |
884 |
|
|
case 0x4000:{ |
885 |
|
|
if(pkts) |
886 |
|
|
{ |
887 |
|
|
ERC32_Force_interrupt(ERC32_INTERRUPT_EXTERNAL_3); |
888 |
|
|
} |
889 |
|
|
else |
890 |
|
|
{ |
891 |
|
|
teststate = 0x0000; |
892 |
|
|
} |
893 |
|
|
pkts--; |
894 |
|
|
} break; |
895 |
|
|
case 0x5000:{ |
896 |
|
|
mcmdw[0] = 0x1122; |
897 |
|
|
mcmdw[1] = 0x3344; |
898 |
|
|
mcmdw[2] = 0x5566; |
899 |
|
|
mcmdw[3] = 0x7788; |
900 |
|
|
mcmdw[4] = 0x99BB; |
901 |
|
|
mcmdw[5] = 0x0002; |
902 |
|
|
McMd.TimeTag = 0; |
903 |
|
|
McMd.Type = DOWN_LINK; |
904 |
|
|
McMd.Length = 2; |
905 |
|
|
mcmdttag_direct = IMMEDIATE_MCMD; |
906 |
|
|
sndMsg.Code = MD_MCMD_EXEC; |
907 |
|
|
MA_piGetBufferMCMD(&McMd.PtrMCMD, mcmdttag_direct); |
908 |
|
|
memcpy((unsigned short int*)McMd.PtrMCMD, &mcmdw[0], sizeof(McMd)); |
909 |
|
|
*(MA_HEADER_MCMD*)sndMsg.Info = McMd; |
910 |
|
|
sndMsg.LlInfo = sizeof(MA_HEADER_MCMD); |
911 |
|
|
MD_piSndMsgMCMDDispatcher(&sndMsg); |
912 |
|
|
pkts = 5; |
913 |
|
|
teststate = 0x0000; |
914 |
|
|
} break; |
915 |
|
|
} |
916 |
|
|
} |
917 |
|
|
|
918 |
|
|
|
919 |
|
|
void TS_piTMTCTest(void) |
920 |
|
|
{ |
921 |
|
|
UINT32 Value; |
922 |
|
|
UINT32 loop; |
923 |
|
|
|
924 |
|
|
TM_piGetTMValue(TM_TH_ANA_1, TM_CURRENT_VAL, &Value); |
925 |
|
|
for(loop=0; loop<500; loop++); |
926 |
|
|
TM_piGetTMValue(TM_TH_ANA_2, TM_CURRENT_VAL, &Value); |
927 |
|
|
for(loop=0; loop<1000; loop++); |
928 |
|
|
TM_piSendTC(TM_HL_CMD_1, 0); |
929 |
|
|
} |
930 |
|
|
|
931 |
|
|
void TS_piTCTest(void) |
932 |
|
|
{ |
933 |
|
|
UINT32 Value; |
934 |
|
|
UINT32 loop; |
935 |
|
|
|
936 |
|
|
for (loop=0; loop< 10; loop++) |
937 |
|
|
{ |
938 |
|
|
TM_piSendTC(TM_HL_CMD_1, 0); |
939 |
|
|
OS_piTaskSuspend(100); |
940 |
|
|
} |
941 |
|
|
} |
942 |
|
|
|
943 |
|
|
void TS_piMCMDForward(MA_HEADER_MCMD* pMcmdExec) |
944 |
|
|
{ |
945 |
|
|
UINT16* pMcmdInfo; |
946 |
|
|
UINT32 timetagFlag; |
947 |
|
|
UINT32 mode; |
948 |
|
|
UINT32 type; |
949 |
|
|
|
950 |
|
|
pMcmdInfo =(UINT16* )pMcmdExec->PtrMCMD; |
951 |
|
|
type = (UINT32)(*(pMcmdInfo+1) & 0x00ff); |
952 |
|
|
mode = (UINT32)(*(pMcmdInfo+OFFSET_HEADER)); |
953 |
|
|
/* Delete MCMD from partition */ |
954 |
|
|
timetagFlag =(*(pMcmdInfo+1)&TIMETAG_MASK) ? TIMETAG_MCMD : IMMEDIATE_MCMD; |
955 |
|
|
MA_piDelBufferMCMD(pMcmdExec->PtrMCMD,timetagFlag); |
956 |
|
|
/*============= Entry 2 Log in History Area ==========*/ |
957 |
|
|
// HA_piLogHistoryEntry2 (pMcmdExec->Type,0x00); |
958 |
|
|
LU_INFN_LOG(LU_DEBUG_TRACE,LU_MASK(__FILEID__),__FILEID__,__LINE__,pMcmdExec->Type); |
959 |
|
|
if(type = ID_SELECT_MODE) |
960 |
|
|
{ |
961 |
|
|
if(mode) |
962 |
|
|
TS_piSndMsgTest (&ActiveMsg); |
963 |
|
|
else |
964 |
|
|
TS_piSndMsgTest (&MaintMsg); |
965 |
|
|
} |
966 |
|
|
} |
967 |
|
|
|
968 |
|
|
void TS_try(TS_MSG_TSK msg) |
969 |
|
|
{ |
970 |
|
|
MsgTsk SndMsg; |
971 |
|
|
|
972 |
|
|
SndMsg.Code = msg; |
973 |
|
|
SndMsg.LlInfo = 0; |
974 |
|
|
TS_piSndMsgTest (&SndMsg); |
975 |
|
|
|
976 |
|
|
} |
977 |
|
|
|
978 |
|
|
|
979 |
|
|
void TS_piWriteOnUART(unsigned char *string) |
980 |
|
|
{ |
981 |
|
|
unsigned char *s; |
982 |
|
|
|
983 |
|
|
for ( s = string ; *s ; s++ ) |
984 |
|
|
console_outbyte_polled( 0, *s ); |
985 |
|
|
|
986 |
|
|
console_outbyte_polled( 0, '\r' ); |
987 |
|
|
console_outbyte_polled( 0, '\n' ); |
988 |
|
|
} |