diff --git a/FSW-qt/Makefile b/FSW-qt/Makefile --- a/FSW-qt/Makefile +++ b/FSW-qt/Makefile @@ -1,6 +1,6 @@ ############################################################################# # Makefile for building: bin/fsw -# Generated by qmake (2.01a) (Qt 4.8.6) on: Fri Jun 13 07:44:08 2014 +# Generated by qmake (2.01a) (Qt 4.8.6) on: Mon Jun 16 09:16:01 2014 # Project: fsw-qt.pro # Template: app # Command: /usr/bin/qmake-qt4 -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile fsw-qt.pro @@ -10,7 +10,7 @@ CC = sparc-rtems-gcc CXX = sparc-rtems-g++ -DEFINES = -DSW_VERSION_N1=1 -DSW_VERSION_N2=0 -DSW_VERSION_N3=0 -DSW_VERSION_N4=9 -DPRINT_MESSAGES_ON_CONSOLE +DEFINES = -DSW_VERSION_N1=1 -DSW_VERSION_N2=0 -DSW_VERSION_N3=0 -DSW_VERSION_N4=10 -DPRINT_MESSAGES_ON_CONSOLE CFLAGS = -pipe -O3 -Wall $(DEFINES) CXXFLAGS = -pipe -O3 -Wall $(DEFINES) INCPATH = -I/usr/lib64/qt4/mkspecs/linux-g++ -I. -I../src -I../header -I../header/processing -I../src/LFR_basic-parameters diff --git a/FSW-qt/fsw-qt.pro b/FSW-qt/fsw-qt.pro --- a/FSW-qt/fsw-qt.pro +++ b/FSW-qt/fsw-qt.pro @@ -11,7 +11,7 @@ SWVERSION=-1-0 DEFINES += SW_VERSION_N1=1 # major DEFINES += SW_VERSION_N2=0 # minor DEFINES += SW_VERSION_N3=0 # patch -DEFINES += SW_VERSION_N4=9 # internal +DEFINES += SW_VERSION_N4=10 # internal contains( CONFIG, debug_tch ) { DEFINES += DEBUG_TCH diff --git a/FSW-qt/fsw-qt.pro.user b/FSW-qt/fsw-qt.pro.user --- a/FSW-qt/fsw-qt.pro.user +++ b/FSW-qt/fsw-qt.pro.user @@ -1,6 +1,6 @@ - + ProjectExplorer.Project.ActiveTarget diff --git a/header/fsw_misc.h b/header/fsw_misc.h --- a/header/fsw_misc.h +++ b/header/fsw_misc.h @@ -33,7 +33,7 @@ rtems_task hous_task( rtems_task_argumen rtems_task dumb_task( rtems_task_argument unused ); void init_housekeeping_parameters( void ); -void increment_seq_counter( unsigned char *packet_sequence_control); +void increment_seq_counter(unsigned short *packetSequenceControl); void getTime( unsigned char *time); unsigned long long int getTimeAsUnsignedLongLongInt( ); void send_dumb_hk( void ); @@ -44,5 +44,6 @@ extern int sched_yield( void ); extern int rtems_cpu_usage_reset(); extern ring_node *current_ring_node_f3; extern ring_node *ring_node_to_send_cwf_f3; +extern unsigned short sequenceCounterHK; #endif // FSW_MISC_H_INCLUDED diff --git a/header/fsw_params.h b/header/fsw_params.h --- a/header/fsw_params.h +++ b/header/fsw_params.h @@ -71,10 +71,14 @@ typedef struct ring_node #define RTEMS_EVENT_NORM_BP1_F2 RTEMS_EVENT_12 #define RTEMS_EVENT_NORM_BP2_F2 RTEMS_EVENT_13 #define RTEMS_EVENT_NORM_ASM_F2 RTEMS_EVENT_14 // ASM only in NORM mode -#define RTEMS_EVENT_BURST_SBM_BP1_F0 RTEMS_EVENT_15 -#define RTEMS_EVENT_BURST_SBM_BP2_F0 RTEMS_EVENT_16 -#define RTEMS_EVENT_BURST_SBM_BP1_F1 RTEMS_EVENT_17 -#define RTEMS_EVENT_BURST_SBM_BP2_F1 RTEMS_EVENT_18 +#define RTEMS_EVENT_SBM_BP1_F0 RTEMS_EVENT_15 +#define RTEMS_EVENT_SBM_BP2_F0 RTEMS_EVENT_16 +#define RTEMS_EVENT_SBM_BP1_F1 RTEMS_EVENT_17 +#define RTEMS_EVENT_SBM_BP2_F1 RTEMS_EVENT_18 +#define RTEMS_EVENT_BURST_BP1_F0 RTEMS_EVENT_19 +#define RTEMS_EVENT_BURST_BP2_F0 RTEMS_EVENT_20 +#define RTEMS_EVENT_BURST_BP1_F1 RTEMS_EVENT_21 +#define RTEMS_EVENT_BURST_BP2_F1 RTEMS_EVENT_22 //**************************** // LFR DEFAULT MODE PARAMETERS diff --git a/header/processing/fsw_processing.h b/header/processing/fsw_processing.h --- a/header/processing/fsw_processing.h +++ b/header/processing/fsw_processing.h @@ -101,6 +101,7 @@ void set_time(unsigned char *time, unsig unsigned long long int get_acquisition_time( unsigned char *timePtr ); void close_matrix_actions(unsigned int *nb_sm, unsigned int nb_sm_before_avf, rtems_id task_id, ring_node_sm *node_for_averaging, ring_node_sm *ringNode); +unsigned char getSID( rtems_event_set event ); extern rtems_status_code get_message_queue_id_prc1( rtems_id *queue_id ); extern rtems_status_code get_message_queue_id_prc2( rtems_id *queue_id ); diff --git a/header/tc_load_dump_parameters.h b/header/tc_load_dump_parameters.h --- a/header/tc_load_dump_parameters.h +++ b/header/tc_load_dump_parameters.h @@ -9,6 +9,8 @@ #include "tm_lfr_tc_exe.h" #include "fsw_misc.h" +extern unsigned short sequenceCounterParameterDump; + int action_load_common_par( ccsdsTelecommandPacket_t *TC ); int action_load_normal_par(ccsdsTelecommandPacket_t *TC, rtems_id queue_id , unsigned char *time); int action_load_burst_par(ccsdsTelecommandPacket_t *TC, rtems_id queue_id , unsigned char *time); diff --git a/src/fsw_globals.c b/src/fsw_globals.c --- a/src/fsw_globals.c +++ b/src/fsw_globals.c @@ -67,6 +67,8 @@ Packet_TM_LFR_HK_t housekeeping_packet; unsigned short sequenceCounters_SCIENCE_NORMAL_BURST; unsigned short sequenceCounters_SCIENCE_SBM1_SBM2; unsigned short sequenceCounters_TC_EXE[SEQ_CNT_NB_DEST_ID]; +unsigned short sequenceCounterHK; +unsigned short sequenceCounterParameterDump; spw_stats spacewire_stats; spw_stats spacewire_stats_backup; diff --git a/src/fsw_init.c b/src/fsw_init.c --- a/src/fsw_init.c +++ b/src/fsw_init.c @@ -93,7 +93,7 @@ rtems_task Init( rtems_task_argument ign PRINTF1("** %d.", SW_VERSION_N1) PRINTF1("%d." , SW_VERSION_N2) PRINTF1("%d." , SW_VERSION_N3) - PRINTF1("%d **\n", SW_VERSION_N4) + PRINTF1("%d **\n", SW_VERSION_N4) vhdlVersion = (unsigned char *) (REGS_ADDR_VHDL_VERSION); PRINTF("** VHDL **\n") @@ -241,6 +241,8 @@ void init_local_mode_parameters( void ) } sequenceCounters_SCIENCE_NORMAL_BURST = 0x00; sequenceCounters_SCIENCE_SBM1_SBM2 = 0x00; + sequenceCounterHK = TM_PACKET_SEQ_CTRL_STANDALONE << 8; + sequenceCounterParameterDump = TM_PACKET_SEQ_CTRL_STANDALONE << 8; } void reset_local_time( void ) diff --git a/src/fsw_misc.c b/src/fsw_misc.c --- a/src/fsw_misc.c +++ b/src/fsw_misc.c @@ -211,7 +211,10 @@ rtems_task hous_task(rtems_task_argument rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_6 ); } else { - increment_seq_counter( housekeeping_packet.packetSequenceControl ); + housekeeping_packet.packetSequenceControl[0] = (unsigned char) sequenceCounterHK >> 8; + housekeeping_packet.packetSequenceControl[1] = (unsigned char) sequenceCounterHK; + increment_seq_counter( &sequenceCounterHK ); + housekeeping_packet.time[0] = (unsigned char) (time_management_regs->coarse_time>>24); housekeeping_packet.time[1] = (unsigned char) (time_management_regs->coarse_time>>16); housekeeping_packet.time[2] = (unsigned char) (time_management_regs->coarse_time>>8); @@ -324,7 +327,7 @@ void init_housekeeping_parameters( void housekeeping_packet.lfr_fpga_version[2] = parameters[3]; // n3 } -void increment_seq_counter( unsigned char *packet_sequence_control) +void increment_seq_counter_old( unsigned char *packet_sequence_control) { /** This function increment the sequence counter psased in argument. * @@ -357,6 +360,32 @@ void increment_seq_counter( unsigned cha } } +void increment_seq_counter( unsigned short *packetSequenceControl ) +{ + /** This function increment the sequence counter psased in argument. + * + * The increment does not affect the grouping flag. In case of an overflow, the counter is reset to 0. + * + */ + + unsigned short sequence_cnt; + unsigned short segmentation_grouping_flag; + + segmentation_grouping_flag = TM_PACKET_SEQ_CTRL_STANDALONE << 8; // keep bits 7 downto 6 + sequence_cnt = (*packetSequenceControl) & 0x3fff; // [0011 1111 1111 1111] + + if ( sequence_cnt < SEQ_CNT_MAX) + { + sequence_cnt = sequence_cnt + 1; + } + else + { + sequence_cnt = 0; + } + + *packetSequenceControl = segmentation_grouping_flag | sequence_cnt ; +} + void getTime( unsigned char *time) { /** This function write the current local time in the time buffer passed in argument. diff --git a/src/processing/avf0_prc0.c b/src/processing/avf0_prc0.c --- a/src/processing/avf0_prc0.c +++ b/src/processing/avf0_prc0.c @@ -102,20 +102,26 @@ rtems_task avf0_task( rtems_task_argumen nb_sbm_bp1 = 0; // set another ring for the ASM storage current_ring_node_asm_burst_sbm_f0 = current_ring_node_asm_burst_sbm_f0->next; - if ( (lfrCurrentMode == LFR_MODE_BURST) - || (lfrCurrentMode == LFR_MODE_SBM1) || (lfrCurrentMode == LFR_MODE_SBM2) ) + if ( lfrCurrentMode == LFR_MODE_BURST ) { - msgForMATR.event = msgForMATR.event | RTEMS_EVENT_BURST_SBM_BP1_F0; + msgForMATR.event = msgForMATR.event | RTEMS_EVENT_BURST_BP1_F0; + } + else if ( (lfrCurrentMode == LFR_MODE_SBM1) || (lfrCurrentMode == LFR_MODE_SBM2) ) + { + msgForMATR.event = msgForMATR.event | RTEMS_EVENT_SBM_BP1_F0; } } if (nb_sbm_bp2 == nb_sm_before_f0.burst_sbm_bp2) { nb_sbm_bp2 = 0; - if ( (lfrCurrentMode == LFR_MODE_BURST) - || (lfrCurrentMode == LFR_MODE_SBM1) || (lfrCurrentMode == LFR_MODE_SBM2) ) + if ( lfrCurrentMode == LFR_MODE_BURST ) { - msgForMATR.event = msgForMATR.event | RTEMS_EVENT_BURST_SBM_BP2_F0; + msgForMATR.event = msgForMATR.event | RTEMS_EVENT_BURST_BP2_F0; + } + else if ( (lfrCurrentMode == LFR_MODE_SBM1) || (lfrCurrentMode == LFR_MODE_SBM2) ) + { + msgForMATR.event = msgForMATR.event | RTEMS_EVENT_SBM_BP2_F0; } } @@ -171,6 +177,7 @@ rtems_task prc0_task( rtems_task_argumen size_t size; // size of the incoming TC packet asm_msg *incomingMsg; // + unsigned char sid; spw_ioctl_pkt_send spw_ioctl_send_ASM; rtems_status_code status; rtems_id queue_id; @@ -254,8 +261,9 @@ rtems_task prc0_task( rtems_task_argumen // BURST SBM1 SBM2 //**************** //**************** - if (incomingMsg->event & RTEMS_EVENT_BURST_SBM_BP1_F0 ) + if ( (incomingMsg->event & RTEMS_EVENT_BURST_BP1_F0 ) || (incomingMsg->event & RTEMS_EVENT_SBM_BP1_F0 ) ) { + sid = getSID( incomingMsg->event ); // 1) compress the matrix for Basic Parameters calculation ASM_compress_reorganize_and_divide( incomingMsg->burst_sbm->matrix, compressed_sm_sbm_f0, nb_sm_before_f0.burst_sbm_bp1, @@ -267,10 +275,10 @@ rtems_task prc0_task( rtems_task_argumen set_time( packet_sbm_bp1_f0.header.time, (unsigned char *) &incomingMsg->coarseTime ); set_time( packet_sbm_bp1_f0.header.acquisitionTime, (unsigned char *) &incomingMsg->coarseTime ); BP_send( (char *) &packet_sbm_bp1_f0, queue_id, - PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP1_F0 + PACKET_LENGTH_DELTA, - SID_SBM1_BP1_F0); + PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP1_F0 + PACKET_LENGTH_DELTA, + sid); // 4) compute the BP2 set if needed - if ( incomingMsg->event & RTEMS_EVENT_BURST_SBM_BP2_F0 ) + if ( (incomingMsg->event & RTEMS_EVENT_BURST_BP2_F0) || (incomingMsg->event & RTEMS_EVENT_SBM_BP2_F0) ) { // 1) compute the BP2 set @@ -278,8 +286,8 @@ rtems_task prc0_task( rtems_task_argumen set_time( packet_sbm_bp2_f0.header.time, (unsigned char *) &incomingMsg->coarseTime ); set_time( packet_sbm_bp2_f0.header.acquisitionTime, (unsigned char *) &incomingMsg->coarseTime ); BP_send( (char *) &packet_sbm_bp2_f0, queue_id, - PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP2_F0 + PACKET_LENGTH_DELTA, - SID_SBM1_BP2_F0); + PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP2_F0 + PACKET_LENGTH_DELTA, + sid); } } diff --git a/src/processing/avf1_prc1.c b/src/processing/avf1_prc1.c --- a/src/processing/avf1_prc1.c +++ b/src/processing/avf1_prc1.c @@ -99,18 +99,26 @@ rtems_task avf1_task( rtems_task_argumen nb_sbm_bp1 = 0; // set another ring for the ASM storage current_ring_node_asm_burst_sbm_f1 = current_ring_node_asm_burst_sbm_f1->next; - if ( (lfrCurrentMode == LFR_MODE_BURST) || (lfrCurrentMode == LFR_MODE_SBM2) ) + if ( lfrCurrentMode == LFR_MODE_BURST ) { - msgForMATR.event = msgForMATR.event | RTEMS_EVENT_BURST_SBM_BP1_F1; + msgForMATR.event = msgForMATR.event | RTEMS_EVENT_BURST_BP1_F1; + } + else if ( lfrCurrentMode == LFR_MODE_SBM2 ) + { + msgForMATR.event = msgForMATR.event | RTEMS_EVENT_SBM_BP1_F1; } } if (nb_sbm_bp2 == nb_sm_before_f1.burst_sbm_bp2) { nb_sbm_bp2 = 0; - if ( (lfrCurrentMode == LFR_MODE_BURST) || (lfrCurrentMode == LFR_MODE_SBM2) ) + if ( lfrCurrentMode == LFR_MODE_BURST ) { - msgForMATR.event = msgForMATR.event | RTEMS_EVENT_BURST_SBM_BP2_F1; + msgForMATR.event = msgForMATR.event | RTEMS_EVENT_BURST_BP2_F1; + } + else if ( lfrCurrentMode == LFR_MODE_SBM2 ) + { + msgForMATR.event = msgForMATR.event | RTEMS_EVENT_SBM_BP2_F1; } } @@ -165,6 +173,7 @@ rtems_task prc1_task( rtems_task_argumen size_t size; // size of the incoming TC packet asm_msg *incomingMsg; // + unsigned char sid; spw_ioctl_pkt_send spw_ioctl_send_ASM; rtems_status_code status; rtems_id queue_id_send; @@ -238,8 +247,9 @@ rtems_task prc1_task( rtems_task_argumen // BURST SBM2 //*********** //*********** - if (incomingMsg->event & RTEMS_EVENT_BURST_SBM_BP1_F1 ) + if ( (incomingMsg->event & RTEMS_EVENT_BURST_BP1_F1) || (incomingMsg->event & RTEMS_EVENT_SBM_BP1_F1) ) { + sid = getSID( incomingMsg->event ); // 1) compress the matrix for Basic Parameters calculation ASM_compress_reorganize_and_divide( incomingMsg->burst_sbm->matrix, compressed_sm_sbm_f1, nb_sm_before_f1.burst_sbm_bp1, @@ -252,9 +262,9 @@ rtems_task prc1_task( rtems_task_argumen set_time( packet_sbm_bp1.header.acquisitionTime, (unsigned char *) &incomingMsg->coarseTime ); BP_send( (char *) &packet_sbm_bp1, queue_id_send, PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP1_F1 + PACKET_LENGTH_DELTA, - SID_SBM2_BP1_F1 ); + sid ); // 4) compute the BP2 set if needed - if ( incomingMsg->event & RTEMS_EVENT_BURST_SBM_BP2_F1 ) + if ( (incomingMsg->event & RTEMS_EVENT_BURST_BP2_F1) || (incomingMsg->event & RTEMS_EVENT_SBM_BP2_F1) ) { // 1) compute the BP2 set @@ -263,7 +273,7 @@ rtems_task prc1_task( rtems_task_argumen set_time( packet_sbm_bp2.header.acquisitionTime, (unsigned char *) &incomingMsg->coarseTime ); BP_send( (char *) &packet_sbm_bp2, queue_id_send, PACKET_LENGTH_TM_LFR_SCIENCE_SBM_BP2_F1 + PACKET_LENGTH_DELTA, - SID_SBM2_BP2_F1 ); + sid ); } } diff --git a/src/processing/fsw_processing.c b/src/processing/fsw_processing.c --- a/src/processing/fsw_processing.c +++ b/src/processing/fsw_processing.c @@ -63,19 +63,19 @@ void spectral_matrices_isr_f0( void ) current_ring_node_sm_f0 = current_ring_node_sm_f0->next; spectral_matrix_regs->f0_0_address = current_ring_node_sm_f0->buffer_address; } - spectral_matrix_regs->status = spectral_matrix_regs->status & 0x03; // [0011] + spectral_matrix_regs->status = 0x03; // [0011] break; case 1: close_matrix_actions( &nb_sm_f0, NB_SM_BEFORE_AVF0, Task_id[TASKID_AVF0], ring_node_for_averaging_sm_f0, current_ring_node_sm_f0->previous); current_ring_node_sm_f0 = current_ring_node_sm_f0->next; spectral_matrix_regs->f0_0_address = current_ring_node_sm_f0->buffer_address; - spectral_matrix_regs->status = spectral_matrix_regs->status & 0x01; // [0001] + spectral_matrix_regs->status = 0x01; // [0001] break; case 2: close_matrix_actions( &nb_sm_f0, NB_SM_BEFORE_AVF0, Task_id[TASKID_AVF0], ring_node_for_averaging_sm_f0, current_ring_node_sm_f0->previous); current_ring_node_sm_f0 = current_ring_node_sm_f0->next; spectral_matrix_regs->f0_1_address = current_ring_node_sm_f0->buffer_address; - spectral_matrix_regs->status = spectral_matrix_regs->status & 0x02; // [0010] + spectral_matrix_regs->status = 0x02; // [0010] break; } } @@ -113,19 +113,19 @@ void spectral_matrices_isr_f1( void ) current_ring_node_sm_f1 = current_ring_node_sm_f1->next; spectral_matrix_regs->f1_0_address = current_ring_node_sm_f1->buffer_address; } - spectral_matrix_regs->status = spectral_matrix_regs->status & 0x0c; // [1100] + spectral_matrix_regs->status = 0x0c; // [1100] break; case 1: close_matrix_actions( &nb_sm_f1, NB_SM_BEFORE_AVF1, Task_id[TASKID_AVF1], ring_node_for_averaging_sm_f1, current_ring_node_sm_f1->previous); current_ring_node_sm_f1 = current_ring_node_sm_f1->next; spectral_matrix_regs->f1_0_address = current_ring_node_sm_f1->buffer_address; - spectral_matrix_regs->status = spectral_matrix_regs->status & 0x07; // [0100] + spectral_matrix_regs->status = 0x04; // [0100] break; case 2: close_matrix_actions( &nb_sm_f1, NB_SM_BEFORE_AVF1, Task_id[TASKID_AVF1], ring_node_for_averaging_sm_f1, current_ring_node_sm_f1->previous); current_ring_node_sm_f1 = current_ring_node_sm_f1->next; spectral_matrix_regs->f1_1_address = current_ring_node_sm_f1->buffer_address; - spectral_matrix_regs->status = spectral_matrix_regs->status & 0x08; // [1000] + spectral_matrix_regs->status = 0x08; // [1000] break; } } @@ -143,22 +143,32 @@ void spectral_matrices_isr_f2( void ) switch(status) { case 0: + break; case 3: + spectral_matrix_regs->f2_0_address = current_ring_node_sm_f2->buffer_address; + spectral_matrix_regs->status = 0x30; // [0011 0000] + if (rtems_event_send( Task_id[TASKID_AVF2], RTEMS_EVENT_0 ) != RTEMS_SUCCESSFUL) + { + rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_3 ); + } break; case 1: spectral_matrix_regs->f2_0_address = current_ring_node_sm_f2->buffer_address; - spectral_matrix_regs->status = spectral_matrix_regs->status & 0x10; // [0001 0000] + spectral_matrix_regs->status = 0x10; // [0001 0000] + if (rtems_event_send( Task_id[TASKID_AVF2], RTEMS_EVENT_0 ) != RTEMS_SUCCESSFUL) + { + rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_3 ); + } break; case 2: spectral_matrix_regs->f2_1_address = current_ring_node_sm_f2->buffer_address; - spectral_matrix_regs->status = spectral_matrix_regs->status & 0x20; // [0010 0000] + spectral_matrix_regs->status = 0x20; // [0010 0000] + if (rtems_event_send( Task_id[TASKID_AVF2], RTEMS_EVENT_0 ) != RTEMS_SUCCESSFUL) + { + rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_3 ); + } break; } - - if (rtems_event_send( Task_id[TASKID_AVF2], RTEMS_EVENT_0 ) != RTEMS_SUCCESSFUL) - { - rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_3 ); - } } void spectral_matrix_isr_error_handler( void ) @@ -180,7 +190,7 @@ rtems_isr spectral_matrices_isr( rtems_v spectral_matrices_isr_f2(); - spectral_matrix_isr_error_handler(); +// spectral_matrix_isr_error_handler(); } rtems_isr spectral_matrices_isr_simu( rtems_vector_number vector ) @@ -629,4 +639,40 @@ void close_matrix_actions( unsigned int } } +unsigned char getSID( rtems_event_set event ) +{ + unsigned char sid; + rtems_event_set eventSetBURST; + rtems_event_set eventSetSBM; + + //****** + // BURST + eventSetBURST = RTEMS_EVENT_BURST_BP1_F0 + | RTEMS_EVENT_BURST_BP1_F1 + | RTEMS_EVENT_BURST_BP2_F0 + | RTEMS_EVENT_BURST_BP2_F1; + + //**** + // SBM + eventSetSBM = RTEMS_EVENT_SBM_BP1_F0 + | RTEMS_EVENT_SBM_BP1_F1 + | RTEMS_EVENT_SBM_BP2_F0 + | RTEMS_EVENT_SBM_BP2_F1; + + if (event & eventSetBURST) + { + sid = SID_BURST_BP1_F0; + } + else if (event & eventSetSBM) + { + sid = SID_SBM1_BP1_F0; + } + else + { + sid = 0; + } + + return sid; +} + diff --git a/src/tc_load_dump_parameters.c b/src/tc_load_dump_parameters.c --- a/src/tc_load_dump_parameters.c +++ b/src/tc_load_dump_parameters.c @@ -372,7 +372,10 @@ int action_dump_par( rtems_id queue_id ) int status; // UPDATE TIME - increment_seq_counter( parameter_dump_packet.packetSequenceControl ); + parameter_dump_packet.packetSequenceControl[0] = (unsigned char) sequenceCounterParameterDump >> 8; + parameter_dump_packet.packetSequenceControl[1] = (unsigned char) sequenceCounterParameterDump; + increment_seq_counter( &sequenceCounterParameterDump ); + parameter_dump_packet.time[0] = (unsigned char) (time_management_regs->coarse_time>>24); parameter_dump_packet.time[1] = (unsigned char) (time_management_regs->coarse_time>>16); parameter_dump_packet.time[2] = (unsigned char) (time_management_regs->coarse_time>>8);