##// END OF EJS Templates
Minor changes
paul -
r93:ffd04db5cce0 VHDLib206
parent child
Show More
@@ -1,6 +1,6
1 1 #############################################################################
2 2 # Makefile for building: bin/fsw-vhdl-dev
3 # Generated by qmake (2.01a) (Qt 4.8.5) on: Mon Jan 27 07:11:41 2014
3 # Generated by qmake (2.01a) (Qt 4.8.5) on: Thu Feb 6 09:29:25 2014
4 4 # Project: fsw-qt.pro
5 5 # Template: app
6 6 # Command: /usr/bin/qmake-qt4 -spec /usr/lib64/qt4/mkspecs/linux-g++ -o Makefile fsw-qt.pro
@@ -1,10 +1,10
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <!DOCTYPE QtCreatorProject>
3 <!-- Written by QtCreator 3.0.0, 2014-01-28T06:58:48. -->
3 <!-- Written by QtCreator 3.0.0, 2014-02-06T15:45:54. -->
4 4 <qtcreator>
5 5 <data>
6 6 <variable>ProjectExplorer.Project.ActiveTarget</variable>
7 <value type="int">0</value>
7 <value type="int">1</value>
8 8 </data>
9 9 <data>
10 10 <variable>ProjectExplorer.Project.EditorSettings</variable>
@@ -25,7 +25,7
25 25 </valuemap>
26 26 </valuemap>
27 27 <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
28 <value type="QByteArray" key="EditorConfiguration.Codec">System</value>
28 <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
29 29 <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
30 30 <value type="int" key="EditorConfiguration.IndentSize">4</value>
31 31 <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
@@ -51,14 +51,14
51 51 <data>
52 52 <variable>ProjectExplorer.Project.Target.0</variable>
53 53 <valuemap type="QVariantMap">
54 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop-Qt 4.8.2 in PATH (System)</value>
55 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop-Qt 4.8.2 in PATH (System)</value>
56 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{5289e843-9ef2-45ce-88c6-ad27d8e08def}</value>
54 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
55 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
56 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{e04e3924-0bd8-4708-be18-f1474e45608e}</value>
57 57 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
58 58 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
59 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">1</value>
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 <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory"></value>
62 62 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
63 63 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
64 64 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@@ -66,7 +66,7
66 66 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
67 67 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
68 68 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
69 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
69 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
70 70 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
71 71 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
72 72 </valuemap>
@@ -80,7 +80,7
80 80 <value type="QString">-r</value>
81 81 </valuelist>
82 82 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
83 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">-r -w -j 4</value>
83 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
84 84 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
85 85 </valuemap>
86 86 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
@@ -99,7 +99,7
99 99 <value type="QString">-r</value>
100 100 </valuelist>
101 101 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
102 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">-r -w clean</value>
102 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
103 103 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
104 104 </valuemap>
105 105 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
@@ -110,14 +110,93
110 110 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
111 111 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
112 112 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
113 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.2 in PATH (System) Release</value>
113 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
114 114 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
115 115 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
116 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">true</value>
118 </valuemap>
119 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
120 <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
121 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
122 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
123 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
124 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
125 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
126 </valuemap>
127 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
128 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value>
129 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
130 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
118 131 </valuemap>
119 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
120 <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/opt/DEV_PLE/FSW-qt</value>
132 <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
133 <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
134 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
135 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
136 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
137 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
138 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
139 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
140 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
141 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
142 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
143 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
144 <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
145 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
146 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
147 <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
148 <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
149 <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
150 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
151 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
152 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
153 <value type="int">0</value>
154 <value type="int">1</value>
155 <value type="int">2</value>
156 <value type="int">3</value>
157 <value type="int">4</value>
158 <value type="int">5</value>
159 <value type="int">6</value>
160 <value type="int">7</value>
161 <value type="int">8</value>
162 <value type="int">9</value>
163 <value type="int">10</value>
164 <value type="int">11</value>
165 <value type="int">12</value>
166 <value type="int">13</value>
167 <value type="int">14</value>
168 </valuelist>
169 <value type="int" key="PE.EnvironmentAspect.Base">2</value>
170 <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
171 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">fsw-qt</value>
172 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
173 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/opt/DEV_PLE/FSW-qt/fsw-qt.pro</value>
174 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value>
175 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">fsw-qt.pro</value>
176 <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value>
177 <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal">true</value>
178 <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"></value>
179 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
180 <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
181 <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
182 <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
183 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
184 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
185 </valuemap>
186 <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
187 </valuemap>
188 </data>
189 <data>
190 <variable>ProjectExplorer.Project.Target.1</variable>
191 <valuemap type="QVariantMap">
192 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop-Qt 4.8.2 in PATH (System)</value>
193 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop-Qt 4.8.2 in PATH (System)</value>
194 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{5289e843-9ef2-45ce-88c6-ad27d8e08def}</value>
195 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
196 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
197 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
198 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
199 <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory"></value>
121 200 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
122 201 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
123 202 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@@ -125,7 +204,7
125 204 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
126 205 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
127 206 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value>
128 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value>
207 <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value>
129 208 <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value>
130 209 <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
131 210 </valuemap>
@@ -139,7 +218,7
139 218 <value type="QString">-r</value>
140 219 </valuelist>
141 220 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value>
142 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">-r -w </value>
221 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value>
143 222 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
144 223 </valuemap>
145 224 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
@@ -158,7 +237,7
158 237 <value type="QString">-r</value>
159 238 </valuelist>
160 239 <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value>
161 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">-r -w clean</value>
240 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
162 241 <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value>
163 242 </valuemap>
164 243 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
@@ -169,13 +248,13
169 248 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
170 249 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
171 250 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
172 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.2 in PATH (System) Debug</value>
251 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value>
173 252 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
174 253 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
175 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
176 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value>
254 <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
255 <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value>
177 256 </valuemap>
178 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value>
257 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
179 258 <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
180 259 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
181 260 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
@@ -184,7 +263,7
184 263 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
185 264 </valuemap>
186 265 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
187 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">No deployment</value>
266 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value>
188 267 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
189 268 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
190 269 </valuemap>
@@ -240,65 +319,14
240 319 <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">false</value>
241 320 <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
242 321 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
243 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value>
244 </valuemap>
245 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.1">
246 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
247 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
248 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
249 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
250 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
251 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
252 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
253 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
254 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
255 <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
256 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
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>
261 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
262 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
263 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
264 <value type="int">0</value>
265 <value type="int">1</value>
266 <value type="int">2</value>
267 <value type="int">3</value>
268 <value type="int">4</value>
269 <value type="int">5</value>
270 <value type="int">6</value>
271 <value type="int">7</value>
272 <value type="int">8</value>
273 <value type="int">9</value>
274 <value type="int">10</value>
275 <value type="int">11</value>
276 <value type="int">12</value>
277 <value type="int">13</value>
278 <value type="int">14</value>
279 </valuelist>
280 <value type="int" key="PE.EnvironmentAspect.Base">2</value>
281 <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
282 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Arguments"></value>
283 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable">doxygen</value>
284 <value type="bool" key="ProjectExplorer.CustomExecutableRunConfiguration.UseTerminal">true</value>
285 <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.WorkingDirectory">/opt/DEV_PLE/doc</value>
286 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Run doxygen</value>
287 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
288 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value>
289 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
290 <value type="bool" key="RunConfiguration.UseCppDebugger">true</value>
291 <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">false</value>
292 <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
293 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
294 322 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
295 323 </valuemap>
296 <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">2</value>
324 <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
297 325 </valuemap>
298 326 </data>
299 327 <data>
300 328 <variable>ProjectExplorer.Project.TargetCount</variable>
301 <value type="int">1</value>
329 <value type="int">2</value>
302 330 </data>
303 331 <data>
304 332 <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
@@ -210,19 +210,21 enum apid_destid{
210 210 // R1
211 211 #define TM_LEN_SCI_SWF_340 4101 // 340 * 12 + 10 + 12 - 1
212 212 #define TM_LEN_SCI_SWF_8 117 // 8 * 12 + 10 + 12 - 1
213 // R2
214 #define TM_LEN_SCI_SWF_304 3669 // 304 * 12 + 10 + 12 - 1
215 #define TM_LEN_SCI_SWF_224 2709 // 224 * 12 + 10 + 12 - 1
216 //
217 213 #define TM_LEN_SCI_CWF_340 4099 // 340 * 12 + 10 + 10 - 1
218 214 #define TM_LEN_SCI_CWF_8 115 // 8 * 12 + 10 + 10 - 1
219 215 #define TM_LEN_SCI_CWF3_LIGHT_340 2059 // 340 * 6 + 10 + 10 - 1
220 216 #define TM_LEN_SCI_CWF3_LIGHT_8 67 // 8 * 6 + 10 + 10 - 1
221 #define DEFAULT_PKTCNT 0x07
222 #define BLK_NR_340 0x0154
223 #define BLK_NR_8 0x0008
224 #define BLK_NR_304 0x0130
225 #define BLK_NR_224 0x00e0
217 // R2
218 #define TM_LEN_SCI_SWF_304 3669 // 304 * 12 + 10 + 12 - 1
219 #define TM_LEN_SCI_SWF_224 2709 // 224 * 12 + 10 + 12 - 1
220 #define TM_LEN_SCI_CWF_336 4051 // 336 * 12 + 10 + 10 - 1
221 #define TM_LEN_SCI_CWF_672 4051 // 672 * 6 + 10 + 10 - 1
222 //
223 #define DEFAULT_PKTCNT 0x07
224 #define BLK_NR_304 0x0130
225 #define BLK_NR_224 0x00e0
226 #define BLK_NR_CWF 0x0150 // 336
227 #define BLK_NR_CWF_SHORT_F3 0x02a0 // 672
226 228
227 229 enum TM_TYPE{
228 230 TM_LFR_TC_EXE_OK,
@@ -9,6 +9,14
9 9 #define GRSPW_DEVICE_NAME "/dev/grspw0"
10 10 #define UART_DEVICE_NAME "/dev/console"
11 11
12 typedef struct ring_node
13 {
14 struct ring_node *previous;
15 int buffer_address;
16 struct ring_node *next;
17 unsigned int status;
18 } ring_node;
19
12 20 //************************
13 21 // flight software version
14 22 // this parameters is handled by the Qt project options
@@ -16,14 +24,18
16 24 //#define NB_SAMPLES_PER_SNAPSHOT 2048
17 25 #define NB_SAMPLES_PER_SNAPSHOT 2352 // 336 * 7 = 2352
18 26 #define TIME_OFFSET 2
27 #define TIME_OFFSET_IN_BYTES 8
19 28 #define WAVEFORM_EXTENDED_HEADER_OFFSET 22
20 29 #define NB_BYTES_SWF_BLK (2 * 6)
21 30 #define NB_WORDS_SWF_BLK 3
22 31 #define NB_BYTES_CWF3_LIGHT_BLK 6
23 32 #define WFRM_INDEX_OF_LAST_PACKET 6 // waveforms are transmitted in groups of 2048 blocks, 6 packets of 340 and 1 of 8
24 #define NB_RING_NODES_F0 3 // AT LEAST 3
25 #define NB_RING_NODES_F1 5 // AT LEAST 3
26 #define NB_RING_NODES_F2 5 // AT LEAST 3
33 #define NB_RING_NODES_F0 3 // AT LEAST 3
34 #define NB_RING_NODES_F1 5 // AT LEAST 3
35 #define NB_RING_NODES_F2 5 // AT LEAST 3
36 #define NB_RING_NODES_ASM_F0 8 // AT LEAST 3
37 #define NB_RING_NODES_ASM_F1 2 // AT LEAST 3
38 #define NB_RING_NODES_ASM_F2 2 // AT LEAST 3
27 39
28 40 //**********
29 41 // LFR MODES
@@ -1,10 +1,10
1 1 #ifndef FSW_PARAMS_PROCESSING_H
2 2 #define FSW_PARAMS_PROCESSING_H
3 3
4 #define NB_BINS_PER_SM 128
5 #define NB_VALUES_PER_SM 25
6 #define TOTAL_SIZE_SM 0
7 #define SM_HEADER 0
4 #define NB_BINS_PER_SM 128 //
5 #define NB_VALUES_PER_SM 25 //
6 #define TOTAL_SIZE_SM 3200 // 25 * 128
7 #define SM_HEADER 0 //
8 8
9 9 #define NB_BINS_COMPRESSED_SM_F0 11
10 10 #define NB_BINS_COMPRESSED_SM_F1 13
@@ -11,24 +11,9
11 11 #include "fsw_params.h"
12 12 #include "fsw_spacewire.h"
13 13
14 extern volatile int spec_mat_f0_0[ ];
15 extern volatile int spec_mat_f0_1[ ];
16 extern volatile int spec_mat_f0_a[ ];
17 extern volatile int spec_mat_f0_b[ ];
18 extern volatile int spec_mat_f0_c[ ];
19 extern volatile int spec_mat_f0_d[ ];
20 extern volatile int spec_mat_f0_e[ ];
21 extern volatile int spec_mat_f0_f[ ];
22 extern volatile int spec_mat_f0_g[ ];
23 extern volatile int spec_mat_f0_h[ ];
24
25 extern volatile int spec_mat_f1[ ];
26 extern volatile int spec_mat_f2[ ];
27
28 extern volatile int spec_mat_f1_bis[ ];
29 extern volatile int spec_mat_f2_bis[ ];
30 extern volatile int spec_mat_f0_0_bis[ ];
31 extern volatile int spec_mat_f0_1_bis[ ];
14 extern volatile int sm_f0[ ][ SM_HEADER + TOTAL_SIZE_SM ];
15 extern volatile int sm_f1[ ][ SM_HEADER + TOTAL_SIZE_SM ];
16 extern volatile int sm_f2[ ][ SM_HEADER + TOTAL_SIZE_SM ];
32 17
33 18 // parameters
34 19 extern struct param_local_str param_local;
@@ -40,6 +25,9 extern spectral_matrix_regs_t *spectral_
40 25 extern rtems_name misc_name[5];
41 26 extern rtems_id Task_id[20]; /* array of task ids */
42 27
28 //
29 void init_asm_rings( void );
30
43 31 // ISR
44 32 rtems_isr spectral_matrices_isr( rtems_vector_number vector );
45 33 rtems_isr spectral_matrices_isr_simu( rtems_vector_number vector );
@@ -12,14 +12,6
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
23 15 extern int fdSPW;
24 16
25 17 //*****************
@@ -73,6 +65,8 int send_waveform_CWF( volatile int *wa
73 65 int send_waveform_CWF3( volatile int *waveform, unsigned int sid, Header_TM_LFR_SCIENCE_CWF_t *headerCWF, rtems_id queue_id );
74 66 int send_waveform_CWF3_light( volatile int *waveform, Header_TM_LFR_SCIENCE_CWF_t *headerCWF, rtems_id queue_id );
75 67 //
68 void compute_acquisition_time(unsigned int *coarseTime, unsigned int *fineTime, unsigned int sid, unsigned char pa_lfr_pkt_nr );
69 //
76 70 rtems_id get_pkts_queue_id( void );
77 71
78 72 //**************
@@ -39,29 +39,14 volatile int wf_snap_f0[ NB_RING_NODES_F
39 39 volatile int wf_snap_f1[ NB_RING_NODES_F1 ][ (NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK) + TIME_OFFSET + 46 ] __attribute__((aligned(0x100)));
40 40 volatile int wf_snap_f2[ NB_RING_NODES_F2 ][ (NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK) + TIME_OFFSET + 46 ] __attribute__((aligned(0x100)));
41 41 // F3
42 volatile int wf_cont_f3_a[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ] __attribute__((aligned(0x100)));
43 volatile int wf_cont_f3_b[ NB_SAMPLES_PER_SNAPSHOT * NB_WORDS_SWF_BLK + TIME_OFFSET ] __attribute__((aligned(0x100)));
44 char wf_cont_f3_light[ NB_SAMPLES_PER_SNAPSHOT * NB_BYTES_CWF3_LIGHT_BLK ] __attribute__((aligned(0x100)));
42 volatile int wf_cont_f3_a [ (NB_SAMPLES_PER_SNAPSHOT) * NB_WORDS_SWF_BLK + TIME_OFFSET ] __attribute__((aligned(0x100)));
43 volatile int wf_cont_f3_b [ (NB_SAMPLES_PER_SNAPSHOT) * NB_WORDS_SWF_BLK + TIME_OFFSET ] __attribute__((aligned(0x100)));
44 char wf_cont_f3_light[ (NB_SAMPLES_PER_SNAPSHOT) * NB_BYTES_CWF3_LIGHT_BLK + TIME_OFFSET_IN_BYTES ] __attribute__((aligned(0x100)));
45 45
46 46 // SPECTRAL MATRICES GLOBAL VARIABLES
47 volatile int spec_mat_f0_0[ SM_HEADER + TOTAL_SIZE_SM ];
48 volatile int spec_mat_f0_1[ SM_HEADER + TOTAL_SIZE_SM ];
49 volatile int spec_mat_f0_a[ SM_HEADER + TOTAL_SIZE_SM ];
50 volatile int spec_mat_f0_b[ SM_HEADER + TOTAL_SIZE_SM ];
51 volatile int spec_mat_f0_c[ SM_HEADER + TOTAL_SIZE_SM ];
52 volatile int spec_mat_f0_d[ SM_HEADER + TOTAL_SIZE_SM ];
53 volatile int spec_mat_f0_e[ SM_HEADER + TOTAL_SIZE_SM ];
54 volatile int spec_mat_f0_f[ SM_HEADER + TOTAL_SIZE_SM ];
55 volatile int spec_mat_f0_g[ SM_HEADER + TOTAL_SIZE_SM ];
56 volatile int spec_mat_f0_h[ SM_HEADER + TOTAL_SIZE_SM ];
57 volatile int spec_mat_f0_0_bis[ SM_HEADER + TOTAL_SIZE_SM ];
58 volatile int spec_mat_f0_1_bis[ SM_HEADER + TOTAL_SIZE_SM ];
59 //
60 volatile int spec_mat_f1[ SM_HEADER + TOTAL_SIZE_SM ];
61 volatile int spec_mat_f1_bis[ SM_HEADER + TOTAL_SIZE_SM ];
62 //
63 volatile int spec_mat_f2[ SM_HEADER + TOTAL_SIZE_SM ];
64 volatile int spec_mat_f2_bis[ SM_HEADER + TOTAL_SIZE_SM ];
47 volatile int sm_f0[ NB_RING_NODES_ASM_F0 ][ SM_HEADER + TOTAL_SIZE_SM ];
48 volatile int sm_f1[ NB_RING_NODES_ASM_F1 ][ SM_HEADER + TOTAL_SIZE_SM ];
49 volatile int sm_f2[ NB_RING_NODES_ASM_F2 ][ SM_HEADER + TOTAL_SIZE_SM ];
65 50
66 51 // APB CONFIGURATION REGISTERS
67 52 time_management_regs_t *time_management_regs = (time_management_regs_t*) REGS_ADDR_TIME_MANAGEMENT;
@@ -11,10 +11,48
11 11
12 12 #include "fsw_processing_globals.c"
13 13
14 //************************
15 // spectral matrices rings
16 ring_node sm_ring_f0[NB_RING_NODES_ASM_F0];
17 ring_node sm_ring_f1[NB_RING_NODES_ASM_F1];
18 ring_node sm_ring_f2[NB_RING_NODES_ASM_F2];
19 ring_node *current_ring_node_sm_f0;
20 ring_node *current_ring_node_sm_f1;
21 ring_node *current_ring_node_sm_f2;
22
14 23 BP1_t data_BP1[ NB_BINS_COMPRESSED_SM_F0 ];
15 float averaged_spec_mat_f0[ TOTAL_SIZE_SM ];
16 char averaged_spec_mat_f0_char[ TOTAL_SIZE_SM * 2 ];
17 float compressed_spec_mat_f0[ TOTAL_SIZE_COMPRESSED_MATRIX_f0 ];
24 float averaged_sm_f0[ TOTAL_SIZE_SM ];
25 char averaged_sm_f0_char[ TOTAL_SIZE_SM * 2 ];
26 float compressed_sm_f0[ TOTAL_SIZE_COMPRESSED_MATRIX_f0 ];
27
28 void init_asm_rings( void )
29 {
30 unsigned char i;
31
32 // F0 RING
33 sm_ring_f0[0].next = (ring_node*) &sm_ring_f0[1];
34 sm_ring_f0[0].previous = (ring_node*) &sm_ring_f0[NB_RING_NODES_ASM_F0-1];
35 sm_ring_f0[0].buffer_address = (int) &sm_f0[0][0];
36
37 sm_ring_f0[NB_RING_NODES_ASM_F0-1].next = (ring_node*) &sm_ring_f0[0];
38 sm_ring_f0[NB_RING_NODES_ASM_F0-1].previous = (ring_node*) &sm_ring_f0[NB_RING_NODES_ASM_F0-2];
39 sm_ring_f0[NB_RING_NODES_ASM_F0-1].buffer_address = (int) &sm_f0[NB_RING_NODES_ASM_F0-1][0];
40
41 for(i=1; i<NB_RING_NODES_ASM_F0-1; i++)
42 {
43 sm_ring_f0[i].next = (ring_node*) &sm_ring_f0[i+1];
44 sm_ring_f0[i].previous = (ring_node*) &sm_ring_f0[i-1];
45 sm_ring_f0[i].buffer_address = (int) &sm_f0[i][0];
46 }
47
48 DEBUG_PRINTF1("asm_ring_f0 @%x\n", (unsigned int) sm_ring_f0)
49
50 }
51
52 void reset_current_sm_ring_nodes( void )
53 {
54 current_ring_node_sm_f0 = sm_ring_f0;
55 }
18 56
19 57 //***********************************************************
20 58 // Interrupt Service Routine for spectral matrices processing
@@ -31,48 +69,13 rtems_isr spectral_matrices_isr( rtems_v
31 69 switch(i)
32 70 {
33 71 case 0:
34 if (spectral_matrix_regs->matrixF0_Address0 == (int) spec_mat_f0_0)
35 {
36 spectral_matrix_regs->matrixF0_Address0 = (int) spec_mat_f0_0_bis;
37 }
38 else
39 {
40 spectral_matrix_regs->matrixF0_Address0 = (int) spec_mat_f0_0;
41 }
72 current_ring_node_sm_f0 = current_ring_node_sm_f0->next;
73 spectral_matrix_regs->matrixF0_Address0 = current_ring_node_sm_f0->buffer_address;
42 74 spectral_matrix_regs->status = spectral_matrix_regs->status & 0xfffffffe;
43 75 break;
44 76 case 1:
45 if (spectral_matrix_regs->matrixFO_Address1 == (int) spec_mat_f0_1)
46 {
47 spectral_matrix_regs->matrixFO_Address1 = (int) spec_mat_f0_1_bis;
48 }
49 else
50 {
51 spectral_matrix_regs->matrixFO_Address1 = (int) spec_mat_f0_1;
52 }
53 spectral_matrix_regs->status = spectral_matrix_regs->status & 0xfffffffd;
54 77 break;
55 78 case 2:
56 if (spectral_matrix_regs->matrixF1_Address == (int) spec_mat_f1)
57 {
58 spectral_matrix_regs->matrixF1_Address = (int) spec_mat_f1_bis;
59 }
60 else
61 {
62 spectral_matrix_regs->matrixF1_Address = (int) spec_mat_f1;
63 }
64 spectral_matrix_regs->status = spectral_matrix_regs->status & 0xfffffffb;
65 break;
66 case 3:
67 if (spectral_matrix_regs->matrixF2_Address == (int) spec_mat_f2)
68 {
69 spectral_matrix_regs->matrixF2_Address = (int) spec_mat_f2_bis;
70 }
71 else
72 {
73 spectral_matrix_regs->matrixF2_Address = (int) spec_mat_f2;
74 }
75 spectral_matrix_regs->status = spectral_matrix_regs->status & 0xfffffff7;
76 79 break;
77 80 default:
78 81 break;
@@ -144,14 +147,14 rtems_task avf0_task(rtems_task_argument
144 147 while(1){
145 148 rtems_event_receive(RTEMS_EVENT_0, RTEMS_WAIT, RTEMS_NO_TIMEOUT, &event_out); // wait for an RTEMS_EVENT0
146 149 for(i=0; i<TOTAL_SIZE_SM; i++){
147 averaged_spec_mat_f0[i] = averaged_spec_mat_f0[i] + spec_mat_f0_a[i]
148 + spec_mat_f0_b[i]
149 + spec_mat_f0_c[i]
150 + spec_mat_f0_d[i]
151 + spec_mat_f0_e[i]
152 + spec_mat_f0_f[i]
153 + spec_mat_f0_g[i]
154 + spec_mat_f0_h[i];
150 averaged_sm_f0[i] = current_ring_node_sm_f0[0].buffer_address
151 + current_ring_node_sm_f0[1].buffer_address
152 + current_ring_node_sm_f0[2].buffer_address
153 + current_ring_node_sm_f0[3].buffer_address
154 + current_ring_node_sm_f0[4].buffer_address
155 + current_ring_node_sm_f0[5].buffer_address
156 + current_ring_node_sm_f0[6].buffer_address
157 + current_ring_node_sm_f0[7].buffer_address;
155 158 }
156 159 nb_average = nb_average + NB_SM_TO_RECEIVE_BEFORE_AVF0;
157 160 if (nb_average == NB_AVERAGE_NORMAL_f0) {
@@ -173,8 +176,8 rtems_task bpf0_task(rtems_task_argument
173 176
174 177 while(1){
175 178 rtems_event_receive(RTEMS_EVENT_0, RTEMS_WAIT, RTEMS_NO_TIMEOUT, &event_out); // wait for an RTEMS_EVENT0
176 matrix_compression(averaged_spec_mat_f0, 0, compressed_spec_mat_f0);
177 BP1_set(compressed_spec_mat_f0, NB_BINS_COMPRESSED_SM_F0, LFR_BP1_F0);
179 matrix_compression(averaged_sm_f0, 0, compressed_sm_f0);
180 BP1_set(compressed_sm_f0, NB_BINS_COMPRESSED_SM_F0, LFR_BP1_F0);
178 181 }
179 182 }
180 183
@@ -201,9 +204,9 rtems_task matr_task(rtems_task_argument
201 204 while(1){
202 205 rtems_event_receive(RTEMS_EVENT_0, RTEMS_WAIT, RTEMS_NO_TIMEOUT, &event_out); // wait for an RTEMS_EVENT0
203 206 // 1) convert the float array in a char array
204 convert_averaged_spectral_matrix( averaged_spec_mat_f0, averaged_spec_mat_f0_char);
207 convert_averaged_spectral_matrix( averaged_sm_f0, averaged_sm_f0_char);
205 208 // 2) send the spectral matrix packets
206 send_spectral_matrix( &headerASM, averaged_spec_mat_f0_char, SID_NORM_ASM_F0, &spw_ioctl_send_ASM, queue_id);
209 send_spectral_matrix( &headerASM, averaged_sm_f0_char, SID_NORM_ASM_F0, &spw_ioctl_send_ASM, queue_id);
207 210 }
208 211 }
209 212
@@ -545,70 +548,70 void fill_averaged_spectral_matrix(void)
545 548
546 549 offset = 10.;
547 550 coeff = 100000.;
548 averaged_spec_mat_f0[ 0 + 25 * 0 ] = 0. + offset;
549 averaged_spec_mat_f0[ 0 + 25 * 1 ] = 1. + offset;
550 averaged_spec_mat_f0[ 0 + 25 * 2 ] = 2. + offset;
551 averaged_spec_mat_f0[ 0 + 25 * 3 ] = 3. + offset;
552 averaged_spec_mat_f0[ 0 + 25 * 4 ] = 4. + offset;
553 averaged_spec_mat_f0[ 0 + 25 * 5 ] = 5. + offset;
554 averaged_spec_mat_f0[ 0 + 25 * 6 ] = 6. + offset;
555 averaged_spec_mat_f0[ 0 + 25 * 7 ] = 7. + offset;
556 averaged_spec_mat_f0[ 0 + 25 * 8 ] = 8. + offset;
557 averaged_spec_mat_f0[ 0 + 25 * 9 ] = 9. + offset;
558 averaged_spec_mat_f0[ 0 + 25 * 10 ] = 10. + offset;
559 averaged_spec_mat_f0[ 0 + 25 * 11 ] = 11. + offset;
560 averaged_spec_mat_f0[ 0 + 25 * 12 ] = 12. + offset;
561 averaged_spec_mat_f0[ 0 + 25 * 13 ] = 13. + offset;
562 averaged_spec_mat_f0[ 0 + 25 * 14 ] = 14. + offset;
563 averaged_spec_mat_f0[ 9 + 25 * 0 ] = -(0. + offset)* coeff;
564 averaged_spec_mat_f0[ 9 + 25 * 1 ] = -(1. + offset)* coeff;
565 averaged_spec_mat_f0[ 9 + 25 * 2 ] = -(2. + offset)* coeff;
566 averaged_spec_mat_f0[ 9 + 25 * 3 ] = -(3. + offset)* coeff;
567 averaged_spec_mat_f0[ 9 + 25 * 4 ] = -(4. + offset)* coeff;
568 averaged_spec_mat_f0[ 9 + 25 * 5 ] = -(5. + offset)* coeff;
569 averaged_spec_mat_f0[ 9 + 25 * 6 ] = -(6. + offset)* coeff;
570 averaged_spec_mat_f0[ 9 + 25 * 7 ] = -(7. + offset)* coeff;
571 averaged_spec_mat_f0[ 9 + 25 * 8 ] = -(8. + offset)* coeff;
572 averaged_spec_mat_f0[ 9 + 25 * 9 ] = -(9. + offset)* coeff;
573 averaged_spec_mat_f0[ 9 + 25 * 10 ] = -(10. + offset)* coeff;
574 averaged_spec_mat_f0[ 9 + 25 * 11 ] = -(11. + offset)* coeff;
575 averaged_spec_mat_f0[ 9 + 25 * 12 ] = -(12. + offset)* coeff;
576 averaged_spec_mat_f0[ 9 + 25 * 13 ] = -(13. + offset)* coeff;
577 averaged_spec_mat_f0[ 9 + 25 * 14 ] = -(14. + offset)* coeff;
551 averaged_sm_f0[ 0 + 25 * 0 ] = 0. + offset;
552 averaged_sm_f0[ 0 + 25 * 1 ] = 1. + offset;
553 averaged_sm_f0[ 0 + 25 * 2 ] = 2. + offset;
554 averaged_sm_f0[ 0 + 25 * 3 ] = 3. + offset;
555 averaged_sm_f0[ 0 + 25 * 4 ] = 4. + offset;
556 averaged_sm_f0[ 0 + 25 * 5 ] = 5. + offset;
557 averaged_sm_f0[ 0 + 25 * 6 ] = 6. + offset;
558 averaged_sm_f0[ 0 + 25 * 7 ] = 7. + offset;
559 averaged_sm_f0[ 0 + 25 * 8 ] = 8. + offset;
560 averaged_sm_f0[ 0 + 25 * 9 ] = 9. + offset;
561 averaged_sm_f0[ 0 + 25 * 10 ] = 10. + offset;
562 averaged_sm_f0[ 0 + 25 * 11 ] = 11. + offset;
563 averaged_sm_f0[ 0 + 25 * 12 ] = 12. + offset;
564 averaged_sm_f0[ 0 + 25 * 13 ] = 13. + offset;
565 averaged_sm_f0[ 0 + 25 * 14 ] = 14. + offset;
566 averaged_sm_f0[ 9 + 25 * 0 ] = -(0. + offset)* coeff;
567 averaged_sm_f0[ 9 + 25 * 1 ] = -(1. + offset)* coeff;
568 averaged_sm_f0[ 9 + 25 * 2 ] = -(2. + offset)* coeff;
569 averaged_sm_f0[ 9 + 25 * 3 ] = -(3. + offset)* coeff;
570 averaged_sm_f0[ 9 + 25 * 4 ] = -(4. + offset)* coeff;
571 averaged_sm_f0[ 9 + 25 * 5 ] = -(5. + offset)* coeff;
572 averaged_sm_f0[ 9 + 25 * 6 ] = -(6. + offset)* coeff;
573 averaged_sm_f0[ 9 + 25 * 7 ] = -(7. + offset)* coeff;
574 averaged_sm_f0[ 9 + 25 * 8 ] = -(8. + offset)* coeff;
575 averaged_sm_f0[ 9 + 25 * 9 ] = -(9. + offset)* coeff;
576 averaged_sm_f0[ 9 + 25 * 10 ] = -(10. + offset)* coeff;
577 averaged_sm_f0[ 9 + 25 * 11 ] = -(11. + offset)* coeff;
578 averaged_sm_f0[ 9 + 25 * 12 ] = -(12. + offset)* coeff;
579 averaged_sm_f0[ 9 + 25 * 13 ] = -(13. + offset)* coeff;
580 averaged_sm_f0[ 9 + 25 * 14 ] = -(14. + offset)* coeff;
578 581
579 582 offset = 10000000;
580 averaged_spec_mat_f0[ 16 + 25 * 0 ] = (0. + offset)* coeff;
581 averaged_spec_mat_f0[ 16 + 25 * 1 ] = (1. + offset)* coeff;
582 averaged_spec_mat_f0[ 16 + 25 * 2 ] = (2. + offset)* coeff;
583 averaged_spec_mat_f0[ 16 + 25 * 3 ] = (3. + offset)* coeff;
584 averaged_spec_mat_f0[ 16 + 25 * 4 ] = (4. + offset)* coeff;
585 averaged_spec_mat_f0[ 16 + 25 * 5 ] = (5. + offset)* coeff;
586 averaged_spec_mat_f0[ 16 + 25 * 6 ] = (6. + offset)* coeff;
587 averaged_spec_mat_f0[ 16 + 25 * 7 ] = (7. + offset)* coeff;
588 averaged_spec_mat_f0[ 16 + 25 * 8 ] = (8. + offset)* coeff;
589 averaged_spec_mat_f0[ 16 + 25 * 9 ] = (9. + offset)* coeff;
590 averaged_spec_mat_f0[ 16 + 25 * 10 ] = (10. + offset)* coeff;
591 averaged_spec_mat_f0[ 16 + 25 * 11 ] = (11. + offset)* coeff;
592 averaged_spec_mat_f0[ 16 + 25 * 12 ] = (12. + offset)* coeff;
593 averaged_spec_mat_f0[ 16 + 25 * 13 ] = (13. + offset)* coeff;
594 averaged_spec_mat_f0[ 16 + 25 * 14 ] = (14. + offset)* coeff;
583 averaged_sm_f0[ 16 + 25 * 0 ] = (0. + offset)* coeff;
584 averaged_sm_f0[ 16 + 25 * 1 ] = (1. + offset)* coeff;
585 averaged_sm_f0[ 16 + 25 * 2 ] = (2. + offset)* coeff;
586 averaged_sm_f0[ 16 + 25 * 3 ] = (3. + offset)* coeff;
587 averaged_sm_f0[ 16 + 25 * 4 ] = (4. + offset)* coeff;
588 averaged_sm_f0[ 16 + 25 * 5 ] = (5. + offset)* coeff;
589 averaged_sm_f0[ 16 + 25 * 6 ] = (6. + offset)* coeff;
590 averaged_sm_f0[ 16 + 25 * 7 ] = (7. + offset)* coeff;
591 averaged_sm_f0[ 16 + 25 * 8 ] = (8. + offset)* coeff;
592 averaged_sm_f0[ 16 + 25 * 9 ] = (9. + offset)* coeff;
593 averaged_sm_f0[ 16 + 25 * 10 ] = (10. + offset)* coeff;
594 averaged_sm_f0[ 16 + 25 * 11 ] = (11. + offset)* coeff;
595 averaged_sm_f0[ 16 + 25 * 12 ] = (12. + offset)* coeff;
596 averaged_sm_f0[ 16 + 25 * 13 ] = (13. + offset)* coeff;
597 averaged_sm_f0[ 16 + 25 * 14 ] = (14. + offset)* coeff;
595 598
596 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 0 ] = averaged_spec_mat_f0[ 0 ];
597 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 1 ] = averaged_spec_mat_f0[ 1 ];
598 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 2 ] = averaged_spec_mat_f0[ 2 ];
599 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 3 ] = averaged_spec_mat_f0[ 3 ];
600 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 4 ] = averaged_spec_mat_f0[ 4 ];
601 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 5 ] = averaged_spec_mat_f0[ 5 ];
602 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 6 ] = averaged_spec_mat_f0[ 6 ];
603 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 7 ] = averaged_spec_mat_f0[ 7 ];
604 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 8 ] = averaged_spec_mat_f0[ 8 ];
605 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 9 ] = averaged_spec_mat_f0[ 9 ];
606 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 10 ] = averaged_spec_mat_f0[ 10 ];
607 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 11 ] = averaged_spec_mat_f0[ 11 ];
608 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 12 ] = averaged_spec_mat_f0[ 12 ];
609 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 13 ] = averaged_spec_mat_f0[ 13 ];
610 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 14 ] = averaged_spec_mat_f0[ 14 ];
611 averaged_spec_mat_f0[ (TOTAL_SIZE_SM/2) + 15 ] = averaged_spec_mat_f0[ 15 ];
599 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 0 ] = averaged_sm_f0[ 0 ];
600 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 1 ] = averaged_sm_f0[ 1 ];
601 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 2 ] = averaged_sm_f0[ 2 ];
602 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 3 ] = averaged_sm_f0[ 3 ];
603 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 4 ] = averaged_sm_f0[ 4 ];
604 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 5 ] = averaged_sm_f0[ 5 ];
605 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 6 ] = averaged_sm_f0[ 6 ];
606 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 7 ] = averaged_sm_f0[ 7 ];
607 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 8 ] = averaged_sm_f0[ 8 ];
608 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 9 ] = averaged_sm_f0[ 9 ];
609 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 10 ] = averaged_sm_f0[ 10 ];
610 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 11 ] = averaged_sm_f0[ 11 ];
611 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 12 ] = averaged_sm_f0[ 12 ];
612 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 13 ] = averaged_sm_f0[ 13 ];
613 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 14 ] = averaged_sm_f0[ 14 ];
614 averaged_sm_f0[ (TOTAL_SIZE_SM/2) + 15 ] = averaged_sm_f0[ 15 ];
612 615 }
613 616
614 617 void reset_spectral_matrix_regs()
@@ -628,10 +631,10 void reset_spectral_matrix_regs()
628 631
629 632 #ifdef GSA
630 633 #else
631 spectral_matrix_regs->matrixF0_Address0 = (int) spec_mat_f0_0;
632 spectral_matrix_regs->matrixFO_Address1 = (int) spec_mat_f0_1;
633 spectral_matrix_regs->matrixF1_Address = (int) spec_mat_f1;
634 spectral_matrix_regs->matrixF2_Address = (int) spec_mat_f2;
634 spectral_matrix_regs->matrixF0_Address0 = current_ring_node_sm_f0->buffer_address;
635 spectral_matrix_regs->matrixFO_Address1 = current_ring_node_sm_f0->buffer_address;
636 spectral_matrix_regs->matrixF1_Address = current_ring_node_sm_f1->buffer_address;
637 spectral_matrix_regs->matrixF2_Address = current_ring_node_sm_f2->buffer_address;
635 638 #endif
636 639 }
637 640
@@ -36,8 +36,6 ring_node *current_ring_node_f2;
36 36 ring_node *ring_node_to_send_swf_f2;
37 37 ring_node *ring_node_to_send_cwf_f2;
38 38
39 unsigned char doubleSendCWF2 = 0;
40
41 39 rtems_isr waveforms_isr( rtems_vector_number vector )
42 40 {
43 41 /** This is the interrupt sub routine called by the waveform picker core.
@@ -48,6 +46,8 rtems_isr waveforms_isr( rtems_vector_nu
48 46 *
49 47 */
50 48
49 static unsigned char nb_swf = 0;
50
51 51 if ( (lfrCurrentMode == LFR_MODE_NORMAL)
52 52 || (lfrCurrentMode == LFR_MODE_SBM1) || (lfrCurrentMode == LFR_MODE_SBM2) )
53 53 { // in modes other than STANDBY and BURST, send the CWF_F3 data
@@ -94,9 +94,15 rtems_isr waveforms_isr( rtems_vector_nu
94 94 if (rtems_event_send( Task_id[TASKID_WFRM], RTEMS_EVENT_MODE_NORMAL ) != RTEMS_SUCCESSFUL) {
95 95 rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_2 );
96 96 }
97 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffff888; // [1000 1000 1000]
98 // rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_7 );
99 // reset_wfp_burst_enable();
97 // nb_swf = nb_swf + 1;
98 // if (nb_swf == 2)
99 // {
100 // reset_wfp_burst_enable();
101 // }
102 // else
103 // {
104 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffff888; // [1000 1000 1000]
105 // }
100 106 }
101 107 break;
102 108
@@ -211,9 +217,11 rtems_task wfrm_task(rtems_task_argument
211 217 RTEMS_WAIT | RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT, &event_out);
212 218 if (event_out == RTEMS_EVENT_MODE_NORMAL)
213 219 {
220 PRINTF1("status %x\n", waveform_picker_regs->status )
214 221 send_waveform_SWF((volatile int*) ring_node_to_send_swf_f0->buffer_address, SID_NORM_SWF_F0, headerSWF_F0, queue_id);
215 222 send_waveform_SWF((volatile int*) ring_node_to_send_swf_f1->buffer_address, SID_NORM_SWF_F1, headerSWF_F1, queue_id);
216 223 send_waveform_SWF((volatile int*) ring_node_to_send_swf_f2->buffer_address, SID_NORM_SWF_F2, headerSWF_F2, queue_id);
224 waveform_picker_regs->status = waveform_picker_regs->status & 0xfffff888; // [1000 1000 1000]
217 225 }
218 226 else
219 227 {
@@ -527,33 +535,12 int init_header_continuous_wf_table( uns
527 535 headerCWF[ i ].packetID[0] = (unsigned char) (TM_PACKET_ID_SCIENCE_NORMAL_BURST >> 8);
528 536 headerCWF[ i ].packetID[1] = (unsigned char) (TM_PACKET_ID_SCIENCE_NORMAL_BURST);
529 537 }
530 if (i == 0)
531 {
532 headerCWF[ i ].packetSequenceControl[0] = TM_PACKET_SEQ_CTRL_FIRST;
533 headerCWF[ i ].packetLength[0] = (unsigned char) (TM_LEN_SCI_CWF_340 >> 8);
534 headerCWF[ i ].packetLength[1] = (unsigned char) (TM_LEN_SCI_CWF_340 );
535 headerCWF[ i ].blkNr[0] = (unsigned char) (BLK_NR_340 >> 8);
536 headerCWF[ i ].blkNr[1] = (unsigned char) (BLK_NR_340 );
537 }
538 else if (i == 6)
539 {
540 headerCWF[ i ].packetSequenceControl[0] = TM_PACKET_SEQ_CTRL_LAST;
541 headerCWF[ i ].packetLength[0] = (unsigned char) (TM_LEN_SCI_CWF_8 >> 8);
542 headerCWF[ i ].packetLength[1] = (unsigned char) (TM_LEN_SCI_CWF_8 );
543 headerCWF[ i ].blkNr[0] = (unsigned char) (BLK_NR_8 >> 8);
544 headerCWF[ i ].blkNr[1] = (unsigned char) (BLK_NR_8 );
545 }
546 else
547 {
548 headerCWF[ i ].packetSequenceControl[0] = TM_PACKET_SEQ_CTRL_CONTINUATION;
549 headerCWF[ i ].packetLength[0] = (unsigned char) (TM_LEN_SCI_CWF_340 >> 8);
550 headerCWF[ i ].packetLength[1] = (unsigned char) (TM_LEN_SCI_CWF_340 );
551 headerCWF[ i ].blkNr[0] = (unsigned char) (BLK_NR_340 >> 8);
552 headerCWF[ i ].blkNr[1] = (unsigned char) (BLK_NR_340 );
553 }
538 headerCWF[ i ].packetSequenceControl[0] = TM_PACKET_SEQ_CTRL_STANDALONE;
539 headerCWF[ i ].packetLength[0] = (unsigned char) (TM_LEN_SCI_CWF_336 >> 8);
540 headerCWF[ i ].packetLength[1] = (unsigned char) (TM_LEN_SCI_CWF_336 );
541 headerCWF[ i ].blkNr[0] = (unsigned char) (BLK_NR_CWF >> 8);
542 headerCWF[ i ].blkNr[1] = (unsigned char) (BLK_NR_CWF );
554 543 headerCWF[ i ].packetSequenceControl[1] = TM_PACKET_SEQ_CNT_DEFAULT;
555 // PKT_CNT
556 // PKT_NR
557 544 // DATA FIELD HEADER
558 545 headerCWF[ i ].spare1_pusVersion_spare2 = DEFAULT_SPARE1_PUSVERSION_SPARE2;
559 546 headerCWF[ i ].serviceType = TM_TYPE_LFR_SCIENCE; // service type
@@ -585,30 +572,13 int init_header_continuous_cwf3_light_ta
585 572
586 573 headerCWF[ i ].packetID[0] = (unsigned char) (TM_PACKET_ID_SCIENCE_NORMAL_BURST >> 8);
587 574 headerCWF[ i ].packetID[1] = (unsigned char) (TM_PACKET_ID_SCIENCE_NORMAL_BURST);
588 if (i == 0)
589 {
590 headerCWF[ i ].packetSequenceControl[0] = TM_PACKET_SEQ_CTRL_FIRST;
591 headerCWF[ i ].packetLength[0] = (unsigned char) (TM_LEN_SCI_CWF3_LIGHT_340 >> 8);
592 headerCWF[ i ].packetLength[1] = (unsigned char) (TM_LEN_SCI_CWF3_LIGHT_340 );
593 headerCWF[ i ].blkNr[0] = (unsigned char) (BLK_NR_340 >> 8);
594 headerCWF[ i ].blkNr[1] = (unsigned char) (BLK_NR_340 );
595 }
596 else if (i == 6)
597 {
598 headerCWF[ i ].packetSequenceControl[0] = TM_PACKET_SEQ_CTRL_LAST;
599 headerCWF[ i ].packetLength[0] = (unsigned char) (TM_LEN_SCI_CWF3_LIGHT_8 >> 8);
600 headerCWF[ i ].packetLength[1] = (unsigned char) (TM_LEN_SCI_CWF3_LIGHT_8 );
601 headerCWF[ i ].blkNr[0] = (unsigned char) (BLK_NR_8 >> 8);
602 headerCWF[ i ].blkNr[1] = (unsigned char) (BLK_NR_8 );
603 }
604 else
605 {
606 headerCWF[ i ].packetSequenceControl[0] = TM_PACKET_SEQ_CTRL_CONTINUATION;
607 headerCWF[ i ].packetLength[0] = (unsigned char) (TM_LEN_SCI_CWF3_LIGHT_340 >> 8);
608 headerCWF[ i ].packetLength[1] = (unsigned char) (TM_LEN_SCI_CWF3_LIGHT_340 );
609 headerCWF[ i ].blkNr[0] = (unsigned char) (BLK_NR_340 >> 8);
610 headerCWF[ i ].blkNr[1] = (unsigned char) (BLK_NR_340 );
611 }
575
576 headerCWF[ i ].packetSequenceControl[0] = TM_PACKET_SEQ_CTRL_STANDALONE;
577 headerCWF[ i ].packetLength[0] = (unsigned char) (TM_LEN_SCI_CWF_672 >> 8);
578 headerCWF[ i ].packetLength[1] = (unsigned char) (TM_LEN_SCI_CWF_672 );
579 headerCWF[ i ].blkNr[0] = (unsigned char) (BLK_NR_CWF_SHORT_F3 >> 8);
580 headerCWF[ i ].blkNr[1] = (unsigned char) (BLK_NR_CWF_SHORT_F3 );
581
612 582 headerCWF[ i ].packetSequenceControl[1] = TM_PACKET_SEQ_CNT_DEFAULT;
613 583 // DATA FIELD HEADER
614 584 headerCWF[ i ].spare1_pusVersion_spare2 = DEFAULT_SPARE1_PUSVERSION_SPARE2;
@@ -645,6 +615,8 int send_waveform_SWF( volatile int *wav
645 615
646 616 unsigned int i;
647 617 int ret;
618 unsigned int coarseTime;
619 unsigned int fineTime;
648 620 rtems_status_code status;
649 621 spw_ioctl_pkt_send spw_ioctl_send_SWF;
650 622
@@ -653,30 +625,46 int send_waveform_SWF( volatile int *wav
653 625
654 626 ret = LFR_DEFAULT;
655 627
628 PRINTF1("sid = %d, ", sid)
629 PRINTF2("coarse = %x, fine = %x\n", waveform[0], waveform[1])
630
656 631 for (i=0; i<7; i++) // send waveform
657 632 {
658 633 #ifdef VHDL_DEV
659 spw_ioctl_send_SWF.data = (char*) &waveform[ (i * 304 * NB_WORDS_SWF_BLK) + TIME_OFFSET];
634 spw_ioctl_send_SWF.data = (char*) &waveform[ (i * BLK_NR_304 * NB_WORDS_SWF_BLK) + TIME_OFFSET];
660 635 #else
661 spw_ioctl_send_SWF.data = (char*) &waveform[ (i * 304 * NB_WORDS_SWF_BLK) ];
636 spw_ioctl_send_SWF.data = (char*) &waveform[ (i * BLK_NR_304 * NB_WORDS_SWF_BLK) ];
662 637 #endif
663 638 spw_ioctl_send_SWF.hdr = (char*) &headerSWF[ i ];
664 639 // BUILD THE DATA
665 640 if (i==6) {
666 spw_ioctl_send_SWF.dlen = 224 * NB_BYTES_SWF_BLK;
641 spw_ioctl_send_SWF.dlen = BLK_NR_224 * NB_BYTES_SWF_BLK;
667 642 }
668 643 else {
669 spw_ioctl_send_SWF.dlen = 304 * NB_BYTES_SWF_BLK;
644 spw_ioctl_send_SWF.dlen = BLK_NR_304 * NB_BYTES_SWF_BLK;
670 645 }
671 646 // SET PACKET SEQUENCE COUNTER
672 647 increment_seq_counter_source_id( headerSWF[ i ].packetSequenceControl, sid );
673 648 // SET PACKET TIME
649 #ifdef VHDL_DEV
650 coarseTime = waveform[0];
651 fineTime = waveform[1];
652 compute_acquisition_time( &coarseTime, &fineTime, sid, i);
653
654 headerSWF[ i ].acquisitionTime[0] = (unsigned char) (coarseTime >> 24 );
655 headerSWF[ i ].acquisitionTime[1] = (unsigned char) (coarseTime >> 16 );
656 headerSWF[ i ].acquisitionTime[2] = (unsigned char) (coarseTime >> 8 );
657 headerSWF[ i ].acquisitionTime[3] = (unsigned char) (coarseTime );
658 headerSWF[ i ].acquisitionTime[4] = (unsigned char) (fineTime >> 8 );
659 headerSWF[ i ].acquisitionTime[5] = (unsigned char) (fineTime );
660 #else
674 661 headerSWF[ i ].acquisitionTime[0] = (unsigned char) (time_management_regs->coarse_time>>24);
675 662 headerSWF[ i ].acquisitionTime[1] = (unsigned char) (time_management_regs->coarse_time>>16);
676 663 headerSWF[ i ].acquisitionTime[2] = (unsigned char) (time_management_regs->coarse_time>>8);
677 664 headerSWF[ i ].acquisitionTime[3] = (unsigned char) (time_management_regs->coarse_time);
678 665 headerSWF[ i ].acquisitionTime[4] = (unsigned char) (time_management_regs->fine_time>>8);
679 666 headerSWF[ i ].acquisitionTime[5] = (unsigned char) (time_management_regs->fine_time);
667 #endif
680 668 headerSWF[ i ].time[0] = (unsigned char) (time_management_regs->coarse_time>>24);
681 669 headerSWF[ i ].time[1] = (unsigned char) (time_management_regs->coarse_time>>16);
682 670 headerSWF[ i ].time[2] = (unsigned char) (time_management_regs->coarse_time>>8);
@@ -712,6 +700,8 int send_waveform_CWF(volatile int *wave
712 700
713 701 unsigned int i;
714 702 int ret;
703 unsigned char *coarseTimePtr;
704 unsigned char *fineTimePtr;
715 705 rtems_status_code status;
716 706 spw_ioctl_pkt_send spw_ioctl_send_CWF;
717 707
@@ -725,21 +715,26 int send_waveform_CWF(volatile int *wave
725 715 int coarseTime = 0x00;
726 716 int fineTime = 0x00;
727 717 #ifdef VHDL_DEV
728 spw_ioctl_send_CWF.data = (char*) &waveform[ (i * 340 * NB_WORDS_SWF_BLK) + TIME_OFFSET];
718 spw_ioctl_send_CWF.data = (char*) &waveform[ (i * BLK_NR_CWF * NB_WORDS_SWF_BLK) + TIME_OFFSET];
729 719 #else
730 spw_ioctl_send_CWF.data = (char*) &waveform[ (i * 340 * NB_WORDS_SWF_BLK) ];
720 spw_ioctl_send_CWF.data = (char*) &waveform[ (i * BLK_NR_CWF * NB_WORDS_SWF_BLK) ];
731 721 #endif
732 722 spw_ioctl_send_CWF.hdr = (char*) &headerCWF[ i ];
733 723 // BUILD THE DATA
734 if (i==6) {
735 spw_ioctl_send_CWF.dlen = 8 * NB_BYTES_SWF_BLK;
736 }
737 else {
738 spw_ioctl_send_CWF.dlen = 340 * NB_BYTES_SWF_BLK;
739 }
724 spw_ioctl_send_CWF.dlen = BLK_NR_CWF * NB_BYTES_SWF_BLK;
740 725 // SET PACKET SEQUENCE COUNTER
741 726 increment_seq_counter_source_id( headerCWF[ i ].packetSequenceControl, sid );
742 727 // SET PACKET TIME
728 #ifdef VHDL_DEV
729 coarseTimePtr = (unsigned char *) &waveform;
730 fineTimePtr = (unsigned char *) &waveform[1];
731 headerCWF[ i ].acquisitionTime[0] = coarseTimePtr[2];
732 headerCWF[ i ].acquisitionTime[1] = coarseTimePtr[3];
733 headerCWF[ i ].acquisitionTime[2] = coarseTimePtr[0];
734 headerCWF[ i ].acquisitionTime[3] = coarseTimePtr[1];
735 headerCWF[ i ].acquisitionTime[4] = fineTimePtr[0];
736 headerCWF[ i ].acquisitionTime[5] = fineTimePtr[1];
737 #else
743 738 coarseTime = time_management_regs->coarse_time;
744 739 fineTime = time_management_regs->fine_time;
745 740 headerCWF[ i ].acquisitionTime[0] = (unsigned char) (coarseTime>>24);
@@ -748,6 +743,8 int send_waveform_CWF(volatile int *wave
748 743 headerCWF[ i ].acquisitionTime[3] = (unsigned char) (coarseTime);
749 744 headerCWF[ i ].acquisitionTime[4] = (unsigned char) (fineTime>>8);
750 745 headerCWF[ i ].acquisitionTime[5] = (unsigned char) (fineTime);
746 #endif
747
751 748 headerCWF[ i ].time[0] = (unsigned char) (coarseTime>>24);
752 749 headerCWF[ i ].time[1] = (unsigned char) (coarseTime>>16);
753 750 headerCWF[ i ].time[2] = (unsigned char) (coarseTime>>8);
@@ -793,6 +790,8 int send_waveform_CWF3_light(volatile in
793 790
794 791 unsigned int i;
795 792 int ret;
793 unsigned char *coarseTimePtr;
794 unsigned char *fineTimePtr;
796 795 rtems_status_code status;
797 796 spw_ioctl_pkt_send spw_ioctl_send_CWF;
798 797 char *sample;
@@ -804,19 +803,25 int send_waveform_CWF3_light(volatile in
804 803
805 804 //**********************
806 805 // BUILD CWF3_light DATA
807 for ( i=0; i< 2048; i++)
806 for ( i=0; i< NB_SAMPLES_PER_SNAPSHOT; i++)
808 807 {
809 808 #ifdef VHDL_DEV
810 809 sample = (char*) &waveform[ (i * NB_WORDS_SWF_BLK) + TIME_OFFSET ];
810 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + TIME_OFFSET_IN_BYTES ] = sample[ 0 ];
811 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 1 + TIME_OFFSET_IN_BYTES ] = sample[ 1 ];
812 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 2 + TIME_OFFSET_IN_BYTES ] = sample[ 2 ];
813 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 3 + TIME_OFFSET_IN_BYTES ] = sample[ 3 ];
814 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 4 + TIME_OFFSET_IN_BYTES ] = sample[ 4 ];
815 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 5 + TIME_OFFSET_IN_BYTES ] = sample[ 5 ];
811 816 #else
812 817 sample = (char*) &waveform[ i * NB_WORDS_SWF_BLK ];
813 #endif
814 818 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) ] = sample[ 0 ];
815 819 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 1 ] = sample[ 1 ];
816 820 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 2 ] = sample[ 2 ];
817 821 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 3 ] = sample[ 3 ];
818 822 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 4 ] = sample[ 4 ];
819 823 wf_cont_f3_light[ (i * NB_BYTES_CWF3_LIGHT_BLK) + 5 ] = sample[ 5 ];
824 #endif
820 825 }
821 826
822 827 //*********************
@@ -827,18 +832,27 int send_waveform_CWF3_light(volatile in
827 832 int coarseTime = 0x00;
828 833 int fineTime = 0x00;
829 834
830 spw_ioctl_send_CWF.data = (char*) &wf_cont_f3_light[ (i * 340 * NB_BYTES_CWF3_LIGHT_BLK) ];
835 #ifdef VHDL_DEV
836 spw_ioctl_send_CWF.data = (char*) &wf_cont_f3_light[ (i * BLK_NR_CWF_SHORT_F3 * NB_BYTES_CWF3_LIGHT_BLK) + TIME_OFFSET_IN_BYTES];
837 #else
838 spw_ioctl_send_CWF.data = (char*) &wf_cont_f3_light[ (i * BLK_NR_CWF_SHORT_F3 * NB_BYTES_CWF3_LIGHT_BLK) ];
839 #endif
831 840 spw_ioctl_send_CWF.hdr = (char*) &headerCWF[ i ];
832 841 // BUILD THE DATA
833 if ( i == WFRM_INDEX_OF_LAST_PACKET ) {
834 spw_ioctl_send_CWF.dlen = 8 * NB_BYTES_CWF3_LIGHT_BLK;
835 }
836 else {
837 spw_ioctl_send_CWF.dlen = 340 * NB_BYTES_CWF3_LIGHT_BLK;
838 }
842 spw_ioctl_send_CWF.dlen = BLK_NR_CWF_SHORT_F3 * NB_BYTES_CWF3_LIGHT_BLK;
839 843 // SET PACKET SEQUENCE COUNTER
840 844 increment_seq_counter_source_id( headerCWF[ i ].packetSequenceControl, SID_NORM_CWF_F3 );
841 845 // SET PACKET TIME
846 #ifdef VHDL_DEV
847 coarseTimePtr = (unsigned char *) &waveform;
848 fineTimePtr = (unsigned char *) &waveform[1];
849 headerCWF[ i ].acquisitionTime[0] = coarseTimePtr[2];
850 headerCWF[ i ].acquisitionTime[1] = coarseTimePtr[3];
851 headerCWF[ i ].acquisitionTime[2] = coarseTimePtr[0];
852 headerCWF[ i ].acquisitionTime[3] = coarseTimePtr[1];
853 headerCWF[ i ].acquisitionTime[4] = fineTimePtr[0];
854 headerCWF[ i ].acquisitionTime[5] = fineTimePtr[1];
855 #else
842 856 coarseTime = time_management_regs->coarse_time;
843 857 fineTime = time_management_regs->fine_time;
844 858 headerCWF[ i ].acquisitionTime[0] = (unsigned char) (coarseTime>>24);
@@ -847,6 +861,7 int send_waveform_CWF3_light(volatile in
847 861 headerCWF[ i ].acquisitionTime[3] = (unsigned char) (coarseTime);
848 862 headerCWF[ i ].acquisitionTime[4] = (unsigned char) (fineTime>>8);
849 863 headerCWF[ i ].acquisitionTime[5] = (unsigned char) (fineTime);
864 #endif
850 865 headerCWF[ i ].time[0] = (unsigned char) (coarseTime>>24);
851 866 headerCWF[ i ].time[1] = (unsigned char) (coarseTime>>16);
852 867 headerCWF[ i ].time[2] = (unsigned char) (coarseTime>>8);
@@ -865,6 +880,50 int send_waveform_CWF3_light(volatile in
865 880 return ret;
866 881 }
867 882
883 void compute_acquisition_time( unsigned int *coarseTime, unsigned int *fineTime, unsigned int sid, unsigned char pa_lfr_pkt_nr )
884 {
885 unsigned long long int acquisitionTimeAsLong;
886 unsigned char acquisitionTime[6];
887 float deltaT = 0.;
888
889 acquisitionTime[0] = (unsigned char) ( *coarseTime >> 8 );
890 acquisitionTime[1] = (unsigned char) ( *coarseTime );
891 acquisitionTime[2] = (unsigned char) ( *coarseTime >> 24 );
892 acquisitionTime[3] = (unsigned char) ( *coarseTime >> 16 );
893 acquisitionTime[4] = (unsigned char) ( *fineTime >> 24 );
894 acquisitionTime[5] = (unsigned char) ( *fineTime >> 16 );
895
896 acquisitionTimeAsLong = ( (unsigned long long int) acquisitionTime[0] << 40 )
897 + ( (unsigned long long int) acquisitionTime[1] << 32 )
898 + ( acquisitionTime[2] << 24 )
899 + ( acquisitionTime[3] << 16 )
900 + ( acquisitionTime[4] << 8 )
901 + ( acquisitionTime[5] );
902
903 switch( sid )
904 {
905 case SID_NORM_SWF_F0:
906 deltaT = ( (float ) (pa_lfr_pkt_nr) ) * BLK_NR_304 * 65536. / 24576. ;
907 break;
908
909 case SID_NORM_SWF_F1:
910 deltaT = ( (float ) (pa_lfr_pkt_nr) ) * BLK_NR_304 * 65536. / 4096. ;
911 break;
912
913 case SID_NORM_SWF_F2:
914 deltaT = ( (float ) (pa_lfr_pkt_nr) ) * BLK_NR_304 * 65536. / 256. ;
915 break;
916
917 default:
918 deltaT = 0.;
919 break;
920 }
921
922 acquisitionTimeAsLong = acquisitionTimeAsLong + (unsigned long long int) deltaT;
923
924 *coarseTime = (unsigned int) (acquisitionTimeAsLong >> 16);
925 *fineTime = (unsigned int) (acquisitionTimeAsLong & 0xffff);
926 }
868 927
869 928 //**************
870 929 // wfp registers
@@ -1066,18 +1125,28 void reset_waveform_picker_regs()
1066 1125 waveform_picker_regs->addr_data_f2 = current_ring_node_f2->buffer_address; // 0x10
1067 1126 waveform_picker_regs->addr_data_f3 = (int) (wf_cont_f3_a); // 0x14
1068 1127 waveform_picker_regs->status = 0x00; // 0x18
1069 // waveform_picker_regs->delta_snapshot = 0x12800; // 0x1c 296 * 256 = 75776
1070 waveform_picker_regs->delta_snapshot = 0x1000; // 0x1c 16 * 256 = 4096
1071 //waveform_picker_regs->delta_snapshot = 0x2000; // 0x1c 32 * 256 = 8192
1072 waveform_picker_regs->delta_f0 = 0xbf5; // 0x20 *** 1013
1073 waveform_picker_regs->delta_f0_2 = 0x7; // 0x24 *** 7 [7 bits]
1074 waveform_picker_regs->delta_f1 = 0xbc0; // 0x28 *** 960
1075 // waveform_picker_regs->delta_f2 = 0x12200; // 0x2c *** 290 * 256 = 74240
1076 waveform_picker_regs->delta_f2 = 0xc00; // 0x2c *** 12 * 256 = 3072
1077 waveform_picker_regs->nb_data_by_buffer = 0x7ff; // 0x30 *** 2048 -1 => nb samples -1
1078 waveform_picker_regs->snapshot_param = 0x800; // 0x34 *** 2048 => nb samples
1079 waveform_picker_regs->start_date = 0x00; // 0x38
1080 waveform_picker_regs->nb_word_in_buffer = 0x1802; // 0x3c *** 2048 * 3 + 2 = 6146
1128 //
1129 // waveform_picker_regs->delta_snapshot = 0x1000; // 0x1c *** 4096 = 16 * 256
1130 // waveform_picker_regs->delta_f0 = 0xc0b; // 0x20 *** 3083 = 4096 - 1013
1131 // waveform_picker_regs->delta_f0_2 = 0x7; // 0x24 *** 7 [7 bits]
1132 // waveform_picker_regs->delta_f1 = 0xc40; // 0x28 *** 3136 = 4096 - 960
1133 // waveform_picker_regs->delta_f2 = 0xc00; // 0x2c *** 3072 = 12 * 256
1134 //
1135 waveform_picker_regs->delta_snapshot = 0x1000; // 0x1c *** 4096 = 16 * 256
1136 waveform_picker_regs->delta_f0 = 0x1; // 0x20 ***
1137 waveform_picker_regs->delta_f0_2 = 0x7; // 0x24 *** 7 [7 bits]
1138 waveform_picker_regs->delta_f1 = 0x1; // 0x28 ***
1139 waveform_picker_regs->delta_f2 = 0x1; // 0x2c ***
1140 // 2048
1141 // waveform_picker_regs->nb_data_by_buffer = 0x7ff; // 0x30 *** 2048 -1 => nb samples -1
1142 // waveform_picker_regs->snapshot_param = 0x800; // 0x34 *** 2048 => nb samples
1143 // waveform_picker_regs->start_date = 0x00; // 0x38
1144 // waveform_picker_regs->nb_word_in_buffer = 0x1802; // 0x3c *** 2048 * 3 + 2 = 6146
1145 // 2352 = 7 * 336
1146 waveform_picker_regs->nb_data_by_buffer = 0x92f; // 0x30 *** 2352 - 1 => nb samples -1
1147 waveform_picker_regs->snapshot_param = 0x930; // 0x34 *** 2352 => nb samples
1148 waveform_picker_regs->start_date = 0x00; // 0x38
1149 waveform_picker_regs->nb_word_in_buffer = 0x1b92; // 0x3c *** 2352 * 3 + 2 = 7058
1081 1150 }
1082 1151 #else
1083 1152 void reset_waveform_picker_regs()
General Comments 0
You need to be logged in to leave comments. Login now