##// END OF EJS Templates
last version before VHDL design upgrade...
paul -
r53:572a09e609bc nov2013
parent child
Show More
@@ -1,6 +1,6
1 1 #############################################################################
2 2 # Makefile for building: bin/fsw
3 # Generated by qmake (2.01a) (Qt 4.8.5) on: Mon Nov 4 07:05:32 2013
3 # Generated by qmake (2.01a) (Qt 4.8.5) on: Tue Nov 5 07:57:53 2013
4 4 # Project: fsw-qt.pro
5 5 # Template: app
6 6 # Command: /usr/bin/qmake-qt4 -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile fsw-qt.pro
@@ -10,7 +10,7
10 10
11 11 CC = sparc-rtems-gcc
12 12 CXX = sparc-rtems-g++
13 DEFINES = -DSW_VERSION_N1=0 -DSW_VERSION_N2=0 -DSW_VERSION_N3=0 -DSW_VERSION_N4=20 -DPRINT_MESSAGES_ON_CONSOLE
13 DEFINES = -DSW_VERSION_N1=0 -DSW_VERSION_N2=0 -DSW_VERSION_N3=0 -DSW_VERSION_N4=21 -DPRINT_MESSAGES_ON_CONSOLE
14 14 CFLAGS = -pipe -O3 -Wall $(DEFINES)
15 15 CXXFLAGS = -pipe -O3 -Wall $(DEFINES)
16 16 INCPATH = -I/usr/lib64/qt4/mkspecs/linux-g++ -I. -I../src -I../header
1 NO CONTENT: modified file, binary diff hidden
@@ -7,11 +7,11 CONFIG -= qt
7 7 include(./sparc.pri)
8 8
9 9 # flight software version
10 SWVERSION=-0-20
10 SWVERSION=-0-21
11 11 DEFINES += SW_VERSION_N1=0
12 12 DEFINES += SW_VERSION_N2=0
13 13 DEFINES += SW_VERSION_N3=0
14 DEFINES += SW_VERSION_N4=20
14 DEFINES += SW_VERSION_N4=21
15 15
16 16 contains( CONFIG, verbose ) {
17 17 DEFINES += PRINT_MESSAGES_ON_CONSOLE
@@ -1,6 +1,6
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <!DOCTYPE QtCreatorProject>
3 <!-- Written by QtCreator 2.8.0, 2013-11-04T07:04:49. -->
3 <!-- Written by QtCreator 2.8.1, 2013-11-05T13:07:12. -->
4 4 <qtcreator>
5 5 <data>
6 6 <variable>ProjectExplorer.Project.ActiveTarget</variable>
@@ -45,23 +45,7 struct time_management_regs_str{
45 45 };
46 46 typedef struct time_management_regs_str time_management_regs_t;
47 47
48 struct waveform_picker_regs_str{
49 volatile int data_shaping; // 0x00 00 *** R1 R0 SP1 SP0 BW
50 volatile int burst_enable; // 0x04 01 *** burst f2, f1, f0 enable f3, f2, f1, f0
51 volatile int addr_data_f0; // 0x08 10 ***
52 volatile int addr_data_f1; // 0x0c 11 ***
53 volatile int addr_data_f2; // 0x10 100 ***
54 volatile int addr_data_f3; // 0x14 101 ***
55 volatile int status; // 0x18 110 ***
56 volatile int delta_snapshot; // 0x1c 111 ***
57 volatile int delta_f2_f1; // 0x20 0000 ***
58 volatile int delta_f2_f0; // 0x24 0001 ***
59 volatile int nb_burst_available;// 0x28 0010 ***
60 volatile int nb_snapshot_param; // 0x2c 0011 ***
61 };
62 typedef struct waveform_picker_regs_str waveform_picker_regs_t;
63
64 struct waveform_picker_regs_str_alt{
48 struct new_waveform_picker_regs_str{
65 49 volatile int data_shaping; // 0x00 00 *** R1 R0 SP1 SP0 BW
66 50 volatile int run_burst_enable; // 0x04 01 *** [run *** burst f2, f1, f0 *** enable f3, f2, f1, f0 ]
67 51 volatile int addr_data_f0; // 0x08
@@ -78,7 +62,7 struct waveform_picker_regs_str_alt{
78 62 volatile int snapshot_param;
79 63 volatile int start_date;
80 64 };
81 typedef struct waveform_picker_regs_str_alt waveform_picker_regs_t_alt;
65 typedef struct new_waveform_picker_regs_str new_waveform_picker_regs_t;
82 66
83 67 struct spectral_matrix_regs_str{
84 68 volatile int config;
@@ -13,7 +13,7
13 13 extern struct param_sbm1_str param_sbm1;
14 14 extern struct param_sbm2_str param_sbm2;
15 15 extern time_management_regs_t *time_management_regs;
16 extern waveform_picker_regs_t *waveform_picker_regs;
16 extern new_waveform_picker_regs_t *new_waveform_picker_regs;
17 17 extern gptimer_regs_t *gptimer_regs;
18 18 extern rtems_name misc_name[5];
19 19 extern rtems_id Task_id[20]; /* array of task ids */
@@ -65,9 +65,10 rtems_id get_pkts_queue_id( void );
65 65 void set_wfp_data_shaping();
66 66 char set_wfp_delta_snapshot();
67 67 void set_wfp_burst_enable_register( unsigned char mode);
68 void reset_wfp_burst_enable();
68 void reset_wfp_run_burst_enable();
69 69 void reset_wfp_status();
70 70 void reset_new_waveform_picker_regs();
71 void reset_new_waveform_picker_regs_alt();
71 72
72 73 //*****************
73 74 // local parameters
@@ -52,4 +52,3 struct drvmgr_bus_res grlib_drv_resource
52 52 }
53 53 };
54 54
55
@@ -70,7 +70,6 rtems_task Init( rtems_task_argument ign
70 70 *
71 71 */
72 72
73
74 73 rtems_status_code status;
75 74 rtems_status_code status_spw;
76 75 rtems_isr_entry old_isr_handler;
@@ -84,6 +83,10 rtems_task Init( rtems_task_argument ign
84 83 //send_console_outputs_on_apbuart_port();
85 84 set_apbuart_scaler_reload_register(REGS_ADDR_APBUART, APBUART_SCALER_RELOAD_VALUE);
86 85
86 // waveform picker registers initialization
87 reset_wfp_run_burst_enable();
88 reset_wfp_status();
89
87 90 init_parameter_dump();
88 91 init_local_mode_parameters();
89 92 init_housekeeping_parameters();
@@ -388,7 +388,7 int stop_current_mode()
388 388 LEON_Mask_interrupt( IRQ_WAVEFORM_PICKER ); // mask waveform picker interrupt
389 389 LEON_Mask_interrupt( IRQ_SPECTRAL_MATRIX ); // mask spectral matrix interrupt
390 390 // reset registers
391 reset_wfp_burst_enable(); // reset burst and enable bits
391 reset_wfp_run_burst_enable(); // reset run, burst and enable bits, [r b2 b1 b0 e3 e2 e1 e0]
392 392 reset_wfp_status(); // reset all the status bits
393 393 // creal interruptions
394 394 LEON_Clear_interrupt( IRQ_WAVEFORM_PICKER ); // clear waveform picker interrupt
@@ -464,6 +464,7 int enter_standby_mode()
464 464 int enter_normal_mode()
465 465 {
466 466 rtems_status_code status;
467 int startDate;
467 468
468 469 status = restart_science_tasks();
469 470
@@ -479,10 +480,13 int enter_normal_mode()
479 480 #else
480 481 //****************
481 482 // waveform picker
482 reset_waveform_picker_regs();
483 reset_new_waveform_picker_regs();
483 484 set_wfp_burst_enable_register(LFR_MODE_NORMAL);
484 485 LEON_Clear_interrupt( IRQ_WAVEFORM_PICKER );
485 486 LEON_Unmask_interrupt( IRQ_WAVEFORM_PICKER );
487 startDate = time_management_regs->coarse_time + 2;
488 new_waveform_picker_regs->start_date = startDate;
489 new_waveform_picker_regs->run_burst_enable = new_waveform_picker_regs->run_burst_enable | 0x80; // [1000 0000]
486 490 //****************
487 491 // spectral matrix
488 492 #endif
@@ -499,7 +503,7 int enter_burst_mode()
499 503 #ifdef GSA
500 504 LEON_Unmask_interrupt( IRQ_SM );
501 505 #else
502 reset_waveform_picker_regs();
506 reset_new_waveform_picker_regs();
503 507 set_wfp_burst_enable_register(LFR_MODE_BURST);
504 508 LEON_Clear_interrupt( IRQ_WAVEFORM_PICKER );
505 509 LEON_Unmask_interrupt( IRQ_WAVEFORM_PICKER );
@@ -521,7 +525,7 int enter_sbm1_mode()
521 525 #ifdef GSA
522 526 LEON_Unmask_interrupt( IRQ_SM );
523 527 #else
524 reset_waveform_picker_regs();
528 reset_new_waveform_picker_regs();
525 529 set_wfp_burst_enable_register(LFR_MODE_SBM1);
526 530 LEON_Clear_interrupt( IRQ_WAVEFORM_PICKER );
527 531 LEON_Unmask_interrupt( IRQ_WAVEFORM_PICKER );
@@ -547,7 +551,7 int enter_sbm2_mode()
547 551 #ifdef GSA
548 552 LEON_Unmask_interrupt( IRQ_SM );
549 553 #else
550 reset_waveform_picker_regs();
554 reset_new_waveform_picker_regs();
551 555 set_wfp_burst_enable_register(LFR_MODE_SBM2);
552 556 LEON_Clear_interrupt( IRQ_WAVEFORM_PICKER );
553 557 LEON_Unmask_interrupt( IRQ_WAVEFORM_PICKER );
@@ -33,6 +33,9 rtems_isr waveforms_isr( rtems_vector_nu
33 33 *
34 34 */
35 35
36 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
37 new_waveform_picker_regs->status = new_waveform_picker_regs->status & 0xfffff00f; // clear new_err and full_err
38
36 39 #ifdef GSA
37 40 #else
38 41 if ( (lfrCurrentMode == LFR_MODE_NORMAL)
@@ -999,7 +1002,8 void set_wfp_burst_enable_register( unsi
999 1002 switch(mode) {
1000 1003 case(LFR_MODE_NORMAL):
1001 1004 new_waveform_picker_regs->run_burst_enable = 0x00; // [0000 0000] no burst enable
1002 new_waveform_picker_regs->run_burst_enable = 0x0f; // [0000 1111] enable f3 f2 f1 f0
1005 // new_waveform_picker_regs->run_burst_enable = 0x0f; // [0000 1111] enable f3 f2 f1 f0
1006 new_waveform_picker_regs->run_burst_enable = 0x07; // [0000 0111] enable f2 f1 f0
1003 1007 break;
1004 1008 case(LFR_MODE_BURST):
1005 1009 new_waveform_picker_regs->run_burst_enable = 0x40; // [0100 0000] f2 burst enabled
@@ -1020,7 +1024,7 void set_wfp_burst_enable_register( unsi
1020 1024 #endif
1021 1025 }
1022 1026
1023 void reset_wfp_burst_enable()
1027 void reset_wfp_run_burst_enable()
1024 1028 {
1025 1029 /** This function resets the waveform picker burst_enable register.
1026 1030 *
@@ -1050,21 +1054,42 void reset_wfp_status()
1050 1054
1051 1055 void reset_new_waveform_picker_regs()
1052 1056 {
1053 new_waveform_picker_regs->data_shaping = 0x01; // 0x00 00 *** R1 R0 SP1 SP0 BW
1054 new_waveform_picker_regs->run_burst_enable = 0x00; // 0x04 01 *** [run *** burst f2, f1, f0 *** enable f3, f2, f1, f0 ]
1057 new_waveform_picker_regs->data_shaping = 0x01; // 0x00 *** R1 R0 SP1 SP0 BW
1058 new_waveform_picker_regs->run_burst_enable = 0x00; // 0x04 *** [run *** burst f2, f1, f0 *** enable f3, f2, f1, f0 ]
1055 1059 new_waveform_picker_regs->addr_data_f0 = (int) (wf_snap_f0); // 0x08
1056 1060 new_waveform_picker_regs->addr_data_f1 = (int) (wf_snap_f1); // 0x0c
1057 1061 new_waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2); // 0x10
1058 1062 new_waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3); // 0x14
1059 new_waveform_picker_regs->status = 0x00; // 0x18
1060 new_waveform_picker_regs->delta_snapshot = 0x12800; // 0x1c
1061 new_waveform_picker_regs->delta_f0 = 0x3f5; // 0x20 *** 1013
1062 new_waveform_picker_regs->delta_f0_2 = 0x7; // 0x24 *** 7
1063 new_waveform_picker_regs->delta_f1 = 0x3c0; // 0x28 *** 960
1064 new_waveform_picker_regs->delta_f2 = 0x12200; // 0x2c *** 74240
1065 new_waveform_picker_regs->nb_data_by_buffer = 0x1802; // 0x30 *** 2048 * 3 + 2
1066 new_waveform_picker_regs->snapshot_param = 0x7ff; // 0x34 *** 2048 -1
1067 new_waveform_picker_regs->start_date = 0x00;
1063 new_waveform_picker_regs->status = 0x00; // 0x18
1064 // new_waveform_picker_regs->delta_snapshot = 0x12800; // 0x1c 296 * 256 = 75776
1065 new_waveform_picker_regs->delta_snapshot = 0x1000; // 0x1c 16 * 256 = 4096
1066 new_waveform_picker_regs->delta_f0 = 0x3f5; // 0x20 *** 1013
1067 new_waveform_picker_regs->delta_f0_2 = 0x7; // 0x24 *** 7
1068 new_waveform_picker_regs->delta_f1 = 0x3c0; // 0x28 *** 960
1069 // new_waveform_picker_regs->delta_f2 = 0x12200; // 0x2c *** 74240
1070 new_waveform_picker_regs->delta_f2 = 0xc00; // 0x2c *** 12 * 256 = 2048
1071 new_waveform_picker_regs->nb_data_by_buffer = 0x1802; // 0x30 *** 2048 * 3 + 2
1072 new_waveform_picker_regs->snapshot_param = 0x7ff; // 0x34 *** 2048 -1
1073 new_waveform_picker_regs->start_date = 0x00; // 0x38
1074 }
1075
1076 void reset_new_waveform_picker_regs_alt()
1077 {
1078 new_waveform_picker_regs->data_shaping = 0x01; // 0x00 *** R1 R0 SP1 SP0 BW
1079 new_waveform_picker_regs->run_burst_enable = 0x00; // 0x04 *** [run *** burst f2, f1, f0 *** enable f3, f2, f1, f0 ]
1080 new_waveform_picker_regs->addr_data_f0 = (int) (wf_snap_f0); // 0x08
1081 new_waveform_picker_regs->addr_data_f1 = (int) (wf_snap_f1); // 0x0c
1082 new_waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2); // 0x10
1083 new_waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3); // 0x14
1084 new_waveform_picker_regs->status = 0x00; // 0x18
1085 new_waveform_picker_regs->delta_snapshot = 0x1000; // 0x1c 16 * 256 = 4096
1086 new_waveform_picker_regs->delta_f0 = 0x19; // 0x20 *** 1013
1087 new_waveform_picker_regs->delta_f0_2 = 0x7; // 0x24 *** 7
1088 new_waveform_picker_regs->delta_f1 = 0x19; // 0x28 *** 960
1089 new_waveform_picker_regs->delta_f2 = 0x400; // 0x2c *** 4 * 256 = 1024
1090 new_waveform_picker_regs->nb_data_by_buffer = 0x32; // 0x30 *** 16 * 3 + 2
1091 new_waveform_picker_regs->snapshot_param = 0xf; // 0x34 *** 16 -1
1092 new_waveform_picker_regs->start_date = 0x00; // 0x38
1068 1093 }
1069 1094
1070 1095 //*****************
General Comments 0
You need to be logged in to leave comments. Login now