##// END OF EJS Templates
The flight software is now compatible with the VHDL 0.1.32...
The flight software is now compatible with the VHDL 0.1.32 Still some bugs at startup, may be due to the VHDL

File last commit:

r171:13f27d43af32 VHDL_0_1_28
r171:13f27d43af32 VHDL_0_1_28
Show More
fsw_params.h
259 lines | 8.9 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;
paul
The flight software is now compatible with the VHDL 0.1.32...
r171 struct ring_node *next;
unsigned int coarseTime;
unsigned int fineTime;
paul
Minor changes
r93 int buffer_address;
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
2.0.1.1...
r168 //#define WAVEFORM_EXTENDED_HEADER_OFFSET 22
paul
First version of the rings for the waveform picker.
r87 #define NB_BYTES_SWF_BLK (2 * 6)
#define NB_WORDS_SWF_BLK 3
#define NB_BYTES_CWF3_LIGHT_BLK 6
paul
2.0.1.1...
r168 //#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
waveform buffers declaration modified...
r131 #define NB_RING_NODES_F3 3 // 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...
r117 #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
paul
avf2 prc2 tasks added...
r124 #define RTEMS_EVENT_NORM_ASM_F0 RTEMS_EVENT_8 // ASM only in NORM mode
paul
Sync at CNES before going back to 117
r119 #define RTEMS_EVENT_NORM_BP1_F1 RTEMS_EVENT_9
#define RTEMS_EVENT_NORM_BP2_F1 RTEMS_EVENT_10
paul
avf2 prc2 tasks added...
r124 #define RTEMS_EVENT_NORM_ASM_F1 RTEMS_EVENT_11 // ASM only in NORM mode
paul
Sync at CNES before going back to 117
r119 #define RTEMS_EVENT_NORM_BP1_F2 RTEMS_EVENT_12
#define RTEMS_EVENT_NORM_BP2_F2 RTEMS_EVENT_13
paul
avf2 prc2 tasks added...
r124 #define RTEMS_EVENT_NORM_ASM_F2 RTEMS_EVENT_14 // ASM only in NORM mode
paul
Bug #117
r149 #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
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
Many corrections done after Logiscope analysis
r166 #define DFLT_SY_LFR_N_SWF_L 2048 // nb sample
#define DFLT_SY_LFR_N_SWF_P 300 // sec
#define DFLT_SY_LFR_N_ASM_P 3600 // sec
#define DFLT_SY_LFR_N_BP_P0 4 // sec
#define DFLT_SY_LFR_N_BP_P1 20 // sec
#define DFLT_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
paul
timegen version 0.0.0.1
r170 //#define REGS_ADDR_WAVEFORM_PICKER 0x80000f50
#define REGS_ADDR_WAVEFORM_PICKER 0x80000f54 // PDB >= 0.1.28
paul
Bug #104
r144 #define REGS_ADDR_VHDL_VERSION 0x80000ff0
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
2.0.1.1...
r168 // scaler value = system_clock_frequency / ( baud_rate * 8 ) - 1
#define APBUART_SCALER_RELOAD_VALUE 0x00000050 // 25 MHz => about 38400
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
Sync...
r117 #define CLKDIV_SM_SIMULATOR (10416 - 1) // 10 ms => nominal is 1/96 = 0.010416667, 10417 - 1 = 10416
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
paul
AVF1 and PRC1 tasks added for processing at f1
r121 #define TASKID_STAT 4
#define TASKID_AVF0 5
#define TASKID_SWBD 6
#define TASKID_WFRM 7
#define TASKID_DUMB 8
#define TASKID_HOUS 9
#define TASKID_PRC0 10
#define TASKID_CWF3 11
#define TASKID_CWF2 12
#define TASKID_CWF1 13
#define TASKID_SEND 14
#define TASKID_WTDG 15
#define TASKID_AVF1 16
#define TASKID_PRC1 17
paul
avf2 prc2 tasks added...
r124 #define TASKID_AVF2 18
#define TASKID_PRC2 19
paul
packet emission task added...
r33
#define TASK_PRIORITY_SPIQ 5
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
paul
AVF1 and PRC1 tasks are functional now
r122 #define TASK_PRIORITY_AVF1 70
paul
Sync at CNES before going back to 117
r119 #define TASK_PRIORITY_PRC0 100
paul
AVF1 and PRC1 tasks added for processing at f1
r121 #define TASK_PRIORITY_PRC1 100
paul
avf2 prc2 tasks added...
r124 #define TASK_PRIORITY_AVF2 110
#define TASK_PRIORITY_PRC2 110
paul
Commit before working on the ERR 4 due to message queue...
r34 #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
There is a message queue between AVFO and MATR...
r118 #define MSG_QUEUE_COUNT_RECV 10
paul
Sync at CNES before going back to 117
r119 #define MSG_QUEUE_COUNT_SEND 50
#define MSG_QUEUE_COUNT_PRC0 10
#define MSG_QUEUE_COUNT_PRC1 10
paul
avf2 prc2 tasks added...
r124 #define MSG_QUEUE_COUNT_PRC2 5
paul
Sync at CNES before going back to 117
r119 #define MSG_QUEUE_SIZE_SEND 810 // 806 + 4 => TM_LFR_SCIENCE_BURST_BP2_F1
paul
Sync...
r116 #define ACTION_MSG_SPW_IOCTL_SEND_SIZE 24 // hlen *hdr dlen *data sent options
paul
Sync at CNES before going back to 117
r119 #define MSG_QUEUE_SIZE_PRC0 20 // two pointers and one rtems_event + 2 integers
#define MSG_QUEUE_SIZE_PRC1 20 // two pointers and one rtems_event + 2 integers
paul
avf2 prc2 tasks added...
r124 #define MSG_QUEUE_SIZE_PRC2 20 // two pointers and one rtems_event + 2 integers
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
Sync at CNES before going back to 117
r119 #define QUEUE_PRC0 2
#define QUEUE_PRC1 3
paul
avf2 prc2 tasks added...
r124 #define QUEUE_PRC2 4
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
Minor changes in .h inclusion
r45 #endif // FSW_PARAMS_H_INCLUDED