@@ -1,21 +1,21 | |||
|
1 | 1 | ############################################################################# |
|
2 | 2 | # Makefile for building: bin/fsw |
|
3 |
# Generated by qmake (2.01a) (Qt 4.8.5) on: |
|
|
3 | # Generated by qmake (2.01a) (Qt 4.8.5) on: Mon Jan 20 12:52:59 2014 | |
|
4 | 4 | # Project: fsw-qt.pro |
|
5 | 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 | 9 | ####### Compiler, tools and options |
|
10 | 10 | |
|
11 | 11 | CC = sparc-rtems-gcc |
|
12 | 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 | |
|
14 | CFLAGS = -pipe -O3 -Wall $(DEFINES) | |
|
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 -g -O3 -Wall $(DEFINES) | |
|
15 | 15 | CXXFLAGS = -pipe -O3 -Wall $(DEFINES) |
|
16 | 16 | INCPATH = -I/usr/lib64/qt4/mkspecs/linux-g++ -I. -I../src -I../header |
|
17 | 17 | LINK = sparc-rtems-g++ |
|
18 | LFLAGS = | |
|
18 | LFLAGS = -g | |
|
19 | 19 | LIBS = $(SUBLIBS) |
|
20 | 20 | AR = sparc-rtems-ar rcs |
|
21 | 21 | RANLIB = |
@@ -76,7 +76,7 DIST = /usr/lib64/qt4/mkspecs/c | |||
|
76 | 76 | /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf \ |
|
77 | 77 | /usr/lib64/qt4/mkspecs/features/default_pre.prf \ |
|
78 | 78 | sparc.pri \ |
|
79 |
/usr/lib64/qt4/mkspecs/features/ |
|
|
79 | /usr/lib64/qt4/mkspecs/features/debug.prf \ | |
|
80 | 80 | /usr/lib64/qt4/mkspecs/features/default_post.prf \ |
|
81 | 81 | /usr/lib64/qt4/mkspecs/features/shared.prf \ |
|
82 | 82 | /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \ |
@@ -118,6 +118,7 all: Makefile $(TARGET) | |||
|
118 | 118 | $(TARGET): $(OBJECTS) |
|
119 | 119 | @$(CHK_DIR_EXISTS) bin/ || $(MKDIR) bin/ |
|
120 | 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 | 123 | Makefile: fsw-qt.pro /usr/lib64/qt4/mkspecs/linux-g++/qmake.conf /usr/lib64/qt4/mkspecs/common/unix.conf \ |
|
123 | 124 | /usr/lib64/qt4/mkspecs/common/linux.conf \ |
@@ -132,7 +133,7 Makefile: fsw-qt.pro /usr/lib64/qt4/mks | |||
|
132 | 133 | /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf \ |
|
133 | 134 | /usr/lib64/qt4/mkspecs/features/default_pre.prf \ |
|
134 | 135 | sparc.pri \ |
|
135 |
/usr/lib64/qt4/mkspecs/features/ |
|
|
136 | /usr/lib64/qt4/mkspecs/features/debug.prf \ | |
|
136 | 137 | /usr/lib64/qt4/mkspecs/features/default_post.prf \ |
|
137 | 138 | /usr/lib64/qt4/mkspecs/features/shared.prf \ |
|
138 | 139 | /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \ |
@@ -142,7 +143,7 Makefile: fsw-qt.pro /usr/lib64/qt4/mks | |||
|
142 | 143 | /usr/lib64/qt4/mkspecs/features/yacc.prf \ |
|
143 | 144 | /usr/lib64/qt4/mkspecs/features/lex.prf \ |
|
144 | 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 | 147 | /usr/lib64/qt4/mkspecs/common/unix.conf: |
|
147 | 148 | /usr/lib64/qt4/mkspecs/common/linux.conf: |
|
148 | 149 | /usr/lib64/qt4/mkspecs/common/gcc-base.conf: |
@@ -156,7 +157,7 Makefile: fsw-qt.pro /usr/lib64/qt4/mks | |||
|
156 | 157 | /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf: |
|
157 | 158 | /usr/lib64/qt4/mkspecs/features/default_pre.prf: |
|
158 | 159 | sparc.pri: |
|
159 |
/usr/lib64/qt4/mkspecs/features/ |
|
|
160 | /usr/lib64/qt4/mkspecs/features/debug.prf: | |
|
160 | 161 | /usr/lib64/qt4/mkspecs/features/default_post.prf: |
|
161 | 162 | /usr/lib64/qt4/mkspecs/features/shared.prf: |
|
162 | 163 | /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf: |
@@ -167,7 +168,7 sparc.pri: | |||
|
167 | 168 | /usr/lib64/qt4/mkspecs/features/lex.prf: |
|
168 | 169 | /usr/lib64/qt4/mkspecs/features/include_source_dir.prf: |
|
169 | 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 | 173 | dist: |
|
173 | 174 | @$(CHK_DIR_EXISTS) obj/fsw1.0.0 || $(MKDIR) obj/fsw1.0.0 |
@@ -1,7 +1,7 | |||
|
1 | 1 | TEMPLATE = app |
|
2 | 2 | # CONFIG += console v8 sim |
|
3 | 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 | 5 | CONFIG -= qt |
|
6 | 6 | |
|
7 | 7 | include(./sparc.pri) |
@@ -1,6 +1,6 | |||
|
1 | 1 | <?xml version="1.0" encoding="UTF-8"?> |
|
2 | 2 | <!DOCTYPE QtCreatorProject> |
|
3 |
<!-- Written by QtCreator |
|
|
3 | <!-- Written by QtCreator 3.0.0, 2014-01-21T06:52:06. --> | |
|
4 | 4 | <qtcreator> |
|
5 | 5 | <data> |
|
6 | 6 | <variable>ProjectExplorer.Project.ActiveTarget</variable> |
@@ -15,13 +15,13 | |||
|
15 | 15 | <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0"> |
|
16 | 16 | <value type="QString" key="language">Cpp</value> |
|
17 | 17 | <valuemap type="QVariantMap" key="value"> |
|
18 |
<value type="Q |
|
|
18 | <value type="QByteArray" key="CurrentPreferences">CppGlobal</value> | |
|
19 | 19 | </valuemap> |
|
20 | 20 | </valuemap> |
|
21 | 21 | <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1"> |
|
22 | 22 | <value type="QString" key="language">QmlJS</value> |
|
23 | 23 | <valuemap type="QVariantMap" key="value"> |
|
24 |
<value type="Q |
|
|
24 | <value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value> | |
|
25 | 25 | </valuemap> |
|
26 | 26 | </valuemap> |
|
27 | 27 | <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value> |
@@ -58,6 +58,7 | |||
|
58 | 58 | <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value> |
|
59 | 59 | <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value> |
|
60 | 60 | <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0"> |
|
61 | <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/opt/DEV_PLE/FSW-qt</value> | |
|
61 | 62 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> |
|
62 | 63 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> |
|
63 | 64 | <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> |
@@ -112,11 +113,11 | |||
|
112 | 113 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value> |
|
113 | 114 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
|
114 | 115 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value> |
|
115 |
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration"> |
|
|
116 | <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/opt/DEV_PLE/FSW-qt</value> | |
|
116 | <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value> | |
|
117 | 117 | <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value> |
|
118 | 118 | </valuemap> |
|
119 | 119 | <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1"> |
|
120 | <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/opt/DEV_PLE/FSW-qt</value> | |
|
120 | 121 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> |
|
121 | 122 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> |
|
122 | 123 | <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> |
@@ -172,7 +173,6 | |||
|
172 | 173 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
|
173 | 174 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value> |
|
174 | 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 | 176 | <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value> |
|
177 | 177 | </valuemap> |
|
178 | 178 | <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value> |
@@ -191,7 +191,6 | |||
|
191 | 191 | <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value> |
|
192 | 192 | <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/> |
|
193 | 193 | <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0"> |
|
194 | <value type="bool" key="Analyzer.Project.UseGlobal">true</value> | |
|
195 | 194 | <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/> |
|
196 | 195 | <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value> |
|
197 | 196 | <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value> |
@@ -201,8 +200,12 | |||
|
201 | 200 | <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value> |
|
202 | 201 | <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value> |
|
203 | 202 | <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value> |
|
203 | <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value> | |
|
204 | 204 | <value type="int" key="Analyzer.Valgrind.NumCallers">25</value> |
|
205 | 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 | 209 | <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value> |
|
207 | 210 | <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value> |
|
208 | 211 | <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds"> |
@@ -239,141 +242,7 | |||
|
239 | 242 | <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value> |
|
240 | 243 | <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value> |
|
241 | 244 | </valuemap> |
|
242 |
<value type="int" key="ProjectExplorer.Target.RunConfiguration |
|
|
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> | |
|
245 | <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.1"> | |
|
377 | 246 | <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/> |
|
378 | 247 | <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value> |
|
379 | 248 | <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value> |
@@ -383,8 +252,12 | |||
|
383 | 252 | <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value> |
|
384 | 253 | <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value> |
|
385 | 254 | <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value> |
|
255 | <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value> | |
|
386 | 256 | <value type="int" key="Analyzer.Valgrind.NumCallers">25</value> |
|
387 | 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 | 261 | <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value> |
|
389 | 262 | <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value> |
|
390 | 263 | <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds"> |
@@ -404,16 +277,15 | |||
|
404 | 277 | <value type="int">13</value> |
|
405 | 278 | <value type="int">14</value> |
|
406 | 279 | </valuelist> |
|
407 |
<value type="int" key="PE.EnvironmentAspect.Base"> |
|
|
280 | <value type="int" key="PE.EnvironmentAspect.Base">-1</value> | |
|
408 | 281 | <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/> |
|
409 |
<value type="QString" key="ProjectExplorer. |
|
|
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 | 287 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
|
411 |
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id"> |
|
|
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> | |
|
288 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value> | |
|
417 | 289 | <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value> |
|
418 | 290 | <value type="bool" key="RunConfiguration.UseCppDebugger">false</value> |
|
419 | 291 | <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value> |
@@ -421,12 +293,12 | |||
|
421 | 293 | <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value> |
|
422 | 294 | <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value> |
|
423 | 295 | </valuemap> |
|
424 |
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount"> |
|
|
296 | <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">2</value> | |
|
425 | 297 | </valuemap> |
|
426 | 298 | </data> |
|
427 | 299 | <data> |
|
428 | 300 | <variable>ProjectExplorer.Project.TargetCount</variable> |
|
429 |
<value type="int"> |
|
|
301 | <value type="int">1</value> | |
|
430 | 302 | </data> |
|
431 | 303 | <data> |
|
432 | 304 | <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable> |
@@ -434,6 +306,6 | |||
|
434 | 306 | </data> |
|
435 | 307 | <data> |
|
436 | 308 | <variable>ProjectExplorer.Project.Updater.FileVersion</variable> |
|
437 |
<value type="int">1 |
|
|
309 | <value type="int">15</value> | |
|
438 | 310 | </data> |
|
439 | 311 | </qtcreator> |
@@ -13,6 +13,16 | |||
|
13 | 13 | // flight software version |
|
14 | 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 | 27 | // LFR MODES |
|
18 | 28 | #define LFR_MODE_STANDBY 0 |
@@ -36,7 +46,7 | |||
|
36 | 46 | #define DEFAULT_SY_LFR_COMMON1 0x10 // default value 0 0 0 1 0 0 0 0 |
|
37 | 47 | // NORM |
|
38 | 48 | #define SY_LFR_N_SWF_L 2048 // nb sample |
|
39 |
#define SY_LFR_N_SWF_P 2 |
|
|
49 | #define SY_LFR_N_SWF_P 20 // sec | |
|
40 | 50 | #define SY_LFR_N_ASM_P 3600 // sec |
|
41 | 51 | #define SY_LFR_N_BP_P0 4 // sec |
|
42 | 52 | #define SY_LFR_N_BP_P1 20 // sec |
@@ -126,30 +136,21 | |||
|
126 | 136 | |
|
127 | 137 | #define TASK_PRIORITY_SPIQ 5 |
|
128 | 138 | #define TASK_PRIORITY_SMIQ 10 |
|
129 | // | |
|
130 | 139 | #define TASK_PRIORITY_WTDG 20 |
|
131 | // | |
|
132 | 140 | #define TASK_PRIORITY_HOUS 30 |
|
133 | // | |
|
134 | 141 | #define TASK_PRIORITY_CWF1 35 // CWF1 and CWF2 are never running together |
|
135 | 142 | #define TASK_PRIORITY_CWF2 35 // |
|
136 | // | |
|
137 | 143 | #define TASK_PRIORITY_WFRM 40 |
|
138 | 144 | #define TASK_PRIORITY_CWF3 40 // there is a printf in this function, be careful with its priority wrt CWF1 |
|
139 | // | |
|
140 | 145 | #define TASK_PRIORITY_SEND 45 |
|
141 | // | |
|
142 | 146 | #define TASK_PRIORITY_RECV 50 |
|
143 | 147 | #define TASK_PRIORITY_ACTN 50 |
|
144 | // | |
|
145 | 148 | #define TASK_PRIORITY_AVF0 60 |
|
146 | 149 | #define TASK_PRIORITY_BPF0 60 |
|
147 | 150 | #define TASK_PRIORITY_MATR 100 |
|
148 | 151 | #define TASK_PRIORITY_STAT 200 |
|
149 | 152 | #define TASK_PRIORITY_DUMB 200 |
|
150 | 153 | |
|
151 | #define SEMQ_PRIORITY_CEILING 30 | |
|
152 | ||
|
153 | 154 | #define ACTION_MSG_QUEUE_COUNT 10 |
|
154 | 155 | #define ACTION_MSG_PKTS_COUNT 50 |
|
155 | 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 | 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 | 196 | struct param_local_str{ |
|
204 | 197 | unsigned int local_sbm1_nb_cwf_sent; |
|
205 | 198 | unsigned int local_sbm1_nb_cwf_max; |
@@ -12,20 +12,29 | |||
|
12 | 12 | |
|
13 | 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 | 23 | extern int fdSPW; |
|
24 | ||
|
25 | //***************** | |
|
26 | // waveform buffers | |
|
27 | // F0 | |
|
16 | 28 | extern volatile int wf_snap_f0[ ]; |
|
17 | // | |
|
18 | extern volatile int wf_snap_f1[ ]; | |
|
19 | extern volatile int wf_snap_f1_bis[ ]; | |
|
20 | extern volatile int wf_snap_f1_norm[ ]; | |
|
21 | // | |
|
22 | extern volatile int wf_snap_f2[ ]; | |
|
23 | extern volatile int wf_snap_f2_bis[ ]; | |
|
24 | extern volatile int wf_snap_f2_norm[ ]; | |
|
25 | // | |
|
29 | // F1 | |
|
30 | extern volatile int wf_snap_f1[ ][ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ]; | |
|
31 | // F2 | |
|
32 | extern volatile int wf_snap_f2[ ][ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ]; | |
|
33 | // F3 | |
|
26 | 34 | extern volatile int wf_cont_f3[ ]; |
|
27 | 35 | extern volatile int wf_cont_f3_bis[ ]; |
|
28 | 36 | extern char wf_cont_f3_light[ ]; |
|
37 | ||
|
29 | 38 | extern waveform_picker_regs_t *waveform_picker_regs; |
|
30 | 39 | extern time_management_regs_t *time_management_regs; |
|
31 | 40 | extern Packet_TM_LFR_HK_t housekeeping_packet; |
@@ -40,7 +49,6 extern rtems_id Task_id[20]; | |||
|
40 | 49 | extern unsigned char lfrCurrentMode; |
|
41 | 50 | |
|
42 | 51 | rtems_isr waveforms_isr( rtems_vector_number vector ); |
|
43 | rtems_isr waveforms_simulator_isr( rtems_vector_number vector ); | |
|
44 | 52 | rtems_task wfrm_task( rtems_task_argument argument ); |
|
45 | 53 | rtems_task cwf3_task( rtems_task_argument argument ); |
|
46 | 54 | rtems_task cwf2_task( rtems_task_argument argument ); |
@@ -49,13 +57,13 rtems_task cwf1_task( rtems_task_argumen | |||
|
49 | 57 | //****************** |
|
50 | 58 | // general functions |
|
51 | 59 | void init_waveforms( void ); |
|
60 | void init_waveform_rings( void ); | |
|
61 | void reset_current_ring_nodes( void ); | |
|
52 | 62 | // |
|
53 | 63 | int init_header_snapshot_wf_table( unsigned int sid, Header_TM_LFR_SCIENCE_SWF_t *headerSWF ); |
|
54 | 64 | int init_header_continuous_wf_table( unsigned int sid, Header_TM_LFR_SCIENCE_CWF_t *headerCWF ); |
|
55 | 65 | int init_header_continuous_wf3_light_table( Header_TM_LFR_SCIENCE_CWF_t *headerCWF ); |
|
56 | 66 | // |
|
57 | void reset_waveforms( void ); | |
|
58 | // | |
|
59 | 67 | int send_waveform_SWF( volatile int *waveform, unsigned int sid, Header_TM_LFR_SCIENCE_SWF_t *headerSWF, rtems_id queue_id ); |
|
60 | 68 | int send_waveform_CWF( volatile int *waveform, unsigned int sid, Header_TM_LFR_SCIENCE_CWF_t *headerCWF, rtems_id queue_id ); |
|
61 | 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 | 31 | int fdUART = 0; |
|
32 | 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 | 34 | // WAVEFORMS GLOBAL VARIABLES // 2048 * 3 * 4 + 2 * 4 = 24576 + 8 bytes |
|
44 | 35 | volatile int wf_snap_f0[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ]; |
|
45 | 36 | // |
|
46 |
volatile int wf_snap_f1[ |
|
|
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 ]; | |
|
37 | volatile int wf_snap_f1[NB_RING_NODES_F1][ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ]; | |
|
49 | 38 | // |
|
50 |
volatile int wf_snap_f2[ |
|
|
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 ]; | |
|
39 | volatile int wf_snap_f2[NB_RING_NODES_F2][ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ]; | |
|
53 | 40 | // |
|
54 | 41 | volatile int wf_cont_f3[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ]; |
|
55 | 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 | 62 | volatile int spec_mat_f2[ SM_HEADER + TOTAL_SIZE_SM ]; |
|
76 | 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 | 74 | // MODE PARAMETERS |
|
79 | 75 | Packet_TM_LFR_PARAMETER_DUMP_t parameter_dump_packet; |
|
80 | 76 | struct param_local_str param_local; |
@@ -85,6 +85,7 rtems_task Init( rtems_task_argument ign | |||
|
85 | 85 | set_apbuart_scaler_reload_register(REGS_ADDR_APBUART, APBUART_SCALER_RELOAD_VALUE); |
|
86 | 86 | |
|
87 | 87 | reset_wfp_burst_enable(); // stop the waveform picker if it was running |
|
88 | init_waveform_rings(); // initialize the waveform rings | |
|
88 | 89 | |
|
89 | 90 | init_parameter_dump(); |
|
90 | 91 | init_local_mode_parameters(); |
@@ -573,6 +573,9 int enter_sbm1_mode() | |||
|
573 | 573 | #ifdef GSA |
|
574 | 574 | LEON_Unmask_interrupt( IRQ_SM ); |
|
575 | 575 | #else |
|
576 | //**************** | |
|
577 | // waveform picker | |
|
578 | reset_current_ring_nodes(); | |
|
576 | 579 | reset_waveform_picker_regs(); |
|
577 | 580 | set_wfp_burst_enable_register(LFR_MODE_SBM1); |
|
578 | 581 | LEON_Clear_interrupt( IRQ_WAVEFORM_PICKER ); |
@@ -605,6 +608,9 int enter_sbm2_mode() | |||
|
605 | 608 | #ifdef GSA |
|
606 | 609 | LEON_Unmask_interrupt( IRQ_SM ); |
|
607 | 610 | #else |
|
611 | //**************** | |
|
612 | // waveform picker | |
|
613 | reset_current_ring_nodes(); | |
|
608 | 614 | reset_waveform_picker_regs(); |
|
609 | 615 | set_wfp_burst_enable_register(LFR_MODE_SBM2); |
|
610 | 616 | LEON_Clear_interrupt( IRQ_WAVEFORM_PICKER ); |
@@ -9,6 +9,8 | |||
|
9 | 9 | |
|
10 | 10 | #include "wf_handler.h" |
|
11 | 11 | |
|
12 | //***************** | |
|
13 | // waveform headers | |
|
12 | 14 | // SWF |
|
13 | 15 | Header_TM_LFR_SCIENCE_SWF_t headerSWF_F0[7]; |
|
14 | 16 | Header_TM_LFR_SCIENCE_SWF_t headerSWF_F1[7]; |
@@ -20,7 +22,17 Header_TM_LFR_SCIENCE_CWF_t headerCWF_F2 | |||
|
20 | 22 | Header_TM_LFR_SCIENCE_CWF_t headerCWF_F3[7]; |
|
21 | 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 | 36 | unsigned char doubleSendCWF2 = 0; |
|
25 | 37 | |
|
26 | 38 | rtems_isr waveforms_isr( rtems_vector_number vector ) |
@@ -74,11 +86,20 rtems_isr waveforms_isr( rtems_vector_nu | |||
|
74 | 86 | else { |
|
75 | 87 | if ( (waveform_picker_regs->status & 0x7) == 0x7 ){ // f2 f1 and f0 are full |
|
76 | 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 | 98 | if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) { |
|
78 | 99 | rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 ); |
|
79 | 100 | } |
|
80 | // waveform_picker_regs->status = waveform_picker_regs->status & 0x00; | |
|
81 | waveform_picker_regs->status = waveform_picker_regs->status & 0xfffff888; | |
|
101 | ||
|
102 | waveform_picker_regs->status = waveform_picker_regs->status & 0xfffff888; // [1000 1000 1000] | |
|
82 | 103 | waveform_picker_regs->burst_enable = waveform_picker_regs->burst_enable | 0x07; // [0111] enable f2 f1 f0 |
|
83 | 104 | } |
|
84 | 105 | } |
@@ -93,17 +114,14 rtems_isr waveforms_isr( rtems_vector_nu | |||
|
93 | 114 | #else |
|
94 | 115 | if ((waveform_picker_regs->status & 0x04) == 0x04){ // [0100] check the f2 full bit |
|
95 | 116 | // (1) change the receiving buffer for the waveform picker |
|
96 | if (waveform_picker_regs->addr_data_f2 == (int) wf_snap_f2) { | |
|
97 | waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2_bis); | |
|
98 | } | |
|
99 | else { | |
|
100 | waveform_picker_regs->addr_data_f2 = (int) (wf_snap_f2); | |
|
101 | } | |
|
117 | ring_node_to_send_cwf_f2 = current_ring_node_f2; | |
|
118 | current_ring_node_f2 = current_ring_node_f2->next; | |
|
119 | waveform_picker_regs->addr_data_f2 = current_ring_node_f2->buffer_address; | |
|
102 | 120 | // (2) send an event for the waveforms transmission |
|
103 |
if (rtems_event_send( Task_id[TASKID_CWF |
|
|
121 | if (rtems_event_send( Task_id[TASKID_CWF1], RTEMS_EVENT_MODE_SBM2 ) != RTEMS_SUCCESSFUL) { | |
|
104 | 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 bit |
|
|
124 | waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffbbb; // [1111 1011 1011 1011] f2 bit = 0 | |
|
107 | 125 | } |
|
108 | 126 | #endif |
|
109 | 127 | break; |
@@ -116,33 +134,23 rtems_isr waveforms_isr( rtems_vector_nu | |||
|
116 | 134 | #else |
|
117 | 135 | if ((waveform_picker_regs->status & 0x02) == 0x02){ // [0010] check the f1 full bit |
|
118 | 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) ) | |
|
120 | { | |
|
121 |
|
|
|
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 | } | |
|
137 | ring_node_to_send_cwf_f1 = current_ring_node_f1; | |
|
138 | current_ring_node_f1 = current_ring_node_f1->next; | |
|
139 | waveform_picker_regs->addr_data_f1 = current_ring_node_f1->buffer_address; | |
|
134 | 140 | // (2) send an event for the waveforms transmission |
|
135 | 141 | if (rtems_event_send( Task_id[TASKID_CWF1], RTEMS_EVENT_MODE_SBM1 ) != RTEMS_SUCCESSFUL) { |
|
136 | 142 | rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 ); |
|
137 | 143 | } |
|
138 | 144 | waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffddd; // [1111 1101 1101 1101] f1 bit = 0 |
|
139 | 145 | } |
|
140 |
if |
|
|
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 | 150 | if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) { |
|
142 | 151 | rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 ); |
|
143 | 152 | } |
|
144 | 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 | 156 | #endif |
@@ -156,36 +164,21 rtems_isr waveforms_isr( rtems_vector_nu | |||
|
156 | 164 | #else |
|
157 | 165 | if ((waveform_picker_regs->status & 0x04) == 0x04){ // [0100] check the f2 full bit |
|
158 | 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) ) | |
|
160 | { | |
|
161 |
|
|
|
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 | } | |
|
167 | ring_node_to_send_cwf_f2 = current_ring_node_f2; | |
|
168 | current_ring_node_f2 = current_ring_node_f2->next; | |
|
169 | waveform_picker_regs->addr_data_f2 = current_ring_node_f2->buffer_address; | |
|
177 | 170 | // (2) send an event for the waveforms transmission |
|
178 | 171 | if (rtems_event_send( Task_id[TASKID_CWF2], RTEMS_EVENT_MODE_SBM2 ) != RTEMS_SUCCESSFUL) { |
|
179 | 172 | rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 ); |
|
180 | 173 | } |
|
181 | 174 | waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffbbb; // [1111 1011 1011 1011] f2 bit = 0 |
|
182 | 175 | } |
|
183 |
if |
|
|
184 | 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 ); | |
|
186 | } | |
|
187 | waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffccc; // [1111 1100 1100 1100] f1, f0 bits = 0 | |
|
188 | } | |
|
176 | // if ( (waveform_picker_regs->status & 0x03) == 0x03 ) { // [0011] f3 f2 f1 f0, f1 and f0 are full | |
|
177 | // if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_SBM2 ) != RTEMS_SUCCESSFUL) { | |
|
178 | // rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 ); | |
|
179 | // } | |
|
180 | // waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffccc; // [1111 1100 1100 1100] f1, f0 bits = 0 | |
|
181 | // } | |
|
189 | 182 | #endif |
|
190 | 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 | 192 | rtems_task wfrm_task(rtems_task_argument argument) //used with the waveform picker VHDL IP |
|
228 | 193 | { |
|
229 | 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 | 225 | rtems_event_receive(RTEMS_EVENT_MODE_NORMAL | RTEMS_EVENT_MODE_SBM1 |
|
261 | 226 | | RTEMS_EVENT_MODE_SBM2 | RTEMS_EVENT_MODE_SBM2_WFRM, |
|
262 | 227 | RTEMS_WAIT | RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT, &event_out); |
|
263 | ||
|
228 | DEBUG_PRINTF("in WFRM *** 2\n") | |
|
264 | 229 | if (event_out == RTEMS_EVENT_MODE_NORMAL) |
|
265 | 230 | { |
|
266 | 231 | send_waveform_SWF(wf_snap_f0, SID_NORM_SWF_F0, headerSWF_F0, queue_id); |
|
267 |
send_waveform_SWF( |
|
|
268 |
send_waveform_SWF( |
|
|
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); | |
|
232 | send_waveform_SWF((volatile int*) ring_node_to_send_swf_f1->buffer_address, SID_NORM_SWF_F1, headerSWF_F1, queue_id); | |
|
233 | send_waveform_SWF((volatile int*) ring_node_to_send_swf_f2->buffer_address, SID_NORM_SWF_F2, headerSWF_F2, queue_id); | |
|
293 | 234 | } |
|
294 | 235 | else |
|
295 | 236 | { |
|
296 | 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 | 317 | if (event_out == RTEMS_EVENT_MODE_BURST) |
|
385 | 318 | { |
|
386 | // F2 | |
|
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 ); | |
|
319 | send_waveform_CWF( (volatile int *) ring_node_to_send_cwf_f2, SID_BURST_CWF_F2, headerCWF_F2_BURST, queue_id ); | |
|
391 | 320 |
|
|
392 | else { | |
|
393 | send_waveform_CWF( wf_snap_f2, SID_BURST_CWF_F2, headerCWF_F2_BURST, queue_id ); | |
|
394 | } | |
|
395 | #endif | |
|
396 | } | |
|
397 | ||
|
398 | else if (event_out == RTEMS_EVENT_MODE_SBM2) | |
|
321 | if (event_out == RTEMS_EVENT_MODE_SBM2) | |
|
399 | 322 | { |
|
400 | #ifdef GSA | |
|
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) | |
|
323 | send_waveform_CWF( (volatile int *) ring_node_to_send_cwf_f2, SID_BURST_CWF_F2, headerCWF_F2_BURST, queue_id ); | |
|
419 | 324 | } |
|
420 | 325 | } |
|
421 | 326 | } |
@@ -449,28 +354,7 rtems_task cwf1_task(rtems_task_argument | |||
|
449 | 354 | // wait for an RTEMS_EVENT |
|
450 | 355 | rtems_event_receive( RTEMS_EVENT_MODE_SBM1, |
|
451 | 356 | RTEMS_WAIT | RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT, &event_out); |
|
452 | if (event_out == RTEMS_EVENT_MODE_SBM1) | |
|
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 | } | |
|
357 | send_waveform_CWF((volatile int*) ring_node_to_send_cwf_f1->buffer_address, SID_SBM1_CWF_F1, headerCWF_F1, queue_id ); | |
|
474 | 358 | } |
|
475 | 359 | } |
|
476 | 360 | |
@@ -490,15 +374,15 void init_waveforms( void ) | |||
|
490 | 374 | |
|
491 | 375 | //*** |
|
492 | 376 | // F1 |
|
493 | 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; | |
|
495 | wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET ] = 0xaaaa0000; | |
|
377 | // wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET ] = 0x22221111; | |
|
378 | // wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET ] = 0x44443333; | |
|
379 | // wf_snap_f1[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET ] = 0xaaaa0000; | |
|
496 | 380 | |
|
497 | 381 | //*** |
|
498 | 382 | // F2 |
|
499 | 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; | |
|
501 | wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET ] = 0xaaaa0000; | |
|
383 | // wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 0 + TIME_OFFSET ] = 0x44443333; | |
|
384 | // wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 1 + TIME_OFFSET ] = 0x22221111; | |
|
385 | // wf_snap_f2[ (i* NB_WORDS_SWF_BLK) + 2 + TIME_OFFSET ] = 0xaaaa0000; | |
|
502 | 386 | |
|
503 | 387 | //*** |
|
504 | 388 | // F3 |
@@ -508,6 +392,58 void init_waveforms( void ) | |||
|
508 | 392 | } |
|
509 | 393 | } |
|
510 | 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]; | |
|
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; | |
|
445 | } | |
|
446 | ||
|
511 | 447 | int init_header_snapshot_wf_table( unsigned int sid, Header_TM_LFR_SCIENCE_SWF_t *headerSWF) |
|
512 | 448 | { |
|
513 | 449 | unsigned char i; |
@@ -686,36 +622,6 int init_header_continuous_wf3_light_tab | |||
|
686 | 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 | 625 | int send_waveform_SWF( volatile int *waveform, unsigned int sid, |
|
720 | 626 | Header_TM_LFR_SCIENCE_SWF_t *headerSWF, rtems_id queue_id ) |
|
721 | 627 | { |
@@ -1099,10 +1005,10 void reset_waveform_picker_regs() | |||
|
1099 | 1005 | reset_wfp_burst_enable(); |
|
1100 | 1006 | reset_wfp_status(); |
|
1101 | 1007 | // set buffer addresses |
|
1102 |
waveform_picker_regs->addr_data_f0 = (int) (wf_snap_f0); |
|
|
1103 |
waveform_picker_regs->addr_data_f1 = |
|
|
1104 |
waveform_picker_regs->addr_data_f2 = |
|
|
1105 |
waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3); |
|
|
1008 | waveform_picker_regs->addr_data_f0 = (int) (wf_snap_f0); | |
|
1009 | waveform_picker_regs->addr_data_f1 = current_ring_node_f1->buffer_address; | |
|
1010 | waveform_picker_regs->addr_data_f2 = current_ring_node_f2->buffer_address; | |
|
1011 | waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3); | |
|
1106 | 1012 | // set other parameters |
|
1107 | 1013 | set_wfp_data_shaping(); |
|
1108 | 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