##// END OF EJS Templates
Integration of the VHDL_DEV option...
paul -
r90:b0bdcde41112 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: Tue Jan 21 11:57:00 2014
3 # Generated by qmake (2.01a) (Qt 4.8.5) on: Tue Jan 21 15:38:15 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++ CONFIG+=debug -o Makefile fsw-qt.pro
6 # Command: /usr/bin/qmake-qt4 -spec /usr/lib64/qt4/mkspecs/linux-g++ -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 -DDEBUG_MESSAGES
13 DEFINES = -DSW_VERSION_N1=1 -DSW_VERSION_N2=0 -DSW_VERSION_N3=0 -DSW_VERSION_N4=1 -DPRINT_MESSAGES_ON_CONSOLE -DDEBUG_MESSAGES -DVHDL_DEV
14 CFLAGS = -pipe -g -O3 -Wall $(DEFINES)
14 CFLAGS = -pipe -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 = -g
18 LFLAGS =
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/debug.prf \
79 /usr/lib64/qt4/mkspecs/features/release.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,7 +118,6 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
122
121
123 Makefile: fsw-qt.pro /usr/lib64/qt4/mkspecs/linux-g++/qmake.conf /usr/lib64/qt4/mkspecs/common/unix.conf \
122 Makefile: fsw-qt.pro /usr/lib64/qt4/mkspecs/linux-g++/qmake.conf /usr/lib64/qt4/mkspecs/common/unix.conf \
124 /usr/lib64/qt4/mkspecs/common/linux.conf \
123 /usr/lib64/qt4/mkspecs/common/linux.conf \
@@ -133,7 +132,7 Makefile: fsw-qt.pro /usr/lib64/qt4/mks
133 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf \
132 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf \
134 /usr/lib64/qt4/mkspecs/features/default_pre.prf \
133 /usr/lib64/qt4/mkspecs/features/default_pre.prf \
135 sparc.pri \
134 sparc.pri \
136 /usr/lib64/qt4/mkspecs/features/debug.prf \
135 /usr/lib64/qt4/mkspecs/features/release.prf \
137 /usr/lib64/qt4/mkspecs/features/default_post.prf \
136 /usr/lib64/qt4/mkspecs/features/default_post.prf \
138 /usr/lib64/qt4/mkspecs/features/shared.prf \
137 /usr/lib64/qt4/mkspecs/features/shared.prf \
139 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \
138 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf \
@@ -143,7 +142,7 Makefile: fsw-qt.pro /usr/lib64/qt4/mks
143 /usr/lib64/qt4/mkspecs/features/yacc.prf \
142 /usr/lib64/qt4/mkspecs/features/yacc.prf \
144 /usr/lib64/qt4/mkspecs/features/lex.prf \
143 /usr/lib64/qt4/mkspecs/features/lex.prf \
145 /usr/lib64/qt4/mkspecs/features/include_source_dir.prf
144 /usr/lib64/qt4/mkspecs/features/include_source_dir.prf
146 $(QMAKE) -spec /usr/lib64/qt4/mkspecs/linux-g++ CONFIG+=debug -o Makefile fsw-qt.pro
145 $(QMAKE) -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile fsw-qt.pro
147 /usr/lib64/qt4/mkspecs/common/unix.conf:
146 /usr/lib64/qt4/mkspecs/common/unix.conf:
148 /usr/lib64/qt4/mkspecs/common/linux.conf:
147 /usr/lib64/qt4/mkspecs/common/linux.conf:
149 /usr/lib64/qt4/mkspecs/common/gcc-base.conf:
148 /usr/lib64/qt4/mkspecs/common/gcc-base.conf:
@@ -157,7 +156,7 Makefile: fsw-qt.pro /usr/lib64/qt4/mks
157 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf:
156 /usr/lib64/qt4/mkspecs/features/exclusive_builds.prf:
158 /usr/lib64/qt4/mkspecs/features/default_pre.prf:
157 /usr/lib64/qt4/mkspecs/features/default_pre.prf:
159 sparc.pri:
158 sparc.pri:
160 /usr/lib64/qt4/mkspecs/features/debug.prf:
159 /usr/lib64/qt4/mkspecs/features/release.prf:
161 /usr/lib64/qt4/mkspecs/features/default_post.prf:
160 /usr/lib64/qt4/mkspecs/features/default_post.prf:
162 /usr/lib64/qt4/mkspecs/features/shared.prf:
161 /usr/lib64/qt4/mkspecs/features/shared.prf:
163 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf:
162 /usr/lib64/qt4/mkspecs/features/unix/gdb_dwarf_index.prf:
@@ -168,7 +167,7 sparc.pri:
168 /usr/lib64/qt4/mkspecs/features/lex.prf:
167 /usr/lib64/qt4/mkspecs/features/lex.prf:
169 /usr/lib64/qt4/mkspecs/features/include_source_dir.prf:
168 /usr/lib64/qt4/mkspecs/features/include_source_dir.prf:
170 qmake: FORCE
169 qmake: FORCE
171 @$(QMAKE) -spec /usr/lib64/qt4/mkspecs/linux-g++ CONFIG+=debug -o Makefile fsw-qt.pro
170 @$(QMAKE) -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile fsw-qt.pro
172
171
173 dist:
172 dist:
174 @$(CHK_DIR_EXISTS) obj/fsw1.0.0 || $(MKDIR) obj/fsw1.0.0
173 @$(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 *** vhdl_dev
4 CONFIG += console verbose debug_messages
4 CONFIG += console verbose debug_messages vhdl_dev
5 CONFIG -= qt
5 CONFIG -= qt
6
6
7 include(./sparc.pri)
7 include(./sparc.pri)
@@ -43,6 +43,12 contains( CONFIG, gsa ) {
43 TARGET = fsw-gsa
43 TARGET = fsw-gsa
44 }
44 }
45
45
46 TARGET = fsw
47 contains( CONFIG, vhdl_dev ) {
48 DEFINES += VHDL_DEV
49 TARGET = fsw
50 }
51
46 INCLUDEPATH += \
52 INCLUDEPATH += \
47 ../src \
53 ../src \
48 ../header
54 ../header
@@ -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 3.0.0, 2014-01-21T13:07:28. -->
3 <!-- Written by QtCreator 3.0.0, 2014-01-21T15:59:52. -->
4 <qtcreator>
4 <qtcreator>
5 <data>
5 <data>
6 <variable>ProjectExplorer.Project.ActiveTarget</variable>
6 <variable>ProjectExplorer.Project.ActiveTarget</variable>
@@ -25,7 +25,7
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>
28 <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
28 <value type="QByteArray" key="EditorConfiguration.Codec">System</value>
29 <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
29 <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
30 <value type="int" key="EditorConfiguration.IndentSize">4</value>
30 <value type="int" key="EditorConfiguration.IndentSize">4</value>
31 <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
31 <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
@@ -56,7 +56,7
56 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{5289e843-9ef2-45ce-88c6-ad27d8e08def}</value>
56 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{5289e843-9ef2-45ce-88c6-ad27d8e08def}</value>
57 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
57 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
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">1</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 <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/opt/DEV_PLE/FSW-qt</value>
62 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
62 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
@@ -66,7 +66,7
66 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
66 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
67 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
67 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
68 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
68 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
69 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
69 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
70 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
70 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
71 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
71 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
72 </valuemap>
72 </valuemap>
@@ -80,7 +80,7
80 <value type="QString">-r</value>
80 <value type="QString">-r</value>
81 </valuelist>
81 </valuelist>
82 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
82 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
83 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
83 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">-r -w -j 4</value>
84 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
84 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
85 </valuemap>
85 </valuemap>
86 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
86 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
@@ -99,7 +99,7
99 <value type="QString">-r</value>
99 <value type="QString">-r</value>
100 </valuelist>
100 </valuelist>
101 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
101 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
102 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
102 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">-r -w clean</value>
103 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
103 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
104 </valuemap>
104 </valuemap>
105 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
105 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
@@ -110,10 +110,10
110 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
110 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
111 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
111 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
112 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
112 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
113 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
113 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.2 in PATH (System) Release</value>
114 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
114 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
115 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
115 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
116 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
116 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</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">
@@ -125,7 +125,7
125 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
125 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
126 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
126 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
127 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
127 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
128 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
128 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
129 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
129 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
130 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
130 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
131 </valuemap>
131 </valuemap>
@@ -139,7 +139,7
139 <value type="QString">-r</value>
139 <value type="QString">-r</value>
140 </valuelist>
140 </valuelist>
141 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
141 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
142 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
142 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">-r -w </value>
143 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
143 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
144 </valuemap>
144 </valuemap>
145 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
145 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
@@ -158,7 +158,7
158 <value type="QString">-r</value>
158 <value type="QString">-r</value>
159 </valuelist>
159 </valuelist>
160 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
160 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
161 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
161 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">-r -w clean</value>
162 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
162 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
163 </valuemap>
163 </valuemap>
164 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
164 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
@@ -169,10 +169,10
169 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
169 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
170 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
170 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
171 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
171 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
172 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release2</value>
172 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.2 in PATH (System) Debug</value>
173 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
173 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
174 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
174 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
175 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
175 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</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>
@@ -184,7 +184,7
184 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
184 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
185 </valuemap>
185 </valuemap>
186 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
186 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
187 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value>
187 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">No deployment</value>
188 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
188 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
189 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
189 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
190 </valuemap>
190 </valuemap>
@@ -240,7 +240,7
240 <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">false</value>
240 <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">false</value>
241 <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
241 <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
242 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
242 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
243 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
243 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value>
244 </valuemap>
244 </valuemap>
245 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.1">
245 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.1">
246 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
246 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
@@ -277,18 +277,18
277 <value type="int">13</value>
277 <value type="int">13</value>
278 <value type="int">14</value>
278 <value type="int">14</value>
279 </valuelist>
279 </valuelist>
280 <value type="int" key="PE.EnvironmentAspect.Base">-1</value>
280 <value type="int" key="PE.EnvironmentAspect.Base">2</value>
281 <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
281 <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
282 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Arguments"></value>
282 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Arguments"></value>
283 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable">grmon</value>
283 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable">doxygen</value>
284 <value type="bool" key="ProjectExplorer.CustomExecutableRunConfiguration.UseTerminal">false</value>
284 <value type="bool" key="ProjectExplorer.CustomExecutableRunConfiguration.UseTerminal">true</value>
285 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.WorkingDirectory">%{buildDir}</value>
285 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.WorkingDirectory">/opt/DEV_PLE/doc</value>
286 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Run grmon</value>
286 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Run doxygen</value>
287 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
287 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
288 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value>
288 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value>
289 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
289 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
290 <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
290 <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
291 <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
291 <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">false</value>
292 <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
292 <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
293 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
293 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
294 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
294 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
@@ -55,6 +55,25 typedef struct {
55 volatile int nb_snapshot_param; // 0x2c 0011 ***
55 volatile int nb_snapshot_param; // 0x2c 0011 ***
56 } waveform_picker_regs_t;
56 } waveform_picker_regs_t;
57
57
58 typedef struct{
59 int data_shaping; // 0x00 00 *** R1 R0 SP1 SP0 BW
60 int run_burst_enable; // 0x04 01 *** [run *** burst f2, f1, f0 *** enable f3, f2, f1, f0 ]
61 int addr_data_f0; // 0x08
62 int addr_data_f1; // 0x0c
63 int addr_data_f2; // 0x10
64 int addr_data_f3; // 0x14
65 volatile int status; // 0x18
66 int delta_snapshot; // 0x1c
67 int delta_f0; // 0x20
68 int delta_f0_2; // 0x24
69 int delta_f1; // 0x28
70 int delta_f2; // 0x2c
71 int nb_data_by_buffer; // 0x30
72 int snapshot_param; // 0x34
73 int start_date; // 0x38
74 int nb_word_in_buffer; // 0x3c
75 } waveform_picker_regs_new_t;
76
58 typedef struct {
77 typedef struct {
59 volatile int config;
78 volatile int config;
60 volatile int status;
79 volatile int status;
@@ -41,6 +41,7 int enter_sbm1_mode();
41 int enter_sbm2_mode();
41 int enter_sbm2_mode();
42 int restart_science_tasks();
42 int restart_science_tasks();
43 int suspend_science_tasks();
43 int suspend_science_tasks();
44 void launch_waveform_picker( unsigned char mode );
44
45
45 // other functions
46 // other functions
46 void updateLFRCurrentMode();
47 void updateLFRCurrentMode();
@@ -31,11 +31,15 extern volatile int wf_snap_f1[ ][ NB_SA
31 // F2
31 // F2
32 extern volatile int wf_snap_f2[ ][ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ];
32 extern volatile int wf_snap_f2[ ][ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ];
33 // F3
33 // F3
34 extern volatile int wf_cont_f3[ ];
34 extern volatile int wf_cont_f3_a[ ];
35 extern volatile int wf_cont_f3_bis[ ];
35 extern volatile int wf_cont_f3_b[ ];
36 extern char wf_cont_f3_light[ ];
36 extern char wf_cont_f3_light[ ];
37
37
38 #ifdef VHDL_DEV
39 extern waveform_picker_regs_new_t *waveform_picker_regs;
40 #else
38 extern waveform_picker_regs_t *waveform_picker_regs;
41 extern waveform_picker_regs_t *waveform_picker_regs;
42 #endif
39 extern time_management_regs_t *time_management_regs;
43 extern time_management_regs_t *time_management_regs;
40 extern Packet_TM_LFR_HK_t housekeeping_packet;
44 extern Packet_TM_LFR_HK_t housekeeping_packet;
41 extern Packet_TM_LFR_PARAMETER_DUMP_t parameter_dump_packet;
45 extern Packet_TM_LFR_PARAMETER_DUMP_t parameter_dump_packet;
@@ -75,18 +79,15 rtems_id get_pkts_queue_id( void );
75 // wfp registers
79 // wfp registers
76 void set_wfp_data_shaping();
80 void set_wfp_data_shaping();
77 char set_wfp_delta_snapshot();
81 char set_wfp_delta_snapshot();
78 void set_wfp_burst_enable_register( unsigned char mode);
82 void set_wfp_burst_enable_register( unsigned char mode );
79 void reset_wfp_burst_enable();
83 void reset_wfp_burst_enable();
80 void reset_wfp_status();
84 void reset_wfp_status();
81 void reset_waveform_picker_regs();
85 void reset_waveform_picker_regs();
86 void reset_new_waveform_picker_regs();
82
87
83 //*****************
88 //*****************
84 // local parameters
89 // local parameters
85 void set_local_sbm1_nb_cwf_max( void );
86 void set_local_sbm2_nb_cwf_max( void );
87 void set_local_nb_interrupt_f0_MAX( void );
90 void set_local_nb_interrupt_f0_MAX( void );
88 void reset_local_sbm1_nb_cwf_sent( void );
89 void reset_local_sbm2_nb_cwf_sent( void );
90
91
91 void increment_seq_counter_source_id( unsigned char *packet_sequence_control, unsigned int sid );
92 void increment_seq_counter_source_id( unsigned char *packet_sequence_control, unsigned int sid );
92
93
@@ -32,14 +32,14 int fdUART = 0;
32 unsigned char lfrCurrentMode;
32 unsigned char lfrCurrentMode;
33
33
34 // WAVEFORMS GLOBAL VARIABLES // 2048 * 3 * 4 + 2 * 4 = 24576 + 8 bytes
34 // WAVEFORMS GLOBAL VARIABLES // 2048 * 3 * 4 + 2 * 4 = 24576 + 8 bytes
35 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 ];
36 //
36 //
37 volatile int wf_snap_f1[NB_RING_NODES_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 ];
38 //
38 //
39 volatile int wf_snap_f2[NB_RING_NODES_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 ];
40 //
40 //
41 volatile int wf_cont_f3[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ];
41 volatile int wf_cont_f3_a[ 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 ];
42 volatile int wf_cont_f3_b[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ];
43 char wf_cont_f3_light[ NB_SAMPLES_PER_SNAPSHOT * NB_BYTES_CWF3_LIGHT_BLK ];
43 char wf_cont_f3_light[ NB_SAMPLES_PER_SNAPSHOT * NB_BYTES_CWF3_LIGHT_BLK ];
44
44
45 // SPECTRAL MATRICES GLOBAL VARIABLES
45 // SPECTRAL MATRICES GLOBAL VARIABLES
@@ -63,13 +63,15 volatile int spec_mat_f2[ SM_HEADER + TO
63 volatile int spec_mat_f2_bis[ SM_HEADER + TOTAL_SIZE_SM ];
63 volatile int spec_mat_f2_bis[ SM_HEADER + TOTAL_SIZE_SM ];
64
64
65 // APB CONFIGURATION REGISTERS
65 // APB CONFIGURATION REGISTERS
66 time_management_regs_t *time_management_regs = (time_management_regs_t*) REGS_ADDR_TIME_MANAGEMENT;
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;
67 gptimer_regs_t *gptimer_regs = (gptimer_regs_t *) REGS_ADDR_GPTIMER;
68 #ifdef GSA
68
69 #ifdef VHDL_DEV
70 waveform_picker_regs_new_t *waveform_picker_regs = (waveform_picker_regs_new_t*) REGS_ADDR_WAVEFORM_PICKER;
69 #else
71 #else
70 waveform_picker_regs_t *waveform_picker_regs = (waveform_picker_regs_t*) REGS_ADDR_WAVEFORM_PICKER;
72 waveform_picker_regs_t *waveform_picker_regs = (waveform_picker_regs_t*) REGS_ADDR_WAVEFORM_PICKER;
71 #endif
73 #endif
72 spectral_matrix_regs_t *spectral_matrix_regs = (spectral_matrix_regs_t*) REGS_ADDR_SPECTRAL_MATRIX;
74 spectral_matrix_regs_t *spectral_matrix_regs = (spectral_matrix_regs_t*) REGS_ADDR_SPECTRAL_MATRIX;
73
75
74 // MODE PARAMETERS
76 // MODE PARAMETERS
75 Packet_TM_LFR_PARAMETER_DUMP_t parameter_dump_packet;
77 Packet_TM_LFR_PARAMETER_DUMP_t parameter_dump_packet;
@@ -200,17 +200,12 void init_local_mode_parameters( void )
200 unsigned int i;
200 unsigned int i;
201
201
202 // LOCAL PARAMETERS
202 // LOCAL PARAMETERS
203 set_local_sbm1_nb_cwf_max();
204 set_local_sbm2_nb_cwf_max();
205 set_local_nb_interrupt_f0_MAX();
203 set_local_nb_interrupt_f0_MAX();
206
204
207 BOOT_PRINTF1("local_sbm1_nb_cwf_max %d \n", param_local.local_sbm1_nb_cwf_max)
205 BOOT_PRINTF1("local_sbm1_nb_cwf_max %d \n", param_local.local_sbm1_nb_cwf_max)
208 BOOT_PRINTF1("local_sbm2_nb_cwf_max %d \n", param_local.local_sbm2_nb_cwf_max)
206 BOOT_PRINTF1("local_sbm2_nb_cwf_max %d \n", param_local.local_sbm2_nb_cwf_max)
209 BOOT_PRINTF1("nb_interrupt_f0_MAX = %d\n", param_local.local_nb_interrupt_f0_MAX)
207 BOOT_PRINTF1("nb_interrupt_f0_MAX = %d\n", param_local.local_nb_interrupt_f0_MAX)
210
208
211 reset_local_sbm1_nb_cwf_sent();
212 reset_local_sbm2_nb_cwf_sent();
213
214 // init sequence counters
209 // init sequence counters
215
210
216 for(i = 0; i<SEQ_CNT_NB_DEST_ID; i++)
211 for(i = 0; i<SEQ_CNT_NB_DEST_ID; i++)
@@ -500,23 +500,13 int enter_normal_mode()
500 status = restart_science_tasks();
500 status = restart_science_tasks();
501
501
502 #ifdef GSA
502 #ifdef GSA
503 timer_start( (gptimer_regs_t*) REGS_ADDR_GPTIMER, TIMER_WF_SIMULATOR );
504 timer_start( (gptimer_regs_t*) REGS_ADDR_GPTIMER, TIMER_SM_SIMULATOR );
503 timer_start( (gptimer_regs_t*) REGS_ADDR_GPTIMER, TIMER_SM_SIMULATOR );
505 LEON_Clear_interrupt( IRQ_WF );
506 LEON_Unmask_interrupt( IRQ_WF );
507 //
504 //
508 set_local_nb_interrupt_f0_MAX();
505 set_local_nb_interrupt_f0_MAX();
509 LEON_Clear_interrupt( IRQ_SM ); // the IRQ_SM seems to be incompatible with the IRQ_WF on the xilinx board
506 LEON_Clear_interrupt( IRQ_SM ); // the IRQ_SM seems to be incompatible with the IRQ_WF on the xilinx board
510 LEON_Unmask_interrupt( IRQ_SM );
507 LEON_Unmask_interrupt( IRQ_SM );
511 #else
508 #else
512 //****************
509 launch_waveform_picker( LFR_MODE_SBM1 );
513 // waveform picker
514 reset_waveform_picker_regs();
515 set_wfp_burst_enable_register(LFR_MODE_NORMAL);
516 LEON_Clear_interrupt( IRQ_WAVEFORM_PICKER );
517 LEON_Unmask_interrupt( IRQ_WAVEFORM_PICKER );
518 //****************
519 // spectral matrix
520 #endif
510 #endif
521
511
522 return status;
512 return status;
@@ -538,14 +528,7 int enter_burst_mode()
538
528
539 status = restart_science_tasks();
529 status = restart_science_tasks();
540
530
541 #ifdef GSA
531 launch_waveform_picker( LFR_MODE_BURST );
542 LEON_Unmask_interrupt( IRQ_SM );
543 #else
544 reset_waveform_picker_regs();
545 set_wfp_burst_enable_register(LFR_MODE_BURST);
546 LEON_Clear_interrupt( IRQ_WAVEFORM_PICKER );
547 LEON_Unmask_interrupt( IRQ_WAVEFORM_PICKER );
548 #endif
549
532
550 return status;
533 return status;
551 }
534 }
@@ -566,21 +549,7 int enter_sbm1_mode()
566
549
567 status = restart_science_tasks();
550 status = restart_science_tasks();
568
551
569 set_local_sbm1_nb_cwf_max();
552 launch_waveform_picker( LFR_MODE_SBM1 );
570
571 reset_local_sbm1_nb_cwf_sent();
572
573 #ifdef GSA
574 LEON_Unmask_interrupt( IRQ_SM );
575 #else
576 //****************
577 // waveform picker
578 reset_current_ring_nodes();
579 reset_waveform_picker_regs();
580 set_wfp_burst_enable_register(LFR_MODE_SBM1);
581 LEON_Clear_interrupt( IRQ_WAVEFORM_PICKER );
582 LEON_Unmask_interrupt( IRQ_WAVEFORM_PICKER );
583 #endif
584
553
585 return status;
554 return status;
586 }
555 }
@@ -601,21 +570,7 int enter_sbm2_mode()
601
570
602 status = restart_science_tasks();
571 status = restart_science_tasks();
603
572
604 set_local_sbm2_nb_cwf_max();
573 launch_waveform_picker( LFR_MODE_SBM2 );
605
606 reset_local_sbm2_nb_cwf_sent();
607
608 #ifdef GSA
609 LEON_Unmask_interrupt( IRQ_SM );
610 #else
611 //****************
612 // waveform picker
613 reset_current_ring_nodes();
614 reset_waveform_picker_regs();
615 set_wfp_burst_enable_register(LFR_MODE_SBM2);
616 LEON_Clear_interrupt( IRQ_WAVEFORM_PICKER );
617 LEON_Unmask_interrupt( IRQ_WAVEFORM_PICKER );
618 #endif
619
574
620 return status;
575 return status;
621 }
576 }
@@ -751,6 +706,15 int suspend_science_tasks()
751 return status;
706 return status;
752 }
707 }
753
708
709 void launch_waveform_picker( unsigned char mode )
710 {
711 reset_current_ring_nodes();
712 reset_waveform_picker_regs();
713 set_wfp_burst_enable_register( mode );
714 LEON_Clear_interrupt( IRQ_WAVEFORM_PICKER );
715 LEON_Unmask_interrupt( IRQ_WAVEFORM_PICKER );
716 }
717
754 //****************
718 //****************
755 // CLOSING ACTIONS
719 // CLOSING ACTIONS
756 void update_last_TC_exe(ccsdsTelecommandPacket_t *TC, unsigned char *time)
720 void update_last_TC_exe(ccsdsTelecommandPacket_t *TC, unsigned char *time)
@@ -45,18 +45,16 rtems_isr waveforms_isr( rtems_vector_nu
45 *
45 *
46 */
46 */
47
47
48 #ifdef GSA
49 #else
50 if ( (lfrCurrentMode == LFR_MODE_NORMAL)
48 if ( (lfrCurrentMode == LFR_MODE_NORMAL)
51 || (lfrCurrentMode == LFR_MODE_SBM1) || (lfrCurrentMode == LFR_MODE_SBM2) )
49 || (lfrCurrentMode == LFR_MODE_SBM1) || (lfrCurrentMode == LFR_MODE_SBM2) )
52 { // in modes other than STANDBY and BURST, send the CWF_F3 data
50 { // in modes other than STANDBY and BURST, send the CWF_F3 data
53 if ((waveform_picker_regs->status & 0x08) == 0x08){ // [1000] f3 is full
51 if ((waveform_picker_regs->status & 0x08) == 0x08){ // [1000] f3 is full
54 // (1) change the receiving buffer for the waveform picker
52 // (1) change the receiving buffer for the waveform picker
55 if (waveform_picker_regs->addr_data_f3 == (int) wf_cont_f3) {
53 if (waveform_picker_regs->addr_data_f3 == (int) wf_cont_f3_a) {
56 waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3_bis);
54 waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3_b);
57 }
55 }
58 else {
56 else {
59 waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3);
57 waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3_a);
60 }
58 }
61 // (2) send an event for the waveforms transmission
59 // (2) send an event for the waveforms transmission
62 if (rtems_event_send( Task_id[TASKID_CWF3], RTEMS_EVENT_0 ) != RTEMS_SUCCESSFUL) {
60 if (rtems_event_send( Task_id[TASKID_CWF3], RTEMS_EVENT_0 ) != RTEMS_SUCCESSFUL) {
@@ -65,7 +63,6 rtems_isr waveforms_isr( rtems_vector_nu
65 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffff777; // reset f3 bits to 0, [1111 0111 0111 0111]
63 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffff777; // reset f3 bits to 0, [1111 0111 0111 0111]
66 }
64 }
67 }
65 }
68 #endif
69
66
70 switch(lfrCurrentMode)
67 switch(lfrCurrentMode)
71 {
68 {
@@ -77,61 +74,42 rtems_isr waveforms_isr( rtems_vector_nu
77 //******
74 //******
78 // NORMAL
75 // NORMAL
79 case(LFR_MODE_NORMAL):
76 case(LFR_MODE_NORMAL):
80 #ifdef GSA
77 if ( (waveform_picker_regs->status & 0x7) == 0x7 ){ // f2 f1 and f0 are full
81 PRINTF("in waveform_isr *** unexpected waveform picker interruption\n")
78 // change F1 ring node
82 #else
79 ring_node_to_send_swf_f1 = current_ring_node_f1;
83 if ( (waveform_picker_regs->burst_enable & 0x7) == 0x0 ){ // if no channel is enable
80 current_ring_node_f1 = current_ring_node_f1->next;
84 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
81 waveform_picker_regs->addr_data_f1 = current_ring_node_f1->buffer_address;
82 // change F2 ring node
83 ring_node_to_send_swf_f2 = current_ring_node_f2;
84 current_ring_node_f2 = current_ring_node_f2->next;
85 waveform_picker_regs->addr_data_f2 = current_ring_node_f2->buffer_address;
86 // send an event to the WFRM task
87 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) {
88 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
89 }
90 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffff888; // [1000 1000 1000]
85 }
91 }
86 else {
87 if ( (waveform_picker_regs->status & 0x7) == 0x7 ){ // f2 f1 and f0 are full
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
98 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) {
99 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
100 }
101
102 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffff888; // [1000 1000 1000]
103 waveform_picker_regs->burst_enable = waveform_picker_regs->burst_enable | 0x07; // [0111] enable f2 f1 f0
104 }
105 }
106 #endif
107 break;
92 break;
108
93
109 //******
94 //******
110 // BURST
95 // BURST
111 case(LFR_MODE_BURST):
96 case(LFR_MODE_BURST):
112 #ifdef GSA
113 PRINTF("in waveform_isr *** unexpected waveform picker interruption\n")
114 #else
115 if ( (waveform_picker_regs->status & 0x04) == 0x04 ){ // [0100] check the f2 full bit
97 if ( (waveform_picker_regs->status & 0x04) == 0x04 ){ // [0100] check the f2 full bit
116 // (1) change the receiving buffer for the waveform picker
98 // (1) change the receiving buffer for the waveform picker
117 ring_node_to_send_cwf_f2 = current_ring_node_f2;
99 ring_node_to_send_cwf_f2 = current_ring_node_f2;
118 current_ring_node_f2 = current_ring_node_f2->next;
100 current_ring_node_f2 = current_ring_node_f2->next;
119 waveform_picker_regs->addr_data_f2 = current_ring_node_f2->buffer_address;
101 waveform_picker_regs->addr_data_f2 = current_ring_node_f2->buffer_address;
120 // (2) send an event for the waveforms transmission
102 // (2) send an event for the waveforms transmission
121 if (rtems_event_send( Task_id[TASKID_CWF1], RTEMS_EVENT_MODE_SBM2 ) != RTEMS_SUCCESSFUL) {
103 if (rtems_event_send( Task_id[TASKID_CWF2], RTEMS_EVENT_MODE_SBM2 ) != RTEMS_SUCCESSFUL) {
122 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
104 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
123 }
105 }
124 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffbbb; // [1111 1011 1011 1011] f2 bit = 0
106 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffbbb; // [1111 1011 1011 1011] f2 bit = 0
125 }
107 }
126 #endif
127 break;
108 break;
128
109
129 //*****
110 //*****
130 // SBM1
111 // SBM1
131 case(LFR_MODE_SBM1):
112 case(LFR_MODE_SBM1):
132 #ifdef GSA
133 PRINTF("in waveform_isr *** unexpected waveform picker interruption\n")
134 #else
135 if ( (waveform_picker_regs->status & 0x02) == 0x02 ) { // [0010] check the f1 full bit
113 if ( (waveform_picker_regs->status & 0x02) == 0x02 ) { // [0010] check the f1 full bit
136 // (1) change the receiving buffer for the waveform picker
114 // (1) change the receiving buffer for the waveform picker
137 ring_node_to_send_cwf_f1 = current_ring_node_f1;
115 ring_node_to_send_cwf_f1 = current_ring_node_f1;
@@ -152,16 +130,11 rtems_isr waveforms_isr( rtems_vector_nu
152 }
130 }
153 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffaaa; // [1111 1010 1010 1010] f2 and f0 bits = 0
131 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffaaa; // [1111 1010 1010 1010] f2 and f0 bits = 0
154 }
132 }
155
156 #endif
157 break;
133 break;
158
134
159 //*****
135 //*****
160 // SBM2
136 // SBM2
161 case(LFR_MODE_SBM2):
137 case(LFR_MODE_SBM2):
162 #ifdef GSA
163 PRINTF("in waveform_isr *** unexpected waveform picker interruption\n")
164 #else
165 if ( (waveform_picker_regs->status & 0x04) == 0x04 ){ // [0100] check the f2 full bit
138 if ( (waveform_picker_regs->status & 0x04) == 0x04 ){ // [0100] check the f2 full bit
166 // (1) change the receiving buffer for the waveform picker
139 // (1) change the receiving buffer for the waveform picker
167 ring_node_to_send_cwf_f2 = current_ring_node_f2;
140 ring_node_to_send_cwf_f2 = current_ring_node_f2;
@@ -173,13 +146,15 rtems_isr waveforms_isr( rtems_vector_nu
173 }
146 }
174 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffbbb; // [1111 1011 1011 1011] f2 bit = 0
147 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffbbb; // [1111 1011 1011 1011] f2 bit = 0
175 }
148 }
176 // if ( (waveform_picker_regs->status & 0x03) == 0x03 ) { // [0011] f3 f2 f1 f0, f1 and f0 are full
149 if ( (waveform_picker_regs->status & 0x01) == 0x01 ) { // [0001] check the f0 full bit
177 // if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_SBM2 ) != RTEMS_SUCCESSFUL) {
150 ring_node_to_send_swf_f2 = current_ring_node_f2->previous;
178 // rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
151 }
179 // }
152 if ( (waveform_picker_regs->status & 0x02) == 0x02 ) { // [0010] check the f1 full bit
180 // waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffccc; // [1111 1100 1100 1100] f1, f0 bits = 0
153 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) {
181 // }
154 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
182 #endif
155 }
156 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffffccc; // [1111 1100 1100 1100] f1, f0 bits = 0
157 }
183 break;
158 break;
184
159
185 //********
160 //********
@@ -225,7 +200,6 rtems_task wfrm_task(rtems_task_argument
225 rtems_event_receive(RTEMS_EVENT_MODE_NORMAL | RTEMS_EVENT_MODE_SBM1
200 rtems_event_receive(RTEMS_EVENT_MODE_NORMAL | RTEMS_EVENT_MODE_SBM1
226 | RTEMS_EVENT_MODE_SBM2 | RTEMS_EVENT_MODE_SBM2_WFRM,
201 | RTEMS_EVENT_MODE_SBM2 | RTEMS_EVENT_MODE_SBM2_WFRM,
227 RTEMS_WAIT | RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT, &event_out);
202 RTEMS_WAIT | RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT, &event_out);
228 DEBUG_PRINTF("in WFRM *** 2\n")
229 if (event_out == RTEMS_EVENT_MODE_NORMAL)
203 if (event_out == RTEMS_EVENT_MODE_NORMAL)
230 {
204 {
231 send_waveform_SWF(wf_snap_f0, SID_NORM_SWF_F0, headerSWF_F0, queue_id);
205 send_waveform_SWF(wf_snap_f0, SID_NORM_SWF_F0, headerSWF_F0, queue_id);
@@ -272,11 +246,11 rtems_task cwf3_task(rtems_task_argument
272 PRINTF("send CWF F3 \n")
246 PRINTF("send CWF F3 \n")
273 #ifdef GSA
247 #ifdef GSA
274 #else
248 #else
275 if (waveform_picker_regs->addr_data_f3 == (int) wf_cont_f3) {
249 if (waveform_picker_regs->addr_data_f3 == (int) wf_cont_f3_a) {
276 send_waveform_CWF3_light( wf_cont_f3_bis, headerCWF_F3_light, queue_id );
250 send_waveform_CWF3_light( wf_cont_f3_b, headerCWF_F3_light, queue_id );
277 }
251 }
278 else {
252 else {
279 send_waveform_CWF3_light( wf_cont_f3, headerCWF_F3_light, queue_id );
253 send_waveform_CWF3_light( wf_cont_f3_a, headerCWF_F3_light, queue_id );
280 }
254 }
281 #endif
255 #endif
282 }
256 }
@@ -313,14 +287,13 rtems_task cwf2_task(rtems_task_argument
313 // wait for an RTEMS_EVENT
287 // wait for an RTEMS_EVENT
314 rtems_event_receive( RTEMS_EVENT_MODE_BURST | RTEMS_EVENT_MODE_SBM2,
288 rtems_event_receive( RTEMS_EVENT_MODE_BURST | RTEMS_EVENT_MODE_SBM2,
315 RTEMS_WAIT | RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT, &event_out);
289 RTEMS_WAIT | RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT, &event_out);
316
317 if (event_out == RTEMS_EVENT_MODE_BURST)
290 if (event_out == RTEMS_EVENT_MODE_BURST)
318 {
291 {
319 send_waveform_CWF( (volatile int *) ring_node_to_send_cwf_f2, SID_BURST_CWF_F2, headerCWF_F2_BURST, queue_id );
292 send_waveform_CWF( (volatile int *) ring_node_to_send_cwf_f2, SID_BURST_CWF_F2, headerCWF_F2_BURST, queue_id );
320 }
293 }
321 if (event_out == RTEMS_EVENT_MODE_SBM2)
294 if (event_out == RTEMS_EVENT_MODE_SBM2)
322 {
295 {
323 send_waveform_CWF( (volatile int *) ring_node_to_send_cwf_f2, SID_BURST_CWF_F2, headerCWF_F2_BURST, queue_id );
296 send_waveform_CWF( (volatile int *) ring_node_to_send_cwf_f2, SID_SBM2_CWF_F2, headerCWF_F2_SBM2, queue_id );
324 }
297 }
325 }
298 }
326 }
299 }
@@ -649,7 +622,11 int send_waveform_SWF( volatile int *wav
649
622
650 for (i=0; i<7; i++) // send waveform
623 for (i=0; i<7; i++) // send waveform
651 {
624 {
625 #ifdef VHDL_DEV
626 spw_ioctl_send_SWF.data = (char*) &waveform[ (i * 340 * NB_WORDS_SWF_BLK) + TIME_OFFSET];
627 #else
652 spw_ioctl_send_SWF.data = (char*) &waveform[ (i * 340 * NB_WORDS_SWF_BLK) ];
628 spw_ioctl_send_SWF.data = (char*) &waveform[ (i * 340 * NB_WORDS_SWF_BLK) ];
629 #endif
653 spw_ioctl_send_SWF.hdr = (char*) &headerSWF[ i ];
630 spw_ioctl_send_SWF.hdr = (char*) &headerSWF[ i ];
654 // BUILD THE DATA
631 // BUILD THE DATA
655 if (i==6) {
632 if (i==6) {
@@ -714,7 +691,11 int send_waveform_CWF(volatile int *wave
714 {
691 {
715 int coarseTime = 0x00;
692 int coarseTime = 0x00;
716 int fineTime = 0x00;
693 int fineTime = 0x00;
694 #ifdef VHDL_DEV
695 spw_ioctl_send_CWF.data = (char*) &waveform[ (i * 340 * NB_WORDS_SWF_BLK) + TIME_OFFSET];
696 #else
717 spw_ioctl_send_CWF.data = (char*) &waveform[ (i * 340 * NB_WORDS_SWF_BLK) ];
697 spw_ioctl_send_CWF.data = (char*) &waveform[ (i * 340 * NB_WORDS_SWF_BLK) ];
698 #endif
718 spw_ioctl_send_CWF.hdr = (char*) &headerCWF[ i ];
699 spw_ioctl_send_CWF.hdr = (char*) &headerCWF[ i ];
719 // BUILD THE DATA
700 // BUILD THE DATA
720 if (i==6) {
701 if (i==6) {
@@ -808,7 +789,11 int send_waveform_CWF3_light(volatile in
808 {
789 {
809 int coarseTime = 0x00;
790 int coarseTime = 0x00;
810 int fineTime = 0x00;
791 int fineTime = 0x00;
792 #ifdef VHDL_DEV
793 spw_ioctl_send_CWF.data = (char*) &wf_cont_f3_light[ (i * 340 * NB_BYTES_CWF3_LIGHT_BLK) + TIME_OFFSET];
794 #else
811 spw_ioctl_send_CWF.data = (char*) &wf_cont_f3_light[ (i * 340 * NB_BYTES_CWF3_LIGHT_BLK) ];
795 spw_ioctl_send_CWF.data = (char*) &wf_cont_f3_light[ (i * 340 * NB_BYTES_CWF3_LIGHT_BLK) ];
796 #endif
812 spw_ioctl_send_CWF.hdr = (char*) &headerCWF[ i ];
797 spw_ioctl_send_CWF.hdr = (char*) &headerCWF[ i ];
813 // BUILD THE DATA
798 // BUILD THE DATA
814 if ( i == WFRM_INDEX_OF_LAST_PACKET ) {
799 if ( i == WFRM_INDEX_OF_LAST_PACKET ) {
@@ -914,7 +899,8 char set_wfp_delta_snapshot()
914 return ret;
899 return ret;
915 }
900 }
916
901
917 void set_wfp_burst_enable_register( unsigned char mode)
902 #ifdef VHDL_DEV
903 void set_wfp_burst_enable_register( unsigned char mode )
918 {
904 {
919 /** This function sets the waveform picker burst_enable register depending on the mode.
905 /** This function sets the waveform picker burst_enable register depending on the mode.
920 *
906 *
@@ -924,8 +910,41 void set_wfp_burst_enable_register( unsi
924 *
910 *
925 */
911 */
926
912
927 #ifdef GSA
913 // [0000 0000] burst f2, f1, f0 enable f3 f2 f1 f0
914 // the burst bits shall be set first, before the enable bits
915 switch(mode) {
916 case(LFR_MODE_NORMAL):
917 waveform_picker_regs->run_burst_enable = 0x00; // [0000 0000] no burst enable
918 waveform_picker_regs->run_burst_enable = 0x0f; // [0000 1111] enable f3 f2 f1 f0
919 break;
920 case(LFR_MODE_BURST):
921 waveform_picker_regs->run_burst_enable = 0x40; // [0100 0000] f2 burst enabled
922 waveform_picker_regs->run_burst_enable = waveform_picker_regs->run_burst_enable | 0x04; // [0100] enable f2
923 break;
924 case(LFR_MODE_SBM1):
925 waveform_picker_regs->run_burst_enable = 0x20; // [0010 0000] f1 burst enabled
926 waveform_picker_regs->run_burst_enable = waveform_picker_regs->run_burst_enable | 0x0f; // [1111] enable f3 f2 f1 f0
927 break;
928 case(LFR_MODE_SBM2):
929 waveform_picker_regs->run_burst_enable = 0x40; // [0100 0000] f2 burst enabled
930 waveform_picker_regs->run_burst_enable = waveform_picker_regs->run_burst_enable | 0x0f; // [1111] enable f3 f2 f1 f0
931 break;
932 default:
933 waveform_picker_regs->run_burst_enable = 0x00; // [0000 0000] no burst enabled, no waveform enabled
934 break;
935 }
936 }
928 #else
937 #else
938 void set_wfp_burst_enable_register( unsigned char mode )
939 {
940 /** This function sets the waveform picker burst_enable register depending on the mode.
941 *
942 * @param mode is the LFR mode to launch.
943 *
944 * The burst bits shall be before the enable bits.
945 *
946 */
947
929 // [0000 0000] burst f2, f1, f0 enable f3 f2 f1 f0
948 // [0000 0000] burst f2, f1, f0 enable f3 f2 f1 f0
930 // the burst bits shall be set first, before the enable bits
949 // the burst bits shall be set first, before the enable bits
931 switch(mode) {
950 switch(mode) {
@@ -949,8 +968,8 void set_wfp_burst_enable_register( unsi
949 waveform_picker_regs->burst_enable = 0x00; // [0000 0000] no burst enabled, no waveform enabled
968 waveform_picker_regs->burst_enable = 0x00; // [0000 0000] no burst enabled, no waveform enabled
950 break;
969 break;
951 }
970 }
971 }
952 #endif
972 #endif
953 }
954
973
955 void reset_wfp_burst_enable()
974 void reset_wfp_burst_enable()
956 {
975 {
@@ -960,7 +979,8 void reset_wfp_burst_enable()
960 *
979 *
961 */
980 */
962
981
963 #ifdef GSA
982 #ifdef VHDL_DEV
983 waveform_picker_regs->run_burst_enable = 0x00; // burst f2, f1, f0 enable f3, f2, f1, f0
964 #else
984 #else
965 waveform_picker_regs->burst_enable = 0x00; // burst f2, f1, f0 enable f3, f2, f1, f0
985 waveform_picker_regs->burst_enable = 0x00; // burst f2, f1, f0 enable f3, f2, f1, f0
966 #endif
986 #endif
@@ -980,6 +1000,51 void reset_wfp_status()
980 #endif
1000 #endif
981 }
1001 }
982
1002
1003 #ifdef VHDL_DEV
1004 void reset_waveform_picker_regs()
1005 {
1006 /** This function resets the waveform picker module registers.
1007 *
1008 * The registers affected by this function are located at the following offset addresses:
1009 * - 0x00 data_shaping
1010 * - 0x04 run_burst_enable
1011 * - 0x08 addr_data_f0
1012 * - 0x0C addr_data_f1
1013 * - 0x10 addr_data_f2
1014 * - 0x14 addr_data_f3
1015 * - 0x18 status
1016 * - 0x1C delta_snapshot
1017 * - 0x20 delta_f0
1018 * - 0x24 delta_f0_2
1019 * - 0x28 delta_f1
1020 * - 0x2c delta_f2
1021 * - 0x30 nb_data_by_buffer
1022 * - 0x34 nb_snapshot_param
1023 * - 0x38 start_date
1024 * - 0x3c nb_word_in_buffer
1025 *
1026 */
1027 waveform_picker_regs->data_shaping = 0x01; // 0x00 *** R1 R0 SP1 SP0 BW
1028 waveform_picker_regs->run_burst_enable = 0x00; // 0x04 *** [run *** burst f2, f1, f0 *** enable f3, f2, f1, f0 ]
1029 waveform_picker_regs->addr_data_f0 = (int) (wf_snap_f0); // 0x08
1030 waveform_picker_regs->addr_data_f1 = current_ring_node_f1->buffer_address; // 0x0c
1031 waveform_picker_regs->addr_data_f2 = current_ring_node_f2->buffer_address; // 0x10
1032 waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3_a); // 0x14
1033 waveform_picker_regs->status = 0x00; // 0x18
1034 // waveform_picker_regs->delta_snapshot = 0x12800; // 0x1c 296 * 256 = 75776
1035 // waveform_picker_regs->delta_snapshot = 0x1000; // 0x1c 16 * 256 = 4096
1036 waveform_picker_regs->delta_snapshot = 0x2000; // 0x1c 32 * 256 = 8192
1037 waveform_picker_regs->delta_f0 = 0xbf5; // 0x20 *** 1013
1038 waveform_picker_regs->delta_f0_2 = 0x7; // 0x24 *** 7 [7 bits]
1039 waveform_picker_regs->delta_f1 = 0xbc0; // 0x28 *** 960
1040 // waveform_picker_regs->delta_f2 = 0x12200; // 0x2c *** 290 * 256 = 74240
1041 waveform_picker_regs->delta_f2 = 0xc00; // 0x2c *** 12 * 256 = 3072
1042 waveform_picker_regs->nb_data_by_buffer = 0x7ff; // 0x30 *** 2048 -1 => nb samples -1
1043 waveform_picker_regs->snapshot_param = 0x800; // 0x34 *** 2048 => nb samples
1044 waveform_picker_regs->start_date = 0x00; // 0x38
1045 waveform_picker_regs->nb_word_in_buffer = 0x1802; // 0x3c *** 2048 * 3 + 2 = 6146
1046 }
1047 #else
983 void reset_waveform_picker_regs()
1048 void reset_waveform_picker_regs()
984 {
1049 {
985 /** This function resets the waveform picker module registers.
1050 /** This function resets the waveform picker module registers.
@@ -1000,15 +1065,13 void reset_waveform_picker_regs()
1000 *
1065 *
1001 */
1066 */
1002
1067
1003 #ifdef GSA
1004 #else
1005 reset_wfp_burst_enable();
1068 reset_wfp_burst_enable();
1006 reset_wfp_status();
1069 reset_wfp_status();
1007 // set buffer addresses
1070 // set buffer addresses
1008 waveform_picker_regs->addr_data_f0 = (int) (wf_snap_f0);
1071 waveform_picker_regs->addr_data_f0 = (int) (wf_snap_f0);
1009 waveform_picker_regs->addr_data_f1 = current_ring_node_f1->buffer_address;
1072 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;
1073 waveform_picker_regs->addr_data_f2 = current_ring_node_f2->buffer_address;
1011 waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3);
1074 waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3_a);
1012 // set other parameters
1075 // set other parameters
1013 set_wfp_data_shaping();
1076 set_wfp_data_shaping();
1014 set_wfp_delta_snapshot(); // time in seconds between two snapshots
1077 set_wfp_delta_snapshot(); // time in seconds between two snapshots
@@ -1020,39 +1083,11 void reset_waveform_picker_regs()
1020 waveform_picker_regs->nb_burst_available = 0x1b9; // max 3 bytes, size of the buffer in burst (1 burst = 16 x 4 octets)
1083 waveform_picker_regs->nb_burst_available = 0x1b9; // max 3 bytes, size of the buffer in burst (1 burst = 16 x 4 octets)
1021 // 3 * 2352 / 16 = 441
1084 // 3 * 2352 / 16 = 441
1022 waveform_picker_regs->nb_snapshot_param = 0x944; // max 3 octets, 2372 - 1
1085 waveform_picker_regs->nb_snapshot_param = 0x944; // max 3 octets, 2372 - 1
1086 }
1023 #endif
1087 #endif
1024 }
1025
1088
1026 //*****************
1089 //*****************
1027 // local parameters
1090 // local parameters
1028 void set_local_sbm1_nb_cwf_max( void )
1029 {
1030 /** This function sets the value of the sbm1_nb_cwf_max local parameter.
1031 *
1032 * The sbm1_nb_cwf_max parameter counts the number of CWF_F1 records that have been sent.\n
1033 * This parameter is used to send CWF_F1 data as normal data when the SBM1 is active.\n\n
1034 * (2 snapshots of 2048 points per seconds) * (period of the NORM snashots) - 8 s (duration of the f2 snapshot)
1035 *
1036 */
1037 param_local.local_sbm1_nb_cwf_max = 2 *
1038 (parameter_dump_packet.sy_lfr_n_swf_p[0] * 256
1039 + parameter_dump_packet.sy_lfr_n_swf_p[1]) - 8; // 16 CWF1 parts during 1 SWF2
1040 }
1041
1042 void set_local_sbm2_nb_cwf_max(void)
1043 {
1044 /** This function sets the value of the sbm1_nb_cwf_max local parameter.
1045 *
1046 * The sbm1_nb_cwf_max parameter counts the number of CWF_F1 records that have been sent.\n
1047 * This parameter is used to send CWF_F2 data as normal data when the SBM2 is active.\n\n
1048 * (period of the NORM snashots) / (8 seconds per snapshot at f2 = 256 Hz)
1049 *
1050 */
1051
1052 param_local.local_sbm2_nb_cwf_max = (parameter_dump_packet.sy_lfr_n_swf_p[0] * 256
1053 + parameter_dump_packet.sy_lfr_n_swf_p[1]) / 8;
1054 }
1055
1056 void set_local_nb_interrupt_f0_MAX( void )
1091 void set_local_nb_interrupt_f0_MAX( void )
1057 {
1092 {
1058 /** This function sets the value of the nb_interrupt_f0_MAX local parameter.
1093 /** This function sets the value of the nb_interrupt_f0_MAX local parameter.
@@ -1067,30 +1102,6 void set_local_nb_interrupt_f0_MAX( void
1067 + parameter_dump_packet.sy_lfr_n_asm_p[1] ) * 100;
1102 + parameter_dump_packet.sy_lfr_n_asm_p[1] ) * 100;
1068 }
1103 }
1069
1104
1070 void reset_local_sbm1_nb_cwf_sent( void )
1071 {
1072 /** This function resets the value of the sbm1_nb_cwf_sent local parameter.
1073 *
1074 * The sbm1_nb_cwf_sent parameter counts the number of CWF_F1 records that have been sent.\n
1075 * This parameter is used to send CWF_F1 data as normal data when the SBM1 is active.
1076 *
1077 */
1078
1079 param_local.local_sbm1_nb_cwf_sent = 0;
1080 }
1081
1082 void reset_local_sbm2_nb_cwf_sent( void )
1083 {
1084 /** This function resets the value of the sbm2_nb_cwf_sent local parameter.
1085 *
1086 * The sbm2_nb_cwf_sent parameter counts the number of CWF_F2 records that have been sent.\n
1087 * This parameter is used to send CWF_F2 data as normal data when the SBM2 mode is active.
1088 *
1089 */
1090
1091 param_local.local_sbm2_nb_cwf_sent = 0;
1092 }
1093
1094 void increment_seq_counter_source_id( unsigned char *packet_sequence_control, unsigned int sid )
1105 void increment_seq_counter_source_id( unsigned char *packet_sequence_control, unsigned int sid )
1095 {
1106 {
1096 unsigned short *sequence_cnt;
1107 unsigned short *sequence_cnt;
General Comments 0
You need to be logged in to leave comments. Login now