##// END OF EJS Templates
Sync...
Sync Beginning of the BP packets emission implementation NORMAL and SBM1 packets are emitted together when in SBM1

File last commit:

r116:4710a866a7d2 VHDLib206
r116:4710a866a7d2 VHDLib206
Show More
fsw_params.h
229 lines | 7.4 KiB | text/x-c | CLexer
paul
Minor changes in .h inclusion
r45 #ifndef FSW_PARAMS_H_INCLUDED
#define FSW_PARAMS_H_INCLUDED
paul@pc-solar1.lab-lpp.local
Updates of the ICD taken into account...
r18
paul
Header files inclusion reworked...
r40 #include "grlib_regs.h"
paul
TM_LFR_TC_EXE packet sending reworked...
r37 #include "fsw_params_processing.h"
paul
rev 1.0.0.2...
r104 #include "fsw_params_nb_bytes.h"
paul
Header files inclusion reworked...
r40 #include "tm_byte_positions.h"
paul
TM_LFR_TC_EXE packet sending reworked...
r37 #include "ccsds_types.h"
paul
SID corrected in TM_LFR_TC_EXE packets...
r31
paul@pc-solar1.lab-lpp.local
Naming convention changed...
r5 #define GRSPW_DEVICE_NAME "/dev/grspw0"
paul@pc-solar1.lab-lpp.local
Updates of the ICD taken into account...
r18 #define UART_DEVICE_NAME "/dev/console"
paul
Minor changes
r93 typedef struct ring_node
{
struct ring_node *previous;
int buffer_address;
struct ring_node *next;
unsigned int status;
} ring_node;
paul@pc-solar1.lab-lpp.local
Current version with modes NORMAL and SBM1 operational
r21 //************************
// flight software version
// this parameters is handled by the Qt project options
paul
rev 1.0.0.1
r98 #define NB_PACKETS_PER_GROUP_OF_CWF 8 // 8 packets containing 336 blk
#define NB_PACKETS_PER_GROUP_OF_CWF_LIGHT 4 // 4 packets containing 672 blk
#define NB_SAMPLES_PER_SNAPSHOT 2688 // 336 * 8 = 672 * 4 = 2688
paul
First version of the rings for the waveform picker.
r87 #define TIME_OFFSET 2
paul
Minor changes
r93 #define TIME_OFFSET_IN_BYTES 8
paul
First version of the rings for the waveform picker.
r87 #define WAVEFORM_EXTENDED_HEADER_OFFSET 22
#define NB_BYTES_SWF_BLK (2 * 6)
#define NB_WORDS_SWF_BLK 3
#define NB_BYTES_CWF3_LIGHT_BLK 6
#define WFRM_INDEX_OF_LAST_PACKET 6 // waveforms are transmitted in groups of 2048 blocks, 6 packets of 340 and 1 of 8
paul
Minor changes
r93 #define NB_RING_NODES_F0 3 // AT LEAST 3
#define NB_RING_NODES_F1 5 // AT LEAST 3
#define NB_RING_NODES_F2 5 // AT LEAST 3
paul
First version of the rings for the waveform picker.
r87
paul@pc-solar1.lab-lpp.local
Updates of the ICD taken into account...
r18 //**********
// LFR MODES
paul
rev 1.0.0.2...
r104 #define LFR_MODE_STANDBY 0
#define LFR_MODE_NORMAL 1
#define LFR_MODE_BURST 2
#define LFR_MODE_SBM1 3
#define LFR_MODE_SBM2 4
#define TDS_MODE_LFM 5
#define TDS_MODE_STANDBY 0
#define TDS_MODE_NORMAL 1
#define TDS_MODE_BURST 2
#define TDS_MODE_SBM1 3
#define TDS_MODE_SBM2 4
#define THR_MODE_STANDBY 0
paul
the interrupt sub routine related to the waveform picker is now lighter...
r112 #define THR_MODE_NORMAL 1
paul
rev 1.0.0.2...
r104 #define THR_MODE_BURST 2
paul@pc-solar1.lab-lpp.local
Updates of the ICD taken into account...
r18
paul
Sync...
r116 #define RTEMS_EVENT_MODE_STANDBY RTEMS_EVENT_0
#define RTEMS_EVENT_MODE_NORMAL RTEMS_EVENT_1
#define RTEMS_EVENT_MODE_BURST RTEMS_EVENT_2
#define RTEMS_EVENT_MODE_SBM1 RTEMS_EVENT_3
#define RTEMS_EVENT_MODE_SBM2 RTEMS_EVENT_4
#define RTEMS_EVENT_MODE_SBM2_WFRM RTEMS_EVENT_5
#define RTEMS_EVENT_NORM_BP1_F0 RTEMS_EVENT_6
#define RTEMS_EVENT_NORM_BP2_F0 RTEMS_EVENT_7
#define RTEMS_EVENT_NORM_ASM_F0 RTEMS_EVENT_8
#define RTEMS_EVENT_SBM1_BP1_F0 RTEMS_EVENT_9
#define RTEMS_EVENT_SBM1_BP2_F0 RTEMS_EVENT_10
paul@pc-solar1.lab-lpp.local
Current version with modes NORMAL and SBM1 operational
r21
paul@pc-solar1.lab-lpp.local
All modes implemented for the waveforms...
r23 //****************************
// LFR DEFAULT MODE PARAMETERS
paul@pc-solar1.lab-lpp.local
Release 0.7...
r28 // COMMON
#define DEFAULT_SY_LFR_COMMON0 0x00
#define DEFAULT_SY_LFR_COMMON1 0x10 // default value 0 0 0 1 0 0 0 0
paul@pc-solar1.lab-lpp.local
All modes implemented for the waveforms...
r23 // NORM
paul
Ignore doc files...
r46 #define SY_LFR_N_SWF_L 2048 // nb sample
paul
Sync
r97 #define SY_LFR_N_SWF_P 300 // sec
paul
Ignore doc files...
r46 #define SY_LFR_N_ASM_P 3600 // sec
#define SY_LFR_N_BP_P0 4 // sec
#define SY_LFR_N_BP_P1 20 // sec
paul
rev 1.0.0.1
r98 #define SY_LFR_N_CWF_LONG_F3 0 // 0 => production of light continuous waveforms at f3
paul
sy_lfr_n_swf_p implemented...
r32 #define MIN_DELTA_SNAPSHOT 16 // sec
paul@pc-solar1.lab-lpp.local
All modes implemented for the waveforms...
r23 // BURST
#define DEFAULT_SY_LFR_B_BP_P0 1 // sec
#define DEFAULT_SY_LFR_B_BP_P1 5 // sec
// SBM1
#define DEFAULT_SY_LFR_S1_BP_P0 1 // sec
#define DEFAULT_SY_LFR_S1_BP_P1 1 // sec
// SBM2
#define DEFAULT_SY_LFR_S2_BP_P0 1 // sec
#define DEFAULT_SY_LFR_S2_BP_P1 5 // sec
paul
packet emission task added...
r33 // ADDITIONAL PARAMETERS
#define TIME_BETWEEN_TWO_SWF_PACKETS 30 // nb x 10 ms => 300 ms
paul
Ignore doc files...
r46 #define TIME_BETWEEN_TWO_CWF3_PACKETS 1000 // nb x 10 ms => 10 s
// STATUS WORD
#define DEFAULT_STATUS_WORD_BYTE0 0x0d // [0000] [1] [101] mode 4 bits / SPW enabled 1 bit / state is run 3 bits
#define DEFAULT_STATUS_WORD_BYTE1 0x00
paul
packet emission task added...
r33 //
paul
Ignore doc files...
r46 #define SY_LFR_DPU_CONNECT_TIMEOUT 100 // 100 * 10 ms = 1 s
#define SY_LFR_DPU_CONNECT_ATTEMPT 3
paul
packet emission task added...
r33 //****************************
paul@pc-solar1.lab-lpp.local
All modes implemented for the waveforms...
r23
paul@pc-solar1.lab-lpp.local
Updates of the ICD taken into account...
r18 //*****************************
// APB REGISTERS BASE ADDRESSES
paul
rev 1.0.0.1
r98 #define REGS_ADDR_APBUART 0x80000100
#define REGS_ADDR_GPTIMER 0x80000300
#define REGS_ADDR_GRSPW 0x80000500
#define REGS_ADDR_TIME_MANAGEMENT 0x80000600
paul
Corrections:...
r107 #define REGS_ADDR_GRGPIO 0x80000b00
paul
snapshots extraction fully functionnal in SBM1 and SBM2
r106
#define REGS_ADDR_SPECTRAL_MATRIX 0x80000f00
#define REGS_ADDR_WAVEFORM_PICKER 0x80000f40
paul
SID corrected in TM_LFR_TC_EXE packets...
r31
paul
rev 1.0.0.1
r98 #define APBUART_CTRL_REG_MASK_DB 0xfffff7ff
#define APBUART_CTRL_REG_MASK_TE 0x00000002
paul@pc-solar1.lab-lpp.local
commit before release
r25 #define APBUART_SCALER_RELOAD_VALUE 0x00000050 // 25 MHz => about 38400 (0x50)
paul@pc-solar1.lab-lpp.local
Updates of the ICD taken into account...
r18
//**********
paul@pc-solar1.lab-lpp.local
Minor updates to use the time management VHDL module
r12 // IRQ LINES
paul
Sync
r99 #define IRQ_SM_SIMULATOR 9
#define IRQ_SPARC_SM_SIMULATOR 0x19 // see sparcv8.pdf p.76 for interrupt levels
paul@pc-solar1.lab-lpp.local
Updates of the ICD taken into account...
r18 #define IRQ_WAVEFORM_PICKER 14
#define IRQ_SPARC_WAVEFORM_PICKER 0x1e // see sparcv8.pdf p.76 for interrupt levels
paul
SID corrected in TM_LFR_TC_EXE packets...
r31 #define IRQ_SPECTRAL_MATRIX 6
#define IRQ_SPARC_SPECTRAL_MATRIX 0x16 // see sparcv8.pdf p.76 for interrupt levels
paul@pc-solar1.lab-lpp.local
Updates of the ICD taken into account...
r18
//*****
// TIME
paul
SID corrected in TM_LFR_TC_EXE packets...
r31 #define CLKDIV_SM_SIMULATOR (10000 - 1) // 10 ms
paul@pc-solar1.lab-lpp.local
Updates of the ICD taken into account...
r18 #define TIMER_SM_SIMULATOR 1
paul
rev 1.0.0.2...
r104 #define HK_PERIOD 100 // 100 * 10ms => 1s
#define SY_LFR_TIME_SYN_TIMEOUT_in_ms 2000
#define SY_LFR_TIME_SYN_TIMEOUT_in_ticks 200 // 200 * 10 ms = 2 s
paul@pc-solar1.lab-lpp.local
Updates of the ICD taken into account...
r18
paul@pc-solar1.lab-lpp.local
Current version with modes NORMAL and SBM1 operational
r21 //**********
// LPP CODES
paul
Sync
r115 #define LFR_SUCCESSFUL 0
#define LFR_DEFAULT 1
#define LFR_EXE_ERROR 2
paul@pc-solar1.lab-lpp.local
Current version with modes NORMAL and SBM1 operational
r21
paul@pc-solar1.lab-lpp.local
Updates of the ICD taken into account...
r18 //******
// RTEMS
#define TASKID_RECV 1
#define TASKID_ACTN 2
#define TASKID_SPIQ 3
#define TASKID_SMIQ 4
#define TASKID_STAT 5
#define TASKID_AVF0 6
paul
snapshot extraction for the waveform ring is operational...
r105 #define TASKID_SWBD 7
paul@pc-solar1.lab-lpp.local
Updates of the ICD taken into account...
r18 #define TASKID_WFRM 8
#define TASKID_DUMB 9
#define TASKID_HOUS 10
paul
SID corrected in TM_LFR_TC_EXE packets...
r31 #define TASKID_MATR 11
paul
sy_lfr_n_swf_p implemented...
r32 #define TASKID_CWF3 12
paul
packet emission task added...
r33 #define TASKID_CWF2 13
#define TASKID_CWF1 14
#define TASKID_SEND 15
paul
Ignore doc files...
r46 #define TASKID_WTDG 16
paul
packet emission task added...
r33
#define TASK_PRIORITY_SPIQ 5
#define TASK_PRIORITY_SMIQ 10
paul
Ignore doc files...
r46 #define TASK_PRIORITY_WTDG 20
paul
priority modifications...
r50 #define TASK_PRIORITY_HOUS 30
#define TASK_PRIORITY_CWF1 35 // CWF1 and CWF2 are never running together
#define TASK_PRIORITY_CWF2 35 //
paul
snapshots extraction fully functionnal in SBM1 and SBM2
r106 #define TASK_PRIORITY_SWBD 37 // SWBD has a lower priority than WFRM, this is to extract the snapshot before sending it
paul
Commit before working on the ERR 4 due to message queue...
r34 #define TASK_PRIORITY_WFRM 40
paul
priority modifications...
r50 #define TASK_PRIORITY_CWF3 40 // there is a printf in this function, be careful with its priority wrt CWF1
#define TASK_PRIORITY_SEND 45
paul
fsw-0-18...
r49 #define TASK_PRIORITY_RECV 50
#define TASK_PRIORITY_ACTN 50
paul
Commit before working on the ERR 4 due to message queue...
r34 #define TASK_PRIORITY_AVF0 60
#define TASK_PRIORITY_BPF0 60
#define TASK_PRIORITY_MATR 100
#define TASK_PRIORITY_STAT 200
#define TASK_PRIORITY_DUMB 200
paul@pc-solar1.lab-lpp.local
Updates of the ICD taken into account...
r18
paul
Sync...
r116 #define ACTION_MSG_QUEUE_COUNT 10
#define ACTION_MSG_PKTS_COUNT 50
paul
Sync
r115 //#define ACTION_MSG_PKTS_MAX_SIZE (PACKET_LENGTH_HK + CCSDS_TC_TM_PACKET_OFFSET + CCSDS_PROTOCOLE_EXTRA_BYTES)
paul
Sync...
r116 #define ACTION_MSG_PKTS_MAX_SIZE 810 // 806 + 4 => TM_LFR_SCIENCE_BURST_BP2_F1
#define ACTION_MSG_SPW_IOCTL_SEND_SIZE 24 // hlen *hdr dlen *data sent options
paul
Commit before working on the ERR 4 due to message queue...
r34
paul
Minor bug corrected in the tc_acceptance function...
r42 #define QUEUE_RECV 0
#define QUEUE_SEND 1
paul@pc-solar1.lab-lpp.local
Updates of the ICD taken into account...
r18
//*******
// MACROS
paul@pc-solar1.lab-lpp.local
Naming convention changed...
r5 #ifdef PRINT_MESSAGES_ON_CONSOLE
#define PRINTF(x) printf(x);
#define PRINTF1(x,y) printf(x,y);
#define PRINTF2(x,y,z) printf(x,y,z);
#else
#define PRINTF(x) ;
#define PRINTF1(x,y) ;
#define PRINTF2(x,y,z) ;
paul@pc-solar1.lab-lpp.local
Updates of the ICD taken into account...
r18 #endif
paul
Last commit before release 0-13...
r35 #ifdef BOOT_MESSAGES
#define BOOT_PRINTF(x) printf(x);
#define BOOT_PRINTF1(x,y) printf(x,y);
#define BOOT_PRINTF2(x,y,z) printf(x,y,z);
#else
#define BOOT_PRINTF(x) ;
#define BOOT_PRINTF1(x,y) ;
#define BOOT_PRINTF2(x,y,z) ;
#endif
#ifdef DEBUG_MESSAGES
#define DEBUG_PRINTF(x) printf(x);
#define DEBUG_PRINTF1(x,y) printf(x,y);
#define DEBUG_PRINTF2(x,y,z) printf(x,y,z);
#else
#define DEBUG_PRINTF(x) ;
#define DEBUG_PRINTF1(x,y) ;
#define DEBUG_PRINTF2(x,y,z) ;
#endif
paul
packet emission task added...
r33 #define CPU_USAGE_REPORT_PERIOD 6 // * 10 s = period
paul@pc-solar1.lab-lpp.local
All modes implemented for the waveforms...
r23 struct param_local_str{
unsigned int local_sbm1_nb_cwf_sent;
unsigned int local_sbm1_nb_cwf_max;
unsigned int local_sbm2_nb_cwf_sent;
unsigned int local_sbm2_nb_cwf_max;
paul
sy_lfr_n_swf_p implemented...
r32 unsigned int local_nb_interrupt_f0_MAX;
paul@pc-solar1.lab-lpp.local
All modes implemented for the waveforms...
r23 };
paul
Minor changes in .h inclusion
r45 #endif // FSW_PARAMS_H_INCLUDED