##// END OF EJS Templates
Removed most unused macros...
jeandet -
r384:c56e87012e2b No PWD scrub with... draft
parent child
Show More
@@ -1,2 +1,2
1 3081d1f9bb20b2b64a192585337a292a9804e0c5 LFR_basic-parameters
1 3081d1f9bb20b2b64a192585337a292a9804e0c5 LFR_basic-parameters
2 321ffad81ce675a1ad47d6fec71f04137fd44501 header/lfr_common_headers
2 0adeb6c86feb96a126ce48641604949b87c70481 header/lfr_common_headers
@@ -1,171 +1,157
1 #ifndef FSW_MISC_H_INCLUDED
1 #ifndef FSW_MISC_H_INCLUDED
2 #define FSW_MISC_H_INCLUDED
2 #define FSW_MISC_H_INCLUDED
3
3
4 #include <rtems.h>
4 #include <rtems.h>
5 #include <stdio.h>
5 #include <stdio.h>
6 #include <grspw.h>
6 #include <grspw.h>
7 #include <grlib_regs.h>
7 #include <grlib_regs.h>
8
8
9 #include "fsw_params.h"
9 #include "fsw_params.h"
10 #include "fsw_spacewire.h"
10 #include "fsw_spacewire.h"
11 #include "lfr_cpu_usage_report.h"
11 #include "lfr_cpu_usage_report.h"
12
12
13 #define LFR_RESET_CAUSE_UNKNOWN_CAUSE 0
14 #define WATCHDOG_LOOP_PRINTF 10
13 #define WATCHDOG_LOOP_PRINTF 10
15 #define WATCHDOG_LOOP_DEBUG 3
14 #define WATCHDOG_LOOP_DEBUG 3
16
15
17 #define DUMB_MESSAGE_NB 15
18 #define NB_RTEMS_EVENTS 32
16 #define NB_RTEMS_EVENTS 32
19 #define EVENT_12 12
17 #define EVENT_12 12
20 #define EVENT_13 13
18 #define EVENT_13 13
21 #define EVENT_14 14
19 #define EVENT_14 14
22 #define DUMB_MESSAGE_0 "in DUMB *** default"
23 #define DUMB_MESSAGE_1 "in DUMB *** timecode_irq_handler"
20 #define DUMB_MESSAGE_1 "in DUMB *** timecode_irq_handler"
24 #define DUMB_MESSAGE_2 "in DUMB *** f3 buffer changed"
25 #define DUMB_MESSAGE_3 "in DUMB *** in SMIQ *** Error sending event to AVF0"
26 #define DUMB_MESSAGE_4 "in DUMB *** spectral_matrices_isr *** Error sending event to SMIQ"
27 #define DUMB_MESSAGE_5 "in DUMB *** waveforms_simulator_isr"
28 #define DUMB_MESSAGE_6 "VHDL SM *** two buffers f0 ready"
29 #define DUMB_MESSAGE_7 "ready for dump"
30 #define DUMB_MESSAGE_8 "VHDL ERR *** spectral matrix"
31 #define DUMB_MESSAGE_9 "tick"
32 #define DUMB_MESSAGE_10 "VHDL ERR *** waveform picker"
33 #define DUMB_MESSAGE_11 "VHDL ERR *** unexpected ready matrix values"
34 #define DUMB_MESSAGE_12 "WATCHDOG timer"
21 #define DUMB_MESSAGE_12 "WATCHDOG timer"
35 #define DUMB_MESSAGE_13 "TIMECODE timer"
22 #define DUMB_MESSAGE_13 "TIMECODE timer"
36 #define DUMB_MESSAGE_14 "TIMECODE ISR"
37
23
38 enum lfr_reset_cause_t{
24 enum lfr_reset_cause_t{
39 UNKNOWN_CAUSE,
25 UNKNOWN_CAUSE,
40 POWER_ON,
26 POWER_ON,
41 TC_RESET,
27 TC_RESET,
42 WATCHDOG,
28 WATCHDOG,
43 ERROR_RESET,
29 ERROR_RESET,
44 UNEXP_RESET
30 UNEXP_RESET
45 };
31 };
46
32
47 typedef struct{
33 typedef struct{
48 unsigned char dpu_spw_parity;
34 unsigned char dpu_spw_parity;
49 unsigned char dpu_spw_disconnect;
35 unsigned char dpu_spw_disconnect;
50 unsigned char dpu_spw_escape;
36 unsigned char dpu_spw_escape;
51 unsigned char dpu_spw_credit;
37 unsigned char dpu_spw_credit;
52 unsigned char dpu_spw_write_sync;
38 unsigned char dpu_spw_write_sync;
53 unsigned char timecode_erroneous;
39 unsigned char timecode_erroneous;
54 unsigned char timecode_missing;
40 unsigned char timecode_missing;
55 unsigned char timecode_invalid;
41 unsigned char timecode_invalid;
56 unsigned char time_timecode_it;
42 unsigned char time_timecode_it;
57 unsigned char time_not_synchro;
43 unsigned char time_not_synchro;
58 unsigned char time_timecode_ctr;
44 unsigned char time_timecode_ctr;
59 unsigned char ahb_correctable;
45 unsigned char ahb_correctable;
60 } hk_lfr_le_t;
46 } hk_lfr_le_t;
61
47
62 typedef struct{
48 typedef struct{
63 unsigned char dpu_spw_early_eop;
49 unsigned char dpu_spw_early_eop;
64 unsigned char dpu_spw_invalid_addr;
50 unsigned char dpu_spw_invalid_addr;
65 unsigned char dpu_spw_eep;
51 unsigned char dpu_spw_eep;
66 unsigned char dpu_spw_rx_too_big;
52 unsigned char dpu_spw_rx_too_big;
67 } hk_lfr_me_t;
53 } hk_lfr_me_t;
68
54
69 #define B00 196
55 #define B00 196
70 #define B01 196
56 #define B01 196
71 #define B02 0
57 #define B02 0
72 #define B10 131
58 #define B10 131
73 #define B11 -244
59 #define B11 -244
74 #define B12 131
60 #define B12 131
75 #define B20 161
61 #define B20 161
76 #define B21 -314
62 #define B21 -314
77 #define B22 161
63 #define B22 161
78
64
79 #define A00 1
65 #define A00 1
80 #define A01 -925
66 #define A01 -925
81 #define A02 0
67 #define A02 0
82 #define A10 1
68 #define A10 1
83 #define A11 -947
69 #define A11 -947
84 #define A12 439
70 #define A12 439
85 #define A20 1
71 #define A20 1
86 #define A21 -993
72 #define A21 -993
87 #define A22 486
73 #define A22 486
88
74
89 #define GAIN_B0 12
75 #define GAIN_B0 12
90 #define GAIN_B1 11
76 #define GAIN_B1 11
91 #define GAIN_B2 10
77 #define GAIN_B2 10
92
78
93 #define GAIN_A0 10
79 #define GAIN_A0 10
94 #define GAIN_A1 9
80 #define GAIN_A1 9
95 #define GAIN_A2 9
81 #define GAIN_A2 9
96
82
97 #define NB_COEFFS 3
83 #define NB_COEFFS 3
98 #define COEFF0 0
84 #define COEFF0 0
99 #define COEFF1 1
85 #define COEFF1 1
100 #define COEFF2 2
86 #define COEFF2 2
101
87
102 typedef struct filter_ctx
88 typedef struct filter_ctx
103 {
89 {
104 int W[NB_COEFFS][NB_COEFFS];
90 int W[NB_COEFFS][NB_COEFFS];
105 }filter_ctx;
91 }filter_ctx;
106
92
107 extern gptimer_regs_t *gptimer_regs;
93 extern gptimer_regs_t *gptimer_regs;
108 extern void ASR16_get_FPRF_IURF_ErrorCounters( unsigned int*, unsigned int* );
94 extern void ASR16_get_FPRF_IURF_ErrorCounters( unsigned int*, unsigned int* );
109 extern void CCR_getInstructionAndDataErrorCounters( unsigned int*, unsigned int* );
95 extern void CCR_getInstructionAndDataErrorCounters( unsigned int*, unsigned int* );
110
96
111 extern rtems_name name_hk_rate_monotonic; // name of the HK rate monotonic
97 extern rtems_name name_hk_rate_monotonic; // name of the HK rate monotonic
112 extern rtems_id HK_id;// id of the HK rate monotonic period
98 extern rtems_id HK_id;// id of the HK rate monotonic period
113 extern rtems_name name_avgv_rate_monotonic; // name of the AVGV rate monotonic
99 extern rtems_name name_avgv_rate_monotonic; // name of the AVGV rate monotonic
114 extern rtems_id AVGV_id;// id of the AVGV rate monotonic period
100 extern rtems_id AVGV_id;// id of the AVGV rate monotonic period
115
101
116 void timer_configure( unsigned char timer, unsigned int clock_divider,
102 void timer_configure( unsigned char timer, unsigned int clock_divider,
117 unsigned char interrupt_level, rtems_isr (*timer_isr)() );
103 unsigned char interrupt_level, rtems_isr (*timer_isr)() );
118 void timer_start( unsigned char timer );
104 void timer_start( unsigned char timer );
119 void timer_stop( unsigned char timer );
105 void timer_stop( unsigned char timer );
120 void timer_set_clock_divider(unsigned char timer, unsigned int clock_divider);
106 void timer_set_clock_divider(unsigned char timer, unsigned int clock_divider);
121
107
122 // WATCHDOG
108 // WATCHDOG
123 rtems_isr watchdog_isr( rtems_vector_number vector );
109 rtems_isr watchdog_isr( rtems_vector_number vector );
124 void watchdog_configure(void);
110 void watchdog_configure(void);
125 void watchdog_stop(void);
111 void watchdog_stop(void);
126 void watchdog_reload(void);
112 void watchdog_reload(void);
127 void watchdog_start(void);
113 void watchdog_start(void);
128
114
129 // SERIAL LINK
115 // SERIAL LINK
130 int send_console_outputs_on_apbuart_port( void );
116 int send_console_outputs_on_apbuart_port( void );
131 int enable_apbuart_transmitter( void );
117 int enable_apbuart_transmitter( void );
132 void set_apbuart_scaler_reload_register(unsigned int regs, unsigned int value);
118 void set_apbuart_scaler_reload_register(unsigned int regs, unsigned int value);
133
119
134 // RTEMS TASKS
120 // RTEMS TASKS
135 rtems_task load_task( rtems_task_argument argument );
121 rtems_task load_task( rtems_task_argument argument );
136 rtems_task hous_task( rtems_task_argument argument );
122 rtems_task hous_task( rtems_task_argument argument );
137 rtems_task avgv_task( rtems_task_argument argument );
123 rtems_task avgv_task( rtems_task_argument argument );
138 rtems_task dumb_task( rtems_task_argument unused );
124 rtems_task dumb_task( rtems_task_argument unused );
139 rtems_task scrubbing_task( rtems_task_argument unused );
125 rtems_task scrubbing_task( rtems_task_argument unused );
140 rtems_task calibration_sweep_task( rtems_task_argument unused );
126 rtems_task calibration_sweep_task( rtems_task_argument unused );
141
127
142 void init_housekeeping_parameters( void );
128 void init_housekeeping_parameters( void );
143 void increment_seq_counter(unsigned short *packetSequenceControl);
129 void increment_seq_counter(unsigned short *packetSequenceControl);
144 void getTime( unsigned char *time);
130 void getTime( unsigned char *time);
145 unsigned long long int getTimeAsUnsignedLongLongInt( );
131 unsigned long long int getTimeAsUnsignedLongLongInt( );
146 void send_dumb_hk( void );
132 void send_dumb_hk( void );
147 void get_temperatures( unsigned char *temperatures );
133 void get_temperatures( unsigned char *temperatures );
148 void get_v_e1_e2_f3( unsigned char *spacecraft_potential );
134 void get_v_e1_e2_f3( unsigned char *spacecraft_potential );
149 void get_cpu_load( unsigned char *resource_statistics );
135 void get_cpu_load( unsigned char *resource_statistics );
150 void set_hk_lfr_sc_potential_flag( bool state );
136 void set_hk_lfr_sc_potential_flag( bool state );
151 void set_sy_lfr_pas_filter_enabled( bool state );
137 void set_sy_lfr_pas_filter_enabled( bool state );
152 void set_sy_lfr_watchdog_enabled( bool state );
138 void set_sy_lfr_watchdog_enabled( bool state );
153 void set_hk_lfr_calib_enable( bool state );
139 void set_hk_lfr_calib_enable( bool state );
154 void set_hk_lfr_reset_cause( enum lfr_reset_cause_t lfr_reset_cause );
140 void set_hk_lfr_reset_cause( enum lfr_reset_cause_t lfr_reset_cause );
155 void hk_lfr_le_me_he_update();
141 void hk_lfr_le_me_he_update();
156 void set_hk_lfr_time_not_synchro();
142 void set_hk_lfr_time_not_synchro();
157
143
158 extern int sched_yield( void );
144 extern int sched_yield( void );
159 extern void rtems_cpu_usage_reset();
145 extern void rtems_cpu_usage_reset();
160 extern ring_node *current_ring_node_f3;
146 extern ring_node *current_ring_node_f3;
161 extern ring_node *ring_node_to_send_cwf_f3;
147 extern ring_node *ring_node_to_send_cwf_f3;
162 extern ring_node waveform_ring_f3[];
148 extern ring_node waveform_ring_f3[];
163 extern unsigned short sequenceCounterHK;
149 extern unsigned short sequenceCounterHK;
164
150
165 extern unsigned char hk_lfr_q_sd_fifo_size_max;
151 extern unsigned char hk_lfr_q_sd_fifo_size_max;
166 extern unsigned char hk_lfr_q_rv_fifo_size_max;
152 extern unsigned char hk_lfr_q_rv_fifo_size_max;
167 extern unsigned char hk_lfr_q_p0_fifo_size_max;
153 extern unsigned char hk_lfr_q_p0_fifo_size_max;
168 extern unsigned char hk_lfr_q_p1_fifo_size_max;
154 extern unsigned char hk_lfr_q_p1_fifo_size_max;
169 extern unsigned char hk_lfr_q_p2_fifo_size_max;
155 extern unsigned char hk_lfr_q_p2_fifo_size_max;
170
156
171 #endif // FSW_MISC_H_INCLUDED
157 #endif // FSW_MISC_H_INCLUDED
@@ -1,38 +1,37
1 #ifndef LFR_CPU_USAGE_REPORT_H
1 #ifndef LFR_CPU_USAGE_REPORT_H
2 #define LFR_CPU_USAGE_REPORT_H
2 #define LFR_CPU_USAGE_REPORT_H
3
3
4 #ifdef HAVE_CONFIG_H
4 #ifdef HAVE_CONFIG_H
5 #include "config.h"
5 #include "config.h"
6 #endif
6 #endif
7
7
8 #include <rtems.h>
8 #include <rtems.h>
9
9
10 #include <assert.h>
10 #include <assert.h>
11 #include <string.h>
11 #include <string.h>
12 #include <stdlib.h>
12 #include <stdlib.h>
13 #include <stdio.h>
13 #include <stdio.h>
14 #include <ctype.h>
14 #include <ctype.h>
15 #include <inttypes.h>
15 #include <inttypes.h>
16
16
17 #include <rtems/cpuuse.h>
17 #include <rtems/cpuuse.h>
18 #include <rtems/bspIo.h>
18 #include <rtems/bspIo.h>
19
19
20 #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
20 #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
21 #include <rtems/score/timestamp.h>
21 #include <rtems/score/timestamp.h>
22 #endif
22 #endif
23
23
24 #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
24 #ifndef __RTEMS_USE_TICKS_FOR_STATISTICS__
25 extern Timestamp_Control CPU_usage_Uptime_at_last_reset;
25 extern Timestamp_Control CPU_usage_Uptime_at_last_reset;
26 #else
26 #else
27 extern uint32_t CPU_usage_Ticks_at_last_reset;
27 extern uint32_t CPU_usage_Ticks_at_last_reset;
28 #endif
28 #endif
29
29
30 unsigned char lfr_rtems_cpu_usage_report( void );
30 unsigned char lfr_rtems_cpu_usage_report( void );
31
31
32 #define CONST_10 10
32 #define CONST_10 10
33 #define CONST_100 100
33 #define CONST_100 100
34 #define CONST_255 255
34 #define CONST_255 255
35 #define CONST_1000 1000
35 #define CONST_1000 1000
36 #define CONST_100000 100000
37
36
38 #endif // LFR_CPU_USAGE_REPORT_H
37 #endif // LFR_CPU_USAGE_REPORT_H
@@ -1,373 +1,364
1 #ifndef FSW_PROCESSING_H_INCLUDED
1 #ifndef FSW_PROCESSING_H_INCLUDED
2 #define FSW_PROCESSING_H_INCLUDED
2 #define FSW_PROCESSING_H_INCLUDED
3
3
4 #include <rtems.h>
4 #include <rtems.h>
5 #include <grspw.h>
5 #include <grspw.h>
6 #include <math.h>
6 #include <math.h>
7 #include <stdlib.h> // abs() is in the stdlib
7 #include <stdlib.h> // abs() is in the stdlib
8 #include <stdio.h>
8 #include <stdio.h>
9 #include <math.h>
9 #include <math.h>
10 #include <grlib_regs.h>
10 #include <grlib_regs.h>
11
11
12 #include "fsw_params.h"
12 #include "fsw_params.h"
13
13
14 #define SBM_COEFF_PER_NORM_COEFF 2
14 #define SBM_COEFF_PER_NORM_COEFF 2
15 #define MAX_SRC_DATA 780 // MAX size is 26 bins * 30 Bytes [TM_LFR_SCIENCE_BURST_BP2_F1]
15 #define MAX_SRC_DATA 780 // MAX size is 26 bins * 30 Bytes [TM_LFR_SCIENCE_BURST_BP2_F1]
16 #define MAX_SRC_DATA_WITH_SPARE 143 // 13 bins * 11 Bytes
16 #define MAX_SRC_DATA_WITH_SPARE 143 // 13 bins * 11 Bytes
17
17
18 #define NODE_0 0
19 #define NODE_1 1
20 #define NODE_2 2
21 #define NODE_3 3
22 #define NODE_4 4
23 #define NODE_5 5
24 #define NODE_6 6
25 #define NODE_7 7
26
27 typedef struct ring_node_asm
18 typedef struct ring_node_asm
28 {
19 {
29 struct ring_node_asm *next;
20 struct ring_node_asm *next;
30 float matrix[ TOTAL_SIZE_SM ];
21 float matrix[ TOTAL_SIZE_SM ];
31 unsigned int status;
22 unsigned int status;
32 } ring_node_asm;
23 } ring_node_asm;
33
24
34 typedef struct
25 typedef struct
35 {
26 {
36 unsigned char targetLogicalAddress;
27 unsigned char targetLogicalAddress;
37 unsigned char protocolIdentifier;
28 unsigned char protocolIdentifier;
38 unsigned char reserved;
29 unsigned char reserved;
39 unsigned char userApplication;
30 unsigned char userApplication;
40 unsigned char packetID[BYTES_PER_PACKETID];
31 unsigned char packetID[BYTES_PER_PACKETID];
41 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
32 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
42 unsigned char packetLength[BYTES_PER_PKT_LEN];
33 unsigned char packetLength[BYTES_PER_PKT_LEN];
43 // DATA FIELD HEADER
34 // DATA FIELD HEADER
44 unsigned char spare1_pusVersion_spare2;
35 unsigned char spare1_pusVersion_spare2;
45 unsigned char serviceType;
36 unsigned char serviceType;
46 unsigned char serviceSubType;
37 unsigned char serviceSubType;
47 unsigned char destinationID;
38 unsigned char destinationID;
48 unsigned char time[BYTES_PER_TIME];
39 unsigned char time[BYTES_PER_TIME];
49 // AUXILIARY HEADER
40 // AUXILIARY HEADER
50 unsigned char sid;
41 unsigned char sid;
51 unsigned char pa_bia_status_info;
42 unsigned char pa_bia_status_info;
52 unsigned char sy_lfr_common_parameters_spare;
43 unsigned char sy_lfr_common_parameters_spare;
53 unsigned char sy_lfr_common_parameters;
44 unsigned char sy_lfr_common_parameters;
54 unsigned char acquisitionTime[BYTES_PER_TIME];
45 unsigned char acquisitionTime[BYTES_PER_TIME];
55 unsigned char pa_lfr_bp_blk_nr[BYTES_PER_BLKNR];
46 unsigned char pa_lfr_bp_blk_nr[BYTES_PER_BLKNR];
56 // SOURCE DATA
47 // SOURCE DATA
57 unsigned char data[ MAX_SRC_DATA ]; // MAX size is 26 bins * 30 Bytes [TM_LFR_SCIENCE_BURST_BP2_F1]
48 unsigned char data[ MAX_SRC_DATA ]; // MAX size is 26 bins * 30 Bytes [TM_LFR_SCIENCE_BURST_BP2_F1]
58 } bp_packet;
49 } bp_packet;
59
50
60 typedef struct
51 typedef struct
61 {
52 {
62 unsigned char targetLogicalAddress;
53 unsigned char targetLogicalAddress;
63 unsigned char protocolIdentifier;
54 unsigned char protocolIdentifier;
64 unsigned char reserved;
55 unsigned char reserved;
65 unsigned char userApplication;
56 unsigned char userApplication;
66 unsigned char packetID[BYTES_PER_PACKETID];
57 unsigned char packetID[BYTES_PER_PACKETID];
67 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
58 unsigned char packetSequenceControl[BYTES_PER_SEQ_CTRL];
68 unsigned char packetLength[BYTES_PER_PKT_LEN];
59 unsigned char packetLength[BYTES_PER_PKT_LEN];
69 // DATA FIELD HEADER
60 // DATA FIELD HEADER
70 unsigned char spare1_pusVersion_spare2;
61 unsigned char spare1_pusVersion_spare2;
71 unsigned char serviceType;
62 unsigned char serviceType;
72 unsigned char serviceSubType;
63 unsigned char serviceSubType;
73 unsigned char destinationID;
64 unsigned char destinationID;
74 unsigned char time[BYTES_PER_TIME];
65 unsigned char time[BYTES_PER_TIME];
75 // AUXILIARY HEADER
66 // AUXILIARY HEADER
76 unsigned char sid;
67 unsigned char sid;
77 unsigned char pa_bia_status_info;
68 unsigned char pa_bia_status_info;
78 unsigned char sy_lfr_common_parameters_spare;
69 unsigned char sy_lfr_common_parameters_spare;
79 unsigned char sy_lfr_common_parameters;
70 unsigned char sy_lfr_common_parameters;
80 unsigned char acquisitionTime[BYTES_PER_TIME];
71 unsigned char acquisitionTime[BYTES_PER_TIME];
81 unsigned char source_data_spare;
72 unsigned char source_data_spare;
82 unsigned char pa_lfr_bp_blk_nr[BYTES_PER_BLKNR];
73 unsigned char pa_lfr_bp_blk_nr[BYTES_PER_BLKNR];
83 // SOURCE DATA
74 // SOURCE DATA
84 unsigned char data[ MAX_SRC_DATA_WITH_SPARE ]; // 13 bins * 11 Bytes
75 unsigned char data[ MAX_SRC_DATA_WITH_SPARE ]; // 13 bins * 11 Bytes
85 } bp_packet_with_spare; // only for TM_LFR_SCIENCE_NORMAL_BP1_F0 and F1
76 } bp_packet_with_spare; // only for TM_LFR_SCIENCE_NORMAL_BP1_F0 and F1
86
77
87 typedef struct asm_msg
78 typedef struct asm_msg
88 {
79 {
89 ring_node_asm *norm;
80 ring_node_asm *norm;
90 ring_node_asm *burst_sbm;
81 ring_node_asm *burst_sbm;
91 rtems_event_set event;
82 rtems_event_set event;
92 unsigned int coarseTimeNORM;
83 unsigned int coarseTimeNORM;
93 unsigned int fineTimeNORM;
84 unsigned int fineTimeNORM;
94 unsigned int coarseTimeSBM;
85 unsigned int coarseTimeSBM;
95 unsigned int fineTimeSBM;
86 unsigned int fineTimeSBM;
96 unsigned int numberOfSMInASMNORM;
87 unsigned int numberOfSMInASMNORM;
97 unsigned int numberOfSMInASMSBM;
88 unsigned int numberOfSMInASMSBM;
98 } asm_msg;
89 } asm_msg;
99
90
100 extern unsigned char thisIsAnASMRestart;
91 extern unsigned char thisIsAnASMRestart;
101
92
102 extern volatile int sm_f0[ ];
93 extern volatile int sm_f0[ ];
103 extern volatile int sm_f1[ ];
94 extern volatile int sm_f1[ ];
104 extern volatile int sm_f2[ ];
95 extern volatile int sm_f2[ ];
105 extern unsigned int acquisitionDurations[];
96 extern unsigned int acquisitionDurations[];
106
97
107 // parameters
98 // parameters
108 extern struct param_local_str param_local;
99 extern struct param_local_str param_local;
109 extern Packet_TM_LFR_PARAMETER_DUMP_t parameter_dump_packet;
100 extern Packet_TM_LFR_PARAMETER_DUMP_t parameter_dump_packet;
110
101
111 // registers
102 // registers
112 extern time_management_regs_t *time_management_regs;
103 extern time_management_regs_t *time_management_regs;
113 extern volatile spectral_matrix_regs_t *spectral_matrix_regs;
104 extern volatile spectral_matrix_regs_t *spectral_matrix_regs;
114
105
115 extern rtems_name misc_name[];
106 extern rtems_name misc_name[];
116 extern rtems_id Task_id[]; /* array of task ids */
107 extern rtems_id Task_id[]; /* array of task ids */
117
108
118 ring_node * getRingNodeForAveraging( unsigned char frequencyChannel);
109 ring_node * getRingNodeForAveraging( unsigned char frequencyChannel);
119 // ISR
110 // ISR
120 rtems_isr spectral_matrices_isr( rtems_vector_number vector );
111 rtems_isr spectral_matrices_isr( rtems_vector_number vector );
121
112
122 //******************
113 //******************
123 // Spectral Matrices
114 // Spectral Matrices
124 void reset_nb_sm( void );
115 void reset_nb_sm( void );
125 // SM
116 // SM
126 void SM_init_rings( void );
117 void SM_init_rings( void );
127 void SM_reset_current_ring_nodes( void );
118 void SM_reset_current_ring_nodes( void );
128 // ASM
119 // ASM
129 void ASM_generic_init_ring(ring_node_asm *ring, unsigned char nbNodes );
120 void ASM_generic_init_ring(ring_node_asm *ring, unsigned char nbNodes );
130
121
131 //*****************
122 //*****************
132 // Basic Parameters
123 // Basic Parameters
133
124
134 void BP_reset_current_ring_nodes( void );
125 void BP_reset_current_ring_nodes( void );
135 void BP_init_header(bp_packet *packet,
126 void BP_init_header(bp_packet *packet,
136 unsigned int apid, unsigned char sid,
127 unsigned int apid, unsigned char sid,
137 unsigned int packetLength , unsigned char blkNr);
128 unsigned int packetLength , unsigned char blkNr);
138 void BP_init_header_with_spare(bp_packet_with_spare *packet,
129 void BP_init_header_with_spare(bp_packet_with_spare *packet,
139 unsigned int apid, unsigned char sid,
130 unsigned int apid, unsigned char sid,
140 unsigned int packetLength, unsigned char blkNr );
131 unsigned int packetLength, unsigned char blkNr );
141 void BP_send( char *data,
132 void BP_send( char *data,
142 rtems_id queue_id,
133 rtems_id queue_id,
143 unsigned int nbBytesToSend , unsigned int sid );
134 unsigned int nbBytesToSend , unsigned int sid );
144 void BP_send_s1_s2(char *data,
135 void BP_send_s1_s2(char *data,
145 rtems_id queue_id,
136 rtems_id queue_id,
146 unsigned int nbBytesToSend, unsigned int sid );
137 unsigned int nbBytesToSend, unsigned int sid );
147
138
148 //******************
139 //******************
149 // general functions
140 // general functions
150 void reset_sm_status( void );
141 void reset_sm_status( void );
151 void reset_spectral_matrix_regs( void );
142 void reset_spectral_matrix_regs( void );
152 void set_time(unsigned char *time, unsigned char *timeInBuffer );
143 void set_time(unsigned char *time, unsigned char *timeInBuffer );
153 unsigned long long int get_acquisition_time( unsigned char *timePtr );
144 unsigned long long int get_acquisition_time( unsigned char *timePtr );
154 unsigned char getSID( rtems_event_set event );
145 unsigned char getSID( rtems_event_set event );
155
146
156 extern rtems_status_code get_message_queue_id_prc1( rtems_id *queue_id );
147 extern rtems_status_code get_message_queue_id_prc1( rtems_id *queue_id );
157 extern rtems_status_code get_message_queue_id_prc2( rtems_id *queue_id );
148 extern rtems_status_code get_message_queue_id_prc2( rtems_id *queue_id );
158
149
159 //***************************************
150 //***************************************
160 // DEFINITIONS OF STATIC INLINE FUNCTIONS
151 // DEFINITIONS OF STATIC INLINE FUNCTIONS
161 static inline void SM_average(float *averaged_spec_mat_NORM, float *averaged_spec_mat_SBM,
152 static inline void SM_average(float *averaged_spec_mat_NORM, float *averaged_spec_mat_SBM,
162 ring_node *ring_node_tab[],
153 ring_node *ring_node_tab[],
163 unsigned int nbAverageNORM, unsigned int nbAverageSBM,
154 unsigned int nbAverageNORM, unsigned int nbAverageSBM,
164 asm_msg *msgForMATR , unsigned char channel);
155 asm_msg *msgForMATR , unsigned char channel);
165
156
166 void ASM_patch( float *inputASM, float *outputASM );
157 void ASM_patch( float *inputASM, float *outputASM );
167
158
168 void extractReImVectors(float *inputASM, float *outputASM, unsigned int asmComponent );
159 void extractReImVectors(float *inputASM, float *outputASM, unsigned int asmComponent );
169
160
170 static inline void ASM_reorganize_and_divide(float *averaged_spec_mat, float *averaged_spec_mat_reorganized,
161 static inline void ASM_reorganize_and_divide(float *averaged_spec_mat, float *averaged_spec_mat_reorganized,
171 float divider );
162 float divider );
172
163
173 static inline void ASM_compress_reorganize_and_divide(float *averaged_spec_mat, float *compressed_spec_mat,
164 static inline void ASM_compress_reorganize_and_divide(float *averaged_spec_mat, float *compressed_spec_mat,
174 float divider,
165 float divider,
175 unsigned char nbBinsCompressedMatrix, unsigned char nbBinsToAverage , unsigned char ASMIndexStart);
166 unsigned char nbBinsCompressedMatrix, unsigned char nbBinsToAverage , unsigned char ASMIndexStart);
176
167
177 static inline void ASM_convert(volatile float *input_matrix, char *output_matrix);
168 static inline void ASM_convert(volatile float *input_matrix, char *output_matrix);
178
169
179 unsigned char isPolluted( u_int64_t t0, u_int64_t t1, u_int64_t tbad0, u_int64_t tbad1 );
170 unsigned char isPolluted( u_int64_t t0, u_int64_t t1, u_int64_t tbad0, u_int64_t tbad1 );
180
171
181 unsigned char acquisitionTimeIsValid(unsigned int coarseTime, unsigned int fineTime, unsigned char channel);
172 unsigned char acquisitionTimeIsValid(unsigned int coarseTime, unsigned int fineTime, unsigned char channel);
182
173
183 void SM_average( float *averaged_spec_mat_NORM, float *averaged_spec_mat_SBM,
174 void SM_average( float *averaged_spec_mat_NORM, float *averaged_spec_mat_SBM,
184 ring_node *ring_node_tab[],
175 ring_node *ring_node_tab[],
185 unsigned int nbAverageNORM, unsigned int nbAverageSBM,
176 unsigned int nbAverageNORM, unsigned int nbAverageSBM,
186 asm_msg *msgForMATR, unsigned char channel )
177 asm_msg *msgForMATR, unsigned char channel )
187 {
178 {
188 float sum;
179 float sum;
189 unsigned int i;
180 unsigned int i;
190 unsigned int k;
181 unsigned int k;
191 unsigned char incomingSMIsValid[NB_SM_BEFORE_AVF0_F1];
182 unsigned char incomingSMIsValid[NB_SM_BEFORE_AVF0_F1];
192 unsigned int numberOfValidSM;
183 unsigned int numberOfValidSM;
193 unsigned char isValid;
184 unsigned char isValid;
194
185
195 //**************
186 //**************
196 // PAS FILTERING
187 // PAS FILTERING
197 // check acquisitionTime of the incoming data
188 // check acquisitionTime of the incoming data
198 numberOfValidSM = 0;
189 numberOfValidSM = 0;
199 for (k=0; k<NB_SM_BEFORE_AVF0_F1; k++)
190 for (k=0; k<NB_SM_BEFORE_AVF0_F1; k++)
200 {
191 {
201 isValid = acquisitionTimeIsValid( ring_node_tab[k]->coarseTime, ring_node_tab[k]->fineTime, channel );
192 isValid = acquisitionTimeIsValid( ring_node_tab[k]->coarseTime, ring_node_tab[k]->fineTime, channel );
202 incomingSMIsValid[k] = isValid;
193 incomingSMIsValid[k] = isValid;
203 numberOfValidSM = numberOfValidSM + isValid;
194 numberOfValidSM = numberOfValidSM + isValid;
204 }
195 }
205
196
206 //************************
197 //************************
207 // AVERAGE SPECTRAL MATRIX
198 // AVERAGE SPECTRAL MATRIX
208 for(i=0; i<TOTAL_SIZE_SM; i++)
199 for(i=0; i<TOTAL_SIZE_SM; i++)
209 {
200 {
210 sum = INIT_FLOAT;
201 sum = INIT_FLOAT;
211 for ( k = 0; k < NB_SM_BEFORE_AVF0_F1; k++ )
202 for ( k = 0; k < NB_SM_BEFORE_AVF0_F1; k++ )
212 {
203 {
213 if (incomingSMIsValid[k] == MATRIX_IS_NOT_POLLUTED)
204 if (incomingSMIsValid[k] == MATRIX_IS_NOT_POLLUTED)
214 {
205 {
215 sum = sum + ( (int *) (ring_node_tab[0]->buffer_address) ) [ i ] ;
206 sum = sum + ( (int *) (ring_node_tab[0]->buffer_address) ) [ i ] ;
216 }
207 }
217 }
208 }
218
209
219 if ( (nbAverageNORM == 0) && (nbAverageSBM == 0) )
210 if ( (nbAverageNORM == 0) && (nbAverageSBM == 0) )
220 {
211 {
221 averaged_spec_mat_NORM[ i ] = sum;
212 averaged_spec_mat_NORM[ i ] = sum;
222 averaged_spec_mat_SBM[ i ] = sum;
213 averaged_spec_mat_SBM[ i ] = sum;
223 msgForMATR->coarseTimeNORM = ring_node_tab[0]->coarseTime;
214 msgForMATR->coarseTimeNORM = ring_node_tab[0]->coarseTime;
224 msgForMATR->fineTimeNORM = ring_node_tab[0]->fineTime;
215 msgForMATR->fineTimeNORM = ring_node_tab[0]->fineTime;
225 msgForMATR->coarseTimeSBM = ring_node_tab[0]->coarseTime;
216 msgForMATR->coarseTimeSBM = ring_node_tab[0]->coarseTime;
226 msgForMATR->fineTimeSBM = ring_node_tab[0]->fineTime;
217 msgForMATR->fineTimeSBM = ring_node_tab[0]->fineTime;
227 }
218 }
228 else if ( (nbAverageNORM != 0) && (nbAverageSBM != 0) )
219 else if ( (nbAverageNORM != 0) && (nbAverageSBM != 0) )
229 {
220 {
230 averaged_spec_mat_NORM[ i ] = ( averaged_spec_mat_NORM[ i ] + sum );
221 averaged_spec_mat_NORM[ i ] = ( averaged_spec_mat_NORM[ i ] + sum );
231 averaged_spec_mat_SBM[ i ] = ( averaged_spec_mat_SBM[ i ] + sum );
222 averaged_spec_mat_SBM[ i ] = ( averaged_spec_mat_SBM[ i ] + sum );
232 }
223 }
233 else if ( (nbAverageNORM != 0) && (nbAverageSBM == 0) )
224 else if ( (nbAverageNORM != 0) && (nbAverageSBM == 0) )
234 {
225 {
235 averaged_spec_mat_NORM[ i ] = ( averaged_spec_mat_NORM[ i ] + sum );
226 averaged_spec_mat_NORM[ i ] = ( averaged_spec_mat_NORM[ i ] + sum );
236 averaged_spec_mat_SBM[ i ] = sum;
227 averaged_spec_mat_SBM[ i ] = sum;
237 msgForMATR->coarseTimeSBM = ring_node_tab[0]->coarseTime;
228 msgForMATR->coarseTimeSBM = ring_node_tab[0]->coarseTime;
238 msgForMATR->fineTimeSBM = ring_node_tab[0]->fineTime;
229 msgForMATR->fineTimeSBM = ring_node_tab[0]->fineTime;
239 }
230 }
240 else
231 else
241 {
232 {
242 averaged_spec_mat_NORM[ i ] = sum;
233 averaged_spec_mat_NORM[ i ] = sum;
243 averaged_spec_mat_SBM[ i ] = ( averaged_spec_mat_SBM[ i ] + sum );
234 averaged_spec_mat_SBM[ i ] = ( averaged_spec_mat_SBM[ i ] + sum );
244 msgForMATR->coarseTimeNORM = ring_node_tab[0]->coarseTime;
235 msgForMATR->coarseTimeNORM = ring_node_tab[0]->coarseTime;
245 msgForMATR->fineTimeNORM = ring_node_tab[0]->fineTime;
236 msgForMATR->fineTimeNORM = ring_node_tab[0]->fineTime;
246 // PRINTF2("ERR *** in SM_average *** unexpected parameters %d %d\n", nbAverageNORM, nbAverageSBM)
237 // PRINTF2("ERR *** in SM_average *** unexpected parameters %d %d\n", nbAverageNORM, nbAverageSBM)
247 }
238 }
248 }
239 }
249
240
250 //*******************
241 //*******************
251 // UPDATE SM COUNTERS
242 // UPDATE SM COUNTERS
252 if ( (nbAverageNORM == 0) && (nbAverageSBM == 0) )
243 if ( (nbAverageNORM == 0) && (nbAverageSBM == 0) )
253 {
244 {
254 msgForMATR->numberOfSMInASMNORM = numberOfValidSM;
245 msgForMATR->numberOfSMInASMNORM = numberOfValidSM;
255 msgForMATR->numberOfSMInASMSBM = numberOfValidSM;
246 msgForMATR->numberOfSMInASMSBM = numberOfValidSM;
256 }
247 }
257 else if ( (nbAverageNORM != 0) && (nbAverageSBM != 0) )
248 else if ( (nbAverageNORM != 0) && (nbAverageSBM != 0) )
258 {
249 {
259 msgForMATR->numberOfSMInASMNORM = msgForMATR->numberOfSMInASMNORM + numberOfValidSM;
250 msgForMATR->numberOfSMInASMNORM = msgForMATR->numberOfSMInASMNORM + numberOfValidSM;
260 msgForMATR->numberOfSMInASMSBM = msgForMATR->numberOfSMInASMSBM + numberOfValidSM;
251 msgForMATR->numberOfSMInASMSBM = msgForMATR->numberOfSMInASMSBM + numberOfValidSM;
261 }
252 }
262 else if ( (nbAverageNORM != 0) && (nbAverageSBM == 0) )
253 else if ( (nbAverageNORM != 0) && (nbAverageSBM == 0) )
263 {
254 {
264 msgForMATR->numberOfSMInASMNORM = msgForMATR->numberOfSMInASMNORM + numberOfValidSM;
255 msgForMATR->numberOfSMInASMNORM = msgForMATR->numberOfSMInASMNORM + numberOfValidSM;
265 msgForMATR->numberOfSMInASMSBM = numberOfValidSM;
256 msgForMATR->numberOfSMInASMSBM = numberOfValidSM;
266 }
257 }
267 else
258 else
268 {
259 {
269 msgForMATR->numberOfSMInASMNORM = numberOfValidSM;
260 msgForMATR->numberOfSMInASMNORM = numberOfValidSM;
270 msgForMATR->numberOfSMInASMSBM = msgForMATR->numberOfSMInASMSBM + numberOfValidSM;
261 msgForMATR->numberOfSMInASMSBM = msgForMATR->numberOfSMInASMSBM + numberOfValidSM;
271 }
262 }
272 }
263 }
273
264
274 void ASM_reorganize_and_divide( float *averaged_spec_mat, float *averaged_spec_mat_reorganized, float divider )
265 void ASM_reorganize_and_divide( float *averaged_spec_mat, float *averaged_spec_mat_reorganized, float divider )
275 {
266 {
276 int frequencyBin;
267 int frequencyBin;
277 int asmComponent;
268 int asmComponent;
278 unsigned int offsetASM;
269 unsigned int offsetASM;
279 unsigned int offsetASMReorganized;
270 unsigned int offsetASMReorganized;
280
271
281 // BUILD DATA
272 // BUILD DATA
282 for (asmComponent = 0; asmComponent < NB_VALUES_PER_SM; asmComponent++)
273 for (asmComponent = 0; asmComponent < NB_VALUES_PER_SM; asmComponent++)
283 {
274 {
284 for( frequencyBin = 0; frequencyBin < NB_BINS_PER_SM; frequencyBin++ )
275 for( frequencyBin = 0; frequencyBin < NB_BINS_PER_SM; frequencyBin++ )
285 {
276 {
286 offsetASMReorganized =
277 offsetASMReorganized =
287 (frequencyBin * NB_VALUES_PER_SM)
278 (frequencyBin * NB_VALUES_PER_SM)
288 + asmComponent;
279 + asmComponent;
289 offsetASM =
280 offsetASM =
290 (asmComponent * NB_BINS_PER_SM)
281 (asmComponent * NB_BINS_PER_SM)
291 + frequencyBin;
282 + frequencyBin;
292 if ( divider != INIT_FLOAT )
283 if ( divider != INIT_FLOAT )
293 {
284 {
294 averaged_spec_mat_reorganized[offsetASMReorganized ] = averaged_spec_mat[ offsetASM ] / divider;
285 averaged_spec_mat_reorganized[offsetASMReorganized ] = averaged_spec_mat[ offsetASM ] / divider;
295 }
286 }
296 else
287 else
297 {
288 {
298 averaged_spec_mat_reorganized[offsetASMReorganized ] = INIT_FLOAT;
289 averaged_spec_mat_reorganized[offsetASMReorganized ] = INIT_FLOAT;
299 }
290 }
300 }
291 }
301 }
292 }
302 }
293 }
303
294
304 void ASM_compress_reorganize_and_divide(float *averaged_spec_mat, float *compressed_spec_mat , float divider,
295 void ASM_compress_reorganize_and_divide(float *averaged_spec_mat, float *compressed_spec_mat , float divider,
305 unsigned char nbBinsCompressedMatrix, unsigned char nbBinsToAverage, unsigned char ASMIndexStart )
296 unsigned char nbBinsCompressedMatrix, unsigned char nbBinsToAverage, unsigned char ASMIndexStart )
306 {
297 {
307 int frequencyBin;
298 int frequencyBin;
308 int asmComponent;
299 int asmComponent;
309 int offsetASM;
300 int offsetASM;
310 int offsetCompressed;
301 int offsetCompressed;
311 int k;
302 int k;
312
303
313 // BUILD DATA
304 // BUILD DATA
314 for (asmComponent = 0; asmComponent < NB_VALUES_PER_SM; asmComponent++)
305 for (asmComponent = 0; asmComponent < NB_VALUES_PER_SM; asmComponent++)
315 {
306 {
316 for( frequencyBin = 0; frequencyBin < nbBinsCompressedMatrix; frequencyBin++ )
307 for( frequencyBin = 0; frequencyBin < nbBinsCompressedMatrix; frequencyBin++ )
317 {
308 {
318 offsetCompressed = // NO TIME OFFSET
309 offsetCompressed = // NO TIME OFFSET
319 (frequencyBin * NB_VALUES_PER_SM)
310 (frequencyBin * NB_VALUES_PER_SM)
320 + asmComponent;
311 + asmComponent;
321 offsetASM = // NO TIME OFFSET
312 offsetASM = // NO TIME OFFSET
322 (asmComponent * NB_BINS_PER_SM)
313 (asmComponent * NB_BINS_PER_SM)
323 + ASMIndexStart
314 + ASMIndexStart
324 + (frequencyBin * nbBinsToAverage);
315 + (frequencyBin * nbBinsToAverage);
325 compressed_spec_mat[ offsetCompressed ] = 0;
316 compressed_spec_mat[ offsetCompressed ] = 0;
326 for ( k = 0; k < nbBinsToAverage; k++ )
317 for ( k = 0; k < nbBinsToAverage; k++ )
327 {
318 {
328 compressed_spec_mat[offsetCompressed ] =
319 compressed_spec_mat[offsetCompressed ] =
329 ( compressed_spec_mat[ offsetCompressed ]
320 ( compressed_spec_mat[ offsetCompressed ]
330 + averaged_spec_mat[ offsetASM + k ] );
321 + averaged_spec_mat[ offsetASM + k ] );
331 }
322 }
332 compressed_spec_mat[ offsetCompressed ] =
323 compressed_spec_mat[ offsetCompressed ] =
333 compressed_spec_mat[ offsetCompressed ] / (divider * nbBinsToAverage);
324 compressed_spec_mat[ offsetCompressed ] / (divider * nbBinsToAverage);
334 }
325 }
335 }
326 }
336 }
327 }
337
328
338 void ASM_convert( volatile float *input_matrix, char *output_matrix)
329 void ASM_convert( volatile float *input_matrix, char *output_matrix)
339 {
330 {
340 unsigned int frequencyBin;
331 unsigned int frequencyBin;
341 unsigned int asmComponent;
332 unsigned int asmComponent;
342 char * pt_char_input;
333 char * pt_char_input;
343 char * pt_char_output;
334 char * pt_char_output;
344 unsigned int offsetInput;
335 unsigned int offsetInput;
345 unsigned int offsetOutput;
336 unsigned int offsetOutput;
346
337
347 pt_char_input = (char*) &input_matrix;
338 pt_char_input = (char*) &input_matrix;
348 pt_char_output = (char*) &output_matrix;
339 pt_char_output = (char*) &output_matrix;
349
340
350 // convert all other data
341 // convert all other data
351 for( frequencyBin=0; frequencyBin<NB_BINS_PER_SM; frequencyBin++)
342 for( frequencyBin=0; frequencyBin<NB_BINS_PER_SM; frequencyBin++)
352 {
343 {
353 for ( asmComponent=0; asmComponent<NB_VALUES_PER_SM; asmComponent++)
344 for ( asmComponent=0; asmComponent<NB_VALUES_PER_SM; asmComponent++)
354 {
345 {
355 offsetInput = (frequencyBin*NB_VALUES_PER_SM) + asmComponent ;
346 offsetInput = (frequencyBin*NB_VALUES_PER_SM) + asmComponent ;
356 offsetOutput = SM_BYTES_PER_VAL * ( (frequencyBin*NB_VALUES_PER_SM) + asmComponent ) ;
347 offsetOutput = SM_BYTES_PER_VAL * ( (frequencyBin*NB_VALUES_PER_SM) + asmComponent ) ;
357 pt_char_input = (char*) &input_matrix [ offsetInput ];
348 pt_char_input = (char*) &input_matrix [ offsetInput ];
358 pt_char_output = (char*) &output_matrix[ offsetOutput ];
349 pt_char_output = (char*) &output_matrix[ offsetOutput ];
359 pt_char_output[0] = pt_char_input[0]; // bits 31 downto 24 of the float
350 pt_char_output[0] = pt_char_input[0]; // bits 31 downto 24 of the float
360 pt_char_output[1] = pt_char_input[1]; // bits 23 downto 16 of the float
351 pt_char_output[1] = pt_char_input[1]; // bits 23 downto 16 of the float
361 }
352 }
362 }
353 }
363 }
354 }
364
355
365 void ASM_compress_reorganize_and_divide_mask(float *averaged_spec_mat, float *compressed_spec_mat,
356 void ASM_compress_reorganize_and_divide_mask(float *averaged_spec_mat, float *compressed_spec_mat,
366 float divider,
357 float divider,
367 unsigned char nbBinsCompressedMatrix, unsigned char nbBinsToAverage , unsigned char ASMIndexStart, unsigned char channel);
358 unsigned char nbBinsCompressedMatrix, unsigned char nbBinsToAverage , unsigned char ASMIndexStart, unsigned char channel);
368
359
369 int getFBinMask(int k, unsigned char channel);
360 int getFBinMask(int k, unsigned char channel);
370
361
371 void init_kcoeff_sbm_from_kcoeff_norm( float *input_kcoeff, float *output_kcoeff, unsigned char nb_bins_norm);
362 void init_kcoeff_sbm_from_kcoeff_norm( float *input_kcoeff, float *output_kcoeff, unsigned char nb_bins_norm);
372
363
373 #endif // FSW_PROCESSING_H_INCLUDED
364 #endif // FSW_PROCESSING_H_INCLUDED
@@ -1,124 +1,114
1 #ifndef TC_LOAD_DUMP_PARAMETERS_H
1 #ifndef TC_LOAD_DUMP_PARAMETERS_H
2 #define TC_LOAD_DUMP_PARAMETERS_H
2 #define TC_LOAD_DUMP_PARAMETERS_H
3
3
4 #include <rtems.h>
4 #include <rtems.h>
5 #include <stdio.h>
5 #include <stdio.h>
6
6
7 #include "fsw_params.h"
7 #include "fsw_params.h"
8 #include "wf_handler.h"
8 #include "wf_handler.h"
9 #include "tm_lfr_tc_exe.h"
9 #include "tm_lfr_tc_exe.h"