##// END OF EJS Templates
First version of the rings for the waveform picker.
paul -
r87:aa2133db3e0a VHDLib206
parent child
Show More
@@ -1,21 +1,21
1 #############################################################################
1 #############################################################################
2 # Makefile for building: bin/fsw
2 # Makefile for building: bin/fsw
3 # Generated by qmake (2.01a) (Qt 4.8.5) on: Thu Nov 21 17:20:36 2013
3 # Generated by qmake (2.01a) (Qt 4.8.5) on: Mon Jan 20 12:52:59 2014
4 # Project: fsw-qt.pro
4 # Project: fsw-qt.pro
5 # Template: app
5 # Template: app
6 # Command: /usr/bin/qmake-qt4 -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile fsw-qt.pro
6 # Command: /usr/bin/qmake-qt4 -spec /usr/lib64/qt4/mkspecs/linux-g++ CONFIG+=debug -o Makefile fsw-qt.pro
7 #############################################################################
7 #############################################################################
8
8
9 ####### Compiler, tools and options
9 ####### Compiler, tools and options
10
10
11 CC = sparc-rtems-gcc
11 CC = sparc-rtems-gcc
12 CXX = sparc-rtems-g++
12 CXX = sparc-rtems-g++
13 DEFINES = -DSW_VERSION_N1=1 -DSW_VERSION_N2=0 -DSW_VERSION_N3=0 -DSW_VERSION_N4=1 -DPRINT_MESSAGES_ON_CONSOLE
13 DEFINES = -DSW_VERSION_N1=1 -DSW_VERSION_N2=0 -DSW_VERSION_N3=0 -DSW_VERSION_N4=1 -DPRINT_MESSAGES_ON_CONSOLE -DDEBUG_MESSAGES
14 CFLAGS = -pipe -O3 -Wall $(DEFINES)
14 CFLAGS = -pipe -g -O3 -Wall $(DEFINES)
15 CXXFLAGS = -pipe -O3 -Wall $(DEFINES)
15 CXXFLAGS = -pipe -O3 -Wall $(DEFINES)
16 INCPATH = -I/usr/lib64/qt4/mkspecs/linux-g++ -I. -I../src -I../header
16 INCPATH = -I/usr/lib64/qt4/mkspecs/linux-g++ -I. -I../src -I../header
17 LINK = sparc-rtems-g++
17 LINK = sparc-rtems-g++
18 LFLAGS =
18 LFLAGS = -g
19 LIBS = $(SUBLIBS)
19 LIBS = $(SUBLIBS)
20 AR = sparc-rtems-ar rcs
20 AR = sparc-rtems-ar rcs
21 RANLIB =
21 RANLIB =
@@ -76,7 +76,7 DIST = /usr/lib64/qt4/mkspecs/c
76 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf \
76 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf \
77 /usr/lib64/qt4/mkspecs/features/default_pre.prf \
77 /usr/lib64/qt4/mkspecs/features/default_pre.prf \
78 sparc.pri \
78 sparc.pri \
79 /usr/lib64/qt4/mkspecs/features/release.prf \
79 /usr/lib64/qt4/mkspecs/features/debug.prf \
80 /usr/lib64/qt4/mkspecs/features/default_post.prf \
80 /usr/lib64/qt4/mkspecs/features/default_post.prf \
81 /usr/lib64/qt4/mkspecs/features/shared.prf \
81 /usr/lib64/qt4/mkspecs/features/shared.prf \
82 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \
82 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \
@@ -118,6 +118,7 all: Makefile $(TARGET)
118 $(TARGET): $(OBJECTS)
118 $(TARGET): $(OBJECTS)
119 @$(CHK_DIR_EXISTS) bin/ || $(MKDIR) bin/
119 @$(CHK_DIR_EXISTS) bin/ || $(MKDIR) bin/
120 $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
120 $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
121 { test -n "$(DESTDIR)" && DESTDIR="$(DESTDIR)" || DESTDIR=.; } && test $$(gdb --version | sed -e 's,[^0-9]\+\([0-9]\)\.\([0-9]\).*,\1\2,;q') -gt 72 && gdb --nx --batch --quiet -ex 'set confirm off' -ex "save gdb-index $$DESTDIR" -ex quit '$(TARGET)' && test -f $(TARGET).gdb-index && sparc-rtems-objcopy --add-section '.gdb_index=$(TARGET).gdb-index' --set-section-flags '.gdb_index=readonly' '$(TARGET)' '$(TARGET)' && rm -f $(TARGET).gdb-index || true
121
122
122 Makefile: fsw-qt.pro /usr/lib64/qt4/mkspecs/linux-g++/qmake.conf /usr/lib64/qt4/mkspecs/common/unix.conf \
123 Makefile: fsw-qt.pro /usr/lib64/qt4/mkspecs/linux-g++/qmake.conf /usr/lib64/qt4/mkspecs/common/unix.conf \
123 /usr/lib64/qt4/mkspecs/common/linux.conf \
124 /usr/lib64/qt4/mkspecs/common/linux.conf \
@@ -132,7 +133,7 Makefile: fsw-qt.pro /usr/lib64/qt4/mks
132 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf \
133 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf \
133 /usr/lib64/qt4/mkspecs/features/default_pre.prf \
134 /usr/lib64/qt4/mkspecs/features/default_pre.prf \
134 sparc.pri \
135 sparc.pri \
135 /usr/lib64/qt4/mkspecs/features/release.prf \
136 /usr/lib64/qt4/mkspecs/features/debug.prf \
136 /usr/lib64/qt4/mkspecs/features/default_post.prf \
137 /usr/lib64/qt4/mkspecs/features/default_post.prf \
137 /usr/lib64/qt4/mkspecs/features/shared.prf \
138 /usr/lib64/qt4/mkspecs/features/shared.prf \
138 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \
139 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \
@@ -142,7 +143,7 Makefile: fsw-qt.pro /usr/lib64/qt4/mks
142 /usr/lib64/qt4/mkspecs/features/yacc.prf \
143 /usr/lib64/qt4/mkspecs/features/yacc.prf \
143 /usr/lib64/qt4/mkspecs/features/lex.prf \
144 /usr/lib64/qt4/mkspecs/features/lex.prf \
144 /usr/lib64/qt4/mkspecs/features/include_source_dir.prf
145 /usr/lib64/qt4/mkspecs/features/include_source_dir.prf
145 $(QMAKE) -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile fsw-qt.pro
146 $(QMAKE) -spec /usr/lib64/qt4/mkspecs/linux-g++ CONFIG+=debug -o Makefile fsw-qt.pro
146 /usr/lib64/qt4/mkspecs/common/unix.conf:
147 /usr/lib64/qt4/mkspecs/common/unix.conf:
147 /usr/lib64/qt4/mkspecs/common/linux.conf:
148 /usr/lib64/qt4/mkspecs/common/linux.conf:
148 /usr/lib64/qt4/mkspecs/common/gcc-base.conf:
149 /usr/lib64/qt4/mkspecs/common/gcc-base.conf:
@@ -156,7 +157,7 Makefile: fsw-qt.pro /usr/lib64/qt4/mks
156 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf:
157 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf:
157 /usr/lib64/qt4/mkspecs/features/default_pre.prf:
158 /usr/lib64/qt4/mkspecs/features/default_pre.prf:
158 sparc.pri:
159 sparc.pri:
159 /usr/lib64/qt4/mkspecs/features/release.prf:
160 /usr/lib64/qt4/mkspecs/features/debug.prf:
160 /usr/lib64/qt4/mkspecs/features/default_post.prf:
161 /usr/lib64/qt4/mkspecs/features/default_post.prf:
161 /usr/lib64/qt4/mkspecs/features/shared.prf:
162 /usr/lib64/qt4/mkspecs/features/shared.prf:
162 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf:
163 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf:
@@ -167,7 +168,7 sparc.pri:
167 /usr/lib64/qt4/mkspecs/features/lex.prf:
168 /usr/lib64/qt4/mkspecs/features/lex.prf:
168 /usr/lib64/qt4/mkspecs/features/include_source_dir.prf:
169 /usr/lib64/qt4/mkspecs/features/include_source_dir.prf:
169 qmake: FORCE
170 qmake: FORCE
170 @$(QMAKE) -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile fsw-qt.pro
171 @$(QMAKE) -spec /usr/lib64/qt4/mkspecs/linux-g++ CONFIG+=debug -o Makefile fsw-qt.pro
171
172
172 dist:
173 dist:
173 @$(CHK_DIR_EXISTS) obj/fsw1.0.0 || $(MKDIR) obj/fsw1.0.0
174 @$(CHK_DIR_EXISTS) obj/fsw1.0.0 || $(MKDIR) obj/fsw1.0.0
@@ -1,7 +1,7
1 TEMPLATE = app
1 TEMPLATE = app
2 # CONFIG += console v8 sim
2 # CONFIG += console v8 sim
3 # CONFIG options = verbose *** boot_messages *** debug_messages *** cpu_usage_report *** stack_report *** gsa
3 # CONFIG options = verbose *** boot_messages *** debug_messages *** cpu_usage_report *** stack_report *** gsa
4 CONFIG += console verbose
4 CONFIG += console verbose debug_messages
5 CONFIG -= qt
5 CONFIG -= qt
6
6
7 include(./sparc.pri)
7 include(./sparc.pri)
@@ -1,6 +1,6
1 <?xml version="1.0" encoding="UTF-8"?>
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE QtCreatorProject>
2 <!DOCTYPE QtCreatorProject>
3 <!-- Written by QtCreator 2.8.1, 2013-11-21T16:58:13. -->
3 <!-- Written by QtCreator 3.0.0, 2014-01-21T06:52:06. -->
4 <qtcreator>
4 <qtcreator>
5 <data>
5 <data>
6 <variable>ProjectExplorer.Project.ActiveTarget</variable>
6 <variable>ProjectExplorer.Project.ActiveTarget</variable>
@@ -15,13 +15,13
15 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
15 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
16 <value type="QString" key="language">Cpp</value>
16 <value type="QString" key="language">Cpp</value>
17 <valuemap type="QVariantMap" key="value">
17 <valuemap type="QVariantMap" key="value">
18 <value type="QString" key="CurrentPreferences">CppGlobal</value>
18 <value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
19 </valuemap>
19 </valuemap>
20 </valuemap>
20 </valuemap>
21 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
21 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
22 <value type="QString" key="language">QmlJS</value>
22 <value type="QString" key="language">QmlJS</value>
23 <valuemap type="QVariantMap" key="value">
23 <valuemap type="QVariantMap" key="value">
24 <value type="QString" key="CurrentPreferences">QmlJSGlobal</value>
24 <value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
25 </valuemap>
25 </valuemap>
26 </valuemap>
26 </valuemap>
27 <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
27 <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
@@ -58,6 +58,7
58 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
58 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
59 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
59 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
60 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
60 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
61 <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/opt/DEV_PLE/FSW-qt</value>
61 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
62 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
62 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
63 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
63 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
64 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@@ -112,11 +113,11
112 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
113 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
113 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
114 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
114 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
115 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
115 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
116 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
116 <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/opt/DEV_PLE/FSW-qt</value>
117 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
117 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
118 </valuemap>
118 </valuemap>
119 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
119 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
120 <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/opt/DEV_PLE/FSW-qt</value>
120 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
121 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
121 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
122 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
122 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
123 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@@ -172,7 +173,6
172 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
173 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
173 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
174 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
174 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
175 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
175 <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/opt/DEV_PLE/FSW-qt</value>
176 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
176 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
177 </valuemap>
177 </valuemap>
178 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
178 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
@@ -191,7 +191,6
191 <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
191 <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
192 <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
192 <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
193 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
193 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
194 <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
195 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
194 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
196 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
195 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
197 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
196 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
@@ -201,8 +200,12
201 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
200 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
202 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
201 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
203 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
202 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
203 <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
204 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
204 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
205 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
205 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
206 <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
207 <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
208 <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
206 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
209 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
207 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
210 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
208 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
211 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
@@ -239,141 +242,7
239 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
242 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
240 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
243 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
241 </valuemap>
244 </valuemap>
242 <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
245 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.1">
243 </valuemap>
244 </data>
245 <data>
246 <variable>ProjectExplorer.Project.Target.1</variable>
247 <valuemap type="QVariantMap">
248 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop2</value>
249 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop2</value>
250 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{e96c4de1-323d-4095-8746-d006ca3bd573}</value>
251 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
252 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
253 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
254 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
255 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
256 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
257 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
258 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
259 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
260 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
261 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
262 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
263 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
264 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
265 </valuemap>
266 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
267 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
268 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
269 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
270 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
271 <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
272 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
273 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
274 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
275 </valuemap>
276 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
277 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
278 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
279 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
280 </valuemap>
281 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
282 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
283 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
284 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
285 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
286 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
287 <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
288 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
289 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
290 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
291 </valuemap>
292 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
293 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
294 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
295 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
296 </valuemap>
297 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
298 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
299 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
300 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
301 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
302 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
303 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
304 <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/opt/DEV_PLE/FSW-qt</value>
305 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
306 </valuemap>
307 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
308 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
309 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
310 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
311 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value>
312 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
313 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
314 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
315 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
316 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
317 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
318 </valuemap>
319 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
320 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
321 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
322 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
323 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
324 <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
325 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
326 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
327 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
328 </valuemap>
329 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
330 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
331 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
332 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
333 </valuemap>
334 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
335 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
336 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
337 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value>
338 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
339 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
340 <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"/>
341 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
342 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
343 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
344 </valuemap>
345 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
346 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
347 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
348 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
349 </valuemap>
350 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
351 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
352 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
353 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release2</value>
354 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
355 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
356 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
357 <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/opt/DEV_PLE/FSW-qt</value>
358 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
359 </valuemap>
360 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
361 <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
362 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
363 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
364 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
365 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
366 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
367 </valuemap>
368 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
369 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value>
370 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
371 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
372 </valuemap>
373 <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
374 <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
375 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
376 <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
377 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
246 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
378 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
247 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
379 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
248 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
@@ -383,8 +252,12
383 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
252 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
384 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
253 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
385 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
254 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
255 <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
386 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
256 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
387 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
257 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
258 <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
259 <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
260 <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
388 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
261 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
389 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
262 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
390 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
263 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
@@ -404,16 +277,15
404 <value type="int">13</value>
277 <value type="int">13</value>
405 <value type="int">14</value>
278 <value type="int">14</value>
406 </valuelist>
279 </valuelist>
407 <value type="int" key="PE.EnvironmentAspect.Base">2</value>
280 <value type="int" key="PE.EnvironmentAspect.Base">-1</value>
408 <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
281 <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
409 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">fsw-qt</value>
282 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Arguments"></value>
283 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable">grmon</value>
284 <value type="bool" key="ProjectExplorer.CustomExecutableRunConfiguration.UseTerminal">false</value>
285 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.WorkingDirectory">%{buildDir}</value>
286 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Run grmon</value>
410 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
287 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
411 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/opt/DEV_PLE/FSW-qt/fsw-qt.pro</value>
288 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value>
412 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
413 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">fsw-qt.pro</value>
414 <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
415 <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">true</value>
416 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
417 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
289 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
418 <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
290 <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
419 <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
291 <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
@@ -421,12 +293,12
421 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
293 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
422 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
294 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
423 </valuemap>
295 </valuemap>
424 <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
296 <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">2</value>
425 </valuemap>
297 </valuemap>
426 </data>
298 </data>
427 <data>
299 <data>
428 <variable>ProjectExplorer.Project.TargetCount</variable>
300 <variable>ProjectExplorer.Project.TargetCount</variable>
429 <value type="int">2</value>
301 <value type="int">1</value>
430 </data>
302 </data>
431 <data>
303 <data>
432 <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
304 <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
@@ -434,6 +306,6
434 </data>
306 </data>
435 <data>
307 <data>
436 <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
308 <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
437 <value type="int">14</value>
309 <value type="int">15</value>
438 </data>
310 </data>
439 </qtcreator>
311 </qtcreator>
@@ -13,6 +13,16
13 // flight software version
13 // flight software version
14 // this parameters is handled by the Qt project options
14 // this parameters is handled by the Qt project options
15
15
16 #define NB_SAMPLES_PER_SNAPSHOT 2048
17 #define TIME_OFFSET 2
18 #define WAVEFORM_EXTENDED_HEADER_OFFSET 22
19 #define NB_BYTES_SWF_BLK (2 * 6)
20 #define NB_WORDS_SWF_BLK 3
21 #define NB_BYTES_CWF3_LIGHT_BLK 6
22 #define WFRM_INDEX_OF_LAST_PACKET 6 // waveforms are transmitted in groups of 2048 blocks, 6 packets of 340 and 1 of 8
23 #define NB_RING_NODES_F1 5 // AT LEAST 3
24 #define NB_RING_NODES_F2 5 // AT LEAST 3
25
16 //**********
26 //**********
17 // LFR MODES
27 // LFR MODES
18 #define LFR_MODE_STANDBY 0
28 #define LFR_MODE_STANDBY 0
@@ -36,7 +46,7
36 #define DEFAULT_SY_LFR_COMMON1 0x10 // default value 0 0 0 1 0 0 0 0
46 #define DEFAULT_SY_LFR_COMMON1 0x10 // default value 0 0 0 1 0 0 0 0
37 // NORM
47 // NORM
38 #define SY_LFR_N_SWF_L 2048 // nb sample
48 #define SY_LFR_N_SWF_L 2048 // nb sample
39 #define SY_LFR_N_SWF_P 296 // sec
49 #define SY_LFR_N_SWF_P 20 // sec
40 #define SY_LFR_N_ASM_P 3600 // sec
50 #define SY_LFR_N_ASM_P 3600 // sec
41 #define SY_LFR_N_BP_P0 4 // sec
51 #define SY_LFR_N_BP_P0 4 // sec
42 #define SY_LFR_N_BP_P1 20 // sec
52 #define SY_LFR_N_BP_P1 20 // sec
@@ -126,30 +136,21
126
136
127 #define TASK_PRIORITY_SPIQ 5
137 #define TASK_PRIORITY_SPIQ 5
128 #define TASK_PRIORITY_SMIQ 10
138 #define TASK_PRIORITY_SMIQ 10
129 //
130 #define TASK_PRIORITY_WTDG 20
139 #define TASK_PRIORITY_WTDG 20
131 //
132 #define TASK_PRIORITY_HOUS 30
140 #define TASK_PRIORITY_HOUS 30
133 //
134 #define TASK_PRIORITY_CWF1 35 // CWF1 and CWF2 are never running together
141 #define TASK_PRIORITY_CWF1 35 // CWF1 and CWF2 are never running together
135 #define TASK_PRIORITY_CWF2 35 //
142 #define TASK_PRIORITY_CWF2 35 //
136 //
137 #define TASK_PRIORITY_WFRM 40
143 #define TASK_PRIORITY_WFRM 40
138 #define TASK_PRIORITY_CWF3 40 // there is a printf in this function, be careful with its priority wrt CWF1
144 #define TASK_PRIORITY_CWF3 40 // there is a printf in this function, be careful with its priority wrt CWF1
139 //
140 #define TASK_PRIORITY_SEND 45
145 #define TASK_PRIORITY_SEND 45
141 //
142 #define TASK_PRIORITY_RECV 50
146 #define TASK_PRIORITY_RECV 50
143 #define TASK_PRIORITY_ACTN 50
147 #define TASK_PRIORITY_ACTN 50
144 //
145 #define TASK_PRIORITY_AVF0 60
148 #define TASK_PRIORITY_AVF0 60
146 #define TASK_PRIORITY_BPF0 60
149 #define TASK_PRIORITY_BPF0 60
147 #define TASK_PRIORITY_MATR 100
150 #define TASK_PRIORITY_MATR 100
148 #define TASK_PRIORITY_STAT 200
151 #define TASK_PRIORITY_STAT 200
149 #define TASK_PRIORITY_DUMB 200
152 #define TASK_PRIORITY_DUMB 200
150
153
151 #define SEMQ_PRIORITY_CEILING 30
152
153 #define ACTION_MSG_QUEUE_COUNT 10
154 #define ACTION_MSG_QUEUE_COUNT 10
154 #define ACTION_MSG_PKTS_COUNT 50
155 #define ACTION_MSG_PKTS_COUNT 50
155 #define ACTION_MSG_PKTS_MAX_SIZE (PACKET_LENGTH_HK + CCSDS_TC_TM_PACKET_OFFSET + CCSDS_PROTOCOLE_EXTRA_BYTES)
156 #define ACTION_MSG_PKTS_MAX_SIZE (PACKET_LENGTH_HK + CCSDS_TC_TM_PACKET_OFFSET + CCSDS_PROTOCOLE_EXTRA_BYTES)
@@ -192,14 +193,6
192
193
193 #define CPU_USAGE_REPORT_PERIOD 6 // * 10 s = period
194 #define CPU_USAGE_REPORT_PERIOD 6 // * 10 s = period
194
195
195 #define NB_SAMPLES_PER_SNAPSHOT 2048
196 #define TIME_OFFSET 2
197 #define WAVEFORM_EXTENDED_HEADER_OFFSET 22
198 #define NB_BYTES_SWF_BLK (2 * 6)
199 #define NB_WORDS_SWF_BLK 3
200 #define NB_BYTES_CWF3_LIGHT_BLK 6
201 #define WFRM_INDEX_OF_LAST_PACKET 6 // waveforms are transmitted in groups of 2048 blocks, 6 packets of 340 and 1 of 8
202
203 struct param_local_str{
196 struct param_local_str{
204 unsigned int local_sbm1_nb_cwf_sent;
197 unsigned int local_sbm1_nb_cwf_sent;
205 unsigned int local_sbm1_nb_cwf_max;
198 unsigned int local_sbm1_nb_cwf_max;
@@ -12,20 +12,29
12
12
13 #define pi 3.1415
13 #define pi 3.1415
14
14
15 typedef struct ring_node
16 {
17 struct ring_node *previous;
18 int buffer_address;
19 struct ring_node *next;
20 unsigned int status;
21 } ring_node;
22
15 extern int fdSPW;
23 extern int fdSPW;
24
25 //*****************
26 // waveform buffers
27 // F0
16 extern volatile int wf_snap_f0[ ];
28 extern volatile int wf_snap_f0[ ];
17 //
29 // F1
18 extern volatile int wf_snap_f1[ ];
30 extern volatile int wf_snap_f1[ ][ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ];
19 extern volatile int wf_snap_f1_bis[ ];
31 // F2
20 extern volatile int wf_snap_f1_norm[ ];
32 extern volatile int wf_snap_f2[ ][ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ];
21 //
33 // F3
22 extern volatile int wf_snap_f2[ ];
23 extern volatile int wf_snap_f2_bis[ ];
24 extern volatile int wf_snap_f2_norm[ ];
25 //
26 extern volatile int wf_cont_f3[ ];
34 extern volatile int wf_cont_f3[ ];
27 extern volatile int wf_cont_f3_bis[ ];
35 extern volatile int wf_cont_f3_bis[ ];
28 extern char wf_cont_f3_light[ ];
36 extern char wf_cont_f3_light[ ];
37
29 extern waveform_picker_regs_t *waveform_picker_regs;
38 extern waveform_picker_regs_t *waveform_picker_regs;
30 extern time_management_regs_t *time_management_regs;
39 extern time_management_regs_t *time_management_regs;
31 extern Packet_TM_LFR_HK_t housekeeping_packet;
40 extern Packet_TM_LFR_HK_t housekeeping_packet;
@@ -40,7 +49,6 extern rtems_id Task_id[20];
40 extern unsigned char lfrCurrentMode;
49 extern unsigned char lfrCurrentMode;
41
50
42 rtems_isr waveforms_isr( rtems_vector_number vector );
51 rtems_isr waveforms_isr( rtems_vector_number vector );
43 rtems_isr waveforms_simulator_isr( rtems_vector_number vector );
44 rtems_task wfrm_task( rtems_task_argument argument );
52 rtems_task wfrm_task( rtems_task_argument argument );
45 rtems_task cwf3_task( rtems_task_argument argument );
53 rtems_task cwf3_task( rtems_task_argument argument );
46 rtems_task cwf2_task( rtems_task_argument argument );
54 rtems_task cwf2_task( rtems_task_argument argument );
@@ -49,13 +57,13 rtems_task cwf1_task( rtems_task_argumen
49 //******************
57 //******************
50 // general functions
58 // general functions
51 void init_waveforms( void );
59 void init_waveforms( void );
60 void init_waveform_rings( void );
61 void reset_current_ring_nodes( void );
52 //
62 //
53 int init_header_snapshot_wf_table( unsigned int sid, Header_TM_LFR_SCIENCE_SWF_t *headerSWF );
63 int init_header_snapshot_wf_table( unsigned int sid, Header_TM_LFR_SCIENCE_SWF_t *headerSWF );
54 int init_header_continuous_wf_table( unsigned int sid, Header_TM_LFR_SCIENCE_CWF_t *headerCWF );
64 int init_header_continuous_wf_table( unsigned int sid, Header_TM_LFR_SCIENCE_CWF_t *headerCWF );
55 int init_header_continuous_wf3_light_table( Header_TM_LFR_SCIENCE_CWF_t *headerCWF );
65 int init_header_continuous_wf3_light_table( Header_TM_LFR_SCIENCE_CWF_t *headerCWF );
56 //
66 //
57 void reset_waveforms( void );
58 //
59 int send_waveform_SWF( volatile int *waveform, unsigned int sid, Header_TM_LFR_SCIENCE_SWF_t *headerSWF, rtems_id queue_id );
67 int send_waveform_SWF( volatile int *waveform, unsigned int sid, Header_TM_LFR_SCIENCE_SWF_t *headerSWF, rtems_id queue_id );
60 int send_waveform_CWF( volatile int *waveform, unsigned int sid, Header_TM_LFR_SCIENCE_CWF_t *headerCWF, rtems_id queue_id );
68 int send_waveform_CWF( volatile int *waveform, unsigned int sid, Header_TM_LFR_SCIENCE_CWF_t *headerCWF, rtems_id queue_id );
61 int send_waveform_CWF3( volatile int *waveform, unsigned int sid, Header_TM_LFR_SCIENCE_CWF_t *headerCWF, rtems_id queue_id );
69 int send_waveform_CWF3( volatile int *waveform, unsigned int sid, Header_TM_LFR_SCIENCE_CWF_t *headerCWF, rtems_id queue_id );
@@ -31,25 +31,12 int fdSPW = 0;
31 int fdUART = 0;
31 int fdUART = 0;
32 unsigned char lfrCurrentMode;
32 unsigned char lfrCurrentMode;
33
33
34 // APB CONFIGURATION REGISTERS
35 time_management_regs_t *time_management_regs = (time_management_regs_t*) REGS_ADDR_TIME_MANAGEMENT;
36 gptimer_regs_t *gptimer_regs = (gptimer_regs_t *) REGS_ADDR_GPTIMER;
37 #ifdef GSA
38 #else
39 waveform_picker_regs_t *waveform_picker_regs = (waveform_picker_regs_t*) REGS_ADDR_WAVEFORM_PICKER;
40 #endif
41 spectral_matrix_regs_t *spectral_matrix_regs = (spectral_matrix_regs_t*) REGS_ADDR_SPECTRAL_MATRIX;
42
43 // WAVEFORMS GLOBAL VARIABLES // 2048 * 3 * 4 + 2 * 4 = 24576 + 8 bytes
34 // WAVEFORMS GLOBAL VARIABLES // 2048 * 3 * 4 + 2 * 4 = 24576 + 8 bytes
44 volatile int wf_snap_f0[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ];
35 volatile int wf_snap_f0[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ];
45 //
36 //
46 volatile int wf_snap_f1[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ];
37 volatile int wf_snap_f1[NB_RING_NODES_F1][ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ];
47 volatile int wf_snap_f1_bis[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ];
48 volatile int wf_snap_f1_norm[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ];
49 //
38 //
50 volatile int wf_snap_f2[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ];
39 volatile int wf_snap_f2[NB_RING_NODES_F2][ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ];
51 volatile int wf_snap_f2_bis[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ];
52 volatile int wf_snap_f2_norm[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ];
53 //
40 //
54 volatile int wf_cont_f3[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ];
41 volatile int wf_cont_f3[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ];
55 volatile int wf_cont_f3_bis[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ];
42 volatile int wf_cont_f3_bis[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ];
@@ -75,6 +62,15 volatile int spec_mat_f1_bis[ SM_HEADER
75 volatile int spec_mat_f2[ SM_HEADER + TOTAL_SIZE_SM ];
62 volatile int spec_mat_f2[ SM_HEADER + TOTAL_SIZE_SM ];
76 volatile int spec_mat_f2_bis[ SM_HEADER + TOTAL_SIZE_SM ];
63 volatile int spec_mat_f2_bis[ SM_HEADER + TOTAL_SIZE_SM ];
77
64
65 // APB CONFIGURATION REGISTERS
66 time_management_regs_t *time_management_regs = (time_management_regs_t*) REGS_ADDR_TIME_MANAGEMENT;
67 gptimer_regs_t *gptimer_regs = (gptimer_regs_t *) REGS_ADDR_GPTIMER;
68 #ifdef GSA
69 #else
70 waveform_picker_regs_t *waveform_picker_regs = (waveform_picker_regs_t*) REGS_ADDR_WAVEFORM_PICKER;
71 #endif
72 spectral_matrix_regs_t *spectral_matrix_regs = (spectral_matrix_regs_t*) REGS_ADDR_SPECTRAL_MATRIX;
73
78 // MODE PARAMETERS
74 // MODE PARAMETERS
79 Packet_TM_LFR_PARAMETER_DUMP_t parameter_dump_packet;
75 Packet_TM_LFR_PARAMETER_DUMP_t parameter_dump_packet;
80 struct param_local_str param_local;
76 struct param_local_str param_local;
@@ -85,6 +85,7 rtems_task Init( rtems_task_argument ign
85 set_apbuart_scaler_reload_register(REGS_ADDR_APBUART, APBUART_SCALER_RELOAD_VALUE);
85 set_apbuart_scaler_reload_register(REGS_ADDR_APBUART, APBUART_SCALER_RELOAD_VALUE);
86
86
87 reset_wfp_burst_enable(); // stop the waveform picker if it was running
87 reset_wfp_burst_enable(); // stop the waveform picker if it was running
88 init_waveform_rings(); // initialize the waveform rings
88
89
89 init_parameter_dump();
90 init_parameter_dump();
90 init_local_mode_parameters();
91 init_local_mode_parameters();
@@ -573,6 +573,9 int enter_sbm1_mode()
573 #ifdef GSA
573 #ifdef GSA
574 LEON_Unmask_interrupt( IRQ_SM );
574 LEON_Unmask_interrupt( IRQ_SM );
575 #else
575 #else
576 //****************
577 // waveform picker
578 reset_current_ring_nodes();
576 reset_waveform_picker_regs();
579 reset_waveform_picker_regs();
577 set_wfp_burst_enable_register(LFR_MODE_SBM1);
580 set_wfp_burst_enable_register(LFR_MODE_SBM1);
578 LEON_Clear_interrupt( IRQ_WAVEFORM_PICKER );
581 LEON_Clear_interrupt( IRQ_WAVEFORM_PICKER );
@@ -605,6 +608,9 int enter_sbm2_mode()
605 #ifdef GSA
608 #ifdef GSA
606 LEON_Unmask_interrupt( IRQ_SM );
609 LEON_Unmask_interrupt( IRQ_SM );
607 #else
610 #else
611 //****************
612 // waveform picker
613 reset_current_ring_nodes();
608 reset_waveform_picker_regs();
614 reset_waveform_picker_regs();
609 set_wfp_burst_enable_register(LFR_MODE_SBM2);
615 set_wfp_burst_enable_register(LFR_MODE_SBM2);
610 LEON_Clear_interrupt( IRQ_WAVEFORM_PICKER );
616 LEON_Clear_interrupt( IRQ_WAVEFORM_PICKER );
@@ -9,6 +9,8
9
9
10 #include "wf_handler.h"
10 #include "wf_handler.h"
11
11
12 //*****************
13 // waveform headers
12 // SWF
14 // SWF
13 Header_TM_LFR_SCIENCE_SWF_t headerSWF_F0[7];
15 Header_TM_LFR_SCIENCE_SWF_t headerSWF_F0[7];
14 Header_TM_LFR_SCIENCE_SWF_t headerSWF_F1[7];
16 Header_TM_LFR_SCIENCE_SWF_t headerSWF_F1[7];
@@ -20,7 +22,17 Header_TM_LFR_SCIENCE_CWF_t headerCWF_F2
20 Header_TM_LFR_SCIENCE_CWF_t headerCWF_F3[7];
22 Header_TM_LFR_SCIENCE_CWF_t headerCWF_F3[7];
21 Header_TM_LFR_SCIENCE_CWF_t headerCWF_F3_light[7];
23 Header_TM_LFR_SCIENCE_CWF_t headerCWF_F3_light[7];
22
24
23 unsigned char doubleSendCWF1 = 0;
25 //**************
26 // waveform ring
27 ring_node waveform_ring_f1[NB_RING_NODES_F1];
28 ring_node waveform_ring_f2[NB_RING_NODES_F2];
29 ring_node *current_ring_node_f1;
30 ring_node *ring_node_to_send_swf_f1;
31 ring_node *ring_node_to_send_cwf_f1;
32 ring_node *current_ring_node_f2;
33 ring_node *ring_node_to_send_swf_f2;
34 ring_node *ring_node_to_send_cwf_f2;
35
24 unsigned char doubleSendCWF2 = 0;
36 unsigned char doubleSendCWF2 = 0;
25
37
26 rtems_isr waveforms_isr( rtems_vector_number vector )
38 rtems_isr waveforms_isr( rtems_vector_number vector )
@@ -74,11 +86,20 rtems_isr waveforms_isr( rtems_vector_nu
74 else {
86 else {
75 if ( (waveform_picker_regs->status & 0x7) == 0x7 ){ // f2 f1 and f0 are full
87 if ( (waveform_picker_regs->status & 0x7) == 0x7 ){ // f2 f1 and f0 are full
76 waveform_picker_regs->burst_enable = waveform_picker_regs->burst_enable & 0x08;
88 waveform_picker_regs->burst_enable = waveform_picker_regs->burst_enable & 0x08;
89
90 ring_node_to_send_swf_f1 = current_ring_node_f1;
91 current_ring_node_f1 = current_ring_node_f1->next;
92 waveform_picker_regs->addr_data_f1 = current_ring_node_f1->buffer_address;
93
94 ring_node_to_send_swf_f2 = current_ring_node_f2;
95 current_ring_node_f2 = current_ring_node_f2->next;
96 waveform_picker_regs->addr_data_f2 = current_ring_node_f2->buffer_address;
97
77 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) {
98 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) {
78 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
99 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
79 }
100 }
80 // waveform_picker_regs->status = waveform_picker_regs->status & 0x00;
101
81 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffff888;
102 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffff888; // [1000 1000 1000]
82 waveform_picker_regs->burst_enable = waveform_picker_regs->burst_enable | 0x07; // [0111] enable f2 f1 f0
103 waveform_picker_regs->burst_enable = waveform_picker_regs->burst_enable | 0x07; // [0111] enable f2 f1 f0
83 }
104 }
84 }
105 }
@@ -91,19 +112,16 rtems_isr waveforms_isr( rtems_vector_nu
91 #ifdef GSA
112 #ifdef GSA
92 PRINTF("in waveform_isr *** unexpected waveform picker interruption\n")
113 PRINTF("in waveform_isr *** unexpected waveform picker interruption\n")
93 #else
114 #else
94 if ((waveform_picker_regs->status & 0x04) == 0x04){ // [0100] check the f2 full bit
115 if ( (waveform_picker_regs->status & 0x04) == 0x04 ){ // [0100] check the f2 full bit
95 // (1) change the receiving buffer for the waveform picker
116 // (1) change the receiving buffer for the waveform picker
96 if (waveform_picker_regs->addr_data_f2 == (int) wf_snap_f2) {
117 ring_node_to_send_cwf_f2 = current_ring_node_f2;
97 waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2_bis);
118 current_ring_node_f2 = current_ring_node_f2->next;
98 }
119 waveform_picker_regs->addr_data_f2 = current_ring_node_f2->buffer_address;
99 else {
100 waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2);
101 }
102 // (2) send an event for the waveforms transmission
120 // (2) send an event for the waveforms transmission
103 if (rtems_event_send( Task_id[TASKID_CWF2], RTEMS_EVENT_MODE_BURST ) != RTEMS_SUCCESSFUL) {
121 if (rtems_event_send( Task_id[TASKID_CWF1], RTEMS_EVENT_MODE_SBM2 ) != RTEMS_SUCCESSFUL) {
104 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
122 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
105 }
123 }
106 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffbbb; // [1111 1011 1011 1011] f2 bits = 0
124 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffbbb; // [1111 1011 1011 1011] f2 bit = 0
107 }
125 }
108 #endif
126 #endif
109 break;
127 break;
@@ -114,35 +132,25 rtems_isr waveforms_isr( rtems_vector_nu
114 #ifdef GSA
132 #ifdef GSA
115 PRINTF("in waveform_isr *** unexpected waveform picker interruption\n")
133 PRINTF("in waveform_isr *** unexpected waveform picker interruption\n")
116 #else
134 #else
117 if ((waveform_picker_regs->status & 0x02) == 0x02){ // [0010] check the f1 full bit
135 if ( (waveform_picker_regs->status & 0x02) == 0x02 ) { // [0010] check the f1 full bit
118 // (1) change the receiving buffer for the waveform picker
136 // (1) change the receiving buffer for the waveform picker
119 if ( param_local.local_sbm1_nb_cwf_sent == (param_local.local_sbm1_nb_cwf_max-1) )
137 ring_node_to_send_cwf_f1 = current_ring_node_f1;
120 {
138 current_ring_node_f1 = current_ring_node_f1->next;
121 waveform_picker_regs->addr_data_f1 = (int) (wf_snap_f1_norm);
139 waveform_picker_regs->addr_data_f1 = current_ring_node_f1->buffer_address;
122 }
123 else if ( waveform_picker_regs->addr_data_f1 == (int) wf_snap_f1_norm )
124 {
125 doubleSendCWF1 = 1;
126 waveform_picker_regs->addr_data_f1 = (int) (wf_snap_f1);
127 }
128 else if ( waveform_picker_regs->addr_data_f1 == (int) wf_snap_f1 ) {
129 waveform_picker_regs->addr_data_f1 = (int) (wf_snap_f1_bis);
130 }
131 else {
132 waveform_picker_regs->addr_data_f1 = (int) (wf_snap_f1);
133 }
134 // (2) send an event for the waveforms transmission
140 // (2) send an event for the waveforms transmission
135 if (rtems_event_send( Task_id[TASKID_CWF1], RTEMS_EVENT_MODE_SBM1 ) != RTEMS_SUCCESSFUL) {
141 if (rtems_event_send( Task_id[TASKID_CWF1], RTEMS_EVENT_MODE_SBM1 ) != RTEMS_SUCCESSFUL) {
136 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
142 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
137 }
143 }
138 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffddd; // [1111 1101 1101 1101] f1 bit = 0
144 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffddd; // [1111 1101 1101 1101] f1 bit = 0
139 }
145 }
140 if ( ( (waveform_picker_regs->status & 0x05) == 0x05 ) ) { // [0101] check the f2 and f0 full bit
146 if ( (waveform_picker_regs->status & 0x01) == 0x01 ) { // [0001] check the f0 full bit
147 ring_node_to_send_swf_f1 = current_ring_node_f1->previous;
148 }
149 if ( (waveform_picker_regs->status & 0x04) == 0x04 ) { // [0100] check the f2 full bit
141 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) {
150 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) {
142 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
151 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
143 }
152 }
144 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffaaa; // [1111 1010 1010 1010] f2 and f0 bits = 0
153 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffaaa; // [1111 1010 1010 1010] f2 and f0 bits = 0
145 reset_local_sbm1_nb_cwf_sent();
146 }
154 }
147
155
148 #endif
156 #endif
@@ -154,38 +162,23 rtems_isr waveforms_isr( rtems_vector_nu
154 #ifdef GSA
162 #ifdef GSA
155 PRINTF("in waveform_isr *** unexpected waveform picker interruption\n")
163 PRINTF("in waveform_isr *** unexpected waveform picker interruption\n")
156 #else
164 #else
157 if ((waveform_picker_regs->status & 0x04) == 0x04){ // [0100] check the f2 full bit
165 if ( (waveform_picker_regs->status & 0x04) == 0x04 ){ // [0100] check the f2 full bit
158 // (1) change the receiving buffer for the waveform picker
166 // (1) change the receiving buffer for the waveform picker
159 if ( param_local.local_sbm2_nb_cwf_sent == (param_local.local_sbm2_nb_cwf_max-1) )
167 ring_node_to_send_cwf_f2 = current_ring_node_f2;
160 {
168 current_ring_node_f2 = current_ring_node_f2->next;
161 waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2_norm);
169 waveform_picker_regs->addr_data_f2 = current_ring_node_f2->buffer_address;
162 }
163 else if ( waveform_picker_regs->addr_data_f2 == (int) wf_snap_f2_norm ) {
164 waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2);
165 doubleSendCWF2 = 1;
166 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_SBM2_WFRM ) != RTEMS_SUCCESSFUL) {
167 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
168 }
169 reset_local_sbm2_nb_cwf_sent();
170 }
171 else if ( waveform_picker_regs->addr_data_f2 == (int) wf_snap_f2 ) {
172 waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2_bis);
173 }
174 else {
175 waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2);
176 }
177 // (2) send an event for the waveforms transmission
170 // (2) send an event for the waveforms transmission
178 if (rtems_event_send( Task_id[TASKID_CWF2], RTEMS_EVENT_MODE_SBM2 ) != RTEMS_SUCCESSFUL) {
171 if (rtems_event_send( Task_id[TASKID_CWF2], RTEMS_EVENT_MODE_SBM2 ) != RTEMS_SUCCESSFUL) {
179 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
172 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
180 }
173 }
181 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffbbb; // [1111 1011 1011 1011] f2 bit = 0
174 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffbbb; // [1111 1011 1011 1011] f2 bit = 0
182 }
175 }
183 if ( ( (waveform_picker_regs->status & 0x03) == 0x03 ) ) { // [0011] f3 f2 f1 f0, f1 and f0 are full
176 // if ( (waveform_picker_regs->status & 0x03) == 0x03 ) { // [0011] f3 f2 f1 f0, f1 and f0 are full
184 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_SBM2 ) != RTEMS_SUCCESSFUL) {
177 // if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_SBM2 ) != RTEMS_SUCCESSFUL) {
185 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
178 // rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
186 }
179 // }
187 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffccc; // [1111 1100 1100 1100] f1, f0 bits = 0
180 // waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffccc; // [1111 1100 1100 1100] f1, f0 bits = 0
188 }
181 // }
189 #endif
182 #endif
190 break;
183 break;
191
184
@@ -196,34 +189,6 rtems_isr waveforms_isr( rtems_vector_nu
196 }
189 }
197 }
190 }
198
191
199 rtems_isr waveforms_simulator_isr( rtems_vector_number vector )
200 {
201 /** This is the interrupt sub routine called by the waveform picker simulator.
202 *
203 * This ISR is for debug purpose only.
204 *
205 */
206
207 unsigned char lfrMode;
208 lfrMode = (housekeeping_packet.lfr_status_word[0] & 0xf0) >> 4;
209
210 switch(lfrMode) {
211 case (LFR_MODE_STANDBY):
212 break;
213 case (LFR_MODE_NORMAL):
214 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) {
215 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_5 );
216 }
217 break;
218 case (LFR_MODE_BURST):
219 break;
220 case (LFR_MODE_SBM1):
221 break;
222 case (LFR_MODE_SBM2):
223 break;
224 }
225 }
226
227 rtems_task wfrm_task(rtems_task_argument argument) //used with the waveform picker VHDL IP
192 rtems_task wfrm_task(rtems_task_argument argument) //used with the waveform picker VHDL IP
228 {
193 {
229 /** This RTEMS task is dedicated to the transmission of snapshots of the NORMAL mode.
194 /** This RTEMS task is dedicated to the transmission of snapshots of the NORMAL mode.
@@ -260,49 +225,17 rtems_task wfrm_task(rtems_task_argument
260 rtems_event_receive(RTEMS_EVENT_MODE_NORMAL | RTEMS_EVENT_MODE_SBM1
225 rtems_event_receive(RTEMS_EVENT_MODE_NORMAL | RTEMS_EVENT_MODE_SBM1
261 | RTEMS_EVENT_MODE_SBM2 | RTEMS_EVENT_MODE_SBM2_WFRM,
226 | RTEMS_EVENT_MODE_SBM2 | RTEMS_EVENT_MODE_SBM2_WFRM,
262 RTEMS_WAIT | RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT, &event_out);
227 RTEMS_WAIT | RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT, &event_out);
263
228 DEBUG_PRINTF("in WFRM *** 2\n")
264 if (event_out == RTEMS_EVENT_MODE_NORMAL)
229 if (event_out == RTEMS_EVENT_MODE_NORMAL)
265 {
230 {
266 send_waveform_SWF(wf_snap_f0, SID_NORM_SWF_F0, headerSWF_F0, queue_id);
231 send_waveform_SWF(wf_snap_f0, SID_NORM_SWF_F0, headerSWF_F0, queue_id);
267 send_waveform_SWF(wf_snap_f1, SID_NORM_SWF_F1, headerSWF_F1, queue_id);
232 send_waveform_SWF((volatile int*) ring_node_to_send_swf_f1->buffer_address, SID_NORM_SWF_F1, headerSWF_F1, queue_id);
268 send_waveform_SWF(wf_snap_f2, SID_NORM_SWF_F2, headerSWF_F2, queue_id);
233 send_waveform_SWF((volatile int*) ring_node_to_send_swf_f2->buffer_address, SID_NORM_SWF_F2, headerSWF_F2, queue_id);
269 #ifdef GSA
270 waveform_picker_regs->status = waveform_picker_regs->status & 0xf888; // [1111 1000 1000 1000] f2, f1, f0 bits =0
271 #endif
272 }
273 else if (event_out == RTEMS_EVENT_MODE_SBM1)
274 {
275 send_waveform_SWF(wf_snap_f0, SID_NORM_SWF_F0, headerSWF_F0, queue_id);
276 send_waveform_SWF(wf_snap_f1_norm, SID_NORM_SWF_F1, headerSWF_F1, queue_id);
277 send_waveform_SWF(wf_snap_f2, SID_NORM_SWF_F2, headerSWF_F2, queue_id);
278 #ifdef GSA
279 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffaaa; // [1111 1010 1010 1010] f2, f0 bits = 0
280 #endif
281 }
282 else if (event_out == RTEMS_EVENT_MODE_SBM2)
283 {
284 send_waveform_SWF(wf_snap_f0, SID_NORM_SWF_F0, headerSWF_F0, queue_id);
285 send_waveform_SWF(wf_snap_f1, SID_NORM_SWF_F1, headerSWF_F1, queue_id);
286 #ifdef GSA
287 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffccc; // [1111 1100 1100 1100] f1, f0 bits = 0
288 #endif
289 }
290 else if (event_out == RTEMS_EVENT_MODE_SBM2_WFRM)
291 {
292 send_waveform_SWF(wf_snap_f2_norm, SID_NORM_SWF_F2, headerSWF_F2, queue_id);
293 }
234 }
294 else
235 else
295 {
236 {
296 PRINTF("in WFRM *** unexpected event")
237 PRINTF("in WFRM *** unexpected event")
297 }
238 }
298
299
300 #ifdef GSA
301 // irq processed, reset the related register of the timer unit
302 gptimer_regs->timer[TIMER_WF_SIMULATOR].ctrl = gptimer_regs->timer[TIMER_WF_SIMULATOR].ctrl | 0x00000010;
303 // clear the interruption
304 LEON_Unmask_interrupt( IRQ_WF );
305 #endif
306 }
239 }
307 }
240 }
308
241
@@ -383,39 +316,11 rtems_task cwf2_task(rtems_task_argument
383
316
384 if (event_out == RTEMS_EVENT_MODE_BURST)
317 if (event_out == RTEMS_EVENT_MODE_BURST)
385 {
318 {
386 // F2
319 send_waveform_CWF( (volatile int *) ring_node_to_send_cwf_f2, SID_BURST_CWF_F2, headerCWF_F2_BURST, queue_id );
387 #ifdef GSA
388 #else
389 if (waveform_picker_regs->addr_data_f2 == (int) wf_snap_f2) {
390 send_waveform_CWF( wf_snap_f2_bis, SID_BURST_CWF_F2, headerCWF_F2_BURST, queue_id );
391 }
392 else {
393 send_waveform_CWF( wf_snap_f2, SID_BURST_CWF_F2, headerCWF_F2_BURST, queue_id );
394 }
395 #endif
396 }
320 }
397
321 if (event_out == RTEMS_EVENT_MODE_SBM2)
398 else if (event_out == RTEMS_EVENT_MODE_SBM2)
399 {
322 {
400 #ifdef GSA
323 send_waveform_CWF( (volatile int *) ring_node_to_send_cwf_f2, SID_BURST_CWF_F2, headerCWF_F2_BURST, queue_id );
401 #else
402 if (doubleSendCWF2 == 1)
403 {
404 doubleSendCWF2 = 0;
405 send_waveform_CWF( wf_snap_f2_norm, SID_SBM2_CWF_F2, headerCWF_F2_SBM2, queue_id );
406 }
407 else if (waveform_picker_regs->addr_data_f2 == (int) wf_snap_f2) {
408 send_waveform_CWF( wf_snap_f2_bis, SID_SBM2_CWF_F2, headerCWF_F2_SBM2, queue_id );
409 }
410 else {
411 send_waveform_CWF( wf_snap_f2, SID_SBM2_CWF_F2, headerCWF_F2_SBM2, queue_id );
412 }
413 param_local.local_sbm2_nb_cwf_sent ++;
414 #endif
415 }
416 else
417 {
418 PRINTF1("in CWF2 *** ERR mode = %d\n", lfrCurrentMode)
419 }
324 }
420 }
325 }
421 }
326 }
@@ -449,28 +354,7 rtems_task cwf1_task(rtems_task_argument
449 // wait for an RTEMS_EVENT
354 // wait for an RTEMS_EVENT
450 rtems_event_receive( RTEMS_EVENT_MODE_SBM1,
355 rtems_event_receive( RTEMS_EVENT_MODE_SBM1,
451 RTEMS_WAIT | RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT, &event_out);
356 RTEMS_WAIT | RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT, &event_out);
452 if (event_out == RTEMS_EVENT_MODE_SBM1)
357 send_waveform_CWF((volatile int*) ring_node_to_send_cwf_f1->buffer_address, SID_SBM1_CWF_F1, headerCWF_F1, queue_id );
453 {
454 #ifdef GSA
455 #else
456 if (doubleSendCWF1 == 1)
457 {
458 doubleSendCWF1 = 0;
459 send_waveform_CWF( wf_snap_f1_norm, SID_SBM1_CWF_F1, headerCWF_F1, queue_id );
460 }
461 else if (waveform_picker_regs->addr_data_f1 == (int) wf_snap_f1) {
462 send_waveform_CWF( wf_snap_f1_bis, SID_SBM1_CWF_F1, headerCWF_F1, queue_id );
463 }
464 else {
465 send_waveform_CWF( wf_snap_f1, SID_SBM1_CWF_F1, headerCWF_F1, queue_id );
466 }
467 param_local.local_sbm1_nb_cwf_sent ++;
468 #endif
469 }
470 else
471 {
472 PRINTF1("in CWF1 *** ERR mode = %d\n", lfrCurrentMode)
473 }
474 }
358 }
475 }
359 }
476
360
@@ -490,22 +374,74 void init_waveforms( void )
490
374
491 //***
375 //***
492 // F1
376 // F1
493 wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET ] = 0x22221111;
377 // wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET ] = 0x22221111;
494 wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET ] = 0x44443333;
378 // wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET ] = 0x44443333;
495 wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET ] = 0xaaaa0000;
379 // wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET ] = 0xaaaa0000;
496
380
497 //***
381 //***
498 // F2
382 // F2
499 wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET ] = 0x44443333;
383 // wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET ] = 0x44443333;
500 wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET ] = 0x22221111;
384 // wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET ] = 0x22221111;
501 wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET ] = 0xaaaa0000;
385 // wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET ] = 0xaaaa0000;
502
386
503 //***
387 //***
504 // F3
388 // F3
505 //wf_cont_f3[ (i* NB_WORDS_SWF_BLK) + 0 ] = val1;
389 // wf_cont_f3[ (i* NB_WORDS_SWF_BLK) + 0 ] = val1;
506 //wf_cont_f3[ (i* NB_WORDS_SWF_BLK) + 1 ] = val2;
390 // wf_cont_f3[ (i* NB_WORDS_SWF_BLK) + 1 ] = val2;
507 //wf_cont_f3[ (i* NB_WORDS_SWF_BLK) + 2 ] = 0xaaaa0000;
391 // wf_cont_f3[ (i* NB_WORDS_SWF_BLK) + 2 ] = 0xaaaa0000;
392 }
393 }
394
395 void init_waveform_rings( void )
396 {
397 unsigned char i;
398
399 // F1 RING
400 waveform_ring_f1[0].next = (ring_node*) &waveform_ring_f1[1];
401 waveform_ring_f1[0].previous = (ring_node*) &waveform_ring_f1[NB_RING_NODES_F1-1];
402 waveform_ring_f1[0].buffer_address = (int) &wf_snap_f1[0][0];
403
404 waveform_ring_f1[NB_RING_NODES_F1-1].next = (ring_node*) &waveform_ring_f1[0];
405 waveform_ring_f1[NB_RING_NODES_F1-1].previous = (ring_node*) &waveform_ring_f1[NB_RING_NODES_F1-2];
406 waveform_ring_f1[NB_RING_NODES_F1-1].buffer_address = (int) &wf_snap_f1[NB_RING_NODES_F1-1][0];
407
408 for(i=1; i<NB_RING_NODES_F1-1; i++)
409 {
410 waveform_ring_f1[i].next = (ring_node*) &waveform_ring_f1[i+1];
411 waveform_ring_f1[i].previous = (ring_node*) &waveform_ring_f1[i-1];
412 waveform_ring_f1[i].buffer_address = (int) &wf_snap_f1[i][0];
508 }
413 }
414
415 // F2 RING
416 waveform_ring_f2[0].next = (ring_node*) &waveform_ring_f2[1];
417 waveform_ring_f2[0].previous = (ring_node*) &waveform_ring_f2[NB_RING_NODES_F2-1];
418 waveform_ring_f2[0].buffer_address = (int) &wf_snap_f2[0][0];
419
420 waveform_ring_f2[NB_RING_NODES_F2-1].next = (ring_node*) &waveform_ring_f2[0];
421 waveform_ring_f2[NB_RING_NODES_F2-1].previous = (ring_node*) &waveform_ring_f2[NB_RING_NODES_F2-2];
422 waveform_ring_f2[NB_RING_NODES_F2-1].buffer_address = (int) &wf_snap_f2[NB_RING_NODES_F2-1][0];
423
424 for(i=1; i<NB_RING_NODES_F2-1; i++)
425 {
426 waveform_ring_f2[i].next = (ring_node*) &waveform_ring_f2[i+1];
427 waveform_ring_f2[i].previous = (ring_node*) &waveform_ring_f2[i-1];
428 waveform_ring_f2[i].buffer_address = (int) &wf_snap_f2[i][0];
429 }
430
431 DEBUG_PRINTF1("waveform_ring_f1 @%x\n", (unsigned int) waveform_ring_f1)
432 DEBUG_PRINTF1("waveform_ring_f2 @%x\n", (unsigned int) waveform_ring_f2)
433
434 }
435
436 void reset_current_ring_nodes( void )
437 {
438 current_ring_node_f1 = waveform_ring_f1;
439 ring_node_to_send_cwf_f1 = waveform_ring_f1;
440 ring_node_to_send_swf_f1 = waveform_ring_f1;
441
442 current_ring_node_f2 = waveform_ring_f2;
443 ring_node_to_send_cwf_f2 = waveform_ring_f2;
444 ring_node_to_send_swf_f2 = waveform_ring_f2;
509 }
445 }
510
446
511 int init_header_snapshot_wf_table( unsigned int sid, Header_TM_LFR_SCIENCE_SWF_t *headerSWF)
447 int init_header_snapshot_wf_table( unsigned int sid, Header_TM_LFR_SCIENCE_SWF_t *headerSWF)
@@ -686,36 +622,6 int init_header_continuous_wf3_light_tab
686 return LFR_SUCCESSFUL;
622 return LFR_SUCCESSFUL;
687 }
623 }
688
624
689 void reset_waveforms( void )
690 {
691 int i = 0;
692
693 for (i=0; i< NB_SAMPLES_PER_SNAPSHOT; i++)
694 {
695 wf_snap_f0[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET] = 0x10002000;
696 wf_snap_f0[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET] = 0x20001000;
697 wf_snap_f0[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET] = 0x40008000;
698
699 //***
700 // F1
701 wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET] = 0x1000f000;
702 wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET] = 0xf0001000;
703 wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET] = 0x40008000;
704
705 //***
706 // F2
707 wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET] = 0x40008000;
708 wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET] = 0x20001000;
709 wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET] = 0x10002000;
710
711 //***
712 // F3
713 /*wf_cont_f3[ i* NB_WORDS_SWF_BLK + 0 ] = build_value( i, i ); // v and 1
714 wf_cont_f3[ i* NB_WORDS_SWF_BLK + 1 ] = build_value( i, i ); // e2 and b1
715 wf_cont_f3[ i* NB_WORDS_SWF_BLK + 2 ] = build_value( i, i ); // b2 and b3*/
716 }
717 }
718
719 int send_waveform_SWF( volatile int *waveform, unsigned int sid,
625 int send_waveform_SWF( volatile int *waveform, unsigned int sid,
720 Header_TM_LFR_SCIENCE_SWF_t *headerSWF, rtems_id queue_id )
626 Header_TM_LFR_SCIENCE_SWF_t *headerSWF, rtems_id queue_id )
721 {
627 {
@@ -1099,10 +1005,10 void reset_waveform_picker_regs()
1099 reset_wfp_burst_enable();
1005 reset_wfp_burst_enable();
1100 reset_wfp_status();
1006 reset_wfp_status();
1101 // set buffer addresses
1007 // set buffer addresses
1102 waveform_picker_regs->addr_data_f0 = (int) (wf_snap_f0); //
1008 waveform_picker_regs->addr_data_f0 = (int) (wf_snap_f0);
1103 waveform_picker_regs->addr_data_f1 = (int) (wf_snap_f1); //
1009 waveform_picker_regs->addr_data_f1 = current_ring_node_f1->buffer_address;
1104 waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2); //
1010 waveform_picker_regs->addr_data_f2 = current_ring_node_f2->buffer_address;
1105 waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3); //
1011 waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3);
1106 // set other parameters
1012 // set other parameters
1107 set_wfp_data_shaping();
1013 set_wfp_data_shaping();
1108 set_wfp_delta_snapshot(); // time in seconds between two snapshots
1014 set_wfp_delta_snapshot(); // time in seconds between two snapshots
General Comments 0
You need to be logged in to leave comments. Login now