##// END OF EJS Templates
Sync
paul -
r175:d2561e02408b VHDL_0_1_28
parent child
Show More
@@ -1,2 +1,2
1 header/common_lfr_headers = https://hephaistos.lpp.polytechnique.fr/rhodecode/HG_REPOSITORIES/LPP/INSTRUMENTATION/SOLO_LFR/lfr_common_headers
1 header/lfr_common_headers = https://hephaistos.lpp.polytechnique.fr/rhodecode/HG_REPOSITORIES/LPP/INSTRUMENTATION/SOLO_LFR/lfr_common_headers
2 2
@@ -1,1 +1,1
1 0000000000000000000000000000000000000000 header/common_lfr_headers
1 da5613aff4446e5c98b3c56bc32ce7008b3e2340 header/lfr_common_headers
@@ -1,273 +1,273
1 1 #############################################################################
2 2 # Makefile for building: bin/fsw
3 # Generated by qmake (2.01a) (Qt 4.8.6) on: Wed Nov 26 13:14:53 2014
3 # Generated by qmake (2.01a) (Qt 4.8.6) on: Mon Dec 15 12:32:49 2014
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
7 7 #############################################################################
8 8
9 9 ####### Compiler, tools and options
10 10
11 11 CC = sparc-rtems-gcc
12 12 CXX = sparc-rtems-g++
13 13 DEFINES = -DSW_VERSION_N1=2 -DSW_VERSION_N2=0 -DSW_VERSION_N3=1 -DSW_VERSION_N4=1 -DLPP_DPU_DESTID -DPRINT_MESSAGES_ON_CONSOLE
14 14 CFLAGS = -pipe -O3 -Wall $(DEFINES)
15 15 CXXFLAGS = -pipe -O3 -Wall $(DEFINES)
16 INCPATH = -I/usr/lib64/qt4/mkspecs/linux-g++ -I. -I../src -I../header -I../header/processing -I../src/LFR_basic-parameters
16 INCPATH = -I/usr/lib64/qt4/mkspecs/linux-g++ -I. -I../src -I../header -I../header/common_lfr_headers -I../header/processing -I../src/LFR_basic-parameters
17 17 LINK = sparc-rtems-g++
18 18 LFLAGS =
19 19 LIBS = $(SUBLIBS)
20 20 AR = sparc-rtems-ar rcs
21 21 RANLIB =
22 22 QMAKE = /usr/bin/qmake-qt4
23 23 TAR = tar -cf
24 24 COMPRESS = gzip -9f
25 25 COPY = cp -f
26 26 SED = sed
27 27 COPY_FILE = $(COPY)
28 28 COPY_DIR = $(COPY) -r
29 29 STRIP = sparc-rtems-strip
30 30 INSTALL_FILE = install -m 644 -p
31 31 INSTALL_DIR = $(COPY_DIR)
32 32 INSTALL_PROGRAM = install -m 755 -p
33 33 DEL_FILE = rm -f
34 34 SYMLINK = ln -f -s
35 35 DEL_DIR = rmdir
36 36 MOVE = mv -f
37 37 CHK_DIR_EXISTS= test -d
38 38 MKDIR = mkdir -p
39 39
40 40 ####### Output directory
41 41
42 42 OBJECTS_DIR = obj/
43 43
44 44 ####### Files
45 45
46 46 SOURCES = ../src/wf_handler.c \
47 47 ../src/tc_handler.c \
48 48 ../src/fsw_misc.c \
49 49 ../src/fsw_init.c \
50 50 ../src/fsw_globals.c \
51 51 ../src/fsw_spacewire.c \
52 52 ../src/tc_load_dump_parameters.c \
53 53 ../src/tm_lfr_tc_exe.c \
54 54 ../src/tc_acceptance.c \
55 55 ../src/processing/fsw_processing.c \
56 56 ../src/processing/avf0_prc0.c \
57 57 ../src/processing/avf1_prc1.c \
58 58 ../src/processing/avf2_prc2.c \
59 59 ../src/lfr_cpu_usage_report.c \
60 60 ../src/LFR_basic-parameters/basic_parameters.c
61 61 OBJECTS = obj/wf_handler.o \
62 62 obj/tc_handler.o \
63 63 obj/fsw_misc.o \
64 64 obj/fsw_init.o \
65 65 obj/fsw_globals.o \
66 66 obj/fsw_spacewire.o \
67 67 obj/tc_load_dump_parameters.o \
68 68 obj/tm_lfr_tc_exe.o \
69 69 obj/tc_acceptance.o \
70 70 obj/fsw_processing.o \
71 71 obj/avf0_prc0.o \
72 72 obj/avf1_prc1.o \
73 73 obj/avf2_prc2.o \
74 74 obj/lfr_cpu_usage_report.o \
75 75 obj/basic_parameters.o
76 76 DIST = /usr/lib64/qt4/mkspecs/common/unix.conf \
77 77 /usr/lib64/qt4/mkspecs/common/linux.conf \
78 78 /usr/lib64/qt4/mkspecs/common/gcc-base.conf \
79 79 /usr/lib64/qt4/mkspecs/common/gcc-base-unix.conf \
80 80 /usr/lib64/qt4/mkspecs/common/g++-base.conf \
81 81 /usr/lib64/qt4/mkspecs/common/g++-unix.conf \
82 82 /usr/lib64/qt4/mkspecs/qconfig.pri \
83 83 /usr/lib64/qt4/mkspecs/modules/qt_webkit.pri \
84 84 /usr/lib64/qt4/mkspecs/features/qt_functions.prf \
85 85 /usr/lib64/qt4/mkspecs/features/qt_config.prf \
86 86 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf \
87 87 /usr/lib64/qt4/mkspecs/features/default_pre.prf \
88 88 sparc.pri \
89 89 /usr/lib64/qt4/mkspecs/features/release.prf \
90 90 /usr/lib64/qt4/mkspecs/features/default_post.prf \
91 91 /usr/lib64/qt4/mkspecs/features/shared.prf \
92 92 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \
93 93 /usr/lib64/qt4/mkspecs/features/warn_on.prf \
94 94 /usr/lib64/qt4/mkspecs/features/resources.prf \
95 95 /usr/lib64/qt4/mkspecs/features/uic.prf \
96 96 /usr/lib64/qt4/mkspecs/features/yacc.prf \
97 97 /usr/lib64/qt4/mkspecs/features/lex.prf \
98 98 /usr/lib64/qt4/mkspecs/features/include_source_dir.prf \
99 99 fsw-qt.pro
100 100 QMAKE_TARGET = fsw
101 101 DESTDIR = bin/
102 102 TARGET = bin/fsw
103 103
104 104 first: all
105 105 ####### Implicit rules
106 106
107 107 .SUFFIXES: .o .c .cpp .cc .cxx .C
108 108
109 109 .cpp.o:
110 110 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
111 111
112 112 .cc.o:
113 113 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
114 114
115 115 .cxx.o:
116 116 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
117 117
118 118 .C.o:
119 119 $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
120 120
121 121 .c.o:
122 122 $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"
123 123
124 124 ####### Build rules
125 125
126 126 all: Makefile $(TARGET)
127 127
128 128 $(TARGET): $(OBJECTS)
129 129 @$(CHK_DIR_EXISTS) bin/ || $(MKDIR) bin/
130 130 $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
131 131
132 132 Makefile: fsw-qt.pro /usr/lib64/qt4/mkspecs/linux-g++/qmake.conf /usr/lib64/qt4/mkspecs/common/unix.conf \
133 133 /usr/lib64/qt4/mkspecs/common/linux.conf \
134 134 /usr/lib64/qt4/mkspecs/common/gcc-base.conf \
135 135 /usr/lib64/qt4/mkspecs/common/gcc-base-unix.conf \
136 136 /usr/lib64/qt4/mkspecs/common/g++-base.conf \
137 137 /usr/lib64/qt4/mkspecs/common/g++-unix.conf \
138 138 /usr/lib64/qt4/mkspecs/qconfig.pri \
139 139 /usr/lib64/qt4/mkspecs/modules/qt_webkit.pri \
140 140 /usr/lib64/qt4/mkspecs/features/qt_functions.prf \
141 141 /usr/lib64/qt4/mkspecs/features/qt_config.prf \
142 142 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf \
143 143 /usr/lib64/qt4/mkspecs/features/default_pre.prf \
144 144 sparc.pri \
145 145 /usr/lib64/qt4/mkspecs/features/release.prf \
146 146 /usr/lib64/qt4/mkspecs/features/default_post.prf \
147 147 /usr/lib64/qt4/mkspecs/features/shared.prf \
148 148 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \
149 149 /usr/lib64/qt4/mkspecs/features/warn_on.prf \
150 150 /usr/lib64/qt4/mkspecs/features/resources.prf \
151 151 /usr/lib64/qt4/mkspecs/features/uic.prf \
152 152 /usr/lib64/qt4/mkspecs/features/yacc.prf \
153 153 /usr/lib64/qt4/mkspecs/features/lex.prf \
154 154 /usr/lib64/qt4/mkspecs/features/include_source_dir.prf
155 155 $(QMAKE) -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile fsw-qt.pro
156 156 /usr/lib64/qt4/mkspecs/common/unix.conf:
157 157 /usr/lib64/qt4/mkspecs/common/linux.conf:
158 158 /usr/lib64/qt4/mkspecs/common/gcc-base.conf:
159 159 /usr/lib64/qt4/mkspecs/common/gcc-base-unix.conf:
160 160 /usr/lib64/qt4/mkspecs/common/g++-base.conf:
161 161 /usr/lib64/qt4/mkspecs/common/g++-unix.conf:
162 162 /usr/lib64/qt4/mkspecs/qconfig.pri:
163 163 /usr/lib64/qt4/mkspecs/modules/qt_webkit.pri:
164 164 /usr/lib64/qt4/mkspecs/features/qt_functions.prf:
165 165 /usr/lib64/qt4/mkspecs/features/qt_config.prf:
166 166 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf:
167 167 /usr/lib64/qt4/mkspecs/features/default_pre.prf:
168 168 sparc.pri:
169 169 /usr/lib64/qt4/mkspecs/features/release.prf:
170 170 /usr/lib64/qt4/mkspecs/features/default_post.prf:
171 171 /usr/lib64/qt4/mkspecs/features/shared.prf:
172 172 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf:
173 173 /usr/lib64/qt4/mkspecs/features/warn_on.prf:
174 174 /usr/lib64/qt4/mkspecs/features/resources.prf:
175 175 /usr/lib64/qt4/mkspecs/features/uic.prf:
176 176 /usr/lib64/qt4/mkspecs/features/yacc.prf:
177 177 /usr/lib64/qt4/mkspecs/features/lex.prf:
178 178 /usr/lib64/qt4/mkspecs/features/include_source_dir.prf:
179 179 qmake: FORCE
180 180 @$(QMAKE) -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile fsw-qt.pro
181 181
182 182 dist:
183 183 @$(CHK_DIR_EXISTS) obj/fsw1.0.0 || $(MKDIR) obj/fsw1.0.0
184 184 $(COPY_FILE) --parents $(SOURCES) $(DIST) obj/fsw1.0.0/ && (cd `dirname obj/fsw1.0.0` && $(TAR) fsw1.0.0.tar fsw1.0.0 && $(COMPRESS) fsw1.0.0.tar) && $(MOVE) `dirname obj/fsw1.0.0`/fsw1.0.0.tar.gz . && $(DEL_FILE) -r obj/fsw1.0.0
185 185
186 186
187 187 clean:compiler_clean
188 188 -$(DEL_FILE) $(OBJECTS)
189 189 -$(DEL_FILE) *~ core *.core
190 190
191 191
192 192 ####### Sub-libraries
193 193
194 194 distclean: clean
195 195 -$(DEL_FILE) $(TARGET)
196 196 -$(DEL_FILE) Makefile
197 197
198 198
199 199 grmon:
200 200 cd bin && C:/opt/grmon-eval-2.0.29b/win32/bin/grmon.exe -uart COM4 -u
201 201
202 202 check: first
203 203
204 204 compiler_rcc_make_all:
205 205 compiler_rcc_clean:
206 206 compiler_uic_make_all:
207 207 compiler_uic_clean:
208 208 compiler_image_collection_make_all: qmake_image_collection.cpp
209 209 compiler_image_collection_clean:
210 210 -$(DEL_FILE) qmake_image_collection.cpp
211 211 compiler_yacc_decl_make_all:
212 212 compiler_yacc_decl_clean:
213 213 compiler_yacc_impl_make_all:
214 214 compiler_yacc_impl_clean:
215 215 compiler_lex_make_all:
216 216 compiler_lex_clean:
217 217 compiler_clean:
218 218
219 219 ####### Compile
220 220
221 221 obj/wf_handler.o: ../src/wf_handler.c
222 222 $(CC) -c $(CFLAGS) $(INCPATH) -o obj/wf_handler.o ../src/wf_handler.c
223 223
224 224 obj/tc_handler.o: ../src/tc_handler.c
225 225 $(CC) -c $(CFLAGS) $(INCPATH) -o obj/tc_handler.o ../src/tc_handler.c
226 226
227 227 obj/fsw_misc.o: ../src/fsw_misc.c
228 228 $(CC) -c $(CFLAGS) $(INCPATH) -o obj/fsw_misc.o ../src/fsw_misc.c
229 229
230 230 obj/fsw_init.o: ../src/fsw_init.c ../src/fsw_config.c
231 231 $(CC) -c $(CFLAGS) $(INCPATH) -o obj/fsw_init.o ../src/fsw_init.c
232 232
233 233 obj/fsw_globals.o: ../src/fsw_globals.c
234 234 $(CC) -c $(CFLAGS) $(INCPATH) -o obj/fsw_globals.o ../src/fsw_globals.c
235 235
236 236 obj/fsw_spacewire.o: ../src/fsw_spacewire.c
237 237 $(CC) -c $(CFLAGS) $(INCPATH) -o obj/fsw_spacewire.o ../src/fsw_spacewire.c
238 238
239 239 obj/tc_load_dump_parameters.o: ../src/tc_load_dump_parameters.c
240 240 $(CC) -c $(CFLAGS) $(INCPATH) -o obj/tc_load_dump_parameters.o ../src/tc_load_dump_parameters.c
241 241
242 242 obj/tm_lfr_tc_exe.o: ../src/tm_lfr_tc_exe.c
243 243 $(CC) -c $(CFLAGS) $(INCPATH) -o obj/tm_lfr_tc_exe.o ../src/tm_lfr_tc_exe.c
244 244
245 245 obj/tc_acceptance.o: ../src/tc_acceptance.c
246 246 $(CC) -c $(CFLAGS) $(INCPATH) -o obj/tc_acceptance.o ../src/tc_acceptance.c
247 247
248 248 obj/fsw_processing.o: ../src/processing/fsw_processing.c
249 249 $(CC) -c $(CFLAGS) $(INCPATH) -o obj/fsw_processing.o ../src/processing/fsw_processing.c
250 250
251 251 obj/avf0_prc0.o: ../src/processing/avf0_prc0.c
252 252 $(CC) -c $(CFLAGS) $(INCPATH) -o obj/avf0_prc0.o ../src/processing/avf0_prc0.c
253 253
254 254 obj/avf1_prc1.o: ../src/processing/avf1_prc1.c
255 255 $(CC) -c $(CFLAGS) $(INCPATH) -o obj/avf1_prc1.o ../src/processing/avf1_prc1.c
256 256
257 257 obj/avf2_prc2.o: ../src/processing/avf2_prc2.c
258 258 $(CC) -c $(CFLAGS) $(INCPATH) -o obj/avf2_prc2.o ../src/processing/avf2_prc2.c
259 259
260 260 obj/lfr_cpu_usage_report.o: ../src/lfr_cpu_usage_report.c
261 261 $(CC) -c $(CFLAGS) $(INCPATH) -o obj/lfr_cpu_usage_report.o ../src/lfr_cpu_usage_report.c
262 262
263 263 obj/basic_parameters.o: ../src/LFR_basic-parameters/basic_parameters.c
264 264 $(CC) -c $(CFLAGS) $(INCPATH) -o obj/basic_parameters.o ../src/LFR_basic-parameters/basic_parameters.c
265 265
266 266 ####### Install
267 267
268 268 install: FORCE
269 269
270 270 uninstall: FORCE
271 271
272 272 FORCE:
273 273
@@ -1,107 +1,109
1 1 TEMPLATE = app
2 2 # CONFIG += console v8 sim
3 3 # CONFIG options = verbose *** boot_messages *** debug_messages *** cpu_usage_report *** stack_report *** vhdl_dev *** debug_tch
4 4 # lpp_dpu_destid
5 5 CONFIG += console verbose lpp_dpu_destid
6 6 CONFIG -= qt
7 7
8 8 include(./sparc.pri)
9 9
10 10 # flight software version
11 11 SWVERSION=-1-0
12 12 DEFINES += SW_VERSION_N1=2 # major
13 13 DEFINES += SW_VERSION_N2=0 # minor
14 14 DEFINES += SW_VERSION_N3=1 # patch
15 15 DEFINES += SW_VERSION_N4=1 # internal
16 16
17 17 # <GCOV>
18 18 #QMAKE_CFLAGS_RELEASE += -fprofile-arcs -ftest-coverage
19 19 #LIBS += -lgcov /opt/GCOV/01A/lib/overload.o -lc
20 20 # </GCOV>
21 21
22 22 # <CHANGE BEFORE FLIGHT>
23 23 contains( CONFIG, lpp_dpu_destid ) {
24 24 DEFINES += LPP_DPU_DESTID
25 25 }
26 26 # </CHANGE BEFORE FLIGHT>
27 27
28 28 contains( CONFIG, debug_tch ) {
29 29 DEFINES += DEBUG_TCH
30 30 }
31 31
32 32 contains( CONFIG, vhdl_dev ) {
33 33 DEFINES += VHDL_DEV
34 34 }
35 35
36 36 contains( CONFIG, verbose ) {
37 37 DEFINES += PRINT_MESSAGES_ON_CONSOLE
38 38 }
39 39
40 40 contains( CONFIG, debug_messages ) {
41 41 DEFINES += DEBUG_MESSAGES
42 42 }
43 43
44 44 contains( CONFIG, cpu_usage_report ) {
45 45 DEFINES += PRINT_TASK_STATISTICS
46 46 }
47 47
48 48 contains( CONFIG, stack_report ) {
49 49 DEFINES += PRINT_STACK_REPORT
50 50 }
51 51
52 52 contains( CONFIG, boot_messages ) {
53 53 DEFINES += BOOT_MESSAGES
54 54 }
55 55
56 56 #doxygen.target = doxygen
57 57 #doxygen.commands = doxygen ../doc/Doxyfile
58 58 #QMAKE_EXTRA_TARGETS += doxygen
59 59
60 60 TARGET = fsw
61 61
62 62 INCLUDEPATH += \
63 ../src \
64 ../header \
65 ../header/processing \
66 ../src/LFR_basic-parameters
63 $${PWD}/../src \
64 $${PWD}/../header \
65 $${PWD}/../header/common_lfr_headers \
66 $${PWD}/../header/processing \
67 $${PWD}/../src/LFR_basic-parameters
67 68
68 69 SOURCES += \
69 70 ../src/wf_handler.c \
70 71 ../src/tc_handler.c \
71 72 ../src/fsw_misc.c \
72 73 ../src/fsw_init.c \
73 74 ../src/fsw_globals.c \
74 75 ../src/fsw_spacewire.c \
75 76 ../src/tc_load_dump_parameters.c \
76 77 ../src/tm_lfr_tc_exe.c \
77 78 ../src/tc_acceptance.c \
78 79 ../src/processing/fsw_processing.c \
79 80 ../src/processing/avf0_prc0.c \
80 81 ../src/processing/avf1_prc1.c \
81 82 ../src/processing/avf2_prc2.c \
82 83 ../src/lfr_cpu_usage_report.c \
83 84 ../src/LFR_basic-parameters/basic_parameters.c
84 85
85 86 HEADERS += \
86 87 ../header/wf_handler.h \
87 88 ../header/tc_handler.h \
88 89 ../header/grlib_regs.h \
89 90 ../header/fsw_params.h \
90 91 ../header/fsw_misc.h \
91 92 ../header/fsw_init.h \
92 93 ../header/ccsds_types.h \
93 94 ../header/fsw_spacewire.h \
94 95 ../header/tc_load_dump_parameters.h \
95 96 ../header/tm_lfr_tc_exe.h \
96 97 ../header/tc_acceptance.h \
97 98 ../header/fsw_params_nb_bytes.h \
98 99 ../header/fsw_params_processing.h \
99 100 ../header/processing/fsw_processing.h \
100 101 ../header/processing/avf0_prc0.h \
101 102 ../header/processing/avf1_prc1.h \
102 103 ../header/processing/avf2_prc2.h \
103 104 ../header/fsw_params_wf_handler.h \
104 105 ../header/lfr_cpu_usage_report.h \
105 106 ../src/LFR_basic-parameters/basic_parameters.h \
106 ../src/LFR_basic-parameters/basic_parameters_params.h
107 ../src/LFR_basic-parameters/basic_parameters_params.h \
108 ../header/tm_byte_positions.h
107 109
@@ -1,208 +1,208
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <!DOCTYPE QtCreatorProject>
3 <!-- Written by QtCreator 3.2.1, 2014-12-10T17:20:49. -->
3 <!-- Written by QtCreator 3.2.1, 2014-12-15T12:52:32. -->
4 4 <qtcreator>
5 5 <data>
6 6 <variable>EnvironmentId</variable>
7 7 <value type="QByteArray">{2e58a81f-9962-4bba-ae6b-760177f0656c}</value>
8 8 </data>
9 9 <data>
10 10 <variable>ProjectExplorer.Project.ActiveTarget</variable>
11 11 <value type="int">0</value>
12 12 </data>
13 13 <data>
14 14 <variable>ProjectExplorer.Project.EditorSettings</variable>
15 15 <valuemap type="QVariantMap">
16 16 <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
17 17 <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
18 18 <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
19 19 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
20 20 <value type="QString" key="language">Cpp</value>
21 21 <valuemap type="QVariantMap" key="value">
22 22 <value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
23 23 </valuemap>
24 24 </valuemap>
25 25 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
26 26 <value type="QString" key="language">QmlJS</value>
27 27 <valuemap type="QVariantMap" key="value">
28 28 <value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
29 29 </valuemap>
30 30 </valuemap>
31 31 <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
32 32 <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
33 33 <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
34 34 <value type="int" key="EditorConfiguration.IndentSize">4</value>
35 35 <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
36 36 <value type="int" key="EditorConfiguration.MarginColumn">80</value>
37 37 <value type="bool" key="EditorConfiguration.MouseHiding">true</value>
38 38 <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
39 39 <value type="int" key="EditorConfiguration.PaddingMode">1</value>
40 40 <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
41 41 <value type="bool" key="EditorConfiguration.ShowMargin">false</value>
42 42 <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
43 43 <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
44 44 <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
45 45 <value type="int" key="EditorConfiguration.TabSize">8</value>
46 46 <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
47 47 <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
48 48 <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
49 49 <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
50 50 <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
51 51 <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
52 52 </valuemap>
53 53 </data>
54 54 <data>
55 55 <variable>ProjectExplorer.Project.PluginSettings</variable>
56 56 <valuemap type="QVariantMap"/>
57 57 </data>
58 58 <data>
59 59 <variable>ProjectExplorer.Project.Target.0</variable>
60 60 <valuemap type="QVariantMap">
61 61 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop-Qt 4.8.2 in PATH (System)</value>
62 62 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop-Qt 4.8.2 in PATH (System)</value>
63 63 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{5289e843-9ef2-45ce-88c6-ad27d8e08def}</value>
64 64 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
65 65 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
66 66 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
67 67 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
68 68 <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory"></value>
69 69 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
70 70 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
71 71 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
72 72 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
73 73 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
74 74 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
75 75 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
76 76 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
77 77 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
78 78 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
79 79 </valuemap>
80 80 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
81 81 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
82 82 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
83 83 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
84 84 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
85 85 <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
86 86 <value type="QString">-w</value>
87 87 <value type="QString">-r</value>
88 88 </valuelist>
89 89 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
90 90 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
91 91 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
92 92 </valuemap>
93 93 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
94 94 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
95 95 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
96 96 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
97 97 </valuemap>
98 98 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
99 99 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
100 100 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
101 101 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
102 102 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
103 103 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
104 104 <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments">
105 105 <value type="QString">-w</value>
106 106 <value type="QString">-r</value>
107 107 </valuelist>
108 108 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
109 109 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
110 110 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
111 111 </valuemap>
112 112 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
113 113 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
114 114 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
115 115 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
116 116 </valuemap>
117 117 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
118 118 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
119 119 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
120 120 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
121 121 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
122 122 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
123 123 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
124 124 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
125 125 </valuemap>
126 126 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
127 127 <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
128 128 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
129 129 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
130 130 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
131 131 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
132 132 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
133 133 </valuemap>
134 134 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
135 135 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value>
136 136 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
137 137 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
138 138 </valuemap>
139 139 <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
140 140 <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
141 141 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
142 142 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
143 143 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
144 144 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
145 145 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
146 146 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
147 147 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
148 148 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
149 149 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
150 150 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
151 151 <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
152 152 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
153 153 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
154 154 <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
155 155 <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
156 156 <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
157 157 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
158 158 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
159 159 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
160 160 <value type="int">0</value>
161 161 <value type="int">1</value>
162 162 <value type="int">2</value>
163 163 <value type="int">3</value>
164 164 <value type="int">4</value>
165 165 <value type="int">5</value>
166 166 <value type="int">6</value>
167 167 <value type="int">7</value>
168 168 <value type="int">8</value>
169 169 <value type="int">9</value>
170 170 <value type="int">10</value>
171 171 <value type="int">11</value>
172 172 <value type="int">12</value>
173 173 <value type="int">13</value>
174 174 <value type="int">14</value>
175 175 </valuelist>
176 176 <value type="int" key="PE.EnvironmentAspect.Base">2</value>
177 177 <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
178 178 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">fsw-qt</value>
179 179 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
180 180 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/opt/DEV_PLE/FSW-qt/fsw-qt.pro</value>
181 181 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
182 182 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">fsw-qt.pro</value>
183 183 <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
184 184 <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">true</value>
185 185 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
186 186 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
187 187 <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
188 188 <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">false</value>
189 189 <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
190 190 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
191 191 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
192 192 </valuemap>
193 193 <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
194 194 </valuemap>
195 195 </data>
196 196 <data>
197 197 <variable>ProjectExplorer.Project.TargetCount</variable>
198 198 <value type="int">1</value>
199 199 </data>
200 200 <data>
201 201 <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
202 202 <value type="int">16</value>
203 203 </data>
204 204 <data>
205 205 <variable>Version</variable>
206 206 <value type="int">16</value>
207 207 </data>
208 208 </qtcreator>
@@ -1,46 +1,47
1 1 #ifndef FSW_MISC_H_INCLUDED
2 2 #define FSW_MISC_H_INCLUDED
3 3
4 4 #include <rtems.h>
5 5 #include <stdio.h>
6 6 #include <grspw.h>
7 #include <grlib_regs.h>
7 8
8 9 #include "fsw_params.h"
9 10 #include "fsw_spacewire.h"
10 11 #include "lfr_cpu_usage_report.h"
11 12
12 13 rtems_name name_hk_rate_monotonic; // name of the HK rate monotonic
13 14 rtems_id HK_id; // id of the HK rate monotonic period
14 15
15 16 void configure_timer(gptimer_regs_t *gptimer_regs, unsigned char timer, unsigned int clock_divider,
16 17 unsigned char interrupt_level, rtems_isr (*timer_isr)() );
17 18 void timer_start( gptimer_regs_t *gptimer_regs, unsigned char timer );
18 19 void timer_stop( gptimer_regs_t *gptimer_regs, unsigned char timer );
19 20 void timer_set_clock_divider(gptimer_regs_t *gptimer_regs, unsigned char timer, unsigned int clock_divider);
20 21
21 22 // SERIAL LINK
22 23 int send_console_outputs_on_apbuart_port( void );
23 24 int enable_apbuart_transmitter( void );
24 25 void set_apbuart_scaler_reload_register(unsigned int regs, unsigned int value);
25 26
26 27 // RTEMS TASKS
27 28 rtems_task stat_task( rtems_task_argument argument );
28 29 rtems_task hous_task( rtems_task_argument argument );
29 30 rtems_task dumb_task( rtems_task_argument unused );
30 31
31 32 void init_housekeeping_parameters( void );
32 33 void increment_seq_counter(unsigned short *packetSequenceControl);
33 34 void getTime( unsigned char *time);
34 35 unsigned long long int getTimeAsUnsignedLongLongInt( );
35 36 void send_dumb_hk( void );
36 37 void get_v_e1_e2_f3(unsigned char *spacecraft_potential);
37 38 void get_cpu_load( unsigned char *resource_statistics );
38 39
39 40 extern int sched_yield( void );
40 41 extern void rtems_cpu_usage_reset();
41 42 extern ring_node *current_ring_node_f3;
42 43 extern ring_node *ring_node_to_send_cwf_f3;
43 44 extern ring_node waveform_ring_f3[];
44 45 extern unsigned short sequenceCounterHK;
45 46
46 47 #endif // FSW_MISC_H_INCLUDED
@@ -1,266 +1,267
1 1 #ifndef FSW_PROCESSING_H_INCLUDED
2 2 #define FSW_PROCESSING_H_INCLUDED
3 3
4 4 #include <rtems.h>
5 5 #include <grspw.h>
6 6 #include <math.h>
7 7 #include <stdlib.h> // abs() is in the stdlib
8 8 #include <stdio.h> // printf()
9 9 #include <math.h>
10 #include <grlib_regs.h>
10 11
11 12 #include "fsw_params.h"
12 13 #include "fsw_spacewire.h"
13 14
14 15 typedef struct ring_node_asm
15 16 {
16 17 struct ring_node_asm *next;
17 18 float matrix[ TOTAL_SIZE_SM ];
18 19 unsigned int status;
19 20 } ring_node_asm;
20 21
21 22 typedef struct
22 23 {
23 24 Header_TM_LFR_SCIENCE_BP_t header;
24 25 unsigned char data[ 30 * 22 ]; // MAX size is 22 * 30 [TM_LFR_SCIENCE_BURST_BP2_F1]
25 26 } bp_packet;
26 27
27 28 typedef struct
28 29 {
29 30 Header_TM_LFR_SCIENCE_BP_with_spare_t header;
30 31 unsigned char data[ 9 * 13 ]; // only for TM_LFR_SCIENCE_NORMAL_BP1_F0 and F1
31 32 } bp_packet_with_spare;
32 33
33 34 typedef struct
34 35 {
35 36 ring_node_asm *norm;
36 37 ring_node_asm *burst_sbm;
37 38 rtems_event_set event;
38 39 unsigned int coarseTime;
39 40 unsigned int fineTime;
40 41 } asm_msg;
41 42
42 43 extern volatile int sm_f0[ ];
43 44 extern volatile int sm_f1[ ];
44 45 extern volatile int sm_f2[ ];
45 46
46 47 // parameters
47 48 extern struct param_local_str param_local;
48 49
49 50 // registers
50 51 extern time_management_regs_t *time_management_regs;
51 52 extern spectral_matrix_regs_t *spectral_matrix_regs;
52 53
53 54 extern rtems_name misc_name[5];
54 55 extern rtems_id Task_id[20]; /* array of task ids */
55 56
56 57 // ISR
57 58 rtems_isr spectral_matrices_isr( rtems_vector_number vector );
58 59 rtems_isr spectral_matrices_isr_simu( rtems_vector_number vector );
59 60
60 61 //******************
61 62 // Spectral Matrices
62 63 void reset_nb_sm( void );
63 64 // SM
64 65 void SM_init_rings( void );
65 66 void SM_reset_current_ring_nodes( void );
66 67 // ASM
67 68 void ASM_generic_init_ring(ring_node_asm *ring, unsigned char nbNodes );
68 69
69 70 //*****************
70 71 // Basic Parameters
71 72
72 73 void BP_reset_current_ring_nodes( void );
73 74 void BP_init_header( Header_TM_LFR_SCIENCE_BP_t *header,
74 75 unsigned int apid, unsigned char sid,
75 76 unsigned int packetLength , unsigned char blkNr);
76 77 void BP_init_header_with_spare( Header_TM_LFR_SCIENCE_BP_with_spare_t *header,
77 78 unsigned int apid, unsigned char sid,
78 79 unsigned int packetLength, unsigned char blkNr );
79 80 void BP_send( char *data,
80 81 rtems_id queue_id ,
81 82 unsigned int nbBytesToSend , unsigned int sid );
82 83
83 84 //******************
84 85 // general functions
85 86 void reset_sm_status( void );
86 87 void reset_spectral_matrix_regs( void );
87 88 void set_time(unsigned char *time, unsigned char *timeInBuffer );
88 89 unsigned long long int get_acquisition_time( unsigned char *timePtr );
89 90 void close_matrix_actions( unsigned int *nb_sm, unsigned int nb_sm_before_avf, rtems_id avf_task_id,
90 91 ring_node *node_for_averaging, ring_node *ringNode, unsigned long long int time );
91 92 unsigned char getSID( rtems_event_set event );
92 93
93 94 extern rtems_status_code get_message_queue_id_prc1( rtems_id *queue_id );
94 95 extern rtems_status_code get_message_queue_id_prc2( rtems_id *queue_id );
95 96
96 97 //***************************************
97 98 // DEFINITIONS OF STATIC INLINE FUNCTIONS
98 99 static inline void SM_average(float *averaged_spec_mat_NORM, float *averaged_spec_mat_SBM,
99 100 ring_node *ring_node_tab[],
100 101 unsigned int nbAverageNORM, unsigned int nbAverageSBM );
101 102 static inline void SM_average_debug( float *averaged_spec_mat_NORM, float *averaged_spec_mat_SBM,
102 103 ring_node *ring_node_tab[],
103 104 unsigned int nbAverageNORM, unsigned int nbAverageSBM );
104 105 static inline void ASM_reorganize_and_divide(float *averaged_spec_mat, float *averaged_spec_mat_reorganized,
105 106 float divider );
106 107 static inline void ASM_compress_reorganize_and_divide(float *averaged_spec_mat, float *compressed_spec_mat,
107 108 float divider,
108 109 unsigned char nbBinsCompressedMatrix, unsigned char nbBinsToAverage , unsigned char ASMIndexStart);
109 110 static inline void ASM_convert(volatile float *input_matrix, char *output_matrix);
110 111
111 112 void SM_average( float *averaged_spec_mat_NORM, float *averaged_spec_mat_SBM,
112 113 ring_node *ring_node_tab[],
113 114 unsigned int nbAverageNORM, unsigned int nbAverageSBM )
114 115 {
115 116 float sum;
116 117 unsigned int i;
117 118
118 119 for(i=0; i<TOTAL_SIZE_SM; i++)
119 120 {
120 121 sum = ( (int *) (ring_node_tab[0]->buffer_address) ) [ i ]
121 122 + ( (int *) (ring_node_tab[1]->buffer_address) ) [ i ]
122 123 + ( (int *) (ring_node_tab[2]->buffer_address) ) [ i ]
123 124 + ( (int *) (ring_node_tab[3]->buffer_address) ) [ i ]
124 125 + ( (int *) (ring_node_tab[4]->buffer_address) ) [ i ]
125 126 + ( (int *) (ring_node_tab[5]->buffer_address) ) [ i ]
126 127 + ( (int *) (ring_node_tab[6]->buffer_address) ) [ i ]
127 128 + ( (int *) (ring_node_tab[7]->buffer_address) ) [ i ];
128 129
129 130 if ( (nbAverageNORM == 0) && (nbAverageSBM == 0) )
130 131 {
131 132 averaged_spec_mat_NORM[ i ] = sum;
132 133 averaged_spec_mat_SBM[ i ] = sum;
133 134 }
134 135 else if ( (nbAverageNORM != 0) && (nbAverageSBM != 0) )
135 136 {
136 137 averaged_spec_mat_NORM[ i ] = ( averaged_spec_mat_NORM[ i ] + sum );
137 138 averaged_spec_mat_SBM[ i ] = ( averaged_spec_mat_SBM[ i ] + sum );
138 139 }
139 140 else if ( (nbAverageNORM != 0) && (nbAverageSBM == 0) )
140 141 {
141 142 averaged_spec_mat_NORM[ i ] = ( averaged_spec_mat_NORM[ i ] + sum );
142 143 averaged_spec_mat_SBM[ i ] = sum;
143 144 }
144 145 else
145 146 {
146 147 PRINTF2("ERR *** in SM_average *** unexpected parameters %d %d\n", nbAverageNORM, nbAverageSBM)
147 148 }
148 149 }
149 150 }
150 151
151 152 void SM_average_debug( float *averaged_spec_mat_NORM, float *averaged_spec_mat_SBM,
152 153 ring_node *ring_node_tab[],
153 154 unsigned int nbAverageNORM, unsigned int nbAverageSBM )
154 155 {
155 156 float sum;
156 157 unsigned int i;
157 158
158 159 for(i=0; i<TOTAL_SIZE_SM; i++)
159 160 {
160 161 sum = ( (int *) (ring_node_tab[0]->buffer_address) ) [ i ];
161 162
162 163 if ( (nbAverageNORM == 0) && (nbAverageSBM == 0) )
163 164 {
164 165 averaged_spec_mat_NORM[ i ] = sum;
165 166 averaged_spec_mat_SBM[ i ] = sum;
166 167 }
167 168 else if ( (nbAverageNORM != 0) && (nbAverageSBM != 0) )
168 169 {
169 170 averaged_spec_mat_NORM[ i ] = sum;
170 171 averaged_spec_mat_SBM[ i ] = sum;
171 172 }
172 173 else if ( (nbAverageNORM != 0) && (nbAverageSBM == 0) )
173 174 {
174 175 averaged_spec_mat_NORM[ i ] = sum;
175 176 averaged_spec_mat_SBM[ i ] = sum;
176 177 }
177 178 else
178 179 {
179 180 PRINTF2("ERR *** in SM_average *** unexpected parameters %d %d\n", nbAverageNORM, nbAverageSBM)
180 181 }
181 182 }
182 183 }
183 184
184 185 void ASM_reorganize_and_divide( float *averaged_spec_mat, float *averaged_spec_mat_reorganized, float divider )
185 186 {
186 187 int frequencyBin;
187 188 int asmComponent;
188 189 unsigned int offsetAveragedSpecMatReorganized;
189 190 unsigned int offsetAveragedSpecMat;
190 191
191 192 for (asmComponent = 0; asmComponent < NB_VALUES_PER_SM; asmComponent++)
192 193 {
193 194 for( frequencyBin = 0; frequencyBin < NB_BINS_PER_SM; frequencyBin++ )
194 195 {
195 196 offsetAveragedSpecMatReorganized =
196 197 frequencyBin * NB_VALUES_PER_SM
197 198 + asmComponent;
198 199 offsetAveragedSpecMat =
199 200 asmComponent * NB_BINS_PER_SM
200 201 + frequencyBin;
201 202 averaged_spec_mat_reorganized[offsetAveragedSpecMatReorganized ] =
202 203 averaged_spec_mat[ offsetAveragedSpecMat ] / divider;
203 204 }
204 205 }
205 206 }
206 207
207 208 void ASM_compress_reorganize_and_divide(float *averaged_spec_mat, float *compressed_spec_mat , float divider,
208 209 unsigned char nbBinsCompressedMatrix, unsigned char nbBinsToAverage, unsigned char ASMIndexStart )
209 210 {
210 211 int frequencyBin;
211 212 int asmComponent;
212 213 int offsetASM;
213 214 int offsetCompressed;
214 215 int k;
215 216
216 217 // build data
217 218 for (asmComponent = 0; asmComponent < NB_VALUES_PER_SM; asmComponent++)
218 219 {
219 220 for( frequencyBin = 0; frequencyBin < nbBinsCompressedMatrix; frequencyBin++ )
220 221 {
221 222 offsetCompressed = // NO TIME OFFSET
222 223 frequencyBin * NB_VALUES_PER_SM
223 224 + asmComponent;
224 225 offsetASM = // NO TIME OFFSET
225 226 asmComponent * NB_BINS_PER_SM
226 227 + ASMIndexStart
227 228 + frequencyBin * nbBinsToAverage;
228 229 compressed_spec_mat[ offsetCompressed ] = 0;
229 230 for ( k = 0; k < nbBinsToAverage; k++ )
230 231 {
231 232 compressed_spec_mat[offsetCompressed ] =
232 233 ( compressed_spec_mat[ offsetCompressed ]
233 234 + averaged_spec_mat[ offsetASM + k ] ) / (divider * nbBinsToAverage);
234 235 }
235 236 }
236 237 }
237 238 }
238 239
239 240 void ASM_convert( volatile float *input_matrix, char *output_matrix)
240 241 {
241 242 unsigned int frequencyBin;
242 243 unsigned int asmComponent;
243 244 char * pt_char_input;
244 245 char * pt_char_output;
245 246 unsigned int offsetInput;
246 247 unsigned int offsetOutput;
247 248
248 249 pt_char_input = (char*) &input_matrix;
249 250 pt_char_output = (char*) &output_matrix;
250 251
251 252 // convert all other data
252 253 for( frequencyBin=0; frequencyBin<NB_BINS_PER_SM; frequencyBin++)
253 254 {
254 255 for ( asmComponent=0; asmComponent<NB_VALUES_PER_SM; asmComponent++)
255 256 {
256 257 offsetInput = (frequencyBin*NB_VALUES_PER_SM) + asmComponent ;
257 258 offsetOutput = 2 * ( (frequencyBin*NB_VALUES_PER_SM) + asmComponent ) ;
258 259 pt_char_input = (char*) &input_matrix [ offsetInput ];
259 260 pt_char_output = (char*) &output_matrix[ offsetOutput ];
260 261 pt_char_output[0] = pt_char_input[0]; // bits 31 downto 24 of the float
261 262 pt_char_output[1] = pt_char_input[1]; // bits 23 downto 16 of the float
262 263 }
263 264 }
264 265 }
265 266
266 267 #endif // FSW_PROCESSING_H_INCLUDED
@@ -1,26 +1,27
1 1 #ifndef TM_LFR_TC_EXE_H_INCLUDED
2 2 #define TM_LFR_TC_EXE_H_INCLUDED
3 3
4 4 #include <rtems.h>
5 5 #include <stdio.h>
6 #include <ccsds_types.h>
6 7
7 8 #include "fsw_params.h"
8 9 #include "fsw_spacewire.h"
9 10
10 11 extern unsigned short sequenceCounters_TC_EXE[];
11 12
12 13 int send_tm_lfr_tc_exe_success( ccsdsTelecommandPacket_t *TC, rtems_id queue_id );
13 14 int send_tm_lfr_tc_exe_inconsistent( ccsdsTelecommandPacket_t *TC, rtems_id queue_id,
14 15 unsigned char byte_position, unsigned char rcv_value );
15 16 int send_tm_lfr_tc_exe_not_executable( ccsdsTelecommandPacket_t *TC, rtems_id queue_id );
16 17 int send_tm_lfr_tc_exe_not_implemented( ccsdsTelecommandPacket_t *TC, rtems_id queue_id, unsigned char *time );
17 18 int send_tm_lfr_tc_exe_error(ccsdsTelecommandPacket_t *TC, rtems_id queue_id );
18 19 int send_tm_lfr_tc_exe_corrupted( ccsdsTelecommandPacket_t *TC, rtems_id queue_id,
19 20 unsigned char *computed_CRC, unsigned char *currentTC_LEN_RCV, unsigned char destinationID );
20 21
21 22 void increment_seq_counter_destination_id( unsigned char *packet_sequence_control, unsigned char destination_id );
22 23
23 24 #endif // TM_LFR_TC_EXE_H_INCLUDED
24 25
25 26
26 27
@@ -1,88 +1,88
1 1 #ifndef WF_HANDLER_H_INCLUDED
2 2 #define WF_HANDLER_H_INCLUDED
3 3
4 4 #include <rtems.h>
5 5 #include <grspw.h>
6 6 #include <stdio.h>
7 7 #include <math.h>
8 #include <fsw_params.h>
8 9
9 #include "fsw_params.h"
10 10 #include "fsw_spacewire.h"
11 11 #include "fsw_misc.h"
12 12 #include "fsw_params_wf_handler.h"
13 13
14 14 #define pi 3.1415
15 15
16 16 extern int fdSPW;
17 17
18 18 //*****************
19 19 // waveform buffers
20 20 extern volatile int wf_buffer_f0[ ];
21 21 extern volatile int wf_buffer_f1[ ];
22 22 extern volatile int wf_buffer_f2[ ];
23 23 extern volatile int wf_buffer_f3[ ];
24 24 extern char wf_cont_f3_light[ ];
25 25
26 26 extern waveform_picker_regs_0_1_18_t *waveform_picker_regs;
27 27 extern time_management_regs_t *time_management_regs;
28 28 extern Packet_TM_LFR_HK_t housekeeping_packet;
29 29 extern Packet_TM_LFR_PARAMETER_DUMP_t parameter_dump_packet;
30 30 extern struct param_local_str param_local;
31 31
32 32 extern unsigned short sequenceCounters_SCIENCE_NORMAL_BURST;
33 33 extern unsigned short sequenceCounters_SCIENCE_SBM1_SBM2;
34 34
35 35 extern rtems_id Task_id[20]; /* array of task ids */
36 36
37 37 extern unsigned char lfrCurrentMode;
38 38
39 39 //**********
40 40 // RTEMS_ISR
41 41 void reset_extractSWF( void );
42 42 rtems_isr waveforms_isr( rtems_vector_number vector );
43 43
44 44 //***********
45 45 // RTEMS_TASK
46 46 rtems_task wfrm_task( rtems_task_argument argument );
47 47 rtems_task cwf3_task( rtems_task_argument argument );
48 48 rtems_task cwf2_task( rtems_task_argument argument );
49 49 rtems_task cwf1_task( rtems_task_argument argument );
50 50 rtems_task swbd_task( rtems_task_argument argument );
51 51
52 52 //******************
53 53 // general functions
54 54 void WFP_init_rings( void );
55 55 void init_ring( ring_node ring[], unsigned char nbNodes, volatile int buffer[] , unsigned int bufferSize );
56 56 void WFP_reset_current_ring_nodes( void );
57 57 //
58 58 int init_header_continuous_cwf3_light_table( Header_TM_LFR_SCIENCE_CWF_t *headerCWF );
59 59 //
60 60 int send_waveform_CWF3_light(ring_node *ring_node_to_send, ring_node *ring_node_cwf3_light, rtems_id queue_id );
61 61 //
62 62 void compute_acquisition_time(unsigned int coarseTime, unsigned int fineTime,
63 63 unsigned int sid, unsigned char pa_lfr_pkt_nr, unsigned char *acquisitionTime );
64 64 void build_snapshot_from_ring(ring_node *ring_node_to_send , unsigned char frequencyChannel );
65 65 void snapshot_resynchronization( unsigned char *timePtr );
66 66 //
67 67 rtems_id get_pkts_queue_id( void );
68 68
69 69 //**************
70 70 // wfp registers
71 71 // RESET
72 72 void reset_wfp_burst_enable( void );
73 73 void reset_wfp_status( void );
74 74 void reset_wfp_buffer_addresses( void );
75 75 void reset_waveform_picker_regs( void );
76 76 // SET
77 77 void set_wfp_data_shaping(void);
78 78 void set_wfp_burst_enable_register( unsigned char mode );
79 79 void set_wfp_delta_snapshot( void );
80 80 void set_wfp_delta_f0_f0_2( void );
81 81 void set_wfp_delta_f1( void );
82 82 void set_wfp_delta_f2( void );
83 83
84 84 //*****************
85 85 // local parameters
86 86 void increment_seq_counter_source_id( unsigned char *packet_sequence_control, unsigned int sid );
87 87
88 88 #endif // WF_HANDLER_H_INCLUDED
1 NO CONTENT: file was removed
1 NO CONTENT: file was removed
1 NO CONTENT: file was removed
1 NO CONTENT: file was removed
1 NO CONTENT: file was removed
1 NO CONTENT: file was removed
General Comments 0
You need to be logged in to leave comments. Login now