##// END OF EJS Templates
Fusion
paul -
r242:feeb51833794 merge R3
parent child
Show More
@@ -50,6 +50,7 volatile int sm_f1[ NB_RING_NODES_SM_F1
50 volatile int sm_f2[ NB_RING_NODES_SM_F2 * TOTAL_SIZE_SM ] __attribute__((aligned(0x100)));
50 volatile int sm_f2[ NB_RING_NODES_SM_F2 * TOTAL_SIZE_SM ] __attribute__((aligned(0x100)));
51
51
52 // APB CONFIGURATION REGISTERS
52 // APB CONFIGURATION REGISTERS
53 struct grgpio_regs_str *grgpio_regs = (struct grgpio_regs_str *) REGS_ADDR_GRGPIO;
53 time_management_regs_t *time_management_regs = (time_management_regs_t*) REGS_ADDR_TIME_MANAGEMENT;
54 time_management_regs_t *time_management_regs = (time_management_regs_t*) REGS_ADDR_TIME_MANAGEMENT;
54 gptimer_regs_t *gptimer_regs = (gptimer_regs_t *) REGS_ADDR_GPTIMER;
55 gptimer_regs_t *gptimer_regs = (gptimer_regs_t *) REGS_ADDR_GPTIMER;
55 waveform_picker_regs_0_1_18_t *waveform_picker_regs = (waveform_picker_regs_0_1_18_t*) REGS_ADDR_WAVEFORM_PICKER;
56 waveform_picker_regs_0_1_18_t *waveform_picker_regs = (waveform_picker_regs_0_1_18_t*) REGS_ADDR_WAVEFORM_PICKER;
@@ -251,6 +251,14 rtems_task Init( rtems_task_argument ign
251
251
252 set_hk_lfr_sc_potential_flag( true );
252 set_hk_lfr_sc_potential_flag( true );
253
253
254 //*********************************
255 // init GPIO for trigger generation
256 struct grgpio_regs_str *grgpio_regs = (struct grgpio_regs_str *) REGS_ADDR_GRGPIO;
257 grgpio_regs->io_port_direction_register =
258 grgpio_regs->io_port_direction_register | 0x08; // [0000 1000], 0 = output disabled, 1 = output enabled
259 grgpio_regs->io_port_direction_register =
260 grgpio_regs->io_port_direction_register | 0x04; // [0000 0100], 0 = output disabled, 1 = output enabled
261
254 status = rtems_task_delete(RTEMS_SELF);
262 status = rtems_task_delete(RTEMS_SELF);
255
263
256 }
264 }
@@ -192,6 +192,20 rtems_task hous_task(rtems_task_argument
192 set_hk_lfr_reset_cause( POWER_ON );
192 set_hk_lfr_reset_cause( POWER_ON );
193
193
194 while(1){ // launch the rate monotonic task
194 while(1){ // launch the rate monotonic task
195 // //*******
196 // // GPIO 3
197 // struct grgpio_regs_str *grgpio_regs = (struct grgpio_regs_str *) REGS_ADDR_GRGPIO;
198 // if ( (grgpio_regs->io_port_output_register & 0x07) == 0x02 ) // [010]
199 // {
200 // grgpio_regs->io_port_output_register = grgpio_regs->io_port_output_register & 0xf8; // [1111 1000]
201 // }
202 // else
203 // {
204 // grgpio_regs->io_port_output_register = grgpio_regs->io_port_output_register | 0x02; // [0000 0010]
205 // }
206 //
207 //*******
208
195 status = rtems_rate_monotonic_period( HK_id, HK_PERIOD );
209 status = rtems_rate_monotonic_period( HK_id, HK_PERIOD );
196 if ( status != RTEMS_SUCCESSFUL ) {
210 if ( status != RTEMS_SUCCESSFUL ) {
197 PRINTF1( "in HOUS *** ERR period: %d\n", status);
211 PRINTF1( "in HOUS *** ERR period: %d\n", status);
@@ -22,6 +22,10 Header_TM_LFR_SCIENCE_CWF_t headerCWF;
22 Header_TM_LFR_SCIENCE_SWF_t headerSWF;
22 Header_TM_LFR_SCIENCE_SWF_t headerSWF;
23 Header_TM_LFR_SCIENCE_ASM_t headerASM;
23 Header_TM_LFR_SCIENCE_ASM_t headerASM;
24
24
25 extern struct grgpio_regs_str *grgpio_regs;
26 #define OUTPUT_1 grgpio_regs->io_port_output_register = grgpio_regs->io_port_output_register & 0xf8;
27 #define OUTPUT_0 grgpio_regs->io_port_output_register = grgpio_regs->io_port_output_register | 0x02;
28
25 //***********
29 //***********
26 // RTEMS TASK
30 // RTEMS TASK
27 rtems_task spiq_task(rtems_task_argument unused)
31 rtems_task spiq_task(rtems_task_argument unused)
@@ -660,6 +664,8 void spacewire_update_statistics( void )
660
664
661 void timecode_irq_handler( void *pDev, void *regs, int minor, unsigned int tc )
665 void timecode_irq_handler( void *pDev, void *regs, int minor, unsigned int tc )
662 {
666 {
667 OUTPUT_1;
668
663 // a valid timecode has been received, write it in the HK report
669 // a valid timecode has been received, write it in the HK report
664 unsigned int *grspwPtr;
670 unsigned int *grspwPtr;
665 unsigned char timecodeCtr;
671 unsigned char timecodeCtr;
@@ -693,6 +699,8 void timecode_irq_handler( void *pDev, v
693 housekeeping_packet.hk_lfr_time_timecode_ctr = housekeeping_packet.hk_lfr_time_timecode_ctr + 1;
699 housekeeping_packet.hk_lfr_time_timecode_ctr = housekeeping_packet.hk_lfr_time_timecode_ctr + 1;
694 }
700 }
695 }
701 }
702
703 OUTPUT_0;
696 }
704 }
697
705
698 rtems_timer_service_routine user_routine( rtems_id timer_id, void *user_data )
706 rtems_timer_service_routine user_routine( rtems_id timer_id, void *user_data )
@@ -16,6 +16,10 unsigned int nb_sm_f0_aux_f1;
16 unsigned int nb_sm_f1;
16 unsigned int nb_sm_f1;
17 unsigned int nb_sm_f0_aux_f2;
17 unsigned int nb_sm_f0_aux_f2;
18
18
19 extern struct grgpio_regs_str *grgpio_regs;
20 #define OUTPUT_1 grgpio_regs->io_port_output_register = grgpio_regs->io_port_output_register & 0xf8;
21 #define OUTPUT_0 grgpio_regs->io_port_output_register = grgpio_regs->io_port_output_register | 0x02;
22
19 //************************
23 //************************
20 // spectral matrices rings
24 // spectral matrices rings
21 ring_node sm_ring_f0[ NB_RING_NODES_SM_F0 ];
25 ring_node sm_ring_f0[ NB_RING_NODES_SM_F0 ];
@@ -56,6 +60,8 ring_node * getRingNodeForAveraging( uns
56
60
57 void spectral_matrices_isr_f0( unsigned char statusReg )
61 void spectral_matrices_isr_f0( unsigned char statusReg )
58 {
62 {
63 // OUTPUT_1;
64
59 unsigned char status;
65 unsigned char status;
60 rtems_status_code status_code;
66 rtems_status_code status_code;
61 ring_node *full_ring_node;
67 ring_node *full_ring_node;
@@ -110,10 +116,13 void spectral_matrices_isr_f0( unsigned
110 spectral_matrix_regs->status = 0x02; // [0000 0010]
116 spectral_matrix_regs->status = 0x02; // [0000 0010]
111 break;
117 break;
112 }
118 }
119 // OUTPUT_0;
113 }
120 }
114
121
115 void spectral_matrices_isr_f1( unsigned char statusReg )
122 void spectral_matrices_isr_f1( unsigned char statusReg )
116 {
123 {
124 // OUTPUT_1;
125
117 rtems_status_code status_code;
126 rtems_status_code status_code;
118 unsigned char status;
127 unsigned char status;
119 ring_node *full_ring_node;
128 ring_node *full_ring_node;
@@ -168,10 +177,14 void spectral_matrices_isr_f1( unsigned
168 spectral_matrix_regs->status = 0x08; // [1000 0000]
177 spectral_matrix_regs->status = 0x08; // [1000 0000]
169 break;
178 break;
170 }
179 }
180
181 // OUTPUT_0;
171 }
182 }
172
183
173 void spectral_matrices_isr_f2( unsigned char statusReg )
184 void spectral_matrices_isr_f2( unsigned char statusReg )
174 {
185 {
186 // OUTPUT_1;
187
175 unsigned char status;
188 unsigned char status;
176 rtems_status_code status_code;
189 rtems_status_code status_code;
177
190
@@ -211,6 +224,8 void spectral_matrices_isr_f2( unsigned
211 }
224 }
212 break;
225 break;
213 }
226 }
227
228 // OUTPUT_0;
214 }
229 }
215
230
216 void spectral_matrix_isr_error_handler( unsigned char statusReg )
231 void spectral_matrix_isr_error_handler( unsigned char statusReg )
@@ -235,6 +250,8 rtems_isr spectral_matrices_isr( rtems_v
235
250
236 unsigned char statusReg;
251 unsigned char statusReg;
237
252
253 // OUTPUT_1;
254
238 statusReg = spectral_matrix_regs->status;
255 statusReg = spectral_matrix_regs->status;
239
256
240 spectral_matrices_isr_f0( statusReg );
257 spectral_matrices_isr_f0( statusReg );
@@ -244,6 +261,9 rtems_isr spectral_matrices_isr( rtems_v
244 spectral_matrices_isr_f2( statusReg );
261 spectral_matrices_isr_f2( statusReg );
245
262
246 spectral_matrix_isr_error_handler( statusReg );
263 spectral_matrix_isr_error_handler( statusReg );
264
265 // OUTPUT_0;
266
247 }
267 }
248
268
249 rtems_isr spectral_matrices_isr_simu( rtems_vector_number vector )
269 rtems_isr spectral_matrices_isr_simu( rtems_vector_number vector )
@@ -9,6 +9,10
9
9
10 #include "wf_handler.h"
10 #include "wf_handler.h"
11
11
12 extern struct grgpio_regs_str *grgpio_regs;
13 #define OUTPUT_1 grgpio_regs->io_port_output_register = grgpio_regs->io_port_output_register & 0xf8;
14 #define OUTPUT_0 grgpio_regs->io_port_output_register = grgpio_regs->io_port_output_register | 0x02;
15
12 //***************
16 //***************
13 // waveform rings
17 // waveform rings
14 // F0
18 // F0
@@ -409,6 +413,8 rtems_isr waveforms_isr( rtems_vector_nu
409 // 7 6 5 4 3 2 1 0
413 // 7 6 5 4 3 2 1 0
410 // f3_1 f3_0 f2_1 f2_0 f1_1 f1_0 f0_1 f0_0
414 // f3_1 f3_0 f2_1 f2_0 f1_1 f1_0 f0_1 f0_0
411
415
416 // OUTPUT_1;
417
412 rtems_status_code spare_status;
418 rtems_status_code spare_status;
413
419
414 waveforms_isr_f3();
420 waveforms_isr_f3();
@@ -454,6 +460,8 rtems_isr waveforms_isr( rtems_vector_nu
454 default:
460 default:
455 break;
461 break;
456 }
462 }
463
464 // OUTPUT_0;
457 }
465 }
458
466
459 //************
467 //************
General Comments 0
You need to be logged in to leave comments. Login now