@@ -0,0 +1,22 | |||
|
1 | #ifndef TM_BYTE_POSITIONS_H | |
|
2 | #define TM_BYTE_POSITIONS_H | |
|
3 | ||
|
4 | #define BYTE_POS_CP_LFR_MODE 11 | |
|
5 | ||
|
6 | // TC_LFR_LOAD_COMMON_PAR | |
|
7 | ||
|
8 | // TC_LFR_LOAD_NORMAL_PAR | |
|
9 | #define BYTE_POS_SY_LFR_N_SWF_L 0 | |
|
10 | #define BYTE_POS_SY_LFR_N_SWF_P 2 | |
|
11 | #define BYTE_POS_SY_LFR_N_ASM_P 4 | |
|
12 | #define BYTE_POS_SY_LFR_N_BP_P0 6 | |
|
13 | #define BYTE_POS_SY_LFR_N_BP_P1 7 | |
|
14 | ||
|
15 | // TC_LFR_LOAD_BURST_PAR | |
|
16 | ||
|
17 | // TC_LFR_LOAD_SBM1_PAR | |
|
18 | ||
|
19 | // TC_LFR_LOAD_SBM2_PAR | |
|
20 | ||
|
21 | ||
|
22 | #endif // TM_BYTE_POSITIONS_H |
@@ -1,6 +1,6 | |||
|
1 | 1 | ############################################################################# |
|
2 | 2 | # Makefile for building: bin/fsw |
|
3 |
# Generated by qmake (2.01a) (Qt 4.8.5) on: |
|
|
3 | # Generated by qmake (2.01a) (Qt 4.8.5) on: Fri Nov 15 07:55:16 2013 | |
|
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 |
@@ -10,7 +10,7 | |||
|
10 | 10 | |
|
11 | 11 | CC = sparc-rtems-gcc |
|
12 | 12 | CXX = sparc-rtems-g++ |
|
13 |
DEFINES = -DSW_VERSION_N1=0 -DSW_VERSION_N2=0 -DSW_VERSION_N3=0 -DSW_VERSION_N4=2 |
|
|
13 | DEFINES = -DSW_VERSION_N1=0 -DSW_VERSION_N2=0 -DSW_VERSION_N3=0 -DSW_VERSION_N4=24 -DPRINT_MESSAGES_ON_CONSOLE | |
|
14 | 14 | CFLAGS = -pipe -O3 -Wall $(DEFINES) |
|
15 | 15 | CXXFLAGS = -pipe -O3 -Wall $(DEFINES) |
|
16 | 16 | INCPATH = -I/usr/lib64/qt4/mkspecs/linux-g++ -I. -I../src -I../header |
@@ -7,11 +7,11 CONFIG -= qt | |||
|
7 | 7 | include(./sparc.pri) |
|
8 | 8 | |
|
9 | 9 | # flight software version |
|
10 |
SWVERSION=-0-2 |
|
|
10 | SWVERSION=-0-24 | |
|
11 | 11 | DEFINES += SW_VERSION_N1=0 |
|
12 | 12 | DEFINES += SW_VERSION_N2=0 |
|
13 | 13 | DEFINES += SW_VERSION_N3=0 |
|
14 |
DEFINES += SW_VERSION_N4=2 |
|
|
14 | DEFINES += SW_VERSION_N4=24 | |
|
15 | 15 | |
|
16 | 16 | contains( CONFIG, verbose ) { |
|
17 | 17 | DEFINES += PRINT_MESSAGES_ON_CONSOLE |
@@ -74,5 +74,6 HEADERS += \ | |||
|
74 | 74 | ../header/tm_byte_positions.h \ |
|
75 | 75 | ../header/tc_load_dump_parameters.h \ |
|
76 | 76 | ../header/tm_lfr_tc_exe.h \ |
|
77 | ../header/tc_acceptance.h | |
|
77 | ../header/tc_acceptance.h \ | |
|
78 | ../header/fsw_params_nb_bytes.h | |
|
78 | 79 |
@@ -1,6 +1,6 | |||
|
1 | 1 | <?xml version="1.0" encoding="UTF-8"?> |
|
2 | 2 | <!DOCTYPE QtCreatorProject> |
|
3 |
<!-- Written by QtCreator 2.8.1, 2013-11-1 |
|
|
3 | <!-- Written by QtCreator 2.8.1, 2013-11-15T09:52:17. --> | |
|
4 | 4 | <qtcreator> |
|
5 | 5 | <data> |
|
6 | 6 | <variable>ProjectExplorer.Project.ActiveTarget</variable> |
@@ -51,12 +51,12 | |||
|
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. |
|
|
55 |
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop-Qt 4.8. |
|
|
56 |
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{ |
|
|
54 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop-Qt 4.8.3 in PATH (System)</value> | |
|
55 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop-Qt 4.8.3 in PATH (System)</value> | |
|
56 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{be73cf6a-f9d8-4d5a-8adf-adc2d83e2e44}</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"> |
|
|
59 | <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value> | |
|
60 | 60 | <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0"> |
|
61 | 61 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> |
|
62 | 62 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> |
@@ -65,7 +65,7 | |||
|
65 | 65 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
|
66 | 66 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> |
|
67 | 67 | <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value> |
|
68 |
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto"> |
|
|
68 | <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">false</value> | |
|
69 | 69 | <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value> |
|
70 | 70 | <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> |
|
71 | 71 | </valuemap> |
@@ -79,7 +79,7 | |||
|
79 | 79 | <value type="QString">-r</value> |
|
80 | 80 | </valuelist> |
|
81 | 81 | <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value> |
|
82 |
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"> |
|
|
82 | <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value> | |
|
83 | 83 | <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> |
|
84 | 84 | </valuemap> |
|
85 | 85 | <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value> |
@@ -98,7 +98,7 | |||
|
98 | 98 | <value type="QString">-r</value> |
|
99 | 99 | </valuelist> |
|
100 | 100 | <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value> |
|
101 |
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"> |
|
|
101 | <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value> | |
|
102 | 102 | <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> |
|
103 | 103 | </valuemap> |
|
104 | 104 | <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value> |
@@ -109,73 +109,14 | |||
|
109 | 109 | <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value> |
|
110 | 110 | <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value> |
|
111 | 111 | <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/> |
|
112 |
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName"> |
|
|
112 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value> | |
|
113 | 113 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
|
114 | 114 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value> |
|
115 | 115 | <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value> |
|
116 | <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/opt/DEV_PLE/FSW-qt</value> | |
|
116 | <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/home/admin/opt/DEV_PLE/FSW-qt</value> | |
|
117 | 117 | <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value> |
|
118 | 118 | </valuemap> |
|
119 |
<value |
|
|
120 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> | |
|
121 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> | |
|
122 | <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> | |
|
123 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">qmake</value> | |
|
124 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> | |
|
125 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> | |
|
126 | <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value> | |
|
127 | <value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibraryAuto">true</value> | |
|
128 | <value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value> | |
|
129 | <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> | |
|
130 | </valuemap> | |
|
131 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1"> | |
|
132 | <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> | |
|
133 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> | |
|
134 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> | |
|
135 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> | |
|
136 | <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"> | |
|
137 | <value type="QString">-w</value> | |
|
138 | <value type="QString">-r</value> | |
|
139 | </valuelist> | |
|
140 | <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value> | |
|
141 | <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">-r -w </value> | |
|
142 | <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> | |
|
143 | </valuemap> | |
|
144 | <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value> | |
|
145 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value> | |
|
146 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> | |
|
147 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value> | |
|
148 | </valuemap> | |
|
149 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1"> | |
|
150 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> | |
|
151 | <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> | |
|
152 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> | |
|
153 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> | |
|
154 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> | |
|
155 | <valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.AutomaticallyAddedMakeArguments"> | |
|
156 | <value type="QString">-w</value> | |
|
157 | <value type="QString">-r</value> | |
|
158 | </valuelist> | |
|
159 | <value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value> | |
|
160 | <value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">-r -w clean</value> | |
|
161 | <value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> | |
|
162 | </valuemap> | |
|
163 | <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value> | |
|
164 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value> | |
|
165 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> | |
|
166 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value> | |
|
167 | </valuemap> | |
|
168 | <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value> | |
|
169 | <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value> | |
|
170 | <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/> | |
|
171 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Qt 4.8.2 in PATH (System) Debug</value> | |
|
172 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> | |
|
173 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value> | |
|
174 | <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value> | |
|
175 | <value type="QString" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory">/opt/DEV_PLE/FSW-qt</value> | |
|
176 | <value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">false</value> | |
|
177 | </valuemap> | |
|
178 | <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">2</value> | |
|
119 | <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value> | |
|
179 | 120 | <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0"> |
|
180 | 121 | <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> |
|
181 | 122 | <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value> |
@@ -184,7 +125,7 | |||
|
184 | 125 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value> |
|
185 | 126 | </valuemap> |
|
186 | 127 | <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value> |
|
187 |
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName"> |
|
|
128 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value> | |
|
188 | 129 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
|
189 | 130 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value> |
|
190 | 131 | </valuemap> |
@@ -226,7 +167,7 | |||
|
226 | 167 | <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/> |
|
227 | 168 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">fsw-qt</value> |
|
228 | 169 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
|
229 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/opt/DEV_PLE/FSW-qt/fsw-qt.pro</value> | |
|
170 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/admin/opt/DEV_PLE/FSW-qt/fsw-qt.pro</value> | |
|
230 | 171 | <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"></value> |
|
231 | 172 | <value type="QString" key="Qt4ProjectManager.Qt4RunConfiguration.ProFile">fsw-qt.pro</value> |
|
232 | 173 | <value type="bool" key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix">false</value> |
@@ -237,57 +178,9 | |||
|
237 | 178 | <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">false</value> |
|
238 | 179 | <value type="bool" key="RunConfiguration.UseMultiProcess">false</value> |
|
239 | 180 | <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value> |
|
240 | <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value> | |
|
241 | </valuemap> | |
|
242 | <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.1"> | |
|
243 | <value type="bool" key="Analyzer.Project.UseGlobal">true</value> | |
|
244 | <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/> | |
|
245 | <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value> | |
|
246 | <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value> | |
|
247 | <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value> | |
|
248 | <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value> | |
|
249 | <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value> | |
|
250 | <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value> | |
|
251 | <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value> | |
|
252 | <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value> | |
|
253 | <value type="int" key="Analyzer.Valgrind.NumCallers">25</value> | |
|
254 | <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/> | |
|
255 | <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value> | |
|
256 | <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value> | |
|
257 | <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds"> | |
|
258 | <value type="int">0</value> | |
|
259 | <value type="int">1</value> | |
|
260 | <value type="int">2</value> | |
|
261 | <value type="int">3</value> | |
|
262 | <value type="int">4</value> | |
|
263 | <value type="int">5</value> | |
|
264 | <value type="int">6</value> | |
|
265 | <value type="int">7</value> | |
|
266 | <value type="int">8</value> | |
|
267 | <value type="int">9</value> | |
|
268 | <value type="int">10</value> | |
|
269 | <value type="int">11</value> | |
|
270 | <value type="int">12</value> | |
|
271 | <value type="int">13</value> | |
|
272 | <value type="int">14</value> | |
|
273 | </valuelist> | |
|
274 | <value type="int" key="PE.EnvironmentAspect.Base">2</value> | |
|
275 | <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/> | |
|
276 | <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Arguments"></value> | |
|
277 | <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.Executable">doxygen</value> | |
|
278 | <value type="bool" key="ProjectExplorer.CustomExecutableRunConfiguration.UseTerminal">true</value> | |
|
279 | <value type="QString" key="ProjectExplorer.CustomExecutableRunConfiguration.WorkingDirectory">/opt/DEV_PLE/doc</value> | |
|
280 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Run doxygen</value> | |
|
281 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> | |
|
282 | <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.CustomExecutableRunConfiguration</value> | |
|
283 | <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value> | |
|
284 | <value type="bool" key="RunConfiguration.UseCppDebugger">true</value> | |
|
285 | <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">false</value> | |
|
286 | <value type="bool" key="RunConfiguration.UseMultiProcess">false</value> | |
|
287 | <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value> | |
|
288 | 181 | <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value> |
|
289 | 182 | </valuemap> |
|
290 |
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount"> |
|
|
183 | <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value> | |
|
291 | 184 | </valuemap> |
|
292 | 185 | </data> |
|
293 | 186 | <data> |
@@ -296,7 +189,7 | |||
|
296 | 189 | </data> |
|
297 | 190 | <data> |
|
298 | 191 | <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable> |
|
299 |
<value type="QByteArray">{ |
|
|
192 | <value type="QByteArray">{cdbf9cdc-1e84-406e-889b-c4feef49e75c}</value> | |
|
300 | 193 | </data> |
|
301 | 194 | <data> |
|
302 | 195 | <variable>ProjectExplorer.Project.Updater.FileVersion</variable> |
@@ -226,45 +226,7 enum TM_TYPE{ | |||
|
226 | 226 | TM_LFR_PAR_DUMP |
|
227 | 227 | }; |
|
228 | 228 | |
|
229 | struct TMHeader_str | |
|
230 | { | |
|
231 | unsigned char targetLogicalAddress; | |
|
232 | unsigned char protocolIdentifier; | |
|
233 | unsigned char reserved; | |
|
234 | unsigned char userApplication; | |
|
235 | unsigned char packetID[2]; | |
|
236 | unsigned char packetSequenceControl[2]; | |
|
237 | unsigned char packetLength[2]; | |
|
238 | // DATA FIELD HEADER | |
|
239 | unsigned char spare1_pusVersion_spare2; | |
|
240 | unsigned char serviceType; | |
|
241 | unsigned char serviceSubType; | |
|
242 | unsigned char destinationID; | |
|
243 | unsigned char time[6]; | |
|
244 | }; | |
|
245 | typedef struct TMHeader_str TMHeader_t; | |
|
246 | ||
|
247 | struct Packet_TM_LFR_TC_EXE_str | |
|
248 | { | |
|
249 | unsigned char targetLogicalAddress; | |
|
250 | unsigned char protocolIdentifier; | |
|
251 | unsigned char reserved; | |
|
252 | unsigned char userApplication; | |
|
253 | unsigned char packetID[2]; | |
|
254 | unsigned char packetSequenceControl[2]; | |
|
255 | unsigned char packetLength[2]; | |
|
256 | // DATA FIELD HEADER | |
|
257 | unsigned char spare1_pusVersion_spare2; | |
|
258 | unsigned char serviceType; | |
|
259 | unsigned char serviceSubType; | |
|
260 | unsigned char destinationID; | |
|
261 | unsigned char time[6]; | |
|
262 | unsigned char data[LENGTH_TM_LFR_TC_EXE_MAX - 10 + 1]; | |
|
263 | }; | |
|
264 | typedef struct Packet_TM_LFR_TC_EXE_str Packet_TM_LFR_TC_EXE_t; | |
|
265 | ||
|
266 | struct Packet_TM_LFR_TC_EXE_SUCCESS_str | |
|
267 | { | |
|
229 | typedef struct { | |
|
268 | 230 | unsigned char targetLogicalAddress; |
|
269 | 231 | unsigned char protocolIdentifier; |
|
270 | 232 | unsigned char reserved; |
@@ -282,11 +244,9 struct Packet_TM_LFR_TC_EXE_SUCCESS_str | |||
|
282 | 244 | // |
|
283 | 245 | unsigned char telecommand_pkt_id[2]; |
|
284 | 246 | unsigned char pkt_seq_control[2]; |
|
285 | }; | |
|
286 | typedef struct Packet_TM_LFR_TC_EXE_SUCCESS_str Packet_TM_LFR_TC_EXE_SUCCESS_t; | |
|
247 | } Packet_TM_LFR_TC_EXE_SUCCESS_t; | |
|
287 | 248 | |
|
288 | struct Packet_TM_LFR_TC_EXE_INCONSISTENT_str | |
|
289 | { | |
|
249 | typedef struct { | |
|
290 | 250 | unsigned char targetLogicalAddress; |
|
291 | 251 | unsigned char protocolIdentifier; |
|
292 | 252 | unsigned char reserved; |
@@ -309,11 +269,9 struct Packet_TM_LFR_TC_EXE_INCONSISTENT | |||
|
309 | 269 | unsigned char tc_subtype; |
|
310 | 270 | unsigned char byte_position; |
|
311 | 271 | unsigned char rcv_value; |
|
312 | }; | |
|
313 | typedef struct Packet_TM_LFR_TC_EXE_INCONSISTENT_str Packet_TM_LFR_TC_EXE_INCONSISTENT_t; | |
|
272 | } Packet_TM_LFR_TC_EXE_INCONSISTENT_t; | |
|
314 | 273 | |
|
315 | struct Packet_TM_LFR_TC_EXE_NOT_EXECUTABLE_str | |
|
316 | { | |
|
274 | typedef struct { | |
|
317 | 275 | unsigned char targetLogicalAddress; |
|
318 | 276 | unsigned char protocolIdentifier; |
|
319 | 277 | unsigned char reserved; |
@@ -335,11 +293,9 struct Packet_TM_LFR_TC_EXE_NOT_EXECUTAB | |||
|
335 | 293 | unsigned char tc_service; |
|
336 | 294 | unsigned char tc_subtype; |
|
337 | 295 | unsigned char lfr_status_word[2]; |
|
338 | }; | |
|
339 | typedef struct Packet_TM_LFR_TC_EXE_NOT_EXECUTABLE_str Packet_TM_LFR_TC_EXE_NOT_EXECUTABLE_t; | |
|
296 | } Packet_TM_LFR_TC_EXE_NOT_EXECUTABLE_t; | |
|
340 | 297 | |
|
341 | struct Packet_TM_LFR_TC_EXE_NOT_IMPLEMENTED_str | |
|
342 | { | |
|
298 | typedef struct { | |
|
343 | 299 | unsigned char targetLogicalAddress; |
|
344 | 300 | unsigned char protocolIdentifier; |
|
345 | 301 | unsigned char reserved; |
@@ -360,11 +316,9 struct Packet_TM_LFR_TC_EXE_NOT_IMPLEMEN | |||
|
360 | 316 | unsigned char pkt_seq_control[2]; |
|
361 | 317 | unsigned char tc_service; |
|
362 | 318 | unsigned char tc_subtype; |
|
363 | }; | |
|
364 | typedef struct Packet_TM_LFR_TC_EXE_NOT_IMPLEMENTED_str Packet_TM_LFR_TC_EXE_NOT_IMPLEMENTED_t; | |
|
319 | } Packet_TM_LFR_TC_EXE_NOT_IMPLEMENTED_t; | |
|
365 | 320 | |
|
366 | struct Packet_TM_LFR_TC_EXE_ERROR_str | |
|
367 | { | |
|
321 | typedef struct { | |
|
368 | 322 | unsigned char targetLogicalAddress; |
|
369 | 323 | unsigned char protocolIdentifier; |
|
370 | 324 | unsigned char reserved; |
@@ -385,11 +339,9 struct Packet_TM_LFR_TC_EXE_ERROR_str | |||
|
385 | 339 | unsigned char pkt_seq_control[2]; |
|
386 | 340 | unsigned char tc_service; |
|
387 | 341 | unsigned char tc_subtype; |
|
388 | }; | |
|
389 | typedef struct Packet_TM_LFR_TC_EXE_ERROR_str Packet_TM_LFR_TC_EXE_ERROR_t; | |
|
342 | } Packet_TM_LFR_TC_EXE_ERROR_t; | |
|
390 | 343 | |
|
391 | struct Packet_TM_LFR_TC_EXE_CORRUPTED_str | |
|
392 | { | |
|
344 | typedef struct { | |
|
393 | 345 | unsigned char targetLogicalAddress; |
|
394 | 346 | unsigned char protocolIdentifier; |
|
395 | 347 | unsigned char reserved; |
@@ -414,11 +366,9 struct Packet_TM_LFR_TC_EXE_CORRUPTED_st | |||
|
414 | 366 | unsigned char pkt_datafieldsize_cnt[2]; |
|
415 | 367 | unsigned char rcv_crc[2]; |
|
416 | 368 | unsigned char computed_crc[2]; |
|
417 | }; | |
|
418 | typedef struct Packet_TM_LFR_TC_EXE_CORRUPTED_str Packet_TM_LFR_TC_EXE_CORRUPTED_t; | |
|
369 | } Packet_TM_LFR_TC_EXE_CORRUPTED_t; | |
|
419 | 370 | |
|
420 | struct Header_TM_LFR_SCIENCE_SWF_str | |
|
421 | { | |
|
371 | typedef struct { | |
|
422 | 372 | unsigned char targetLogicalAddress; |
|
423 | 373 | unsigned char protocolIdentifier; |
|
424 | 374 | unsigned char reserved; |
@@ -439,11 +389,9 struct Header_TM_LFR_SCIENCE_SWF_str | |||
|
439 | 389 | unsigned char pktNr; |
|
440 | 390 | unsigned char acquisitionTime[6]; |
|
441 | 391 | unsigned char blkNr[2]; |
|
442 | }; | |
|
443 | typedef struct Header_TM_LFR_SCIENCE_SWF_str Header_TM_LFR_SCIENCE_SWF_t; | |
|
392 | } Header_TM_LFR_SCIENCE_SWF_t; | |
|
444 | 393 | |
|
445 | struct Header_TM_LFR_SCIENCE_CWF_str | |
|
446 | { | |
|
394 | typedef struct { | |
|
447 | 395 | unsigned char targetLogicalAddress; |
|
448 | 396 | unsigned char protocolIdentifier; |
|
449 | 397 | unsigned char reserved; |
@@ -462,11 +410,9 struct Header_TM_LFR_SCIENCE_CWF_str | |||
|
462 | 410 | unsigned char hkBIA; |
|
463 | 411 | unsigned char acquisitionTime[6]; |
|
464 | 412 | unsigned char blkNr[2]; |
|
465 | }; | |
|
466 | typedef struct Header_TM_LFR_SCIENCE_CWF_str Header_TM_LFR_SCIENCE_CWF_t; | |
|
413 | } Header_TM_LFR_SCIENCE_CWF_t; | |
|
467 | 414 | |
|
468 | struct Header_TM_LFR_SCIENCE_ASM_str | |
|
469 | { | |
|
415 | typedef struct { | |
|
470 | 416 | unsigned char targetLogicalAddress; |
|
471 | 417 | unsigned char protocolIdentifier; |
|
472 | 418 | unsigned char reserved; |
@@ -487,12 +433,10 struct Header_TM_LFR_SCIENCE_ASM_str | |||
|
487 | 433 | unsigned char nrASM; |
|
488 | 434 | unsigned char acquisitionTime[6]; |
|
489 | 435 | unsigned char blkNr[2]; |
|
490 | }; | |
|
491 | typedef struct Header_TM_LFR_SCIENCE_ASM_str Header_TM_LFR_SCIENCE_ASM_t; | |
|
436 | } Header_TM_LFR_SCIENCE_ASM_t; | |
|
492 | 437 | |
|
493 | struct ccsdsTelecommandPacket_str | |
|
494 | { | |
|
495 | //unsigned char targetLogicalAddress; // removed by the grspw module | |
|
438 | typedef struct { | |
|
439 | //targetLogicalAddress is removed by the grspw module | |
|
496 | 440 | unsigned char protocolIdentifier; |
|
497 | 441 | unsigned char reserved; |
|
498 | 442 | unsigned char userApplication; |
@@ -505,11 +449,9 struct ccsdsTelecommandPacket_str | |||
|
505 | 449 | unsigned char serviceSubType; |
|
506 | 450 | unsigned char sourceID; |
|
507 | 451 | unsigned char dataAndCRC[CCSDS_TC_PKT_MAX_SIZE-10]; |
|
508 | }; | |
|
509 | typedef struct ccsdsTelecommandPacket_str ccsdsTelecommandPacket_t; | |
|
452 | } ccsdsTelecommandPacket_t; | |
|
510 | 453 | |
|
511 | struct Packet_TM_LFR_HK_str | |
|
512 | { | |
|
454 | typedef struct { | |
|
513 | 455 | unsigned char targetLogicalAddress; |
|
514 | 456 | unsigned char protocolIdentifier; |
|
515 | 457 | unsigned char reserved; |
@@ -607,11 +549,9 struct Packet_TM_LFR_HK_str | |||
|
607 | 549 | unsigned char hk_lfr_cpu_data_exception; |
|
608 | 550 | unsigned char hk_lfr_cpu_div_exception; |
|
609 | 551 | unsigned char hk_lfr_cpu_arith_overflow; |
|
610 | }; | |
|
611 | typedef struct Packet_TM_LFR_HK_str Packet_TM_LFR_HK_t; | |
|
552 | } Packet_TM_LFR_HK_t; | |
|
612 | 553 | |
|
613 | struct Packet_TM_LFR_PARAMETER_DUMP_str | |
|
614 | { | |
|
554 | typedef struct { | |
|
615 | 555 | unsigned char targetLogicalAddress; |
|
616 | 556 | unsigned char protocolIdentifier; |
|
617 | 557 | unsigned char reserved; |
@@ -654,8 +594,7 struct Packet_TM_LFR_PARAMETER_DUMP_str | |||
|
654 | 594 | // SBM2 PARAMETERS |
|
655 | 595 | unsigned char sy_lfr_s2_bp_p0; |
|
656 | 596 | unsigned char sy_lfr_s2_bp_p1; |
|
657 | }; | |
|
658 | typedef struct Packet_TM_LFR_PARAMETER_DUMP_str Packet_TM_LFR_PARAMETER_DUMP_t; | |
|
597 | } Packet_TM_LFR_PARAMETER_DUMP_t; | |
|
659 | 598 | |
|
660 | 599 | |
|
661 | 600 | #endif // CCSDS_TYPES_H_INCLUDED |
@@ -12,22 +12,6 | |||
|
12 | 12 | |
|
13 | 13 | #include "fsw_spacewire.h" |
|
14 | 14 | |
|
15 | extern rtems_name misc_name[5]; | |
|
16 | extern rtems_id misc_id[5]; | |
|
17 | extern rtems_name Task_name[20]; /* array of task names */ | |
|
18 | extern rtems_id Task_id[20]; /* array of task ids */ | |
|
19 | extern unsigned int maxCount; | |
|
20 | extern int fdSPW; // grspw file descriptor | |
|
21 | extern int fdUART; // uart file descriptor | |
|
22 | extern unsigned char lfrCurrentMode; | |
|
23 | ||
|
24 | // MODE PARAMETERS | |
|
25 | extern struct param_local_str param_local; | |
|
26 | extern Packet_TM_LFR_PARAMETER_DUMP_t parameter_dump_packet; | |
|
27 | extern unsigned short sequenceCounters_SCIENCE_NORMAL_BURST; | |
|
28 | extern unsigned short sequenceCounters_SCIENCE_SBM1_SBM2; | |
|
29 | extern unsigned short sequenceCounters_TC_EXE[SEQ_CNT_NB_DEST_ID]; | |
|
30 | ||
|
31 | 15 | // RTEMS TASKS |
|
32 | 16 | rtems_task Init( rtems_task_argument argument); |
|
33 | 17 | |
@@ -47,6 +31,5 extern int rtems_cpu_usage_reset( void ) | |||
|
47 | 31 | extern void rtems_stack_checker_report_usage( void ); |
|
48 | 32 | |
|
49 | 33 | extern int sched_yield( void ); |
|
50 | extern int errno; | |
|
51 | 34 | |
|
52 | 35 | #endif // FSW_INIT_H_INCLUDED |
@@ -11,15 +11,15 | |||
|
11 | 11 | rtems_name name_hk_rate_monotonic; // name of the HK rate monotonic |
|
12 | 12 | rtems_id HK_id; // id of the HK rate monotonic period |
|
13 | 13 | |
|
14 | extern rtems_name misc_name[5]; | |
|
15 | time_management_regs_t *time_management_regs; | |
|
16 | extern Packet_TM_LFR_HK_t housekeeping_packet; | |
|
14 | //extern rtems_name misc_name[5]; | |
|
15 | //time_management_regs_t *time_management_regs; | |
|
16 | //extern Packet_TM_LFR_HK_t housekeeping_packet; | |
|
17 | 17 | |
|
18 |
|
|
|
18 | void configure_timer(gptimer_regs_t *gptimer_regs, unsigned char timer, unsigned int clock_divider, | |
|
19 | 19 | unsigned char interrupt_level, rtems_isr (*timer_isr)() ); |
|
20 |
|
|
|
21 |
|
|
|
22 |
|
|
|
20 | void timer_start( gptimer_regs_t *gptimer_regs, unsigned char timer ); | |
|
21 | void timer_stop( gptimer_regs_t *gptimer_regs, unsigned char timer ); | |
|
22 | void timer_set_clock_divider(gptimer_regs_t *gptimer_regs, unsigned char timer, unsigned int clock_divider); | |
|
23 | 23 | |
|
24 | 24 | // SERIAL LINK |
|
25 | 25 | int send_console_outputs_on_apbuart_port( void ); |
@@ -3,8 +3,6 | |||
|
3 | 3 | |
|
4 | 4 | #define NB_BINS_PER_SM 128 |
|
5 | 5 | #define NB_VALUES_PER_SM 25 |
|
6 | //#define TOTAL_SIZE_SM (NB_BINS_PER_SM * NB_VALUES_PER_SM) | |
|
7 | //#define SM_HEADER 4 | |
|
8 | 6 | #define TOTAL_SIZE_SM 0 |
|
9 | 7 | #define SM_HEADER 0 |
|
10 | 8 | |
@@ -15,7 +13,7 | |||
|
15 | 13 | #define NB_AVERAGE_NORMAL_f0 96*4 |
|
16 | 14 | #define NB_SM_TO_RECEIVE_BEFORE_AVF0 8 |
|
17 | 15 | |
|
18 | struct BP1_str{ | |
|
16 | typedef struct { | |
|
19 | 17 | volatile unsigned char PE[2]; |
|
20 | 18 | volatile unsigned char PB[2]; |
|
21 | 19 | volatile unsigned char V0; |
@@ -23,7 +21,6 struct BP1_str{ | |||
|
23 | 21 | volatile unsigned char V2_ELLIP_DOP; |
|
24 | 22 | volatile unsigned char SZ; |
|
25 | 23 | volatile unsigned char VPHI; |
|
26 | }; | |
|
27 | typedef struct BP1_str BP1_t; | |
|
24 | } BP1_t; | |
|
28 | 25 | |
|
29 | 26 | #endif // FSW_PARAMS_PROCESSING_H |
@@ -11,7 +11,6 | |||
|
11 | 11 | #include "fsw_params.h" |
|
12 | 12 | #include "fsw_spacewire.h" |
|
13 | 13 | |
|
14 | ||
|
15 | 14 | extern volatile int spec_mat_f0_0[ ]; |
|
16 | 15 | extern volatile int spec_mat_f0_1[ ]; |
|
17 | 16 | extern volatile int spec_mat_f0_a[ ]; |
@@ -14,8 +14,6 | |||
|
14 | 14 | |
|
15 | 15 | extern spw_stats spacewire_stats; |
|
16 | 16 | extern spw_stats spacewire_stats_backup; |
|
17 | extern Packet_TM_LFR_HK_t housekeeping_packet; | |
|
18 | extern rtems_id Task_id[20]; /* array of task ids */ | |
|
19 | 17 | |
|
20 | 18 | // RTEMS TASK |
|
21 | 19 | rtems_task spiq_task( rtems_task_argument argument ); |
@@ -18,34 +18,29 struct ahbuart_regs_str{ | |||
|
18 | 18 | volatile unsigned int scaler; |
|
19 | 19 | }; |
|
20 | 20 | |
|
21 | struct timer_regs_str | |
|
22 | { | |
|
21 | typedef struct { | |
|
23 | 22 | volatile unsigned int counter; |
|
24 | 23 | volatile unsigned int reload; |
|
25 | 24 | volatile unsigned int ctrl; |
|
26 | 25 | volatile unsigned int unused; |
|
27 | }; | |
|
28 | typedef struct timer_regs_str timer_regs_t; | |
|
26 | } timer_regs_t; | |
|
29 | 27 | |
|
30 | struct gptimer_regs_str | |
|
31 | { | |
|
28 | typedef struct { | |
|
32 | 29 | volatile unsigned int scaler_value; |
|
33 | 30 | volatile unsigned int scaler_reload; |
|
34 | 31 | volatile unsigned int conf; |
|
35 | 32 | volatile unsigned int unused0; |
|
36 | 33 | timer_regs_t timer[NB_GPTIMER]; |
|
37 | }; | |
|
38 | typedef struct gptimer_regs_str gptimer_regs_t; | |
|
34 | } gptimer_regs_t; | |
|
39 | 35 | |
|
40 | struct time_management_regs_str{ | |
|
36 | typedef struct { | |
|
41 | 37 | volatile int ctrl; // bit 0 forces the load of the coarse_time_load value and resets the fine_time |
|
42 | 38 | volatile int coarse_time_load; |
|
43 | 39 | volatile int coarse_time; |
|
44 | 40 | volatile int fine_time; |
|
45 | }; | |
|
46 | typedef struct time_management_regs_str time_management_regs_t; | |
|
41 | } time_management_regs_t; | |
|
47 | 42 | |
|
48 | struct waveform_picker_regs_str{ | |
|
43 | typedef struct { | |
|
49 | 44 | volatile int data_shaping; // 0x00 00 *** R1 R0 SP1 SP0 BW |
|
50 | 45 | volatile int burst_enable; // 0x04 01 *** burst f2, f1, f0 enable f3, f2, f1, f0 |
|
51 | 46 | volatile int addr_data_f0; // 0x08 10 *** |
@@ -58,36 +53,15 struct waveform_picker_regs_str{ | |||
|
58 | 53 | volatile int delta_f2_f0; // 0x24 0001 *** |
|
59 | 54 | volatile int nb_burst_available;// 0x28 0010 *** |
|
60 | 55 | volatile int nb_snapshot_param; // 0x2c 0011 *** |
|
61 | }; | |
|
62 | typedef struct waveform_picker_regs_str waveform_picker_regs_t; | |
|
56 | } waveform_picker_regs_t; | |
|
63 | 57 | |
|
64 | struct waveform_picker_regs_str_alt{ | |
|
65 | volatile int data_shaping; // 0x00 00 *** R1 R0 SP1 SP0 BW | |
|
66 | volatile int run_burst_enable; // 0x04 01 *** [run *** burst f2, f1, f0 *** enable f3, f2, f1, f0 ] | |
|
67 | volatile int addr_data_f0; // 0x08 | |
|
68 | volatile int addr_data_f1; // 0x0c | |
|
69 | volatile int addr_data_f2; // 0x10 | |
|
70 | volatile int addr_data_f3; // 0x14 | |
|
71 | volatile int status; // 0x18 | |
|
72 | volatile int delta_snapshot; // 0x1c | |
|
73 | volatile int delta_f0; // 0x20 | |
|
74 | volatile int delta_f0_2; | |
|
75 | volatile int delta_f1; | |
|
76 | volatile int delta_f2; | |
|
77 | volatile int nb_data_by_buffer; | |
|
78 | volatile int snapshot_param; | |
|
79 | volatile int start_date; | |
|
80 | }; | |
|
81 | typedef struct waveform_picker_regs_str_alt waveform_picker_regs_t_alt; | |
|
82 | ||
|
83 | struct spectral_matrix_regs_str{ | |
|
58 | typedef struct { | |
|
84 | 59 | volatile int config; |
|
85 | 60 | volatile int status; |
|
86 | 61 | volatile int matrixF0_Address0; |
|
87 | 62 | volatile int matrixFO_Address1; |
|
88 | 63 | volatile int matrixF1_Address; |
|
89 | 64 | volatile int matrixF2_Address; |
|
90 | }; | |
|
91 | typedef struct spectral_matrix_regs_str spectral_matrix_regs_t; | |
|
65 | } spectral_matrix_regs_t; | |
|
92 | 66 | |
|
93 | 67 | #endif // GRLIB_REGS_H_INCLUDED |
@@ -10,17 +10,8 | |||
|
10 | 10 | #include "wf_handler.h" |
|
11 | 11 | |
|
12 | 12 | // MODE PARAMETERS |
|
13 | extern struct param_sbm1_str param_sbm1; | |
|
14 | extern struct param_sbm2_str param_sbm2; | |
|
15 | extern time_management_regs_t *time_management_regs; | |
|
16 | extern waveform_picker_regs_t *waveform_picker_regs; | |
|
17 | extern gptimer_regs_t *gptimer_regs; | |
|
18 | extern rtems_name misc_name[5]; | |
|
19 | extern rtems_id Task_id[20]; /* array of task ids */ | |
|
20 | extern unsigned char lfrCurrentMode; | |
|
21 | 13 | extern unsigned int maxCount; |
|
22 | 14 | |
|
23 | ||
|
24 | 15 | //**** |
|
25 | 16 | // ISR |
|
26 | 17 | rtems_isr commutation_isr1( rtems_vector_number vector ); |
@@ -42,7 +33,7 int action_update_time(ccsdsTelecommandP | |||
|
42 | 33 | // mode transition |
|
43 | 34 | int transition_validation(unsigned char requestedMode); |
|
44 | 35 | int stop_current_mode(); |
|
45 |
int enter_mode(unsigned char mode |
|
|
36 | int enter_mode(unsigned char mode); | |
|
46 | 37 | int enter_standby_mode(); |
|
47 | 38 | int enter_normal_mode(); |
|
48 | 39 | int enter_burst_mode(); |
@@ -9,11 +9,6 | |||
|
9 | 9 | #include "tm_lfr_tc_exe.h" |
|
10 | 10 | #include "fsw_misc.h" |
|
11 | 11 | |
|
12 | extern int fdSPW; | |
|
13 | extern unsigned char lfrCurrentMode; | |
|
14 | extern Packet_TM_LFR_PARAMETER_DUMP_t parameter_dump_packet; | |
|
15 | extern Packet_TM_LFR_HK_t housekeeping_packet; | |
|
16 | ||
|
17 | 12 | int action_load_common_par( ccsdsTelecommandPacket_t *TC ); |
|
18 | 13 | int action_load_normal_par(ccsdsTelecommandPacket_t *TC, rtems_id queue_id , unsigned char *time); |
|
19 | 14 | int action_load_burst_par(ccsdsTelecommandPacket_t *TC, rtems_id queue_id , unsigned char *time); |
@@ -7,8 +7,6 | |||
|
7 | 7 | #include "fsw_params.h" |
|
8 | 8 | #include "fsw_spacewire.h" |
|
9 | 9 | |
|
10 | extern time_management_regs_t *time_management_regs; | |
|
11 | extern Packet_TM_LFR_HK_t housekeeping_packet; | |
|
12 | 10 | extern unsigned short sequenceCounters_TC_EXE[]; |
|
13 | 11 | |
|
14 | 12 | int send_tm_lfr_tc_exe_success(ccsdsTelecommandPacket_t *TC, rtems_id queue_id, unsigned char *time); |
@@ -27,7 +27,6 extern volatile int wf_cont_f3[ ]; | |||
|
27 | 27 | extern volatile int wf_cont_f3_bis[ ]; |
|
28 | 28 | extern char wf_cont_f3_light[ ]; |
|
29 | 29 | extern waveform_picker_regs_t *waveform_picker_regs; |
|
30 | extern waveform_picker_regs_t_alt *waveform_picker_regs_alt; | |
|
31 | 30 | extern time_management_regs_t *time_management_regs; |
|
32 | 31 | extern Packet_TM_LFR_HK_t housekeeping_packet; |
|
33 | 32 | extern Packet_TM_LFR_PARAMETER_DUMP_t parameter_dump_packet; |
@@ -77,11 +76,11 void reset_waveform_picker_regs(); | |||
|
77 | 76 | |
|
78 | 77 | //***************** |
|
79 | 78 | // local parameters |
|
80 | void set_local_sbm1_nb_cwf_max(); | |
|
81 | void set_local_sbm2_nb_cwf_max(); | |
|
82 | void set_local_nb_interrupt_f0_MAX(); | |
|
83 | void reset_local_sbm1_nb_cwf_sent(); | |
|
84 | void reset_local_sbm2_nb_cwf_sent(); | |
|
79 | void set_local_sbm1_nb_cwf_max( void ); | |
|
80 | void set_local_sbm2_nb_cwf_max( void ); | |
|
81 | void set_local_nb_interrupt_f0_MAX( void ); | |
|
82 | void reset_local_sbm1_nb_cwf_sent( void ); | |
|
83 | void reset_local_sbm2_nb_cwf_sent( void ); | |
|
85 | 84 | |
|
86 | 85 | void increment_seq_counter_source_id( unsigned char *packet_sequence_control, unsigned int sid ); |
|
87 | 86 |
@@ -37,7 +37,6 gptimer_regs_t *gptimer_regs | |||
|
37 | 37 | #ifdef GSA |
|
38 | 38 | #else |
|
39 | 39 | waveform_picker_regs_t *waveform_picker_regs = (waveform_picker_regs_t*) REGS_ADDR_WAVEFORM_PICKER; |
|
40 | waveform_picker_regs_t_alt *waveform_picker_regs_alt = (waveform_picker_regs_t_alt*) REGS_ADDR_WAVEFORM_PICKER; | |
|
41 | 40 | #endif |
|
42 | 41 | spectral_matrix_regs_t *spectral_matrix_regs = (spectral_matrix_regs_t*) REGS_ADDR_SPECTRAL_MATRIX; |
|
43 | 42 |
@@ -7,16 +7,16 | |||
|
7 | 7 | |
|
8 | 8 | #include "fsw_misc.h" |
|
9 | 9 | |
|
10 | char *DumbMessages[7] = {"in DUMB *** default", // RTEMS_EVENT_0 | |
|
11 | "in DUMB *** timecode_irq_handler", // RTEMS_EVENT_1 | |
|
12 | "in DUMB *** waveforms_isr", // RTEMS_EVENT_2 | |
|
13 | "in DUMB *** in SMIQ *** Error sending event to AVF0", // RTEMS_EVENT_3 | |
|
14 | "in DUMB *** spectral_matrices_isr *** Error sending event to SMIQ", // RTEMS_EVENT_4 | |
|
15 | "in DUMB *** waveforms_simulator_isr", // RTEMS_EVENT_5 | |
|
16 | "ERR HK" // RTEMS_EVENT_6 | |
|
17 | }; | |
|
10 | //char *DumbMessages[7] = {"in DUMB *** default", // RTEMS_EVENT_0 | |
|
11 | // "in DUMB *** timecode_irq_handler", // RTEMS_EVENT_1 | |
|
12 | // "in DUMB *** waveforms_isr", // RTEMS_EVENT_2 | |
|
13 | // "in DUMB *** in SMIQ *** Error sending event to AVF0", // RTEMS_EVENT_3 | |
|
14 | // "in DUMB *** spectral_matrices_isr *** Error sending event to SMIQ", // RTEMS_EVENT_4 | |
|
15 | // "in DUMB *** waveforms_simulator_isr", // RTEMS_EVENT_5 | |
|
16 | // "ERR HK" // RTEMS_EVENT_6 | |
|
17 | //}; | |
|
18 | 18 | |
|
19 |
|
|
|
19 | void configure_timer(gptimer_regs_t *gptimer_regs, unsigned char timer, unsigned int clock_divider, | |
|
20 | 20 | unsigned char interrupt_level, rtems_isr (*timer_isr)() ) |
|
21 | 21 | { |
|
22 | 22 | /** This function configures a GPTIMER timer instantiated in the VHDL design. |
@@ -27,8 +27,6 int configure_timer(gptimer_regs_t *gpti | |||
|
27 | 27 | * @param interrupt_level is the interrupt level that the timer drives. |
|
28 | 28 | * @param timer_isr is the interrupt subroutine that will be attached to the IRQ driven by the timer. |
|
29 | 29 | * |
|
30 | * @return | |
|
31 | * | |
|
32 | 30 | * Interrupt levels are described in the SPARC documentation sparcv8.pdf p.76 |
|
33 | 31 | * |
|
34 | 32 | */ |
@@ -43,19 +41,15 int configure_timer(gptimer_regs_t *gpti | |||
|
43 | 41 | } |
|
44 | 42 | |
|
45 | 43 | timer_set_clock_divider( gptimer_regs, timer, clock_divider); |
|
46 | ||
|
47 | return 1; | |
|
48 | 44 | } |
|
49 | 45 | |
|
50 |
|
|
|
46 | void timer_start(gptimer_regs_t *gptimer_regs, unsigned char timer) | |
|
51 | 47 | { |
|
52 | 48 | /** This function starts a GPTIMER timer. |
|
53 | 49 | * |
|
54 | 50 | * @param gptimer_regs points to the APB registers of the GPTIMER IP core. |
|
55 | 51 | * @param timer is the number of the timer in the IP core (several timers can be instantiated). |
|
56 | 52 | * |
|
57 | * @return 1 | |
|
58 | * | |
|
59 | 53 | */ |
|
60 | 54 | |
|
61 | 55 | gptimer_regs->timer[timer].ctrl = gptimer_regs->timer[timer].ctrl | 0x00000010; // clear pending IRQ if any |
@@ -63,29 +57,23 int timer_start(gptimer_regs_t *gptimer_ | |||
|
63 | 57 | gptimer_regs->timer[timer].ctrl = gptimer_regs->timer[timer].ctrl | 0x00000001; // EN enable the timer |
|
64 | 58 | gptimer_regs->timer[timer].ctrl = gptimer_regs->timer[timer].ctrl | 0x00000002; // RS restart |
|
65 | 59 | gptimer_regs->timer[timer].ctrl = gptimer_regs->timer[timer].ctrl | 0x00000008; // IE interrupt enable |
|
66 | ||
|
67 | return 1; | |
|
68 | 60 | } |
|
69 | 61 | |
|
70 |
|
|
|
62 | void timer_stop(gptimer_regs_t *gptimer_regs, unsigned char timer) | |
|
71 | 63 | { |
|
72 | 64 | /** This function stops a GPTIMER timer. |
|
73 | 65 | * |
|
74 | 66 | * @param gptimer_regs points to the APB registers of the GPTIMER IP core. |
|
75 | 67 | * @param timer is the number of the timer in the IP core (several timers can be instantiated). |
|
76 | 68 | * |
|
77 | * @return 1 | |
|
78 | * | |
|
79 | 69 | */ |
|
80 | 70 | |
|
81 | 71 | gptimer_regs->timer[timer].ctrl = gptimer_regs->timer[timer].ctrl & 0xfffffffe; // EN enable the timer |
|
82 | 72 | gptimer_regs->timer[timer].ctrl = gptimer_regs->timer[timer].ctrl & 0xffffffef; // IE interrupt enable |
|
83 | 73 | gptimer_regs->timer[timer].ctrl = gptimer_regs->timer[timer].ctrl | 0x00000010; // clear pending IRQ if any |
|
84 | ||
|
85 | return 1; | |
|
86 | 74 | } |
|
87 | 75 | |
|
88 |
|
|
|
76 | void timer_set_clock_divider(gptimer_regs_t *gptimer_regs, unsigned char timer, unsigned int clock_divider) | |
|
89 | 77 | { |
|
90 | 78 | /** This function sets the clock divider of a GPTIMER timer. |
|
91 | 79 | * |
@@ -93,13 +81,9 int timer_set_clock_divider(gptimer_regs | |||
|
93 | 81 | * @param timer is the number of the timer in the IP core (several timers can be instantiated). |
|
94 | 82 | * @param clock_divider is the divider of the 1 MHz clock that will be configured. |
|
95 | 83 | * |
|
96 | * @return 1 | |
|
97 | * | |
|
98 | 84 | */ |
|
99 | 85 | |
|
100 | 86 | gptimer_regs->timer[timer].reload = clock_divider; // base clock frequency is 1 MHz |
|
101 | ||
|
102 | return 1; | |
|
103 | 87 | } |
|
104 | 88 | |
|
105 | 89 | int send_console_outputs_on_apbuart_port( void ) // Send the console outputs on the apbuart port |
@@ -247,6 +231,15 rtems_task dumb_task( rtems_task_argumen | |||
|
247 | 231 | unsigned int fine_time = 0; |
|
248 | 232 | rtems_event_set event_out; |
|
249 | 233 | |
|
234 | char *DumbMessages[7] = {"in DUMB *** default", // RTEMS_EVENT_0 | |
|
235 | "in DUMB *** timecode_irq_handler", // RTEMS_EVENT_1 | |
|
236 | "in DUMB *** waveforms_isr", // RTEMS_EVENT_2 | |
|
237 | "in DUMB *** in SMIQ *** Error sending event to AVF0", // RTEMS_EVENT_3 | |
|
238 | "in DUMB *** spectral_matrices_isr *** Error sending event to SMIQ", // RTEMS_EVENT_4 | |
|
239 | "in DUMB *** waveforms_simulator_isr", // RTEMS_EVENT_5 | |
|
240 | "ERR HK" // RTEMS_EVENT_6 | |
|
241 | }; | |
|
242 | ||
|
250 | 243 | BOOT_PRINTF("in DUMB *** \n") |
|
251 | 244 | |
|
252 | 245 | while(1){ |
@@ -296,6 +289,12 void init_housekeeping_parameters( void | |||
|
296 | 289 | |
|
297 | 290 | void increment_seq_counter( unsigned char *packet_sequence_control) |
|
298 | 291 | { |
|
292 | /** This function increment the sequence counter psased in argument. | |
|
293 | * | |
|
294 | * The increment does not affect the grouping flag. In case of an overflow, the counter is reset to 0. | |
|
295 | * | |
|
296 | */ | |
|
297 | ||
|
299 | 298 | unsigned short sequence_cnt; |
|
300 | 299 | unsigned short segmentation_grouping_flag; |
|
301 | 300 | unsigned short new_packet_sequence_control; |
@@ -323,6 +322,10 void increment_seq_counter( unsigned cha | |||
|
323 | 322 | |
|
324 | 323 | void getTime( unsigned char *time) |
|
325 | 324 | { |
|
325 | /** This function write the current local time in the time buffer passed in argument. | |
|
326 | * | |
|
327 | */ | |
|
328 | ||
|
326 | 329 | time[0] = (unsigned char) (time_management_regs->coarse_time>>24); |
|
327 | 330 | time[1] = (unsigned char) (time_management_regs->coarse_time>>16); |
|
328 | 331 | time[2] = (unsigned char) (time_management_regs->coarse_time>>8); |
@@ -11,7 +11,6 | |||
|
11 | 11 | |
|
12 | 12 | #include "fsw_processing_globals.c" |
|
13 | 13 | |
|
14 | unsigned char LFR_BP1_F0[ NB_BINS_COMPRESSED_SM_F0 * 9 ]; | |
|
15 | 14 | BP1_t data_BP1[ NB_BINS_COMPRESSED_SM_F0 ]; |
|
16 | 15 | float averaged_spec_mat_f0[ TOTAL_SIZE_SM ]; |
|
17 | 16 | char averaged_spec_mat_f0_char[ TOTAL_SIZE_SM * 2 ]; |
@@ -119,26 +118,6 rtems_task smiq_task(rtems_task_argument | |||
|
119 | 118 | } |
|
120 | 119 | } |
|
121 | 120 | |
|
122 | //rtems_task smiq_task(rtems_task_argument argument) // process the Spectral Matrices IRQ | |
|
123 | //{ | |
|
124 | // rtems_event_set event_out; | |
|
125 | // unsigned int nb_interrupt_f0 = 0; | |
|
126 | ||
|
127 | // PRINTF("in SMIQ *** \n") | |
|
128 | ||
|
129 | // while(1){ | |
|
130 | // rtems_event_receive(RTEMS_EVENT_0, RTEMS_WAIT, RTEMS_NO_TIMEOUT, &event_out); // wait for an RTEMS_EVENT0 | |
|
131 | // nb_interrupt_f0 = nb_interrupt_f0 + 1; | |
|
132 | // if (nb_interrupt_f0 == param_local.local_nb_interrupt_f0_MAX ){ | |
|
133 | // if (rtems_event_send( Task_id[TASKID_MATR], RTEMS_EVENT_0 ) != RTEMS_SUCCESSFUL) | |
|
134 | // { | |
|
135 | // rtems_event_send( Task_id[TASKID_DUMB], RTEMS_EVENT_3 ); | |
|
136 | // } | |
|
137 | // nb_interrupt_f0 = 0; | |
|
138 | // } | |
|
139 | // } | |
|
140 | //} | |
|
141 | ||
|
142 | 121 | rtems_task spw_bppr_task(rtems_task_argument argument) |
|
143 | 122 | { |
|
144 | 123 | rtems_status_code status; |
@@ -188,6 +167,7 rtems_task avf0_task(rtems_task_argument | |||
|
188 | 167 | rtems_task bpf0_task(rtems_task_argument argument) |
|
189 | 168 | { |
|
190 | 169 | rtems_event_set event_out; |
|
170 | static unsigned char LFR_BP1_F0[ NB_BINS_COMPRESSED_SM_F0 * 9 ]; | |
|
191 | 171 | |
|
192 | 172 | BOOT_PRINTF("in BPFO *** \n") |
|
193 | 173 | |
@@ -195,7 +175,6 rtems_task bpf0_task(rtems_task_argument | |||
|
195 | 175 | rtems_event_receive(RTEMS_EVENT_0, RTEMS_WAIT, RTEMS_NO_TIMEOUT, &event_out); // wait for an RTEMS_EVENT0 |
|
196 | 176 | matrix_compression(averaged_spec_mat_f0, 0, compressed_spec_mat_f0); |
|
197 | 177 | BP1_set(compressed_spec_mat_f0, NB_BINS_COMPRESSED_SM_F0, LFR_BP1_F0); |
|
198 | //PRINTF("IN TASK BPF0 *** Matrix compressed, parameters calculated\n") | |
|
199 | 178 | } |
|
200 | 179 | } |
|
201 | 180 | |
@@ -237,10 +216,10 rtems_task matr_task(rtems_task_argument | |||
|
237 | 216 | |
|
238 | 217 | void matrix_reset(volatile float *averaged_spec_mat) |
|
239 | 218 | { |
|
240 |
|
|
|
241 |
|
|
|
242 |
|
|
|
243 |
|
|
|
219 | int i; | |
|
220 | for(i=0; i<TOTAL_SIZE_SM; i++){ | |
|
221 | averaged_spec_mat[i] = 0; | |
|
222 | } | |
|
244 | 223 | } |
|
245 | 224 | |
|
246 | 225 | void matrix_compression(volatile float *averaged_spec_mat, unsigned char fChannel, float *compressed_spec_mat) |
@@ -13,14 +13,6 | |||
|
13 | 13 | |
|
14 | 14 | #include "fsw_spacewire.h" |
|
15 | 15 | |
|
16 | char *lstates[6] = {"Error-reset", | |
|
17 | "Error-wait", | |
|
18 | "Ready", | |
|
19 | "Started", | |
|
20 | "Connecting", | |
|
21 | "Run" | |
|
22 | }; | |
|
23 | ||
|
24 | 16 | rtems_name semq_name; |
|
25 | 17 | rtems_id semq_id; |
|
26 | 18 | |
@@ -45,18 +37,24 rtems_task spiq_task(rtems_task_argument | |||
|
45 | 37 | PRINTF("in SPIQ *** got SPW_LINKERR_EVENT\n") |
|
46 | 38 | |
|
47 | 39 | // [0] SUSPEND RECV AND SEND TASKS |
|
48 | rtems_task_suspend( Task_id[ TASKID_RECV ] ); | |
|
49 | rtems_task_suspend( Task_id[ TASKID_SEND ] ); | |
|
40 | status = rtems_task_suspend( Task_id[ TASKID_RECV ] ); | |
|
41 | if ( status != RTEMS_SUCCESSFUL ) { | |
|
42 | PRINTF("in SPIQ *** ERR suspending RECV Task\n") | |
|
43 | } | |
|
44 | status = rtems_task_suspend( Task_id[ TASKID_SEND ] ); | |
|
45 | if ( status != RTEMS_SUCCESSFUL ) { | |
|
46 | PRINTF("in SPIQ *** ERR suspending SEND Task\n") | |
|
47 | } | |
|
50 | 48 | |
|
51 | 49 | // [1] CHECK THE LINK |
|
52 | ioctl(fdSPW, SPACEWIRE_IOCTRL_GET_LINK_STATUS, &linkStatus); // get the link status (1) | |
|
50 | status = ioctl(fdSPW, SPACEWIRE_IOCTRL_GET_LINK_STATUS, &linkStatus); // get the link status (1) | |
|
53 | 51 | if ( linkStatus != 5) { |
|
54 | 52 | PRINTF1("in SPIQ *** linkStatus %d, wait...\n", linkStatus) |
|
55 | rtems_task_wake_after( SY_LFR_DPU_CONNECT_TIMEOUT ); // wait SY_LFR_DPU_CONNECT_TIMEOUT 1000 ms | |
|
53 | status = rtems_task_wake_after( SY_LFR_DPU_CONNECT_TIMEOUT ); // wait SY_LFR_DPU_CONNECT_TIMEOUT 1000 ms | |
|
56 | 54 | } |
|
57 | 55 | |
|
58 | 56 | // [2] RECHECK THE LINK AFTER SY_LFR_DPU_CONNECT_TIMEOUT |
|
59 | ioctl(fdSPW, SPACEWIRE_IOCTRL_GET_LINK_STATUS, &linkStatus); // get the link status (2) | |
|
57 | status = ioctl(fdSPW, SPACEWIRE_IOCTRL_GET_LINK_STATUS, &linkStatus); // get the link status (2) | |
|
60 | 58 | if ( linkStatus != 5 ) // [2.a] not in run state, reset the link |
|
61 | 59 | { |
|
62 | 60 | spacewire_compute_stats_offsets(); |
@@ -95,7 +93,7 rtems_task spiq_task(rtems_task_argument | |||
|
95 | 93 | } |
|
96 | 94 | // wake the WTDG task up to wait for the link recovery |
|
97 | 95 | status = rtems_event_send ( Task_id[TASKID_WTDG], RTEMS_EVENT_0 ); |
|
98 | rtems_task_suspend( RTEMS_SELF ); | |
|
96 | status = rtems_task_suspend( RTEMS_SELF ); | |
|
99 | 97 | } |
|
100 | 98 | } |
|
101 | 99 | } |
@@ -278,11 +276,11 rtems_task wtdg_task( rtems_task_argumen | |||
|
278 | 276 | rtems_event_receive( RTEMS_EVENT_0, |
|
279 | 277 | RTEMS_WAIT | RTEMS_EVENT_ANY, RTEMS_NO_TIMEOUT, &event_out); |
|
280 | 278 | PRINTF("in WTDG *** wait for the link\n") |
|
281 | ioctl(fdSPW, SPACEWIRE_IOCTRL_GET_LINK_STATUS, &linkStatus); // get the link status | |
|
279 | status = ioctl(fdSPW, SPACEWIRE_IOCTRL_GET_LINK_STATUS, &linkStatus); // get the link status | |
|
282 | 280 | while( linkStatus != 5) // wait for the link |
|
283 | 281 | { |
|
284 | 282 | rtems_task_wake_after( 10 ); |
|
285 | ioctl(fdSPW, SPACEWIRE_IOCTRL_GET_LINK_STATUS, &linkStatus); // get the link status | |
|
283 | status = ioctl(fdSPW, SPACEWIRE_IOCTRL_GET_LINK_STATUS, &linkStatus); // get the link status | |
|
286 | 284 | } |
|
287 | 285 | |
|
288 | 286 | status = spacewire_stop_start_link( fdSPW ); |
@@ -599,7 +597,7 rtems_timer_service_routine user_routine | |||
|
599 | 597 | int linkStatus; |
|
600 | 598 | rtems_status_code status; |
|
601 | 599 | |
|
602 | ioctl(fdSPW, SPACEWIRE_IOCTRL_GET_LINK_STATUS, &linkStatus); // get the link status | |
|
600 | status = ioctl(fdSPW, SPACEWIRE_IOCTRL_GET_LINK_STATUS, &linkStatus); // get the link status | |
|
603 | 601 | |
|
604 | 602 | if ( linkStatus == 5) { |
|
605 | 603 | PRINTF("in spacewire_reset_link *** link is running\n") |
@@ -57,7 +57,10 rtems_task actn_task( rtems_task_argumen | |||
|
57 | 57 | status = rtems_message_queue_receive( queue_rcv_id, (char*) &TC, &size, |
|
58 | 58 | RTEMS_WAIT, RTEMS_NO_TIMEOUT); |
|
59 | 59 | getTime( time ); // set time to the current time |
|
60 | if (status!=RTEMS_SUCCESSFUL) PRINTF1("ERR *** in task ACTN *** error receiving a message, code %d \n", status) | |
|
60 | if (status!=RTEMS_SUCCESSFUL) | |
|
61 | { | |
|
62 | PRINTF1("ERR *** in task ACTN *** error receiving a message, code %d \n", status) | |
|
63 | } | |
|
61 | 64 | else |
|
62 | 65 | { |
|
63 | 66 | subtype = TC.serviceSubType; |
@@ -190,7 +193,7 int action_enter_mode(ccsdsTelecommandPa | |||
|
190 | 193 | { |
|
191 | 194 | PRINTF("ERR *** in action_enter *** stop_current_mode\n") |
|
192 | 195 | } |
|
193 |
status = enter_mode(requestedMode |
|
|
196 | status = enter_mode( requestedMode ); | |
|
194 | 197 | } |
|
195 | 198 | else |
|
196 | 199 | { |
@@ -313,6 +316,16 int action_update_time(ccsdsTelecommandP | |||
|
313 | 316 | |
|
314 | 317 | int transition_validation(unsigned char requestedMode) |
|
315 | 318 | { |
|
319 | /** This function checks the validity of the transition requested by the TC_LFR_ENTER_MODE. | |
|
320 | * | |
|
321 | * @param requestedMode is the mode requested by the TC_LFR_ENTER_MODE | |
|
322 | * | |
|
323 | * @return LFR directive status codes: | |
|
324 | * - LFR_SUCCESSFUL - the transition is authorized | |
|
325 | * - LFR_DEFAULT - the transition is not authorized | |
|
326 | * | |
|
327 | */ | |
|
328 | ||
|
316 | 329 | int status; |
|
317 | 330 | |
|
318 | 331 | switch (requestedMode) |
@@ -410,8 +423,18 int stop_current_mode() | |||
|
410 | 423 | return status; |
|
411 | 424 | } |
|
412 | 425 | |
|
413 |
int enter_mode(unsigned char mode |
|
|
426 | int enter_mode(unsigned char mode ) | |
|
414 | 427 | { |
|
428 | /** This function is launched after a mode transition validation. | |
|
429 | * | |
|
430 | * @param mode is the mode in which LFR will be put. | |
|
431 | * | |
|
432 | * @return RTEMS directive status codes: | |
|
433 | * - RTEMS_SUCCESSFUL - the mode has been entered successfully | |
|
434 | * - RTEMS_NOT_SATISFIED - the mode has not been entered successfully | |
|
435 | * | |
|
436 | */ | |
|
437 | ||
|
415 | 438 | rtems_status_code status; |
|
416 | 439 | |
|
417 | 440 | status = RTEMS_UNSATISFIED; |
@@ -450,6 +473,13 int enter_mode(unsigned char mode, ccsds | |||
|
450 | 473 | |
|
451 | 474 | int enter_standby_mode() |
|
452 | 475 | { |
|
476 | /** This function is used to enter the STANDBY mode. | |
|
477 | * | |
|
478 | * @return RTEMS directive status codes: | |
|
479 | * - RTEMS_SUCCESSFUL - the mode has been entered successfully | |
|
480 | * | |
|
481 | */ | |
|
482 | ||
|
453 | 483 | PRINTF1("maxCount = %d\n", maxCount) |
|
454 | 484 | |
|
455 | 485 | #ifdef PRINT_TASK_STATISTICS |
@@ -494,6 +524,16 int enter_normal_mode() | |||
|
494 | 524 | |
|
495 | 525 | int enter_burst_mode() |
|
496 | 526 | { |
|
527 | /** This function is used to enter the STANDBY mode. | |
|
528 | * | |
|
529 | * @return RTEMS directive status codes: | |
|
530 | * - RTEMS_SUCCESSFUL - the mode has been entered successfully | |
|
531 | * - RTEMS_INVALID_ID - task id invalid | |
|
532 | * - RTEMS_INCORRECT_STATE - task never started | |
|
533 | * - RTEMS_ILLEGAL_ON_REMOTE_OBJECT - cannot restart remote task | |
|
534 | * | |
|
535 | */ | |
|
536 | ||
|
497 | 537 | rtems_status_code status; |
|
498 | 538 | |
|
499 | 539 | status = restart_science_tasks(); |
@@ -512,6 +552,16 int enter_burst_mode() | |||
|
512 | 552 | |
|
513 | 553 | int enter_sbm1_mode() |
|
514 | 554 | { |
|
555 | /** This function is used to enter the SBM1 mode. | |
|
556 | * | |
|
557 | * @return RTEMS directive status codes: | |
|
558 | * - RTEMS_SUCCESSFUL - the mode has been entered successfully | |
|
559 | * - RTEMS_INVALID_ID - task id invalid | |
|
560 | * - RTEMS_INCORRECT_STATE - task never started | |
|
561 | * - RTEMS_ILLEGAL_ON_REMOTE_OBJECT - cannot restart remote task | |
|
562 | * | |
|
563 | */ | |
|
564 | ||
|
515 | 565 | rtems_status_code status; |
|
516 | 566 | |
|
517 | 567 | status = restart_science_tasks(); |
@@ -527,10 +577,6 int enter_sbm1_mode() | |||
|
527 | 577 | set_wfp_burst_enable_register(LFR_MODE_SBM1); |
|
528 | 578 | LEON_Clear_interrupt( IRQ_WAVEFORM_PICKER ); |
|
529 | 579 | LEON_Unmask_interrupt( IRQ_WAVEFORM_PICKER ); |
|
530 | // SM simulation | |
|
531 | // timer_start( (gptimer_regs_t*) REGS_ADDR_GPTIMER, TIMER_SM_SIMULATOR ); | |
|
532 | // LEON_Clear_interrupt( IRQ_SM ); // the IRQ_SM seems to be incompatible with the IRQ_WF on the xilinx board | |
|
533 | // LEON_Unmask_interrupt( IRQ_SM ); | |
|
534 | 580 | #endif |
|
535 | 581 | |
|
536 | 582 | return status; |
@@ -538,6 +584,16 int enter_sbm1_mode() | |||
|
538 | 584 | |
|
539 | 585 | int enter_sbm2_mode() |
|
540 | 586 | { |
|
587 | /** This function is used to enter the SBM2 mode. | |
|
588 | * | |
|
589 | * @return RTEMS directive status codes: | |
|
590 | * - RTEMS_SUCCESSFUL - the mode has been entered successfully | |
|
591 | * - RTEMS_INVALID_ID - task id invalid | |
|
592 | * - RTEMS_INCORRECT_STATE - task never started | |
|
593 | * - RTEMS_ILLEGAL_ON_REMOTE_OBJECT - cannot restart remote task | |
|
594 | * | |
|
595 | */ | |
|
596 | ||
|
541 | 597 | rtems_status_code status; |
|
542 | 598 | |
|
543 | 599 | status = restart_science_tasks(); |
@@ -560,6 +616,18 int enter_sbm2_mode() | |||
|
560 | 616 | |
|
561 | 617 | int restart_science_tasks() |
|
562 | 618 | { |
|
619 | /** This function is used to restart all science tasks. | |
|
620 | * | |
|
621 | * @return RTEMS directive status codes: | |
|
622 | * - RTEMS_SUCCESSFUL - task restarted successfully | |
|
623 | * - RTEMS_INVALID_ID - task id invalid | |
|
624 | * - RTEMS_INCORRECT_STATE - task never started | |
|
625 | * - RTEMS_ILLEGAL_ON_REMOTE_OBJECT - cannot restart remote task | |
|
626 | * | |
|
627 | * Science tasks are AVF0, BPF0, WFRM, CWF3, CW2, CWF1 | |
|
628 | * | |
|
629 | */ | |
|
630 | ||
|
563 | 631 | rtems_status_code status[6]; |
|
564 | 632 | rtems_status_code ret; |
|
565 | 633 | |
@@ -681,6 +749,13 int suspend_science_tasks() | |||
|
681 | 749 | // CLOSING ACTIONS |
|
682 | 750 | void update_last_TC_exe(ccsdsTelecommandPacket_t *TC, unsigned char *time) |
|
683 | 751 | { |
|
752 | /** This function is used to update the HK packets statistics after a successful TC execution. | |
|
753 | * | |
|
754 | * @param TC points to the TC being processed | |
|
755 | * @param time is the time used to date the TC execution | |
|
756 | * | |
|
757 | */ | |
|
758 | ||
|
684 | 759 | housekeeping_packet.hk_lfr_last_exe_tc_id[0] = TC->packetID[0]; |
|
685 | 760 | housekeeping_packet.hk_lfr_last_exe_tc_id[1] = TC->packetID[1]; |
|
686 | 761 | housekeeping_packet.hk_lfr_last_exe_tc_type[0] = 0x00; |
@@ -697,6 +772,13 void update_last_TC_exe(ccsdsTelecommand | |||
|
697 | 772 | |
|
698 | 773 | void update_last_TC_rej(ccsdsTelecommandPacket_t *TC, unsigned char *time) |
|
699 | 774 | { |
|
775 | /** This function is used to update the HK packets statistics after a TC rejection. | |
|
776 | * | |
|
777 | * @param TC points to the TC being processed | |
|
778 | * @param time is the time used to date the TC rejection | |
|
779 | * | |
|
780 | */ | |
|
781 | ||
|
700 | 782 | housekeeping_packet.hk_lfr_last_rej_tc_id[0] = TC->packetID[0]; |
|
701 | 783 | housekeeping_packet.hk_lfr_last_rej_tc_id[1] = TC->packetID[1]; |
|
702 | 784 | housekeeping_packet.hk_lfr_last_rej_tc_type[0] = 0x00; |
@@ -713,6 +795,15 void update_last_TC_rej(ccsdsTelecommand | |||
|
713 | 795 | |
|
714 | 796 | void close_action(ccsdsTelecommandPacket_t *TC, int result, rtems_id queue_id, unsigned char *time) |
|
715 | 797 | { |
|
798 | /** This function is the last step of the TC execution workflow. | |
|
799 | * | |
|
800 | * @param TC points to the TC being processed | |
|
801 | * @param result is the result of the TC execution (LFR_SUCCESSFUL / LFR_DEFAULT) | |
|
802 | * @param queue_id is the id of the RTEMS message queue used to send TM packets | |
|
803 | * @param time is the time used to date the TC execution | |
|
804 | * | |
|
805 | */ | |
|
806 | ||
|
716 | 807 | unsigned int val = 0; |
|
717 | 808 | |
|
718 | 809 | if (result == LFR_SUCCESSFUL) |
@@ -416,6 +416,15 int send_tm_lfr_tc_exe_corrupted(ccsdsTe | |||
|
416 | 416 | |
|
417 | 417 | void increment_seq_counter_destination_id( unsigned char *packet_sequence_control, unsigned char destination_id ) |
|
418 | 418 | { |
|
419 | /** This function increment the packet sequence control parameter of a TC, depending on its destination ID. | |
|
420 | * | |
|
421 | * @param packet_sequence_control points to the packet sequence control which will be incremented | |
|
422 | * @param destination_id is the destination ID of the TM, there is one counter by destination ID | |
|
423 | * | |
|
424 | * If the destination ID is not known, a dedicated counter is incremented. | |
|
425 | * | |
|
426 | */ | |
|
427 | ||
|
419 | 428 | unsigned short sequence_cnt; |
|
420 | 429 | unsigned short segmentation_grouping_flag; |
|
421 | 430 | unsigned short new_packet_sequence_control; |
@@ -1095,7 +1095,7 void reset_waveform_picker_regs() | |||
|
1095 | 1095 | |
|
1096 | 1096 | //***************** |
|
1097 | 1097 | // local parameters |
|
1098 | void set_local_sbm1_nb_cwf_max() | |
|
1098 | void set_local_sbm1_nb_cwf_max( void ) | |
|
1099 | 1099 | { |
|
1100 | 1100 | /** This function sets the value of the sbm1_nb_cwf_max local parameter. |
|
1101 | 1101 | * |
@@ -1109,7 +1109,7 void set_local_sbm1_nb_cwf_max() | |||
|
1109 | 1109 | + parameter_dump_packet.sy_lfr_n_swf_p[1]) - 8; // 16 CWF1 parts during 1 SWF2 |
|
1110 | 1110 | } |
|
1111 | 1111 | |
|
1112 | void set_local_sbm2_nb_cwf_max() | |
|
1112 | void set_local_sbm2_nb_cwf_max(void) | |
|
1113 | 1113 | { |
|
1114 | 1114 | /** This function sets the value of the sbm1_nb_cwf_max local parameter. |
|
1115 | 1115 | * |
@@ -1123,7 +1123,7 void set_local_sbm2_nb_cwf_max() | |||
|
1123 | 1123 | + parameter_dump_packet.sy_lfr_n_swf_p[1]) / 8; |
|
1124 | 1124 | } |
|
1125 | 1125 | |
|
1126 | void set_local_nb_interrupt_f0_MAX() | |
|
1126 | void set_local_nb_interrupt_f0_MAX( void ) | |
|
1127 | 1127 | { |
|
1128 | 1128 | /** This function sets the value of the nb_interrupt_f0_MAX local parameter. |
|
1129 | 1129 | * |
@@ -1137,7 +1137,7 void set_local_nb_interrupt_f0_MAX() | |||
|
1137 | 1137 | + parameter_dump_packet.sy_lfr_n_asm_p[1] ) * 100; |
|
1138 | 1138 | } |
|
1139 | 1139 | |
|
1140 | void reset_local_sbm1_nb_cwf_sent() | |
|
1140 | void reset_local_sbm1_nb_cwf_sent( void ) | |
|
1141 | 1141 | { |
|
1142 | 1142 | /** This function resets the value of the sbm1_nb_cwf_sent local parameter. |
|
1143 | 1143 | * |
@@ -1149,7 +1149,7 void reset_local_sbm1_nb_cwf_sent() | |||
|
1149 | 1149 | param_local.local_sbm1_nb_cwf_sent = 0; |
|
1150 | 1150 | } |
|
1151 | 1151 | |
|
1152 | void reset_local_sbm2_nb_cwf_sent() | |
|
1152 | void reset_local_sbm2_nb_cwf_sent( void ) | |
|
1153 | 1153 | { |
|
1154 | 1154 | /** This function resets the value of the sbm2_nb_cwf_sent local parameter. |
|
1155 | 1155 | * |
General Comments 0
You need to be logged in to leave comments.
Login now