-
Notifications
You must be signed in to change notification settings - Fork 204
/
cpu1_platform_cfg.h
1711 lines (1596 loc) · 65.9 KB
/
cpu1_platform_cfg.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/*
** GSC-18128-1, "Core Flight Executive Version 6.7"
**
** Copyright (c) 2006-2019 United States Government as represented by
** the Administrator of the National Aeronautics and Space Administration.
** All Rights Reserved.
**
** Licensed under the Apache License, Version 2.0 (the "License");
** you may not use this file except in compliance with the License.
** You may obtain a copy of the License at
**
** http://www.apache.org/licenses/LICENSE-2.0
**
** Unless required by applicable law or agreed to in writing, software
** distributed under the License is distributed on an "AS IS" BASIS,
** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
** See the License for the specific language governing permissions and
** limitations under the License.
*/
/**
* @file
*
* Purpose:
* This header file contains the platform configuration parameters.
*
* Notes:
* The impact of changing these configurations from their default value is
* not yet documented. Changing these values may impact the performance
* and functionality of the system.
*
* Author: R.McGraw/SSI
*
*/
#ifndef CPU1_PLATFORM_CFG_H
#define CPU1_PLATFORM_CFG_H
/**
** \cfeescfg Default virtual path for persistent storage
**
** \par Description:
** This configures the default location in the virtual file system
** for persistent/non-volatile storage. Files such as the startup
** script, app/library dynamic modules, and configuration tables are
** expected to be stored in this directory.
**
*/
#define CFE_PLATFORM_ES_NONVOL_DISK_MOUNT_STRING "/cf"
/**
** \cfeescfg Default virtual path for volatile storage
**
** \par Description:
** The #CFE_PLATFORM_ES_RAM_DISK_MOUNT_STRING parameter is used to set the cFE mount path
** for the CFE RAM disk. This is a parameter for missions that do not want to
** use the default value of "/ram", or for missions that need to have a different
** value for different CPUs or Spacecraft.
** Note that the vxWorks OSAL cannot currently handle names that have more than one
** path separator in it. The names "/ram", "/ramdisk", "/disk123" will all work, but
** "/disks/ram" will not.
** Multiple separators can be used with the posix or RTEMS ports.
**
*/
#define CFE_PLATFORM_ES_RAM_DISK_MOUNT_STRING "/ram"
/**
** \cfesbcfg Maximum Number of Unique Message IDs SB Routing Table can hold
**
** \par Description:
** Dictates the maximum number of unique MsgIds the SB routing table will hold.
** This constant has a direct affect on the size of SB's tables and arrays.
** Keeping this count as low as possible will save memory.
** To see the run-time, high-water mark and the current utilization figures
** regarding this parameter, send an SB command to 'Send Statistics Pkt'.
**
** \par Limits
** This must be a power of two if software bus message routing hash implementation
** is being used. Lower than 64 will cause unit test failures, and
** telemetry reporting is impacted below 32. There is no hard
** upper limit, but impacts memory footprint. For software bus message routing
** search implementation the number of msg ids subscribed to impacts performance.
**
*/
#define CFE_PLATFORM_SB_MAX_MSG_IDS 256
/**
** \cfesbcfg Maximum Number of Unique Pipes SB Routing Table can hold
**
** \par Description:
** Dictates the maximum number of unique Pipes the SB routing table will hold.
** This constant has a direct affect on the size of SB's tables and arrays.
** Keeping this count as low as possible will save memory.
** To see the run-time, high-water mark and the current utilization figures
** regarding this parameter, send an SB command to 'Send Statistics Pkt'.
**
** \par Limits
** This parameter has a lower limit of 1. This parameter must also be less than
** or equal to OS_MAX_QUEUES.
**
*/
#define CFE_PLATFORM_SB_MAX_PIPES 64
/**
** \cfesbcfg Maximum Number of unique local destinations a single MsgId can have
**
** \par Description:
** Dictates the maximum number of unique local destinations a single MsgId can
** have.
**
** \par Limits
** This parameter has a lower limit of 1. There are no restrictions on the upper
** limit however, the maximum number of destinations per packet is system dependent
** and should be verified. Destination number values that are checked against this
** configuration are defined by a 16 bit data word.
**
*/
#define CFE_PLATFORM_SB_MAX_DEST_PER_PKT 16
/**
** \cfesbcfg Default Subscription Message Limit
**
** \par Description:
** Dictates the default Message Limit when using the #CFE_SB_Subscribe API. This will
** limit the number of messages with a specific message ID that can be received through
** a subscription. This only changes the default; other message limits can be set on a per
** subscription basis using #CFE_SB_SubscribeEx .
**
** \par Limits
** This parameter has a lower limit of 4 and an upper limit of 65535.
**
*/
#define CFE_PLATFORM_SB_DEFAULT_MSG_LIMIT 4
/**
** \cfesbcfg Size of the SB buffer memory pool
**
** \par Description:
** Dictates the size of the SB memory pool. For each message the SB
** sends, the SB dynamically allocates from this memory pool, the memory needed
** to process the message. The memory needed to process each message is msg
** size + msg descriptor(CFE_SB_BufferD_t). This memory pool is also used
** to allocate destination descriptors (CFE_SB_DestinationD_t) during the
** subscription process.
** To see the run-time, high-water mark and the current utilization figures
** regarding this parameter, send an SB command to 'Send Statistics Pkt'.
** Some memory statistics have been added to the SB housekeeping packet.
** NOTE: It is important to monitor these statistics to ensure the desired
** memory margin is met.
**
** \par Limits
** This parameter has a lower limit of 512 and an upper limit of UINT_MAX (4 Gigabytes).
**
*/
#define CFE_PLATFORM_SB_BUF_MEMORY_BYTES 524288
/**
** \cfesbcfg Highest Valid Message Id
**
** \par Description:
** The value of this constant dictates the range of valid message ID's, from 0
** to CFE_PLATFORM_SB_HIGHEST_VALID_MSGID (inclusive).
**
** Altough this can be defined differently across platforms, each platform can
** only publish/subscribe to message ids within their allowable range. Typically
** this value is set the same across all mission platforms to avoid this complexity.
**
** \par Limits
** CFE_SB_INVALID_MSG is set to the maxumum representable number of type CFE_SB_MsgId_t.
** CFE_PLATFORM_SB_HIGHEST_VALID_MSGID lower limit is 1, up to CFE_SB_INVALID_MSG_ID - 1.
**
** When using the direct message map implementation for software bus routing, this
** value is used to size the map where a value of 0x1FFF results in a 16 KBytes map
** and 0xFFFF is 128 KBytes.
**
** When using the hash implementation for software bus routing, a multiple of the
** CFE_PLATFORM_SB_MAX_MSG_IDS is used to size the message map. In that case
** the range selected here does not impact message map memory use, so it's
** resonable to use up to the full range supported by the message ID implementation.
*/
#define CFE_PLATFORM_SB_HIGHEST_VALID_MSGID 0x1FFF
/**
** \cfesbcfg Platform Endian Indicator
**
** \par Description:
** The value of this constant indicates the endianess of the target system
**
** \par Limits
** This parameter has a lower limit of 0 and an upper limit of 1.
*/
#define CFE_PLATFORM_ENDIAN CCSDS_LITTLE_ENDIAN
/**
** \cfesbcfg Default Routing Information Filename
**
** \par Description:
** The value of this constant defines the filename used to store the software
** bus routing information. This filename is used only when no filename is
** specified in the command.
**
** \par Limits
** The length of each string, including the NULL terminator cannot exceed the
** #OS_MAX_PATH_LEN value.
*/
#define CFE_PLATFORM_SB_DEFAULT_ROUTING_FILENAME "/ram/cfe_sb_route.dat"
/**
** \cfesbcfg Default Pipe Information Filename
**
** \par Description:
** The value of this constant defines the filename used to store the software
** bus pipe information. This filename is used only when no filename is
** specified in the command.
**
** \par Limits
** The length of each string, including the NULL terminator cannot exceed the
** #OS_MAX_PATH_LEN value.
*/
#define CFE_PLATFORM_SB_DEFAULT_PIPE_FILENAME "/ram/cfe_sb_pipe.dat"
/**
** \cfesbcfg Default Message Map Filename
**
** \par Description:
** The value of this constant defines the filename used to store the software
** bus message map information. This filename is used only when no filename is
** specified in the command. The message map is a lookup table (array of 16bit
** words) that has an element for each possible MsgId value and holds the
** routing table index for that MsgId. The Msg Map provides fast access to the
** destinations of a message.
**
** \par Limits
** The length of each string, including the NULL terminator cannot exceed the
** #OS_MAX_PATH_LEN value.
*/
#define CFE_PLATFORM_SB_DEFAULT_MAP_FILENAME "/ram/cfe_sb_msgmap.dat"
/**
** \cfesbcfg SB Event Filtering
**
** \par Description:
** This group of configuration paramters dictates what SB events will be
** filtered through EVS. The filtering will begin after the SB task initializes
** and stay in effect until a cmd to EVS changes it.
** This allows the operator to set limits on the number of event messages that
** are sent during system initialization.
** NOTE: Set all unused event values and mask values to zero
**
** \par Limits
** This filtering applies only to SB events.
** These parameters have a lower limit of 0 and an upper limit of 65535.
*/
#define CFE_PLATFORM_SB_FILTERED_EVENT1 CFE_SB_SEND_NO_SUBS_EID
#define CFE_PLATFORM_SB_FILTER_MASK1 CFE_EVS_FIRST_4_STOP
#define CFE_PLATFORM_SB_FILTERED_EVENT2 CFE_SB_DUP_SUBSCRIP_EID
#define CFE_PLATFORM_SB_FILTER_MASK2 CFE_EVS_FIRST_4_STOP
#define CFE_PLATFORM_SB_FILTERED_EVENT3 CFE_SB_MSGID_LIM_ERR_EID
#define CFE_PLATFORM_SB_FILTER_MASK3 CFE_EVS_FIRST_16_STOP
#define CFE_PLATFORM_SB_FILTERED_EVENT4 CFE_SB_Q_FULL_ERR_EID
#define CFE_PLATFORM_SB_FILTER_MASK4 CFE_EVS_FIRST_16_STOP
#define CFE_PLATFORM_SB_FILTERED_EVENT5 0
#define CFE_PLATFORM_SB_FILTER_MASK5 CFE_EVS_NO_FILTER
#define CFE_PLATFORM_SB_FILTERED_EVENT6 0
#define CFE_PLATFORM_SB_FILTER_MASK6 CFE_EVS_NO_FILTER
#define CFE_PLATFORM_SB_FILTERED_EVENT7 0
#define CFE_PLATFORM_SB_FILTER_MASK7 CFE_EVS_NO_FILTER
#define CFE_PLATFORM_SB_FILTERED_EVENT8 0
#define CFE_PLATFORM_SB_FILTER_MASK8 CFE_EVS_NO_FILTER
/**
** \cfeescfg Define SB Memory Pool Block Sizes
**
** \par Description:
** Software Bus Memory Pool Block Sizes
**
** \par Limits
** These sizes MUST be increasing and MUST be an integral multiple of 4.
** The number of block sizes defined cannot exceed
** #CFE_PLATFORM_ES_POOL_MAX_BUCKETS
*/
#define CFE_PLATFORM_SB_MEM_BLOCK_SIZE_01 8
#define CFE_PLATFORM_SB_MEM_BLOCK_SIZE_02 16
#define CFE_PLATFORM_SB_MEM_BLOCK_SIZE_03 20
#define CFE_PLATFORM_SB_MEM_BLOCK_SIZE_04 36
#define CFE_PLATFORM_SB_MEM_BLOCK_SIZE_05 64
#define CFE_PLATFORM_SB_MEM_BLOCK_SIZE_06 96
#define CFE_PLATFORM_SB_MEM_BLOCK_SIZE_07 128
#define CFE_PLATFORM_SB_MEM_BLOCK_SIZE_08 160
#define CFE_PLATFORM_SB_MEM_BLOCK_SIZE_09 256
#define CFE_PLATFORM_SB_MEM_BLOCK_SIZE_10 512
#define CFE_PLATFORM_SB_MEM_BLOCK_SIZE_11 1024
#define CFE_PLATFORM_SB_MEM_BLOCK_SIZE_12 2048
#define CFE_PLATFORM_SB_MEM_BLOCK_SIZE_13 4096
#define CFE_PLATFORM_SB_MEM_BLOCK_SIZE_14 8192
#define CFE_PLATFORM_SB_MEM_BLOCK_SIZE_15 16384
#define CFE_PLATFORM_SB_MEM_BLOCK_SIZE_16 32768
#define CFE_PLATFORM_SB_MAX_BLOCK_SIZE (CFE_MISSION_SB_MAX_SB_MSG_SIZE + 40)
/**
** \cfetimecfg Time Server or Time Client Selection
**
** \par Description:
** This configuration parameter selects whether the Time task functions as a
** time "server" or "client". A time server generates the "time at the tone"
** packet which is received by time clients.
**
** \par Limits
** Enable one, and only one by defining either CFE_PLATFORM_TIME_CFG_SERVER or
** CFE_PLATFORM_TIME_CFG_CLIENT AS true. The other must be defined as false.
*/
#define CFE_PLATFORM_TIME_CFG_SERVER true
#define CFE_PLATFORM_TIME_CFG_CLIENT false
/**
** \cfetimecfg Time Tone In Big-Endian Order
**
** \par Description:
** If this configuration parameter is defined, the CFE time server will
** publish time tones with payloads in big-endian order, and time clients
** will expect the tones to be in big-endian order. This is useful for
** mixed-endian environments. This will become obsolete once EDS is
** available and the CFE time tone message is defined.
*/
#undef CFE_PLATFORM_TIME_CFG_BIGENDIAN
/**
** \cfetimecfg Local MET or Virtual MET Selection for Time Servers
**
** \par Description:
** Depending on the specific hardware system configuration, it may be possible
** for Time Servers to read the "local" MET from a h/w register rather than
** having to track the MET as the count of tone signal interrupts (virtual MET)
**
** Time Clients must be defined as using a virtual MET. Also, a Time Server
** cannot be defined as having both a h/w MET and an external time source (they
** both cannot synchronize to the same tone).
**
** Note: "disable" this define (set to false) only for Time Servers with local hardware
** that supports a h/w MET that is synchronized to the tone signal !!!
**
** \par Limits
** Only applies if #CFE_PLATFORM_TIME_CFG_SERVER is set to true.
*/
#define CFE_PLATFORM_TIME_CFG_VIRTUAL true
/**
** \cfetimecfg Include or Exclude the Primary/Redundant Tone Selection Cmd
**
** \par Description:
** Depending on the specific hardware system configuration, it may be possible
** to switch between a primary and redundant tone signal. If supported by
** hardware, this definitions will enable command interfaces to select the
** active tone signal. Both Time Clients and Time Servers support this feature.
** Note: Set the CFE_PLATFORM_TIME_CFG_SIGNAL define to true to enable tone signal commands.
**
** \par Limits
** Not Applicable
*/
#define CFE_PLATFORM_TIME_CFG_SIGNAL false
/**
** \cfetimecfg Include or Exclude the Internal/External Time Source Selection Cmd
**
** \par Description:
** By default, Time Servers maintain time using an internal MET which may be a
** h/w register or software counter, depending on available hardware. The
** following definition enables command interfaces to switch between an
** internal MET, or external time data received from one of several supported
** external time sources. Only a Time Server may be configured to use external
** time data.
** Note: Set the CFE_PLATFORM_TIME_CFG_SOURCE define to true to include the Time Source
** Selection Command (command allows selection between the internal
** or external time source). Then choose the external source with the
** CFE_TIME_CFG_SRC_??? define.
**
** \par Limits
** Only applies if #CFE_PLATFORM_TIME_CFG_SERVER is set to true.
*/
#define CFE_PLATFORM_TIME_CFG_SOURCE false
/**
** \cfetimecfg Choose the External Time Source for Server only
**
** \par Description:
** If #CFE_PLATFORM_TIME_CFG_SOURCE is set to true, then one of the following external time
** source types must also be set to true. Do not set any of the external time
** source types to true unless #CFE_PLATFORM_TIME_CFG_SOURCE is set to true.
**
** \par Limits
** -# If #CFE_PLATFORM_TIME_CFG_SOURCE is set to true then one and only one of the following
** three external time sources can and must be set true:
** #CFE_PLATFORM_TIME_CFG_SRC_MET, #CFE_PLATFORM_TIME_CFG_SRC_GPS, #CFE_PLATFORM_TIME_CFG_SRC_TIME
** -# Only applies if #CFE_PLATFORM_TIME_CFG_SERVER is set to true.
*/
#define CFE_PLATFORM_TIME_CFG_SRC_MET false
#define CFE_PLATFORM_TIME_CFG_SRC_GPS false
#define CFE_PLATFORM_TIME_CFG_SRC_TIME false
/**
** \cfetimecfg Define the Max Delta Limits for Time Servers using an Ext Time Source
**
** \par Description:
** If #CFE_PLATFORM_TIME_CFG_SOURCE is set to true and one of the external time sources is
** also set to true, then the delta time limits for range checking is used.
**
** When a new time value is received from an external source, the value is
** compared against the "expected" time value. If the delta exceeds the
** following defined amount, then the new time data will be ignored. This range
** checking is only performed after the clock state has been commanded to
** "valid". Until then, external time data is accepted unconditionally.
**
** \par Limits
** Applies only if both #CFE_PLATFORM_TIME_CFG_SERVER and #CFE_PLATFORM_TIME_CFG_SOURCE are set
** to true.
*/
#define CFE_PLATFORM_TIME_MAX_DELTA_SECS 0
#define CFE_PLATFORM_TIME_MAX_DELTA_SUBS 500000
/**
** \cfetimecfg Define the Local Clock Rollover Value in seconds and subseconds
**
** \par Description:
** Specifies the capability of the local clock. Indicates the time at which
** the local clock rolls over.
**
** \par Limits
** Not Applicable
*/
#define CFE_PLATFORM_TIME_MAX_LOCAL_SECS 27
#define CFE_PLATFORM_TIME_MAX_LOCAL_SUBS 0
/**
** \cfetimecfg Define Timing Limits From One Tone To The Next
**
** \par Description:
** Defines limits to the timing of the 1Hz tone signal. A tone signal is valid
** only if it arrives within one second (plus or minus the tone limit) from
** the previous tone signal.Units are microseconds as measured with the local
** clock.
**
** \par Limits
** Not Applicable
*/
#define CFE_PLATFORM_TIME_CFG_TONE_LIMIT 20000
/**
** \cfetimecfg Define Time to Start Flywheel Since Last Tone
**
** \par Description:
** Define time to enter flywheel mode (in seconds since last tone data update)
** Units are microseconds as measured with the local clock.
**
** \par Limits
** Not Applicable
*/
#define CFE_PLATFORM_TIME_CFG_START_FLY 2
/**
** \cfetimecfg Define Periodic Time to Update Local Clock Tone Latch
**
** \par Description:
** Define Periodic Time to Update Local Clock Tone Latch. Applies only when
** in flywheel mode. This define dicates the period at which the simulated
** 'last tone' time is updated. Units are seconds.
**
** \par Limits
** Not Applicable
*/
#define CFE_PLATFORM_TIME_CFG_LATCH_FLY 8
/**
** \cfeescfg Define Max Number of Applications
**
** \par Description:
** Defines the maximum number of applications that can be loaded into the
** system. This number does not include child tasks.
**
** \par Limits
** There is a lower limit of 6. The lower limit corresponds to the cFE internal
** applications. There are no restrictions on the upper limit however, the
** maximum number of applications is system dependent and should be verified.
** AppIDs that are checked against this configuration are defined by a 32 bit
** data word.
*/
#define CFE_PLATFORM_ES_MAX_APPLICATIONS 32
/**
** \cfeescfg Define Max Number of Shared libraries
**
** \par Description:
** Defines the maximum number of cFE Shared libraries that can be loaded into
** the system.
**
** \par Limits
** There is a lower limit of 1. There are no restrictions on the upper limit
** however, the maximum number of libraries is system dependent and should be
** verified.
*/
#define CFE_PLATFORM_ES_MAX_LIBRARIES 10
/**
** \cfeescfg Define Max Number of ER (Exception and Reset) log entries
**
** \par Description:
** Defines the maximum number of ER (Exception and Reset) log entries
**
** \par Limits
** There is a lower limit of 1. There are no restrictions on the upper limit
** however, the maximum number of log entries is system dependent and should be
** verified.
*/
#define CFE_PLATFORM_ES_ER_LOG_ENTRIES 20
/** \cfeescfg Maximum size of CPU Context in ES Error Log
**
** \par Description:
** This should be large enough to accommodate the CPU context
** information supplied by the PSP on the given platform.
**
** \par Limits:
** Must be greater than zero and a multiple of sizeof(uint32).
** Limited only by the available memory and the number of entries
** in the error log. Any context information beyond this size will
** be truncated.
*/
#define CFE_PLATFORM_ES_ER_LOG_MAX_CONTEXT_SIZE 256
/**
** \cfeescfg Define Size of the cFE System Log.
**
** \par Description:
** Defines the size in bytes of the cFE system log. The system log holds
** variable length strings that are terminated by a linefeed and null
** character.
**
** \par Limits
** There is a lower limit of 512. There are no restrictions on the upper limit
** however, the maximum system log size is system dependent and should be
** verified.
*/
#define CFE_PLATFORM_ES_SYSTEM_LOG_SIZE 3072
/**
** \cfeescfg Define Number of entries in the ES Object table
**
** \par Description:
** Defines the number of entries in the ES Object table. This table controls
** the core cFE startup.
**
** \par Limits
** There is a lower limit of 15. There are no restrictions on the upper limit
** however, the maximum object table size is system dependent and should be
** verified.
*/
#define CFE_PLATFORM_ES_OBJECT_TABLE_SIZE 30
/**
** \cfeescfg Define Max Number of Generic Counters
**
** \par Description:
** Defines the maximum number of Generic Counters that can be registered.
**
** \par Limits
** This parameter has a lower limit of 1 and an upper limit of 65535.
*/
#define CFE_PLATFORM_ES_MAX_GEN_COUNTERS 8
/**
** \cfeescfg Define ES Application Control Scan Rate
**
** \par Description:
** ES Application Control Scan Rate. This parameter controls the speed that ES
** scans the Application Table looking for App Delete/Restart/Reload requests.
** All Applications are deleted, restarted, or reloaded by the ES Application.
** ES will periodically scan for control requests to process. The scan rate is
** controlled by this parameter, which is given in milliseconds. A value of
** 1000 means that ES will scan the Application Table once per second. Be
** careful not to set the value of this too low, because ES will use more CPU
** cycles scanning the table.
**
** \par Limits
** There is a lower limit of 100 and an upper limit of 20000 on this
** configuration paramater. millisecond units.
*/
#define CFE_PLATFORM_ES_APP_SCAN_RATE 1000
/**
** \cfeescfg Define ES Application Kill Timeout
**
** \par Description:
** ES Application Kill Timeout. This parameter controls the number of
** "scan periods" that ES will wait for an application to Exit after getting
** the signal Delete, Reload or Restart. The sequence works as follows:
** -# ES will set the control request for an App to Delete/Restart/Reload and
** set this kill timer to the value in this parameter.
** -# If the App is reponding and Calls it's RunLoop function, it will drop out
** of it's main loop and call CFE_ES_ExitApp. Once it calls Exit App, then
** ES can delete, restart, or reload the app the next time it scans the app
** table.
** -# If the App is not responding, the ES App will decrement this Kill Timeout
** value each time it runs. If the timeout value reaches zero, ES will kill
** the app.
**
** The Kill timeout value depends on the #CFE_PLATFORM_ES_APP_SCAN_RATE. If the Scan Rate
** is 1000, or 1 second, and this #CFE_PLATFORM_ES_APP_KILL_TIMEOUT is set to 5, then it
** will take 5 seconds to kill a non-responding App.
** If the Scan Rate is 250, or 1/4 second, and the #CFE_PLATFORM_ES_APP_KILL_TIMEOUT is
** set to 2, then it will take 1/2 second to time out.
**
** \par Limits
** There is a lower limit of 1 and an upper limit of 100 on this configuration
** paramater. Units are number of #CFE_PLATFORM_ES_APP_SCAN_RATE cycles.
*/
#define CFE_PLATFORM_ES_APP_KILL_TIMEOUT 5
/**
** \cfeescfg ES Ram Disk Sector Size
**
** \par Description:
** Defines the ram disk sector size. The ram disk is 1 of 4 memory areas that
** are preserved on a processor reset.
** NOTE: Changing this value changes memory allocation, and may
** require changes to platform specific values (in CFE_PSP) such as
** USER_RESERVED_MEM in VxWorks depending on the memory areas
** being used for preserved data and on OS specific behavior.
**
** \par Limits
** There is a lower limit of 128. There are no restrictions on the upper limit
** however, the maximum RAM disk sector size is system dependent and should be
** verified.
*/
#define CFE_PLATFORM_ES_RAM_DISK_SECTOR_SIZE 512
/**
** \cfeescfg ES Ram Disk Number of Sectors
**
** \par Description:
** Defines the ram disk number of sectors. The ram disk is one of four memory
** areas that are preserved on a processor reset.
** NOTE: Changing this value changes memory allocation, and may
** require changes to platform specific values (in CFE_PSP) such as
** USER_RESERVED_MEM in VxWorks depending on the memory areas
** being used for preserved data and on OS specific behavior.
**
** \par Limits
** There is a lower limit of 128. There are no restrictions on the upper limit
** however, the maximum number of RAM sectors is system dependent and should be
** verified.
*/
#define CFE_PLATFORM_ES_RAM_DISK_NUM_SECTORS 4096
/**
** \cfeescfg Percentage of Ram Disk Reserved for Decompressing Apps
**
** \par Description:
** The #CFE_PLATFORM_ES_RAM_DISK_PERCENT_RESERVED parameter is used to make sure that the
** Volatile ( RAM ) Disk has a defined amount of free space during a processor
** reset. The cFE uses the Volatile disk to decompress cFE applications during
** system startup. If this Volatile disk happens to get filled with logs and
** misc files, then a processor reset may not work, because there will be no
** room to decompress cFE apps. To solve that problem, this parameter sets the
** "Low Water Mark" for disk space on a Processor reset. It should be set to
** allow the largest cFE Application to be decompressed.
** During a Processor reset, if there is not sufficient space left on the disk,
** it will be re-formatted in order to clear up some space.
**
** This feature can be turned OFF by setting the parameter to 0.
**
** \par Limits
** There is a lower limit of 0 and an upper limit of 75 on this configuration
** paramater.Units are percentage. A setting of zero will turn this feature
** off.
*/
#define CFE_PLATFORM_ES_RAM_DISK_PERCENT_RESERVED 30
/**
** \cfeescfg Define Critical Data Store Size
**
** \par Description:
** Defines the Critical Data Store (CDS) area size in bytes size. The CDS is
** one of four memory areas that are preserved during a processor reset.
** NOTE: Changing this value changes memory allocation, and may
** require changes to platform specific values (in CFE_PSP) such as
** USER_RESERVED_MEM in VxWorks depending on the memory areas
** being used for preserved data and on OS specific behavior.
**
** \par Limits
** There is a lower limit of 8192 and an upper limit of UINT_MAX (4 Gigabytes)
** on this configuration paramater.
*/
#define CFE_PLATFORM_ES_CDS_SIZE (128 * 1024)
/**
** \cfeescfg Define User Reserved Memory Size
**
** \par Description:
** User Reserved Memory Size. This is the size in bytes of the cFE User
** reserved Memory area. This is a block of memory that is available for cFE
** application use. The address is obtained by calling
** #CFE_PSP_GetUserReservedArea. The User Reserved Memory is one of four memory
** areas that are preserved during a processor reset.
** NOTE: Changing this value changes memory allocation, and may
** require changes to platform specific values (in CFE_PSP) such as
** USER_RESERVED_MEM in VxWorks depending on the memory areas
** being used for preserved data and on OS specific behavior.
**
** \par Limits
** There is a lower limit of 1024 and an upper limit of UINT_MAX (4 Gigabytes)
** on this configuration paramater.
*/
#define CFE_PLATFORM_ES_USER_RESERVED_SIZE (1024 * 1024)
/**
** \cfeescfg Define ES Reset Area Size
**
** \par Description:
** The ES Reset Area Size. This is the size in bytes of the cFE Reset variable
** and log area. This is a block of memory used by the cFE to store the system
** log ER Log and critical reset variables. This is 4 of 4 of the memory areas
** that are preserved during a processor reset.
** Note: This area must be sized large enough to hold all of the data
** structures. It should be automatically sized based on the CFE_ES_ResetData_t
** type, but circular dependancies in the headers prevent it from being defined
** this way.
** NOTE: Changing this value changes memory allocation, and may
** require changes to platform specific values (in CFE_PSP) such as
** USER_RESERVED_MEM in VxWorks depending on the memory areas
** being used for preserved data and on OS specific behavior.
**
** \par Limits
** There is a lower limit of 153600 (150KBytes) and an upper limit of UINT_MAX
** (4 Gigabytes) on this configuration paramater.
*/
#define CFE_PLATFORM_ES_RESET_AREA_SIZE (170 * 1024)
/**
** \cfeescfg Define Memory Pool Alignment Size
**
** \par Description:
** Ensures that buffers obtained from a memory pool are aligned
** to a certain minimum block size. Note the allocator will always
** align to the minimum required by the CPU architecture. This may
** be set greater than the CPU requirement as desired for optimal
** performance.
**
** For some architectures/applications it may be beneficial to set this
** to the cache line size of the target CPU, or to use special SIMD
** instructions that require a more stringent memory alignment.
**
** \par Limits
** This must always be a power of 2, as it is used as a binary address mask.
*/
#define CFE_PLATFORM_ES_MEMPOOL_ALIGN_SIZE_MIN 4
/**
** \cfeescfg ES Nonvolatile Startup Filename
**
** \par Description:
** The value of this constant defines the path and name of the file that
** contains a list of modules that will be loaded and started by the cFE after
** the cFE finishes its startup sequence.
**
** \par Limits
** The length of each string, including the NULL terminator cannot exceed the
** #OS_MAX_PATH_LEN value.
*/
#define CFE_PLATFORM_ES_NONVOL_STARTUP_FILE "/cf/cfe_es_startup.scr"
/**
** \cfeescfg ES Volatile Startup Filename
**
** \par Description:
** The value of this constant defines the path and name of the file that
** contains a list of modules that will be loaded and started by the cFE after
** the cFE finishes its startup sequence.
**
** \par Limits
** The length of each string, including the NULL terminator cannot exceed the
** #OS_MAX_PATH_LEN value.
*/
#define CFE_PLATFORM_ES_VOLATILE_STARTUP_FILE "/ram/cfe_es_startup.scr"
/**
** \cfeescfg Default Application Information Filename
**
** \par Description:
** The value of this constant defines the filename used to store information
** pertaining to all of the Applications that are registered with Executive
** Services. This filename is used only when no filename is specified in the
** the command to query all system apps.
**
** \par Limits
** The length of each string, including the NULL terminator cannot exceed the
** #OS_MAX_PATH_LEN value.
*/
#define CFE_PLATFORM_ES_DEFAULT_APP_LOG_FILE "/ram/cfe_es_app_info.log"
/**
** \cfeescfg Default Application Information Filename
**
** \par Description:
** The value of this constant defines the filename used to store information
** pertaining to all of the Applications that are registered with Executive
** Services. This filename is used only when no filename is specified in the
** the command to query all system tasks.
**
** \par Limits
** The length of each string, including the NULL terminator cannot exceed the
** #OS_MAX_PATH_LEN value.
*/
#define CFE_PLATFORM_ES_DEFAULT_TASK_LOG_FILE "/ram/cfe_es_taskinfo.log"
/**
** \cfeescfg Default System Log Filename
**
** \par Description:
** The value of this constant defines the filename used to store important
** information (as ASCII text strings) that might not be able to be sent in an
** Event Message. This filename is used only when no filename is specified in
** the command to dump the system log. No file specified in the cmd means the
** first character in the cmd filename is a NULL terminator (zero).
**
** \par Limits
** The length of each string, including the NULL terminator cannot exceed the
** #OS_MAX_PATH_LEN value.
*/
#define CFE_PLATFORM_ES_DEFAULT_SYSLOG_FILE "/ram/cfe_es_syslog.log"
/**
** \cfeescfg Default Exception and Reset (ER) Log Filename
**
** \par Description:
** The value of this constant defines the filename used to store the
** Exception and Reset (ER) Log. This filename is used only when no filename is
** specified in the command to dump the ER log. No file specified in the cmd
** means the first character in the cmd filename is a NULL terminator (zero).
**
** \par Limits
** The length of each string, including the NULL terminator cannot exceed the
** #OS_MAX_PATH_LEN value.
*/
#define CFE_PLATFORM_ES_DEFAULT_ER_LOG_FILE "/ram/cfe_erlog.log"
/**
** \cfeescfg Default Performance Data Filename
**
** \par Description:
** The value of this constant defines the filename used to store the
** Performance Data. This filename is used only when no filename is specified
** in the command to stop performance data collecting.
**
** \par Limits
** The length of each string, including the NULL terminator cannot exceed the
** #OS_MAX_PATH_LEN value.
*/
#define CFE_PLATFORM_ES_DEFAULT_PERF_DUMP_FILENAME "/ram/cfe_es_perf.dat"
/**
** \cfeescfg Default Critical Data Store Registry Filename
**
** \par Description:
** The value of this constant defines the filename used to store the
** Critical Data Store Registry. This filename is used only when no filename is
** specified in the command to stop performance data collecting.
**
** \par Limits
** The length of each string, including the NULL terminator cannot exceed the
** #OS_MAX_PATH_LEN value.
*/
#define CFE_PLATFORM_ES_DEFAULT_CDS_REG_DUMP_FILE "/ram/cfe_cds_reg.log"
/**
** \cfeescfg Define Default System Log Mode following Power On Reset
**
** \par Description:
** Defines the default mode for the operation of the ES System log following a power
** on reset. The log may operate in either Overwrite mode = 0, where once the
** log becomes full the oldest message in the log will be overwritten, or
** Discard mode = 1, where once the log becomes full the contents of the log are
** preserved and the new event is discarded. This constant may hold a value of
** either 0 or 1 depending on the desired default.
** Overwrite Mode = 0, Discard Mode = 1.
**
** \par Limits
** There is a lower limit of 0 and an upper limit of 1 on this configuration
** paramater.
*/
#define CFE_PLATFORM_ES_DEFAULT_POR_SYSLOG_MODE 0
/**
** \cfeescfg Define Default System Log Mode following Processor Reset
**
** \par Description:
** Defines the default mode for the operation of the ES System log following a
** processor reset. The log may operate in either Overwrite mode = 0, where once
** the log becomes full the oldest message in the log will be overwritten, or
** Discard mode = 1, where once the log becomes full the contents of the log are
** preserved and the new event is discarded. This constant may hold a value of
** either 0 or 1 depending on the desired default.
** Overwrite Mode = 0, Discard Mode = 1.
**
** \par Limits
** There is a lower limit of 0 and an upper limit of 1 on this configuration
** paramater.
*/
#define CFE_PLATFORM_ES_DEFAULT_PR_SYSLOG_MODE 1
/**
** \cfeescfg Define Max Size of Performance Data Buffer
**
** \par Description:
** Defines the maximum size of the performance data buffer. Units are number of
** performance data entries. An entry is defined by a 32 bit data word followed
** by a 64 bit time stamp.
**
** \par Limits
** There is a lower limit of 1025. There are no restrictions on the upper limit
** however, the maximum buffer size size is system dependent and should be verified.
** The units are number of entries. An entry is defined by a 32 bit data word followed
** by a 64 bit time stamp.
*/
#define CFE_PLATFORM_ES_PERF_DATA_BUFFER_SIZE 10000
/**
** \cfeescfg Define Filter Mask Setting for Disabling All Performance Entries
**
** \par Description:
** Defines the filter mask for disabling all performance entries. The value is a
** bit mask. For each bit, 0 means the corresponding entry is disabled and
** 1 means it is enabled.
*/
#define CFE_PLATFORM_ES_PERF_FILTMASK_NONE 0
/**
** \cfeescfg Define Filter Mask Setting for Enabling All Performance Entries
**
** \par Description:
** Defines the filter mask for enabling all performance entries. The value is a
** bit mask. For each bit, 0 means the corresponding entry is disabled and
** 1 means it is enabled.
*/
#define CFE_PLATFORM_ES_PERF_FILTMASK_ALL ~CFE_PLATFORM_ES_PERF_FILTMASK_NONE
/**
** \cfeescfg Define Default Filter Mask Setting for Performance Data Buffer
**
** \par Description:
** Defines the default filter mask for the performance data buffer. The value is a
** bit mask. For each bit, 0 means the corresponding entry is disabled and 1
** means it is enabled.
**
*/
#define CFE_PLATFORM_ES_PERF_FILTMASK_INIT CFE_PLATFORM_ES_PERF_FILTMASK_ALL
/**
** \cfeescfg Define Default Filter Trigger Setting for Disabling All Performance Entries
**
** \par Description:
** Defines the default trigger mask for disabling all performance data entries. The value
** is a bit mask. For each bit, 0 means the trigger for the corresponding entry is
** disabled and 1 means it is enabled.
**
*/
#define CFE_PLATFORM_ES_PERF_TRIGMASK_NONE 0
/**
** \cfeescfg Define Filter Trigger Setting for Enabling All Performance Entries
**
** \par Description:
** Defines the trigger mask for enabling all performance data entries. The value is
** a bit mask. For each bit, 0 means the trigger for the corresponding entry is
** disabled and 1 means it is enabled.
**
*/
#define CFE_PLATFORM_ES_PERF_TRIGMASK_ALL ~CFE_PLATFORM_ES_PERF_TRIGMASK_NONE
/**
** \cfeescfg Define Default Filter Trigger Setting for Performance Data Buffer
**
** \par Description:
** Defines the default trigger mask for the performance data buffer. The value is a
** 32-bit mask. For each bit, 0 means the trigger for the corresponding entry is
** disabled and 1 means it is enabled.
**
*/
#define CFE_PLATFORM_ES_PERF_TRIGMASK_INIT CFE_PLATFORM_ES_PERF_TRIGMASK_NONE
/**
** \cfeescfg Define Performance Analyzer Child Task Priority
**
** \par Description:
** This parameter defines the priority of the child task spawed by the