@@ -1,6 +1,6 | |||
|
1 | 1 | <?xml version="1.0" encoding="UTF-8"?> |
|
2 | 2 | <!DOCTYPE QtCreatorProject> |
|
3 |
<!-- Written by QtCreator 3.0.0, 2014-02- |
|
|
3 | <!-- Written by QtCreator 3.0.0, 2014-02-20T06:55:01. --> | |
|
4 | 4 | <qtcreator> |
|
5 | 5 | <data> |
|
6 | 6 | <variable>ProjectExplorer.Project.ActiveTarget</variable> |
@@ -202,15 +202,12 enum apid_destid{ | |||
|
202 | 202 | #define PACKET_LENGTH_TC_EXE_CORRUPTED (32 - CCSDS_TC_TM_PACKET_OFFSET) |
|
203 | 203 | #define PACKET_LENGTH_HK (124 - CCSDS_TC_TM_PACKET_OFFSET) |
|
204 | 204 | #define PACKET_LENGTH_PARAMETER_DUMP (36 - CCSDS_TC_TM_PACKET_OFFSET) |
|
205 | #define PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F0 (TOTAL_SIZE_ASM_F0 + HEADER_LENGTH_TM_LFR_SCIENCE_ASM - CCSDS_TC_TM_PACKET_OFFSET) | |
|
206 | #define PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F1 (TOTAL_SIZE_ASM_F1 + HEADER_LENGTH_TM_LFR_SCIENCE_ASM - CCSDS_TC_TM_PACKET_OFFSET) | |
|
207 | #define PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F2 (TOTAL_SIZE_ASM_F2 + HEADER_LENGTH_TM_LFR_SCIENCE_ASM - CCSDS_TC_TM_PACKET_OFFSET) | |
|
205 | #define PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F0 2221 // 44 * 25 * 2 + 28 - 7 | |
|
206 | #define PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F1 2621 // 52 * 25 * 2 + 28 - 7 | |
|
207 | #define PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F2 2421 // 48 * 25 * 2 + 28 - 7 | |
|
208 | 208 | |
|
209 | 209 | #define SPARE1_PUSVERSION_SPARE2 0x10 |
|
210 | 210 | |
|
211 | #define LEN_TM_LFR_HK 130 // 126 + 4 | |
|
212 | #define LEN_TM_LFR_TC_EXE_NOT_IMP 28 // 24 + 4 | |
|
213 | ||
|
214 | 211 | // R1 |
|
215 | 212 | #define TM_LEN_SCI_SWF_340 4101 // 340 * 12 + 10 + 12 - 1 |
|
216 | 213 | #define TM_LEN_SCI_SWF_8 117 // 8 * 12 + 10 + 12 - 1 |
@@ -7,16 +7,19 | |||
|
7 | 7 | #define SM_HEADER 0 // |
|
8 | 8 | // |
|
9 | 9 | #define NB_BINS_PER_ASM_F0 88 |
|
10 | #define TOTAL_SIZE_ASM_F0 2200 // 25 * 88 | |
|
10 | #define NB_BINS_PER_PKT_ASM_F0 44 | |
|
11 | #define TOTAL_SIZE_ASM_F0_IN_BYTES 4400 // 25 * 88 * 2 | |
|
11 | 12 | #define ASM_F0_INDICE_START 17 // 88 bins |
|
12 | 13 | #define ASM_F0_INDICE_STOP 104 // 2 packets of 44 bins |
|
13 | 14 | // |
|
14 | 15 | #define NB_BINS_PER_ASM_F1 104 |
|
16 | #define NB_BINS_PER_PKT_ASM_F1 52 | |
|
15 | 17 | #define TOTAL_SIZE_ASM_F1 2600 // 25 * 104 |
|
16 | 18 | #define ASM_F1_INDICE_START 6 // 104 bins |
|
17 | 19 | #define ASM_F1_INDICE_STOP 109 // 2 packets of 52 bins |
|
18 | 20 | // |
|
19 | 21 | #define NB_BINS_PER_ASM_F2 96 |
|
22 | #define NB_BINS_PER_PKT_ASM_F2 48 | |
|
20 | 23 | #define TOTAL_SIZE_ASM_F2 2400 // 25 * 96 |
|
21 | 24 | #define ASM_F2_INDICE_START 7 // 96 bins |
|
22 | 25 | #define ASM_F2_INDICE_STOP 102 // 2 packets of 48 bins |
@@ -19,9 +19,9 extern int fdSPW; | |||
|
19 | 19 | // F0 |
|
20 | 20 | //extern volatile int wf_snap_f0[ ]; |
|
21 | 21 | // F1 F2 |
|
22 |
extern volatile int wf_snap_f0[ ][ (NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK) + TIME_OFFSET + |
|
|
23 |
extern volatile int wf_snap_f1[ ][ (NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK) + TIME_OFFSET + |
|
|
24 |
extern volatile int wf_snap_f2[ ][ (NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK) + TIME_OFFSET + |
|
|
22 | extern volatile int wf_snap_f0[ ][ (NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK) + TIME_OFFSET + 62 ]; | |
|
23 | extern volatile int wf_snap_f1[ ][ (NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK) + TIME_OFFSET + 62 ]; | |
|
24 | extern volatile int wf_snap_f2[ ][ (NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK) + TIME_OFFSET + 62 ]; | |
|
25 | 25 | // F3 |
|
26 | 26 | extern volatile int wf_cont_f3_a[ ]; |
|
27 | 27 | extern volatile int wf_cont_f3_b[ ]; |
@@ -31,22 +31,24 int fdSPW = 0; | |||
|
31 | 31 | int fdUART = 0; |
|
32 | 32 | unsigned char lfrCurrentMode; |
|
33 | 33 | |
|
34 | // WAVEFORMS GLOBAL VARIABLES // 2048 * 3 * 4 + 2 * 4 = 24576 + 8 bytes | |
|
34 | // WAVEFORMS GLOBAL VARIABLES // 2048 * 3 * 4 + 2 * 4 = 24576 + 8 bytes = 24584 | |
|
35 | // 97 * 256 = 24832 => delta = 248 bytes = 62 words | |
|
36 | // WAVEFORMS GLOBAL VARIABLES // 2688 * 3 * 4 + 2 * 4 = 32256 + 8 bytes = 32264 | |
|
37 | // 127 * 256 = 32512 => delta = 248 bytes = 62 words | |
|
35 | 38 | // F0 |
|
36 |
|
|
|
37 | volatile int wf_snap_f0[ NB_RING_NODES_F0 ][ (NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK) + TIME_OFFSET + 46 ] __attribute__((aligned(0x100))); | |
|
39 | volatile int wf_snap_f0[ NB_RING_NODES_F0 ][ (NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK) + TIME_OFFSET + 62 ] __attribute__((aligned(0x100))); | |
|
38 | 40 | // F1 F2 |
|
39 |
volatile int wf_snap_f1[ NB_RING_NODES_F1 ][ (NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK) + TIME_OFFSET + |
|
|
40 |
volatile int wf_snap_f2[ NB_RING_NODES_F2 ][ (NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK) + TIME_OFFSET + |
|
|
41 | volatile int wf_snap_f1[ NB_RING_NODES_F1 ][ (NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK) + TIME_OFFSET + 62 ] __attribute__((aligned(0x100))); | |
|
42 | volatile int wf_snap_f2[ NB_RING_NODES_F2 ][ (NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK) + TIME_OFFSET + 62 ] __attribute__((aligned(0x100))); | |
|
41 | 43 | // F3 |
|
42 | 44 | volatile int wf_cont_f3_a [ (NB_SAMPLES_PER_SNAPSHOT) * NB_WORDS_SWF_BLK + TIME_OFFSET ] __attribute__((aligned(0x100))); |
|
43 | 45 | volatile int wf_cont_f3_b [ (NB_SAMPLES_PER_SNAPSHOT) * NB_WORDS_SWF_BLK + TIME_OFFSET ] __attribute__((aligned(0x100))); |
|
44 | 46 | char wf_cont_f3_light[ (NB_SAMPLES_PER_SNAPSHOT) * NB_BYTES_CWF3_LIGHT_BLK + TIME_OFFSET_IN_BYTES ] __attribute__((aligned(0x100))); |
|
45 | 47 | |
|
46 | 48 | // SPECTRAL MATRICES GLOBAL VARIABLES |
|
47 | volatile int sm_f0[ NB_RING_NODES_ASM_F0 ][ SM_HEADER + TOTAL_SIZE_SM ]; | |
|
48 | volatile int sm_f1[ NB_RING_NODES_ASM_F1 ][ SM_HEADER + TOTAL_SIZE_SM ]; | |
|
49 | volatile int sm_f2[ NB_RING_NODES_ASM_F2 ][ SM_HEADER + TOTAL_SIZE_SM ]; | |
|
49 | volatile int sm_f0[ NB_RING_NODES_ASM_F0 ][ SM_HEADER + TOTAL_SIZE_SM ] __attribute__((aligned(0x100))); | |
|
50 | volatile int sm_f1[ NB_RING_NODES_ASM_F1 ][ SM_HEADER + TOTAL_SIZE_SM ] __attribute__((aligned(0x100))); | |
|
51 | volatile int sm_f2[ NB_RING_NODES_ASM_F2 ][ SM_HEADER + TOTAL_SIZE_SM ] __attribute__((aligned(0x100))); | |
|
50 | 52 | |
|
51 | 53 | // APB CONFIGURATION REGISTERS |
|
52 | 54 | time_management_regs_t *time_management_regs = (time_management_regs_t*) REGS_ADDR_TIME_MANAGEMENT; |
@@ -25,6 +25,8 void configure_timer(gptimer_regs_t *gpt | |||
|
25 | 25 | rtems_status_code status; |
|
26 | 26 | rtems_isr_entry old_isr_handler; |
|
27 | 27 | |
|
28 | gptimer_regs->timer[timer].ctrl = 0x00; // reset the control register | |
|
29 | ||
|
28 | 30 | status = rtems_interrupt_catch( timer_isr, interrupt_level, &old_isr_handler) ; // see sparcv8.pdf p.76 for interrupt levels |
|
29 | 31 | if (status!=RTEMS_SUCCESSFUL) |
|
30 | 32 | { |
@@ -109,24 +109,23 rtems_isr spectral_matrices_isr( rtems_v | |||
|
109 | 109 | |
|
110 | 110 | rtems_isr spectral_matrices_isr_simu( rtems_vector_number vector ) |
|
111 | 111 | { |
|
112 | current_ring_node_sm_f0 = current_ring_node_sm_f0->next; | |
|
113 | spectral_matrix_regs->matrixF0_Address0 = current_ring_node_sm_f0->buffer_address; | |
|
114 | spectral_matrix_regs->status = spectral_matrix_regs->status & 0xfffffffe; | |
|
112 | //current_ring_node_sm_f0 = current_ring_node_sm_f0->next; | |
|
113 | //spectral_matrix_regs->matrixF0_Address0 = current_ring_node_sm_f0->buffer_address; | |
|
114 | //spectral_matrix_regs->status = spectral_matrix_regs->status & 0xfffffffe; | |
|
115 | 115 | |
|
116 | rtems_event_send( Task_id[TASKID_AVF0], RTEMS_EVENT_0 ); | |
|
117 | // if (nb_sm_f0 == NB_SM_TO_RECEIVE_BEFORE_AVF0 ) | |
|
118 | // { | |
|
119 | // ring_node_for_averaging_sm_f0 = current_ring_node_sm_f0; | |
|
120 | // if (rtems_event_send( Task_id[TASKID_AVF0], RTEMS_EVENT_0 ) != RTEMS_SUCCESSFUL) | |
|
121 | // { | |
|
122 | // rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_3 ); | |
|
123 | // } | |
|
124 | // nb_sm_f0 = 0; | |
|
125 | // } | |
|
126 | // else | |
|
127 | // { | |
|
128 | // nb_sm_f0 = nb_sm_f0 + 1; | |
|
129 | // } | |
|
116 | if (nb_sm_f0 == (NB_SM_TO_RECEIVE_BEFORE_AVF0-1) ) | |
|
117 | { | |
|
118 | ring_node_for_averaging_sm_f0 = current_ring_node_sm_f0; | |
|
119 | if (rtems_event_send( Task_id[TASKID_AVF0], RTEMS_EVENT_0 ) != RTEMS_SUCCESSFUL) | |
|
120 | { | |
|
121 | rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_3 ); | |
|
122 | } | |
|
123 | nb_sm_f0 = 0; | |
|
124 | } | |
|
125 | else | |
|
126 | { | |
|
127 | nb_sm_f0 = nb_sm_f0 + 1; | |
|
128 | } | |
|
130 | 129 | } |
|
131 | 130 | |
|
132 | 131 | //************ |
@@ -169,12 +168,12 rtems_task avf0_task(rtems_task_argument | |||
|
169 | 168 | |
|
170 | 169 | while(1){ |
|
171 | 170 | rtems_event_receive(RTEMS_EVENT_0, RTEMS_WAIT, RTEMS_NO_TIMEOUT, &event_out); // wait for an RTEMS_EVENT0 |
|
172 | PRINTF("avf0\n") | |
|
171 | ring_node_for_averaging_sm_f0 = &sm_ring_f0[NB_SM_TO_RECEIVE_BEFORE_AVF0-1]; | |
|
173 | 172 | ring_node_tab[NB_SM_TO_RECEIVE_BEFORE_AVF0-1] = ring_node_for_averaging_sm_f0; |
|
174 |
for (i= |
|
|
173 | for (i=2; i<NB_SM_TO_RECEIVE_BEFORE_AVF0+1; i++) | |
|
175 | 174 | { |
|
176 | 175 | ring_node_for_averaging_sm_f0 = ring_node_for_averaging_sm_f0->previous; |
|
177 | ring_node_tab[i] = ring_node_for_averaging_sm_f0; | |
|
176 | ring_node_tab[NB_SM_TO_RECEIVE_BEFORE_AVF0-i] = ring_node_for_averaging_sm_f0; | |
|
178 | 177 | } |
|
179 | 178 | for(i=0; i<TOTAL_SIZE_SM; i++) |
|
180 | 179 | { |
@@ -509,11 +508,11 void send_spectral_matrix(Header_TM_LFR_ | |||
|
509 | 508 | switch(sid) |
|
510 | 509 | { |
|
511 | 510 | case SID_NORM_ASM_F0: |
|
512 | spw_ioctl_send->dlen = TOTAL_SIZE_ASM_F0 / 2; | |
|
513 |
spw_ioctl_send->data = &spectral_matrix[ ASM_F0_INDICE_START |
|
|
511 | spw_ioctl_send->dlen = TOTAL_SIZE_ASM_F0_IN_BYTES / 2; | |
|
512 | spw_ioctl_send->data = &spectral_matrix[ ( (ASM_F0_INDICE_START+ (i*NB_BINS_PER_PKT_ASM_F0)) * NB_VALUES_PER_SM) * 2 ]; | |
|
514 | 513 | length = PACKET_LENGTH_TM_LFR_SCIENCE_ASM_F0; |
|
515 |
header->pa_lfr_asm_blk_nr[0] = (unsigned char) ( (NB_BINS_PER_ASM_F0 |
|
|
516 |
header->pa_lfr_asm_blk_nr[1] = (unsigned char) (NB_BINS_PER_ASM_F0 |
|
|
514 | header->pa_lfr_asm_blk_nr[0] = (unsigned char) ( (NB_BINS_PER_PKT_ASM_F0) >> 8 ); // BLK_NR MSB | |
|
515 | header->pa_lfr_asm_blk_nr[1] = (unsigned char) (NB_BINS_PER_PKT_ASM_F0); // BLK_NR LSB | |
|
517 | 516 | break; |
|
518 | 517 | case SID_NORM_ASM_F1: |
|
519 | 518 | break; |
General Comments 0
You need to be logged in to leave comments.
Login now