##// END OF EJS Templates
Added several headers
paul -
r3:da5613aff444 default
parent child
Show More
@@ -0,0 +1,37
1 #ifndef TM_BYTE_POSITIONS_H
2 #define TM_BYTE_POSITIONS_H
3
4 // SEQUENCE_CNT
5 #define PACKET_POS_SEQUENCE_CNT 6 // 4 + 2
6
7 // TC_LFR_LOAD_COMMON_PAR
8
9 // TC_LFR_LOAD_NORMAL_PAR
10 #define DATAFIELD_POS_SY_LFR_N_SWF_L 0
11 #define DATAFIELD_POS_SY_LFR_N_SWF_P 2
12 #define DATAFIELD_POS_SY_LFR_N_ASM_P 4
13 #define DATAFIELD_POS_SY_LFR_N_BP_P0 6
14 #define DATAFIELD_POS_SY_LFR_N_BP_P1 7
15 #define DATAFIELD_POS_SY_LFR_N_CWF_LONG_F3 8
16
17 // TC_LFR_LOAD_BURST_PAR
18 #define DATAFIELD_POS_SY_LFR_B_BP_P0 0
19 #define DATAFIELD_POS_SY_LFR_B_BP_P1 1
20
21 // TC_LFR_LOAD_SBM1_PAR
22 #define DATAFIELD_POS_SY_LFR_S1_BP_P0 0
23 #define DATAFIELD_POS_SY_LFR_S1_BP_P1 1
24
25 // TC_LFR_LOAD_SBM2_PAR
26 #define DATAFIELD_POS_SY_LFR_S2_BP_P0 0
27 #define DATAFIELD_POS_SY_LFR_S2_BP_P1 1
28
29 // TC_LFR_UPDATE_INFO
30 #define BYTE_POS_UPDATE_INFO_PARAMETERS_SET5 34
31 #define BYTE_POS_UPDATE_INFO_PARAMETERS_SET6 35
32
33 // TC_LFR_ENTER_MODE
34 #define BYTE_POS_CP_MODE_LFR_SET 11
35 #define BYTE_POS_CP_LFR_ENTER_MODE_TIME 12
36
37 #endif // TM_BYTE_POSITIONS_H
@@ -0,0 +1,73
1 #ifndef FSW_PARAMS_PROCESSING_H
2 #define FSW_PARAMS_PROCESSING_H
3
4 #define NB_BINS_PER_SM 128
5 #define NB_VALUES_PER_SM 25
6 #define TOTAL_SIZE_SM 3200 // 25 * 128 = 0xC80
7 #define TOTAL_SIZE_NORM_BP1_F0 99 // 11 * 9 = 99
8 #define TOTAL_SIZE_NORM_BP1_F1 117 // 13 * 9 = 117
9 #define TOTAL_SIZE_NORM_BP1_F2 108 // 12 * 9 = 108
10 #define TOTAL_SIZE_SBM1_BP1_F0 198 // 22 * 9 = 198
11 //
12 #define NB_RING_NODES_SM_F0 12 // AT LEAST 8 due to the way the averaging is done
13 #define NB_RING_NODES_ASM_BURST_SBM_F0 10 // AT LEAST 3
14 #define NB_RING_NODES_ASM_NORM_F0 10 // AT LEAST 3
15 #define NB_RING_NODES_ASM_F0 3 // AT LEAST 3
16 #define NB_RING_NODES_SM_F1 12 // AT LEAST 8 due to the way the averaging is done
17 #define NB_RING_NODES_ASM_BURST_SBM_F1 5 // AT LEAST 3
18 #define NB_RING_NODES_ASM_NORM_F1 5 // AT LEAST 3
19 #define NB_RING_NODES_ASM_F1 3 // AT LEAST 3
20 #define NB_RING_NODES_SM_F2 3 // AT LEAST 3
21 #define NB_RING_NODES_ASM_BURST_SBM_F2 3 // AT LEAST 3
22 #define NB_RING_NODES_ASM_NORM_F2 3 // AT LEAST 3
23 #define NB_RING_NODES_ASM_F2 3 // AT LEAST 3
24 //
25 #define NB_BINS_PER_ASM_F0 88
26 #define NB_BINS_PER_PKT_ASM_F0 44
27 #define TOTAL_SIZE_ASM_F0_IN_BYTES 4400 // 25 * 88 * 2
28 #define ASM_F0_INDICE_START 17 // 88 bins
29 #define ASM_F0_INDICE_STOP 104 // 2 packets of 44 bins
30 //
31 #define NB_BINS_PER_ASM_F1 104
32 #define NB_BINS_PER_PKT_ASM_F1 52
33 #define TOTAL_SIZE_ASM_F1_IN_BYTES 5200 // 25 * 104 * 2
34 #define ASM_F1_INDICE_START 6 // 104 bins
35 #define ASM_F1_INDICE_STOP 109 // 2 packets of 52 bins
36 //
37 #define NB_BINS_PER_ASM_F2 96
38 #define NB_BINS_PER_PKT_ASM_F2 48
39 #define TOTAL_SIZE_ASM_F2_IN_BYTES 4800 // 25 * 96 * 2
40 #define ASM_F2_INDICE_START 7 // 96 bins
41 #define ASM_F2_INDICE_STOP 102 // 2 packets of 48 bins
42 //
43 #define NB_BINS_COMPRESSED_SM_F0 11
44 #define NB_BINS_COMPRESSED_SM_F1 13
45 #define NB_BINS_COMPRESSED_SM_F2 12
46 #define NB_BINS_COMPRESSED_SM_SBM_F0 22
47 #define NB_BINS_COMPRESSED_SM_SBM_F1 26
48 #define NB_BINS_COMPRESSED_SM_SBM_F2 24
49 //
50 #define NB_BYTES_PER_BP1 9
51 //
52 #define NB_BINS_TO_AVERAGE_ASM_F0 8
53 #define NB_BINS_TO_AVERAGE_ASM_F1 8
54 #define NB_BINS_TO_AVERAGE_ASM_F2 8
55 #define NB_BINS_TO_AVERAGE_ASM_SBM_F0 4
56 #define NB_BINS_TO_AVERAGE_ASM_SBM_F1 4
57 #define NB_BINS_TO_AVERAGE_ASM_SBM_F2 4
58 //
59 #define TOTAL_SIZE_COMPRESSED_ASM_NORM_F0 275 // 11 * 25 WORDS
60 #define TOTAL_SIZE_COMPRESSED_ASM_NORM_F1 325 // 13 * 25 WORDS
61 #define TOTAL_SIZE_COMPRESSED_ASM_NORM_F2 300 // 12 * 25 WORDS
62 #define TOTAL_SIZE_COMPRESSED_ASM_SBM_F0 550 // 22 * 25 WORDS
63 #define TOTAL_SIZE_COMPRESSED_ASM_SBM_F1 650 // 26 * 25 WORDS
64 #define TOTAL_SIZE_COMPRESSED_ASM_SBM_F2 600 // 24 * 25 WORDS
65 #define TOTAL_SIZE_BP1_NORM_F0 99 // 9 * 11 UNSIGNED CHAR
66 #define TOTAL_SIZE_BP1_SBM_F0 198 // 9 * 22 UNSIGNED CHAR
67 // GENERAL
68 #define NB_SM_BEFORE_AVF0 8 // must be 8 due to the SM_average() function
69 #define NB_SM_BEFORE_AVF1 8 // must be 8 due to the SM_average() function
70 #define NB_SM_BEFORE_AVF2 1 // must be 1 due to the SM_average_f2() function
71
72 #endif // FSW_PARAMS_PROCESSING_H
73
@@ -0,0 +1,23
1 #ifndef TM_BYTE_POSITIONS_H
2 #define TM_BYTE_POSITIONS_H
3
4 #define BYTE_POS_CP_LFR_MODE 11
5
6 // TC_LFR_LOAD_COMMON_PAR
7
8 // TC_LFR_LOAD_NORMAL_PAR
9 #define BYTE_POS_SY_LFR_N_SWF_L 0
10 #define BYTE_POS_SY_LFR_N_SWF_P 2
11 #define BYTE_POS_SY_LFR_N_ASM_P 4
12 #define BYTE_POS_SY_LFR_N_BP_P0 6
13 #define BYTE_POS_SY_LFR_N_BP_P1 7
14 #define BYTE_POS_SY_LFR_N_CWF_LONG_F3 8
15
16 // TC_LFR_LOAD_BURST_PAR
17
18 // TC_LFR_LOAD_SBM1_PAR
19
20 // TC_LFR_LOAD_SBM2_PAR
21
22
23 #endif // TM_BYTE_POSITIONS_H
@@ -1,260 +1,259
1 #ifndef FSW_PARAMS_H_INCLUDED
1 #ifndef FSW_PARAMS_H_INCLUDED
2 #define FSW_PARAMS_H_INCLUDED
2 #define FSW_PARAMS_H_INCLUDED
3
3
4 #include "grlib_regs.h"
5 #include "fsw_params_processing.h"
4 #include "fsw_params_processing.h"
6 #include "fsw_params_nb_bytes.h"
5 #include "fsw_params_nb_bytes.h"
7 #include "tm_byte_positions.h"
6 #include "tm_byte_positions.h"
8 #include "ccsds_types.h"
7 #include "ccsds_types.h"
9
8
10 #define GRSPW_DEVICE_NAME "/dev/grspw0"
9 #define GRSPW_DEVICE_NAME "/dev/grspw0"
11 #define UART_DEVICE_NAME "/dev/console"
10 #define UART_DEVICE_NAME "/dev/console"
12
11
13 typedef struct ring_node
12 typedef struct ring_node
14 {
13 {
15 struct ring_node *previous;
14 struct ring_node *previous;
16 struct ring_node *next;
15 struct ring_node *next;
17 unsigned int sid;
16 unsigned int sid;
18 unsigned int coarseTime;
17 unsigned int coarseTime;
19 unsigned int fineTime;
18 unsigned int fineTime;
20 int buffer_address;
19 int buffer_address;
21 unsigned int status;
20 unsigned int status;
22 } ring_node;
21 } ring_node;
23
22
24 //************************
23 //************************
25 // flight software version
24 // flight software version
26 // this parameters is handled by the Qt project options
25 // this parameters is handled by the Qt project options
27
26
28 #define NB_PACKETS_PER_GROUP_OF_CWF 8 // 8 packets containing 336 blk
27 #define NB_PACKETS_PER_GROUP_OF_CWF 8 // 8 packets containing 336 blk
29 #define NB_PACKETS_PER_GROUP_OF_CWF_LIGHT 4 // 4 packets containing 672 blk
28 #define NB_PACKETS_PER_GROUP_OF_CWF_LIGHT 4 // 4 packets containing 672 blk
30 #define NB_SAMPLES_PER_SNAPSHOT 2688 // 336 * 8 = 672 * 4 = 2688
29 #define NB_SAMPLES_PER_SNAPSHOT 2688 // 336 * 8 = 672 * 4 = 2688
31 #define TIME_OFFSET 2
30 #define TIME_OFFSET 2
32 #define TIME_OFFSET_IN_BYTES 8
31 #define TIME_OFFSET_IN_BYTES 8
33 //#define WAVEFORM_EXTENDED_HEADER_OFFSET 22
32 //#define WAVEFORM_EXTENDED_HEADER_OFFSET 22
34 #define NB_BYTES_SWF_BLK (2 * 6)
33 #define NB_BYTES_SWF_BLK (2 * 6)
35 #define NB_WORDS_SWF_BLK 3
34 #define NB_WORDS_SWF_BLK 3
36 #define NB_BYTES_CWF3_LIGHT_BLK 6
35 #define NB_BYTES_CWF3_LIGHT_BLK 6
37 //#define WFRM_INDEX_OF_LAST_PACKET 6 // waveforms are transmitted in groups of 2048 blocks, 6 packets of 340 and 1 of 8
36 //#define WFRM_INDEX_OF_LAST_PACKET 6 // waveforms are transmitted in groups of 2048 blocks, 6 packets of 340 and 1 of 8
38 #define NB_RING_NODES_F0 3 // AT LEAST 3
37 #define NB_RING_NODES_F0 3 // AT LEAST 3
39 #define NB_RING_NODES_F1 5 // AT LEAST 3
38 #define NB_RING_NODES_F1 5 // AT LEAST 3
40 #define NB_RING_NODES_F2 5 // AT LEAST 3
39 #define NB_RING_NODES_F2 5 // AT LEAST 3
41 #define NB_RING_NODES_F3 3 // AT LEAST 3
40 #define NB_RING_NODES_F3 3 // AT LEAST 3
42
41
43 //**********
42 //**********
44 // LFR MODES
43 // LFR MODES
45 #define LFR_MODE_STANDBY 0
44 #define LFR_MODE_STANDBY 0
46 #define LFR_MODE_NORMAL 1
45 #define LFR_MODE_NORMAL 1
47 #define LFR_MODE_BURST 2
46 #define LFR_MODE_BURST 2
48 #define LFR_MODE_SBM1 3
47 #define LFR_MODE_SBM1 3
49 #define LFR_MODE_SBM2 4
48 #define LFR_MODE_SBM2 4
50
49
51 #define TDS_MODE_LFM 5
50 #define TDS_MODE_LFM 5
52 #define TDS_MODE_STANDBY 0
51 #define TDS_MODE_STANDBY 0
53 #define TDS_MODE_NORMAL 1
52 #define TDS_MODE_NORMAL 1
54 #define TDS_MODE_BURST 2
53 #define TDS_MODE_BURST 2
55 #define TDS_MODE_SBM1 3
54 #define TDS_MODE_SBM1 3
56 #define TDS_MODE_SBM2 4
55 #define TDS_MODE_SBM2 4
57
56
58 #define THR_MODE_STANDBY 0
57 #define THR_MODE_STANDBY 0
59 #define THR_MODE_NORMAL 1
58 #define THR_MODE_NORMAL 1
60 #define THR_MODE_BURST 2
59 #define THR_MODE_BURST 2
61
60
62 #define RTEMS_EVENT_MODE_STANDBY RTEMS_EVENT_0
61 #define RTEMS_EVENT_MODE_STANDBY RTEMS_EVENT_0
63 #define RTEMS_EVENT_MODE_NORMAL RTEMS_EVENT_1
62 #define RTEMS_EVENT_MODE_NORMAL RTEMS_EVENT_1
64 #define RTEMS_EVENT_MODE_BURST RTEMS_EVENT_2
63 #define RTEMS_EVENT_MODE_BURST RTEMS_EVENT_2
65 #define RTEMS_EVENT_MODE_SBM1 RTEMS_EVENT_3
64 #define RTEMS_EVENT_MODE_SBM1 RTEMS_EVENT_3
66 #define RTEMS_EVENT_MODE_SBM2 RTEMS_EVENT_4
65 #define RTEMS_EVENT_MODE_SBM2 RTEMS_EVENT_4
67 #define RTEMS_EVENT_MODE_SBM2_WFRM RTEMS_EVENT_5
66 #define RTEMS_EVENT_MODE_SBM2_WFRM RTEMS_EVENT_5
68 #define RTEMS_EVENT_NORM_BP1_F0 RTEMS_EVENT_6
67 #define RTEMS_EVENT_NORM_BP1_F0 RTEMS_EVENT_6
69 #define RTEMS_EVENT_NORM_BP2_F0 RTEMS_EVENT_7
68 #define RTEMS_EVENT_NORM_BP2_F0 RTEMS_EVENT_7
70 #define RTEMS_EVENT_NORM_ASM_F0 RTEMS_EVENT_8 // ASM only in NORM mode
69 #define RTEMS_EVENT_NORM_ASM_F0 RTEMS_EVENT_8 // ASM only in NORM mode
71 #define RTEMS_EVENT_NORM_BP1_F1 RTEMS_EVENT_9
70 #define RTEMS_EVENT_NORM_BP1_F1 RTEMS_EVENT_9
72 #define RTEMS_EVENT_NORM_BP2_F1 RTEMS_EVENT_10
71 #define RTEMS_EVENT_NORM_BP2_F1 RTEMS_EVENT_10
73 #define RTEMS_EVENT_NORM_ASM_F1 RTEMS_EVENT_11 // ASM only in NORM mode
72 #define RTEMS_EVENT_NORM_ASM_F1 RTEMS_EVENT_11 // ASM only in NORM mode
74 #define RTEMS_EVENT_NORM_BP1_F2 RTEMS_EVENT_12
73 #define RTEMS_EVENT_NORM_BP1_F2 RTEMS_EVENT_12
75 #define RTEMS_EVENT_NORM_BP2_F2 RTEMS_EVENT_13
74 #define RTEMS_EVENT_NORM_BP2_F2 RTEMS_EVENT_13
76 #define RTEMS_EVENT_NORM_ASM_F2 RTEMS_EVENT_14 // ASM only in NORM mode
75 #define RTEMS_EVENT_NORM_ASM_F2 RTEMS_EVENT_14 // ASM only in NORM mode
77 #define RTEMS_EVENT_SBM_BP1_F0 RTEMS_EVENT_15
76 #define RTEMS_EVENT_SBM_BP1_F0 RTEMS_EVENT_15
78 #define RTEMS_EVENT_SBM_BP2_F0 RTEMS_EVENT_16
77 #define RTEMS_EVENT_SBM_BP2_F0 RTEMS_EVENT_16
79 #define RTEMS_EVENT_SBM_BP1_F1 RTEMS_EVENT_17
78 #define RTEMS_EVENT_SBM_BP1_F1 RTEMS_EVENT_17
80 #define RTEMS_EVENT_SBM_BP2_F1 RTEMS_EVENT_18
79 #define RTEMS_EVENT_SBM_BP2_F1 RTEMS_EVENT_18
81 #define RTEMS_EVENT_BURST_BP1_F0 RTEMS_EVENT_19
80 #define RTEMS_EVENT_BURST_BP1_F0 RTEMS_EVENT_19
82 #define RTEMS_EVENT_BURST_BP2_F0 RTEMS_EVENT_20
81 #define RTEMS_EVENT_BURST_BP2_F0 RTEMS_EVENT_20
83 #define RTEMS_EVENT_BURST_BP1_F1 RTEMS_EVENT_21
82 #define RTEMS_EVENT_BURST_BP1_F1 RTEMS_EVENT_21
84 #define RTEMS_EVENT_BURST_BP2_F1 RTEMS_EVENT_22
83 #define RTEMS_EVENT_BURST_BP2_F1 RTEMS_EVENT_22
85
84
86 //****************************
85 //****************************
87 // LFR DEFAULT MODE PARAMETERS
86 // LFR DEFAULT MODE PARAMETERS
88 // COMMON
87 // COMMON
89 #define DEFAULT_SY_LFR_COMMON0 0x00
88 #define DEFAULT_SY_LFR_COMMON0 0x00
90 #define DEFAULT_SY_LFR_COMMON1 0x10 // default value 0 0 0 1 0 0 0 0
89 #define DEFAULT_SY_LFR_COMMON1 0x10 // default value 0 0 0 1 0 0 0 0
91 // NORM
90 // NORM
92 #define DFLT_SY_LFR_N_SWF_L 2048 // nb sample
91 #define DFLT_SY_LFR_N_SWF_L 2048 // nb sample
93 #define DFLT_SY_LFR_N_SWF_P 300 // sec
92 #define DFLT_SY_LFR_N_SWF_P 300 // sec
94 #define DFLT_SY_LFR_N_ASM_P 3600 // sec
93 #define DFLT_SY_LFR_N_ASM_P 3600 // sec
95 #define DFLT_SY_LFR_N_BP_P0 4 // sec
94 #define DFLT_SY_LFR_N_BP_P0 4 // sec
96 #define DFLT_SY_LFR_N_BP_P1 20 // sec
95 #define DFLT_SY_LFR_N_BP_P1 20 // sec
97 #define DFLT_SY_LFR_N_CWF_LONG_F3 0 // 0 => production of light continuous waveforms at f3
96 #define DFLT_SY_LFR_N_CWF_LONG_F3 0 // 0 => production of light continuous waveforms at f3
98 #define MIN_DELTA_SNAPSHOT 16 // sec
97 #define MIN_DELTA_SNAPSHOT 16 // sec
99 // BURST
98 // BURST
100 #define DEFAULT_SY_LFR_B_BP_P0 1 // sec
99 #define DEFAULT_SY_LFR_B_BP_P0 1 // sec
101 #define DEFAULT_SY_LFR_B_BP_P1 5 // sec
100 #define DEFAULT_SY_LFR_B_BP_P1 5 // sec
102 // SBM1
101 // SBM1
103 #define DEFAULT_SY_LFR_S1_BP_P0 1 // sec
102 #define DEFAULT_SY_LFR_S1_BP_P0 1 // sec
104 #define DEFAULT_SY_LFR_S1_BP_P1 1 // sec
103 #define DEFAULT_SY_LFR_S1_BP_P1 1 // sec
105 // SBM2
104 // SBM2
106 #define DEFAULT_SY_LFR_S2_BP_P0 1 // sec
105 #define DEFAULT_SY_LFR_S2_BP_P0 1 // sec
107 #define DEFAULT_SY_LFR_S2_BP_P1 5 // sec
106 #define DEFAULT_SY_LFR_S2_BP_P1 5 // sec
108 // ADDITIONAL PARAMETERS
107 // ADDITIONAL PARAMETERS
109 #define TIME_BETWEEN_TWO_SWF_PACKETS 30 // nb x 10 ms => 300 ms
108 #define TIME_BETWEEN_TWO_SWF_PACKETS 30 // nb x 10 ms => 300 ms
110 #define TIME_BETWEEN_TWO_CWF3_PACKETS 1000 // nb x 10 ms => 10 s
109 #define TIME_BETWEEN_TWO_CWF3_PACKETS 1000 // nb x 10 ms => 10 s
111 // STATUS WORD
110 // STATUS WORD
112 #define DEFAULT_STATUS_WORD_BYTE0 0x0d // [0000] [1] [101] mode 4 bits / SPW enabled 1 bit / state is run 3 bits
111 #define DEFAULT_STATUS_WORD_BYTE0 0x0d // [0000] [1] [101] mode 4 bits / SPW enabled 1 bit / state is run 3 bits
113 #define DEFAULT_STATUS_WORD_BYTE1 0x00
112 #define DEFAULT_STATUS_WORD_BYTE1 0x00
114 //
113 //
115 #define SY_LFR_DPU_CONNECT_TIMEOUT 100 // 100 * 10 ms = 1 s
114 #define SY_LFR_DPU_CONNECT_TIMEOUT 100 // 100 * 10 ms = 1 s
116 #define SY_LFR_DPU_CONNECT_ATTEMPT 3
115 #define SY_LFR_DPU_CONNECT_ATTEMPT 3
117 //****************************
116 //****************************
118
117
119 //*****************************
118 //*****************************
120 // APB REGISTERS BASE ADDRESSES
119 // APB REGISTERS BASE ADDRESSES
121 #define REGS_ADDR_APBUART 0x80000100
120 #define REGS_ADDR_APBUART 0x80000100
122 #define REGS_ADDR_GPTIMER 0x80000300
121 #define REGS_ADDR_GPTIMER 0x80000300
123 #define REGS_ADDR_GRSPW 0x80000500
122 #define REGS_ADDR_GRSPW 0x80000500
124 #define REGS_ADDR_TIME_MANAGEMENT 0x80000600
123 #define REGS_ADDR_TIME_MANAGEMENT 0x80000600
125 #define REGS_ADDR_GRGPIO 0x80000b00
124 #define REGS_ADDR_GRGPIO 0x80000b00
126
125
127 #define REGS_ADDR_SPECTRAL_MATRIX 0x80000f00
126 #define REGS_ADDR_SPECTRAL_MATRIX 0x80000f00
128 //#define REGS_ADDR_WAVEFORM_PICKER 0x80000f50
127 //#define REGS_ADDR_WAVEFORM_PICKER 0x80000f50
129 #define REGS_ADDR_WAVEFORM_PICKER 0x80000f54 // PDB >= 0.1.28
128 #define REGS_ADDR_WAVEFORM_PICKER 0x80000f54 // PDB >= 0.1.28
130 #define REGS_ADDR_VHDL_VERSION 0x80000ff0
129 #define REGS_ADDR_VHDL_VERSION 0x80000ff0
131
130
132 #define APBUART_CTRL_REG_MASK_DB 0xfffff7ff
131 #define APBUART_CTRL_REG_MASK_DB 0xfffff7ff
133 #define APBUART_CTRL_REG_MASK_TE 0x00000002
132 #define APBUART_CTRL_REG_MASK_TE 0x00000002
134 // scaler value = system_clock_frequency / ( baud_rate * 8 ) - 1
133 // scaler value = system_clock_frequency / ( baud_rate * 8 ) - 1
135 #define APBUART_SCALER_RELOAD_VALUE 0x00000050 // 25 MHz => about 38400
134 #define APBUART_SCALER_RELOAD_VALUE 0x00000050 // 25 MHz => about 38400
136
135
137 //**********
136 //**********
138 // IRQ LINES
137 // IRQ LINES
139 #define IRQ_SM_SIMULATOR 9
138 #define IRQ_SM_SIMULATOR 9
140 #define IRQ_SPARC_SM_SIMULATOR 0x19 // see sparcv8.pdf p.76 for interrupt levels
139 #define IRQ_SPARC_SM_SIMULATOR 0x19 // see sparcv8.pdf p.76 for interrupt levels
141 #define IRQ_WAVEFORM_PICKER 14
140 #define IRQ_WAVEFORM_PICKER 14
142 #define IRQ_SPARC_WAVEFORM_PICKER 0x1e // see sparcv8.pdf p.76 for interrupt levels
141 #define IRQ_SPARC_WAVEFORM_PICKER 0x1e // see sparcv8.pdf p.76 for interrupt levels
143 #define IRQ_SPECTRAL_MATRIX 6
142 #define IRQ_SPECTRAL_MATRIX 6
144 #define IRQ_SPARC_SPECTRAL_MATRIX 0x16 // see sparcv8.pdf p.76 for interrupt levels
143 #define IRQ_SPARC_SPECTRAL_MATRIX 0x16 // see sparcv8.pdf p.76 for interrupt levels
145
144
146 //*****
145 //*****
147 // TIME
146 // TIME
148 #define CLKDIV_SM_SIMULATOR (10416 - 1) // 10 ms => nominal is 1/96 = 0.010416667, 10417 - 1 = 10416
147 #define CLKDIV_SM_SIMULATOR (10416 - 1) // 10 ms => nominal is 1/96 = 0.010416667, 10417 - 1 = 10416
149 #define TIMER_SM_SIMULATOR 1
148 #define TIMER_SM_SIMULATOR 1
150 #define HK_PERIOD 100 // 100 * 10ms => 1s
149 #define HK_PERIOD 100 // 100 * 10ms => 1s
151 #define SY_LFR_TIME_SYN_TIMEOUT_in_ms 2000
150 #define SY_LFR_TIME_SYN_TIMEOUT_in_ms 2000
152 #define SY_LFR_TIME_SYN_TIMEOUT_in_ticks 200 // 200 * 10 ms = 2 s
151 #define SY_LFR_TIME_SYN_TIMEOUT_in_ticks 200 // 200 * 10 ms = 2 s
153
152
154 //**********
153 //**********
155 // LPP CODES
154 // LPP CODES
156 #define LFR_SUCCESSFUL 0
155 #define LFR_SUCCESSFUL 0
157 #define LFR_DEFAULT 1
156 #define LFR_DEFAULT 1
158 #define LFR_EXE_ERROR 2
157 #define LFR_EXE_ERROR 2
159
158
160 //******
159 //******
161 // RTEMS
160 // RTEMS
162 #define TASKID_RECV 1
161 #define TASKID_RECV 1
163 #define TASKID_ACTN 2
162 #define TASKID_ACTN 2
164 #define TASKID_SPIQ 3
163 #define TASKID_SPIQ 3
165 #define TASKID_STAT 4
164 #define TASKID_STAT 4
166 #define TASKID_AVF0 5
165 #define TASKID_AVF0 5
167 #define TASKID_SWBD 6
166 #define TASKID_SWBD 6
168 #define TASKID_WFRM 7
167 #define TASKID_WFRM 7
169 #define TASKID_DUMB 8
168 #define TASKID_DUMB 8
170 #define TASKID_HOUS 9
169 #define TASKID_HOUS 9
171 #define TASKID_PRC0 10
170 #define TASKID_PRC0 10
172 #define TASKID_CWF3 11
171 #define TASKID_CWF3 11
173 #define TASKID_CWF2 12
172 #define TASKID_CWF2 12
174 #define TASKID_CWF1 13
173 #define TASKID_CWF1 13
175 #define TASKID_SEND 14
174 #define TASKID_SEND 14
176 #define TASKID_WTDG 15
175 #define TASKID_WTDG 15
177 #define TASKID_AVF1 16
176 #define TASKID_AVF1 16
178 #define TASKID_PRC1 17
177 #define TASKID_PRC1 17
179 #define TASKID_AVF2 18
178 #define TASKID_AVF2 18
180 #define TASKID_PRC2 19
179 #define TASKID_PRC2 19
181
180
182 #define TASK_PRIORITY_SPIQ 5
181 #define TASK_PRIORITY_SPIQ 5
183 #define TASK_PRIORITY_WTDG 20
182 #define TASK_PRIORITY_WTDG 20
184 #define TASK_PRIORITY_HOUS 30
183 #define TASK_PRIORITY_HOUS 30
185 #define TASK_PRIORITY_CWF1 35 // CWF1 and CWF2 are never running together
184 #define TASK_PRIORITY_CWF1 35 // CWF1 and CWF2 are never running together
186 #define TASK_PRIORITY_CWF2 35 //
185 #define TASK_PRIORITY_CWF2 35 //
187 #define TASK_PRIORITY_SWBD 37 // SWBD has a lower priority than WFRM, this is to extract the snapshot before sending it
186 #define TASK_PRIORITY_SWBD 37 // SWBD has a lower priority than WFRM, this is to extract the snapshot before sending it
188 #define TASK_PRIORITY_WFRM 40
187 #define TASK_PRIORITY_WFRM 40
189 #define TASK_PRIORITY_CWF3 40 // there is a printf in this function, be careful with its priority wrt CWF1
188 #define TASK_PRIORITY_CWF3 40 // there is a printf in this function, be careful with its priority wrt CWF1
190 #define TASK_PRIORITY_SEND 45
189 #define TASK_PRIORITY_SEND 45
191 #define TASK_PRIORITY_RECV 50
190 #define TASK_PRIORITY_RECV 50
192 #define TASK_PRIORITY_ACTN 50
191 #define TASK_PRIORITY_ACTN 50
193 #define TASK_PRIORITY_AVF0 60
192 #define TASK_PRIORITY_AVF0 60
194 #define TASK_PRIORITY_AVF1 70
193 #define TASK_PRIORITY_AVF1 70
195 #define TASK_PRIORITY_PRC0 100
194 #define TASK_PRIORITY_PRC0 100
196 #define TASK_PRIORITY_PRC1 100
195 #define TASK_PRIORITY_PRC1 100
197 #define TASK_PRIORITY_AVF2 110
196 #define TASK_PRIORITY_AVF2 110
198 #define TASK_PRIORITY_PRC2 110
197 #define TASK_PRIORITY_PRC2 110
199 #define TASK_PRIORITY_STAT 200
198 #define TASK_PRIORITY_STAT 200
200 #define TASK_PRIORITY_DUMB 200
199 #define TASK_PRIORITY_DUMB 200
201
200
202 #define MSG_QUEUE_COUNT_RECV 10
201 #define MSG_QUEUE_COUNT_RECV 10
203 #define MSG_QUEUE_COUNT_SEND 50
202 #define MSG_QUEUE_COUNT_SEND 50
204 #define MSG_QUEUE_COUNT_PRC0 10
203 #define MSG_QUEUE_COUNT_PRC0 10
205 #define MSG_QUEUE_COUNT_PRC1 10
204 #define MSG_QUEUE_COUNT_PRC1 10
206 #define MSG_QUEUE_COUNT_PRC2 5
205 #define MSG_QUEUE_COUNT_PRC2 5
207 #define MSG_QUEUE_SIZE_SEND 810 // 806 + 4 => TM_LFR_SCIENCE_BURST_BP2_F1
206 #define MSG_QUEUE_SIZE_SEND 810 // 806 + 4 => TM_LFR_SCIENCE_BURST_BP2_F1
208 #define ACTION_MSG_SPW_IOCTL_SEND_SIZE 24 // hlen *hdr dlen *data sent options
207 #define ACTION_MSG_SPW_IOCTL_SEND_SIZE 24 // hlen *hdr dlen *data sent options
209 #define MSG_QUEUE_SIZE_PRC0 20 // two pointers and one rtems_event + 2 integers
208 #define MSG_QUEUE_SIZE_PRC0 20 // two pointers and one rtems_event + 2 integers
210 #define MSG_QUEUE_SIZE_PRC1 20 // two pointers and one rtems_event + 2 integers
209 #define MSG_QUEUE_SIZE_PRC1 20 // two pointers and one rtems_event + 2 integers
211 #define MSG_QUEUE_SIZE_PRC2 20 // two pointers and one rtems_event + 2 integers
210 #define MSG_QUEUE_SIZE_PRC2 20 // two pointers and one rtems_event + 2 integers
212
211
213 #define QUEUE_RECV 0
212 #define QUEUE_RECV 0
214 #define QUEUE_SEND 1
213 #define QUEUE_SEND 1
215 #define QUEUE_PRC0 2
214 #define QUEUE_PRC0 2
216 #define QUEUE_PRC1 3
215 #define QUEUE_PRC1 3
217 #define QUEUE_PRC2 4
216 #define QUEUE_PRC2 4
218
217
219 //*******
218 //*******
220 // MACROS
219 // MACROS
221 #ifdef PRINT_MESSAGES_ON_CONSOLE
220 #ifdef PRINT_MESSAGES_ON_CONSOLE
222 #define PRINTF(x) printf(x);
221 #define PRINTF(x) printf(x);
223 #define PRINTF1(x,y) printf(x,y);
222 #define PRINTF1(x,y) printf(x,y);
224 #define PRINTF2(x,y,z) printf(x,y,z);
223 #define PRINTF2(x,y,z) printf(x,y,z);
225 #else
224 #else
226 #define PRINTF(x) ;
225 #define PRINTF(x) ;
227 #define PRINTF1(x,y) ;
226 #define PRINTF1(x,y) ;
228 #define PRINTF2(x,y,z) ;
227 #define PRINTF2(x,y,z) ;
229 #endif
228 #endif
230
229
231 #ifdef BOOT_MESSAGES
230 #ifdef BOOT_MESSAGES
232 #define BOOT_PRINTF(x) printf(x);
231 #define BOOT_PRINTF(x) printf(x);
233 #define BOOT_PRINTF1(x,y) printf(x,y);
232 #define BOOT_PRINTF1(x,y) printf(x,y);
234 #define BOOT_PRINTF2(x,y,z) printf(x,y,z);
233 #define BOOT_PRINTF2(x,y,z) printf(x,y,z);
235 #else
234 #else
236 #define BOOT_PRINTF(x) ;
235 #define BOOT_PRINTF(x) ;
237 #define BOOT_PRINTF1(x,y) ;
236 #define BOOT_PRINTF1(x,y) ;
238 #define BOOT_PRINTF2(x,y,z) ;
237 #define BOOT_PRINTF2(x,y,z) ;
239 #endif
238 #endif
240
239
241 #ifdef DEBUG_MESSAGES
240 #ifdef DEBUG_MESSAGES
242 #define DEBUG_PRINTF(x) printf(x);
241 #define DEBUG_PRINTF(x) printf(x);
243 #define DEBUG_PRINTF1(x,y) printf(x,y);
242 #define DEBUG_PRINTF1(x,y) printf(x,y);
244 #define DEBUG_PRINTF2(x,y,z) printf(x,y,z);
243 #define DEBUG_PRINTF2(x,y,z) printf(x,y,z);
245 #else
244 #else
246 #define DEBUG_PRINTF(x) ;
245 #define DEBUG_PRINTF(x) ;
247 #define DEBUG_PRINTF1(x,y) ;
246 #define DEBUG_PRINTF1(x,y) ;
248 #define DEBUG_PRINTF2(x,y,z) ;
247 #define DEBUG_PRINTF2(x,y,z) ;
249 #endif
248 #endif
250
249
251 #define CPU_USAGE_REPORT_PERIOD 6 // * 10 s = period
250 #define CPU_USAGE_REPORT_PERIOD 6 // * 10 s = period
252
251
253 struct param_local_str{
252 struct param_local_str{
254 unsigned int local_sbm1_nb_cwf_sent;
253 unsigned int local_sbm1_nb_cwf_sent;
255 unsigned int local_sbm1_nb_cwf_max;
254 unsigned int local_sbm1_nb_cwf_max;
256 unsigned int local_sbm2_nb_cwf_sent;
255 unsigned int local_sbm2_nb_cwf_sent;
257 unsigned int local_sbm2_nb_cwf_max;
256 unsigned int local_sbm2_nb_cwf_max;
258 };
257 };
259
258
260 #endif // FSW_PARAMS_H_INCLUDED
259 #endif // FSW_PARAMS_H_INCLUDED
General Comments 0
You need to be logged in to leave comments. Login now