py-eb-model 1.1.6__py3-none-any.whl → 1.1.7__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- eb_model/cli/rte_xdm_2_xls_cli.py +28 -27
- eb_model/models/abstract.py +20 -8
- eb_model/models/os_xdm.py +320 -55
- eb_model/models/rte_xdm.py +16 -11
- eb_model/parser/eb_parser.py +28 -20
- eb_model/parser/os_xdm_parser.py +47 -3
- eb_model/parser/rte_xdm_parser.py +11 -11
- eb_model/reporter/excel_reporter/abstract.py +14 -6
- eb_model/reporter/excel_reporter/os_xdm.py +104 -20
- eb_model/reporter/excel_reporter/rte_xdm.py +15 -4
- eb_model/tests/models/test_abstract.py +201 -0
- eb_model/tests/models/test_eb_doc.py +66 -0
- eb_model/tests/models/test_eclipse_project.py +21 -0
- eb_model/tests/models/test_importer_xdm.py +45 -40
- eb_model/tests/parser/__init__.py +0 -0
- eb_model/tests/parser/test_os_xdm_parser.py +150 -0
- {py_eb_model-1.1.6.dist-info → py_eb_model-1.1.7.dist-info}/METADATA +7 -1
- {py_eb_model-1.1.6.dist-info → py_eb_model-1.1.7.dist-info}/RECORD +22 -17
- {py_eb_model-1.1.6.dist-info → py_eb_model-1.1.7.dist-info}/LICENSE +0 -0
- {py_eb_model-1.1.6.dist-info → py_eb_model-1.1.7.dist-info}/WHEEL +0 -0
- {py_eb_model-1.1.6.dist-info → py_eb_model-1.1.7.dist-info}/entry_points.txt +0 -0
- {py_eb_model-1.1.6.dist-info → py_eb_model-1.1.7.dist-info}/top_level.txt +0 -0
@@ -10,45 +10,46 @@ from ..reporter.excel_reporter.rte_xdm import RteRunnableEntityXlsWriter, RteXdm
|
|
10
10
|
from ..parser.rte_xdm_parser import RteXdmParser
|
11
11
|
from ..models import EBModel
|
12
12
|
|
13
|
-
def main():
|
14
|
-
version = pkg_resources.require("py_eb_model")[0].version
|
15
|
-
|
16
|
-
ap = argparse.ArgumentParser()
|
17
|
-
ap.add_argument("-v", "--verbose", required= False, help= "Print debug information", action= "store_true")
|
18
|
-
ap.add_argument("-r", "--runnable", required= False, help= "Export the runnable entities", action= "store_true")
|
19
|
-
ap.add_argument("INPUT", help = "The path of xdm file.", nargs='+')
|
20
|
-
ap.add_argument("OUTPUT", help = "The path of excel file.")
|
21
|
-
|
22
|
-
args = ap.parse_args()
|
23
13
|
|
14
|
+
def process_logger(args):
|
24
15
|
logger = logging.getLogger()
|
16
|
+
formatter = logging.Formatter('[%(levelname)s] : %(message)s')
|
17
|
+
logger.setLevel(logging.DEBUG)
|
25
18
|
|
26
|
-
|
19
|
+
if args.verbose:
|
20
|
+
log_level = logging.DEBUG
|
21
|
+
else:
|
22
|
+
log_level = logging.INFO
|
27
23
|
|
28
24
|
stdout_handler = logging.StreamHandler(sys.stderr)
|
29
25
|
stdout_handler.setFormatter(formatter)
|
26
|
+
stdout_handler.setLevel(log_level)
|
27
|
+
logger.addHandler(stdout_handler)
|
30
28
|
|
31
|
-
|
32
|
-
|
29
|
+
if args.log:
|
30
|
+
if os.path.exists(args.log):
|
31
|
+
os.remove(args.log)
|
33
32
|
|
34
|
-
|
35
|
-
|
33
|
+
file_handler = logging.FileHandler(args.log)
|
34
|
+
file_handler.setFormatter(formatter)
|
35
|
+
file_handler.setLevel(log_level)
|
36
|
+
logger.addHandler(file_handler)
|
37
|
+
return logger
|
36
38
|
|
37
|
-
file_handler = logging.FileHandler(log_file)
|
38
|
-
file_handler.setFormatter(formatter)
|
39
39
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
if args.verbose:
|
44
|
-
stdout_handler.setLevel(logging.DEBUG)
|
45
|
-
|
46
|
-
else:
|
47
|
-
stdout_handler.setLevel(logging.INFO)
|
40
|
+
def main():
|
41
|
+
# version = pkg_resources.require("py_eb_model")[0].version
|
48
42
|
|
49
|
-
|
50
|
-
|
43
|
+
ap = argparse.ArgumentParser()
|
44
|
+
ap.add_argument("-v", "--verbose", required=False, help="Print debug information", action="store_true")
|
45
|
+
ap.add_argument("-r", "--runnable", required=False, help="Export the runnable entities", action="store_true")
|
46
|
+
ap.add_argument("--log", required=False, help="The Log file name.")
|
47
|
+
ap.add_argument("INPUT", help="The path of xdm file.", nargs='+')
|
48
|
+
ap.add_argument("OUTPUT", help="The path of excel file.")
|
51
49
|
|
50
|
+
args = ap.parse_args()
|
51
|
+
logger = process_logger(args)
|
52
|
+
|
52
53
|
try:
|
53
54
|
doc = EBModel.getInstance()
|
54
55
|
|
eb_model/models/abstract.py
CHANGED
@@ -41,6 +41,7 @@ class EcucParamConfContainerDef(EcucObject):
|
|
41
41
|
def __init__(self, parent, name) -> None:
|
42
42
|
super().__init__(parent, name)
|
43
43
|
|
44
|
+
self.importerInfo: str = None
|
44
45
|
self.elements = {} # type: Dict[str, EcucObject]
|
45
46
|
|
46
47
|
def getTotalElement(self) -> int:
|
@@ -66,6 +67,17 @@ class EcucParamConfContainerDef(EcucObject):
|
|
66
67
|
if (name not in self.elements):
|
67
68
|
return None
|
68
69
|
return self.elements[name]
|
70
|
+
|
71
|
+
def getImporterInfo(self) -> str:
|
72
|
+
return self.importerInfo
|
73
|
+
|
74
|
+
def setImporterInfo(self, value: str) -> None:
|
75
|
+
self.importerInfo = value
|
76
|
+
|
77
|
+
def isCalculatedSvcAs(self) -> bool:
|
78
|
+
if self.importerInfo is not None and self.importerInfo.startswith("@CALC(SvcAs"):
|
79
|
+
return True
|
80
|
+
return False
|
69
81
|
|
70
82
|
|
71
83
|
class EcucRefType:
|
@@ -135,15 +147,15 @@ class Module(EcucParamConfContainerDef):
|
|
135
147
|
def getArVersion(self):
|
136
148
|
return self.arVersion
|
137
149
|
|
138
|
-
def setArVersion(self, value):
|
139
|
-
|
140
|
-
|
141
|
-
|
150
|
+
# def setArVersion(self, value):
|
151
|
+
# if value is not None:
|
152
|
+
# self.arVersion = value
|
153
|
+
# return self
|
142
154
|
|
143
155
|
def getSwVersion(self):
|
144
156
|
return self.swVersion
|
145
157
|
|
146
|
-
def setSwVersion(self, value):
|
147
|
-
|
148
|
-
|
149
|
-
|
158
|
+
# def setSwVersion(self, value):
|
159
|
+
# if value is not None:
|
160
|
+
# self.swVersion = value
|
161
|
+
# return self
|
eb_model/models/os_xdm.py
CHANGED
@@ -114,9 +114,9 @@ class OsAlarm(EcucParamConfContainerDef):
|
|
114
114
|
def __init__(self, parent, name) -> None:
|
115
115
|
super().__init__(parent, name)
|
116
116
|
|
117
|
-
self.osAlarmAccessingApplicationRefs
|
117
|
+
self.osAlarmAccessingApplicationRefs: List[EcucRefType] = []
|
118
118
|
self.osAlarmCounterRef = None
|
119
|
-
self.osAlarmAction = None
|
119
|
+
self.osAlarmAction: OsAlarmAction = None
|
120
120
|
self.osAlarmAutostart = None
|
121
121
|
|
122
122
|
def getOsAlarmAccessingApplicationRefList(self) -> List[EcucRefType]:
|
@@ -164,10 +164,10 @@ class OsApplicationHooks(EcucParamConfContainerDef):
|
|
164
164
|
def __init__(self, parent, name):
|
165
165
|
super().__init__(parent, name)
|
166
166
|
|
167
|
-
self.OsAppErrorHook = False
|
168
|
-
self.OsAppShutdownHook = False
|
169
|
-
self.OsAppStartupHook = False
|
170
|
-
self.OsMemoryMappingCodeLocationRef = None
|
167
|
+
self.OsAppErrorHook: bool = False
|
168
|
+
self.OsAppShutdownHook: bool = False
|
169
|
+
self.OsAppStartupHook: bool = False
|
170
|
+
self.OsMemoryMappingCodeLocationRef: EcucRefType = None
|
171
171
|
|
172
172
|
def getOsAppErrorHook(self):
|
173
173
|
return self.OsAppErrorHook
|
@@ -202,8 +202,8 @@ class OsApplicationTrustedFunction(EcucParamConfContainerDef):
|
|
202
202
|
def __init__(self, parent, name):
|
203
203
|
super().__init__(parent, name)
|
204
204
|
|
205
|
-
self.OsTrustedFunctionName = None
|
206
|
-
self.OsMemoryMappingCodeLocationRef = None
|
205
|
+
self.OsTrustedFunctionName: str = None
|
206
|
+
self.OsMemoryMappingCodeLocationRef: EcucRefType = None
|
207
207
|
|
208
208
|
def getOsTrustedFunctionName(self):
|
209
209
|
return self.OsTrustedFunctionName
|
@@ -229,23 +229,23 @@ class OsApplication(EcucParamConfContainerDef):
|
|
229
229
|
def __init__(self, parent, name) -> None:
|
230
230
|
super().__init__(parent, name)
|
231
231
|
|
232
|
-
self.OsTrusted = False
|
233
|
-
self.OsTrustedApplicationDelayTimingViolationCall = False
|
234
|
-
self.OsTrustedApplicationWithProtection = False
|
235
|
-
self.OsAppAlarmRefs
|
236
|
-
self.OsAppCounterRefs
|
237
|
-
self.OsAppEcucPartitionRefs
|
238
|
-
self.OsAppIsrRefs
|
239
|
-
self.OsApplicationCoreRefs
|
240
|
-
self.OsAppScheduleTableRefs
|
241
|
-
self.OsAppTaskRefs
|
242
|
-
self.OsMemoryMappingCodeLocationRef = None
|
243
|
-
self.OsRestartTask = None
|
232
|
+
self.OsTrusted: bool = False
|
233
|
+
self.OsTrustedApplicationDelayTimingViolationCall: bool = False
|
234
|
+
self.OsTrustedApplicationWithProtection: bool = False
|
235
|
+
self.OsAppAlarmRefs: List[EcucRefType] = []
|
236
|
+
self.OsAppCounterRefs: List[EcucRefType] = []
|
237
|
+
self.OsAppEcucPartitionRefs: List[EcucRefType] = []
|
238
|
+
self.OsAppIsrRefs: List[EcucRefType] = []
|
239
|
+
self.OsApplicationCoreRefs: List[EcucRefType] = []
|
240
|
+
self.OsAppScheduleTableRefs: List[EcucRefType] = []
|
241
|
+
self.OsAppTaskRefs: List[EcucRefType] = []
|
242
|
+
self.OsMemoryMappingCodeLocationRef: EcucRefType = None
|
243
|
+
self.OsRestartTask: EcucRefType = None
|
244
244
|
|
245
245
|
'''
|
246
246
|
EB Tresos
|
247
247
|
'''
|
248
|
-
self.OsAppResourceRefs
|
248
|
+
self.OsAppResourceRefs: List[EcucRefType] = []
|
249
249
|
|
250
250
|
def getOsTrusted(self):
|
251
251
|
return self.OsTrusted
|
@@ -334,7 +334,7 @@ class OsApplication(EcucParamConfContainerDef):
|
|
334
334
|
def setOsRestartTask(self, value):
|
335
335
|
self.OsRestartTask = value
|
336
336
|
return self
|
337
|
-
|
337
|
+
|
338
338
|
def getOsAppResourceRefs(self):
|
339
339
|
return self.OsAppResourceRefs
|
340
340
|
|
@@ -348,7 +348,7 @@ class OsDriver(EcucParamConfContainerDef):
|
|
348
348
|
def __init__(self, parent, name) -> None:
|
349
349
|
super().__init__(parent, name)
|
350
350
|
|
351
|
-
self.osGptChannelRef = None
|
351
|
+
self.osGptChannelRef: EcucRefType = None
|
352
352
|
|
353
353
|
def getOsGptChannelRef(self) -> EcucRefType:
|
354
354
|
'''
|
@@ -397,7 +397,7 @@ class OsCounter(EcucParamConfContainerDef):
|
|
397
397
|
self.osCounterTicksPerBase = None # type: int
|
398
398
|
self.osCounterType = None # type: str
|
399
399
|
self.osSecondsPerTick = None # type: float
|
400
|
-
self.osCounterAccessingApplications
|
400
|
+
self.osCounterAccessingApplications: List[EcucRefType] = []
|
401
401
|
self.osDriver = None # Multiplicity: 0..1
|
402
402
|
self.osTimeConstants = [] # Multiplicity: 0..*
|
403
403
|
|
@@ -486,9 +486,9 @@ class OsResource(EcucParamConfContainerDef):
|
|
486
486
|
def __init__(self, parent, name):
|
487
487
|
super().__init__(parent, name)
|
488
488
|
|
489
|
-
self.osResourceProperty = None
|
490
|
-
self.osResourceAccessingApplicationRefs
|
491
|
-
self.osResourceLinkedResourceRefs
|
489
|
+
self.osResourceProperty: EcucEnumerationParamDef = None
|
490
|
+
self.osResourceAccessingApplicationRefs: List[EcucRefType] = []
|
491
|
+
self.osResourceLinkedResourceRefs: List[EcucRefType] = []
|
492
492
|
|
493
493
|
def getOsResourceProperty(self):
|
494
494
|
return self.osResourceProperty
|
@@ -514,7 +514,7 @@ class OsResource(EcucParamConfContainerDef):
|
|
514
514
|
self.osResourceLinkedResourceRefs = value
|
515
515
|
return self
|
516
516
|
|
517
|
-
|
517
|
+
|
518
518
|
class OsIsrResourceLock(EcucParamConfContainerDef):
|
519
519
|
def __init__(self) -> None:
|
520
520
|
self.osIsrResourceLockBudget = None
|
@@ -541,15 +541,26 @@ class OsIsr(EcucObject):
|
|
541
541
|
def __init__(self, parent, name) -> None:
|
542
542
|
super().__init__(parent, name)
|
543
543
|
|
544
|
-
self.osIsrCategory = None
|
545
|
-
self.osIsrPeriod = None
|
546
|
-
self.osIsrResourceRef = None
|
547
|
-
self.osMemoryMappingCodeLocationRef = None
|
544
|
+
self.osIsrCategory: str = None
|
545
|
+
self.osIsrPeriod: int = None
|
546
|
+
self.osIsrResourceRef: EcucRefType = None
|
547
|
+
self.osMemoryMappingCodeLocationRef: EcucRefType = None
|
548
548
|
self.osIsrTimingProtection = OsIsrTimingProtection()
|
549
549
|
|
550
|
-
self.osIsrPriority = None
|
551
|
-
self.osStacksize = None
|
552
|
-
self.osIsrVector = None
|
550
|
+
self.osIsrPriority: int = None
|
551
|
+
self.osStacksize: int = None
|
552
|
+
self.osIsrVector: str = None
|
553
|
+
|
554
|
+
# Infineon Aurix Tricore
|
555
|
+
self.osTricoreIrqLevel: str = None
|
556
|
+
self.osTricoreVector: str = None
|
557
|
+
|
558
|
+
# ARM core
|
559
|
+
self.osARMIrqLevel: str = None
|
560
|
+
self.osARMVector: str = None
|
561
|
+
|
562
|
+
# EB Safety OS
|
563
|
+
self.osIsrMkMemoryRegionRefs: List[EcucRefType] = []
|
553
564
|
|
554
565
|
def getOsIsrCategory(self):
|
555
566
|
return self.osIsrCategory
|
@@ -606,7 +617,7 @@ class OsIsr(EcucObject):
|
|
606
617
|
if value is not None:
|
607
618
|
self.osStacksize = value
|
608
619
|
return self
|
609
|
-
|
620
|
+
|
610
621
|
def getOsIsrVector(self):
|
611
622
|
return self.osIsrVector
|
612
623
|
|
@@ -614,13 +625,56 @@ class OsIsr(EcucObject):
|
|
614
625
|
if value is not None:
|
615
626
|
self.osIsrVector = value
|
616
627
|
return self
|
628
|
+
|
629
|
+
# Infineon AURIX Tricore
|
630
|
+
def getOsTricoreIrqLevel(self) -> str:
|
631
|
+
return self.osTricoreIrqLevel
|
632
|
+
|
633
|
+
def setOsTricoreIrqLevel(self, value: str):
|
634
|
+
if value is not None:
|
635
|
+
self.osTricoreIrqLevel = value
|
636
|
+
return self
|
637
|
+
|
638
|
+
def getOsTricoreVector(self) -> str:
|
639
|
+
return self.osTricoreVector
|
640
|
+
|
641
|
+
def setOsTricoreVector(self, value: str):
|
642
|
+
if value is not None:
|
643
|
+
self.osTricoreVector = value
|
644
|
+
return self
|
645
|
+
|
646
|
+
# ARM core
|
647
|
+
def getOsARMIrqLevel(self) -> str:
|
648
|
+
return self.osARMIrqLevel
|
649
|
+
|
650
|
+
def setOsARMIrqLevel(self, value: str):
|
651
|
+
if value is not None:
|
652
|
+
self.osARMIrqLevel = value
|
653
|
+
return self
|
654
|
+
|
655
|
+
def getOsARMVector(self) -> str:
|
656
|
+
return self.osARMVector
|
657
|
+
|
658
|
+
def setOsARMVector(self, value: str):
|
659
|
+
if value is not None:
|
660
|
+
self.osARMVector = value
|
661
|
+
return self
|
662
|
+
|
663
|
+
# EB Safety OS
|
664
|
+
def getOsIsrMkMemoryRegionRefs(self) -> List[EcucRefType]:
|
665
|
+
return self.osIsrMkMemoryRegionRefs
|
666
|
+
|
667
|
+
def addOsIsrMkMemoryRegionRef(self, value: List[EcucRefType]):
|
668
|
+
if value is not None:
|
669
|
+
self.osIsrMkMemoryRegionRefs.append(value)
|
670
|
+
return self
|
617
671
|
|
618
672
|
|
619
673
|
class OsTaskAutostart(EcucObject):
|
620
674
|
def __init__(self, parent, name) -> None:
|
621
675
|
super().__init__(parent, name)
|
622
676
|
|
623
|
-
self.osTaskAppModeRefs
|
677
|
+
self.osTaskAppModeRefs: List[EcucRefType] = []
|
624
678
|
|
625
679
|
def getOsTaskAppModeRefList(self):
|
626
680
|
return self.osTaskAppModeRefs
|
@@ -739,7 +793,7 @@ class OsTask(EcucObject):
|
|
739
793
|
if self.osTaskSchedule == OsTask.FULL:
|
740
794
|
return True
|
741
795
|
return False
|
742
|
-
|
796
|
+
|
743
797
|
def getOsTaskAutostart(self):
|
744
798
|
return self.osTaskAutostart
|
745
799
|
|
@@ -747,7 +801,7 @@ class OsTask(EcucObject):
|
|
747
801
|
if value is not None:
|
748
802
|
self.osTaskAutostart = value
|
749
803
|
return self
|
750
|
-
|
804
|
+
|
751
805
|
def isOsTaskAutostart(self) -> bool:
|
752
806
|
return self.osTaskAutostart is not None
|
753
807
|
|
@@ -962,21 +1016,222 @@ class OsScheduleTable(EcucParamConfContainerDef):
|
|
962
1016
|
return self
|
963
1017
|
|
964
1018
|
|
1019
|
+
class MkMemoryRegion(EcucObject):
|
1020
|
+
def __init__(self, parent, name):
|
1021
|
+
super().__init__(parent, name)
|
1022
|
+
|
1023
|
+
self.mkMemoryRegionFlags: str = None
|
1024
|
+
self.mkMemoryRegionInitialize: bool = None
|
1025
|
+
self.mkMemoryRegionGlobal: bool = None
|
1026
|
+
self.mkMemoryRegionInitThreadAccess: bool = None
|
1027
|
+
self.mkMemoryRegionIdleThreadAccess: bool = None
|
1028
|
+
self.mkMemoryRegionOsThreadAccess: bool = None
|
1029
|
+
self.mkMemoryRegionErrorHookAccess: bool = None
|
1030
|
+
self.mkMemoryRegionProtHookAccess: bool = None
|
1031
|
+
self.mkMemoryRegionShutdownHookAccess: bool = None
|
1032
|
+
self.mkMemoryRegionShutdownAccess: bool = None
|
1033
|
+
self.mkMemoryRegionKernelAccess: bool = None
|
1034
|
+
self.mkMemoryRegionInitializePerCore: bool = None
|
1035
|
+
|
1036
|
+
def getMkMemoryRegionFlags(self) -> str:
|
1037
|
+
return self.mkMemoryRegionFlags
|
1038
|
+
|
1039
|
+
def setMkMemoryRegionFlags(self, value: str):
|
1040
|
+
if value is not None:
|
1041
|
+
self.mkMemoryRegionFlags = value
|
1042
|
+
return self
|
1043
|
+
|
1044
|
+
def getMkMemoryRegionInitialize(self) -> bool:
|
1045
|
+
return self.mkMemoryRegionInitialize
|
1046
|
+
|
1047
|
+
def setMkMemoryRegionInitialize(self, value: bool):
|
1048
|
+
if value is not None:
|
1049
|
+
self.mkMemoryRegionInitialize = value
|
1050
|
+
return self
|
1051
|
+
|
1052
|
+
def getMkMemoryRegionGlobal(self) -> bool:
|
1053
|
+
return self.mkMemoryRegionGlobal
|
1054
|
+
|
1055
|
+
def setMkMemoryRegionGlobal(self, value: bool):
|
1056
|
+
if value is not None:
|
1057
|
+
self.mkMemoryRegionGlobal = value
|
1058
|
+
return self
|
1059
|
+
|
1060
|
+
def getMkMemoryRegionInitThreadAccess(self) -> bool:
|
1061
|
+
return self.mkMemoryRegionInitThreadAccess
|
1062
|
+
|
1063
|
+
def setMkMemoryRegionInitThreadAccess(self, value: bool):
|
1064
|
+
if value is not None:
|
1065
|
+
self.mkMemoryRegionInitThreadAccess = value
|
1066
|
+
return self
|
1067
|
+
|
1068
|
+
def getMkMemoryRegionIdleThreadAccess(self) -> bool:
|
1069
|
+
return self.mkMemoryRegionIdleThreadAccess
|
1070
|
+
|
1071
|
+
def setMkMemoryRegionIdleThreadAccess(self, value: bool):
|
1072
|
+
if value is not None:
|
1073
|
+
self.mkMemoryRegionIdleThreadAccess = value
|
1074
|
+
return self
|
1075
|
+
|
1076
|
+
def getMkMemoryRegionOsThreadAccess(self) -> bool:
|
1077
|
+
return self.mkMemoryRegionOsThreadAccess
|
1078
|
+
|
1079
|
+
def setMkMemoryRegionOsThreadAccess(self, value: bool):
|
1080
|
+
if value is not None:
|
1081
|
+
self.mkMemoryRegionOsThreadAccess = value
|
1082
|
+
return self
|
1083
|
+
|
1084
|
+
def getMkMemoryRegionErrorHookAccess(self) -> bool:
|
1085
|
+
return self.mkMemoryRegionErrorHookAccess
|
1086
|
+
|
1087
|
+
def setMkMemoryRegionErrorHookAccess(self, value: bool):
|
1088
|
+
if value is not None:
|
1089
|
+
self.mkMemoryRegionErrorHookAccess = value
|
1090
|
+
return self
|
1091
|
+
|
1092
|
+
def getMkMemoryRegionProtHookAccess(self) -> bool:
|
1093
|
+
return self.mkMemoryRegionProtHookAccess
|
1094
|
+
|
1095
|
+
def setMkMemoryRegionProtHookAccess(self, value: bool):
|
1096
|
+
if value is not None:
|
1097
|
+
self.mkMemoryRegionProtHookAccess = value
|
1098
|
+
return self
|
1099
|
+
|
1100
|
+
def getMkMemoryRegionShutdownHookAccess(self) -> bool:
|
1101
|
+
return self.mkMemoryRegionShutdownHookAccess
|
1102
|
+
|
1103
|
+
def setMkMemoryRegionShutdownHookAccess(self, value: bool):
|
1104
|
+
if value is not None:
|
1105
|
+
self.mkMemoryRegionShutdownHookAccess = value
|
1106
|
+
return self
|
1107
|
+
|
1108
|
+
def getMkMemoryRegionShutdownAccess(self) -> bool:
|
1109
|
+
return self.mkMemoryRegionShutdownAccess
|
1110
|
+
|
1111
|
+
def setMkMemoryRegionShutdownAccess(self, value: bool):
|
1112
|
+
if value is not None:
|
1113
|
+
self.mkMemoryRegionShutdownAccess = value
|
1114
|
+
return self
|
1115
|
+
|
1116
|
+
def getMkMemoryRegionKernelAccess(self) -> bool:
|
1117
|
+
return self.mkMemoryRegionKernelAccess
|
1118
|
+
|
1119
|
+
def setMkMemoryRegionKernelAccess(self, value: bool):
|
1120
|
+
if value is not None:
|
1121
|
+
self.mkMemoryRegionKernelAccess = value
|
1122
|
+
return self
|
1123
|
+
|
1124
|
+
def getMkMemoryRegionInitializePerCore(self) -> bool:
|
1125
|
+
return self.mkMemoryRegionInitializePerCore
|
1126
|
+
|
1127
|
+
def setMkMemoryRegionInitializePerCore(self, value: bool):
|
1128
|
+
if value is not None:
|
1129
|
+
self.mkMemoryRegionInitializePerCore = value
|
1130
|
+
return self
|
1131
|
+
|
1132
|
+
|
1133
|
+
class MkMemoryProtection(EcucParamConfContainerDef):
|
1134
|
+
def __init__(self, parent, name):
|
1135
|
+
super().__init__(parent, name)
|
1136
|
+
|
1137
|
+
self.mkMemoryRegions: List[MkMemoryRegion] = []
|
1138
|
+
|
1139
|
+
def getMkMemoryRegionList(self) -> List[MkMemoryRegion]:
|
1140
|
+
return self.mkMemoryRegions
|
1141
|
+
|
1142
|
+
def addMkMemoryRegion(self, value: MkMemoryRegion):
|
1143
|
+
if value is not None:
|
1144
|
+
self.mkMemoryRegions.append(value)
|
1145
|
+
return self
|
1146
|
+
|
1147
|
+
|
1148
|
+
class MkFunction(EcucParamConfContainerDef):
|
1149
|
+
def __init__(self, parent, name):
|
1150
|
+
super().__init__(parent, name)
|
1151
|
+
|
1152
|
+
|
1153
|
+
class MkStack(EcucParamConfContainerDef):
|
1154
|
+
def __init__(self, parent, name):
|
1155
|
+
super().__init__(parent, name)
|
1156
|
+
|
1157
|
+
|
1158
|
+
class MkThreadCustomization(EcucParamConfContainerDef):
|
1159
|
+
def __init__(self, parent, name):
|
1160
|
+
super().__init__(parent, name)
|
1161
|
+
|
1162
|
+
|
1163
|
+
class MkOptimization(EcucParamConfContainerDef):
|
1164
|
+
def __init__(self, parent, name):
|
1165
|
+
super().__init__(parent, name)
|
1166
|
+
|
1167
|
+
|
1168
|
+
class OsMicrokernel(EcucParamConfContainerDef):
|
1169
|
+
def __init__(self, parent, name):
|
1170
|
+
super().__init__(parent, name)
|
1171
|
+
|
1172
|
+
self.mkFunction: MkFunction = None
|
1173
|
+
self.mkStack: MkStack = None
|
1174
|
+
self.mkMemoryProtection: MkMemoryProtection = None
|
1175
|
+
self.mkOptimization: MkOptimization = None
|
1176
|
+
self.mkThreadCustomization: MkThreadCustomization = None
|
1177
|
+
|
1178
|
+
def getMkFunction(self) -> MkFunction:
|
1179
|
+
return self.mkFunction
|
1180
|
+
|
1181
|
+
def setMkFunction(self, value: MkFunction):
|
1182
|
+
if value is not None:
|
1183
|
+
self.mkFunction = value
|
1184
|
+
return self
|
1185
|
+
|
1186
|
+
def getMkStack(self) -> MkStack:
|
1187
|
+
return self.mkStack
|
1188
|
+
|
1189
|
+
def setMkStack(self, value: MkStack):
|
1190
|
+
if value is not None:
|
1191
|
+
self.mkStack = value
|
1192
|
+
return self
|
1193
|
+
|
1194
|
+
def getMkMemoryProtection(self) -> MkMemoryProtection:
|
1195
|
+
return self.mkMemoryProtection
|
1196
|
+
|
1197
|
+
def setMkMemoryProtection(self, value: MkMemoryProtection):
|
1198
|
+
if value is not None:
|
1199
|
+
self.mkMemoryProtection = value
|
1200
|
+
return self
|
1201
|
+
|
1202
|
+
def getMkOptimization(self) -> MkOptimization:
|
1203
|
+
return self.mkOptimization
|
1204
|
+
|
1205
|
+
def setMkOptimization(self, value: MkOptimization):
|
1206
|
+
if value is not None:
|
1207
|
+
self.mkOptimization = value
|
1208
|
+
return self
|
1209
|
+
|
1210
|
+
def getMkThreadCustomization(self) -> MkThreadCustomization:
|
1211
|
+
return self.mkThreadCustomization
|
1212
|
+
|
1213
|
+
def setMkThreadCustomization(self, value: MkThreadCustomization):
|
1214
|
+
if value is not None:
|
1215
|
+
self.mkThreadCustomization = value
|
1216
|
+
return self
|
1217
|
+
|
1218
|
+
|
965
1219
|
class Os(Module):
|
966
1220
|
def __init__(self, parent) -> None:
|
967
1221
|
super().__init__(parent, "Os")
|
968
1222
|
|
969
|
-
self.osTasks
|
970
|
-
self.osIsrs
|
971
|
-
self.osAlarms
|
972
|
-
self.osScheduleTables
|
973
|
-
self.osCounters
|
974
|
-
self.osApplications
|
975
|
-
self.osResources
|
1223
|
+
self.osTasks: List[OsTask] = []
|
1224
|
+
self.osIsrs: List[OsIsr] = []
|
1225
|
+
self.osAlarms: List[OsAlarm] = []
|
1226
|
+
self.osScheduleTables: List[OsScheduleTable] = []
|
1227
|
+
self.osCounters: List[OsCounter] = []
|
1228
|
+
self.osApplications: List[OsApplication] = []
|
1229
|
+
self.osResources: List[OsResource] = []
|
1230
|
+
self.osMicrokernel: OsMicrokernel = None
|
976
1231
|
|
977
1232
|
# extended attributes to speed up performance
|
978
|
-
self.osIsrToOsAppMappings
|
979
|
-
self.osTaskToOsAppMappings
|
1233
|
+
self.osIsrToOsAppMappings: Dict[str, OsApplication] = {}
|
1234
|
+
self.osTaskToOsAppMappings: Dict[str, OsApplication] = {}
|
980
1235
|
|
981
1236
|
self.logger = logging.getLogger()
|
982
1237
|
|
@@ -1019,24 +1274,26 @@ class Os(Module):
|
|
1019
1274
|
self.addElement(os_counter)
|
1020
1275
|
self.osCounters.append(os_counter)
|
1021
1276
|
return self
|
1022
|
-
|
1277
|
+
|
1023
1278
|
def getOsApplicationList(self) -> List[OsApplication]:
|
1024
1279
|
return list(sorted(filter(lambda a: isinstance(a, OsApplication), self.elements.values()), key=lambda o: o.getName()))
|
1025
1280
|
|
1026
1281
|
def addOsApplication(self, value: OsApplication):
|
1027
1282
|
self.addElement(value)
|
1028
1283
|
self.osApplications.append(value)
|
1029
|
-
|
1284
|
+
|
1030
1285
|
for isr_ref in value.getOsAppIsrRefs():
|
1031
|
-
self.logger.debug("Create OsISR <%s> -> OsApp <%s> Mapping." %
|
1286
|
+
self.logger.debug("Create OsISR <%s> -> OsApp <%s> Mapping." %
|
1287
|
+
(isr_ref.getShortName(), value.getName()))
|
1032
1288
|
self.osIsrToOsAppMappings[isr_ref.getShortName()] = value
|
1033
1289
|
|
1034
1290
|
for task_ref in value.getOsAppTaskRefs():
|
1035
|
-
self.logger.debug("Create OsTask <%s> -> OsApp <%s> Mapping." %
|
1291
|
+
self.logger.debug("Create OsTask <%s> -> OsApp <%s> Mapping." %
|
1292
|
+
(task_ref.getShortName(), value.getName()))
|
1036
1293
|
self.osTaskToOsAppMappings[task_ref.getShortName()] = value
|
1037
1294
|
|
1038
1295
|
return self
|
1039
|
-
|
1296
|
+
|
1040
1297
|
def getOsResourceList(self) -> List[OsResource]:
|
1041
1298
|
return list(sorted(filter(lambda a: isinstance(a, OsResource), self.elements.values()), key=lambda o: o.getName()))
|
1042
1299
|
|
@@ -1044,13 +1301,21 @@ class Os(Module):
|
|
1044
1301
|
self.addElement(os_task)
|
1045
1302
|
self.osResources.append(os_task)
|
1046
1303
|
return self
|
1047
|
-
|
1304
|
+
|
1048
1305
|
def getOsIsrOsApplication(self, isr_name: str) -> OsApplication:
|
1049
1306
|
if isr_name in self.osIsrToOsAppMappings:
|
1050
1307
|
return self.osIsrToOsAppMappings[isr_name]
|
1051
1308
|
return None
|
1052
|
-
|
1309
|
+
|
1053
1310
|
def getOsTaskOsApplication(self, isr_name: str) -> OsApplication:
|
1054
1311
|
if isr_name in self.osTaskToOsAppMappings:
|
1055
1312
|
return self.osTaskToOsAppMappings[isr_name]
|
1056
1313
|
return None
|
1314
|
+
|
1315
|
+
def getOsMicrokernel(self) -> OsMicrokernel:
|
1316
|
+
return self.osMicrokernel
|
1317
|
+
|
1318
|
+
def setOsMicrokernel(self, value: OsMicrokernel):
|
1319
|
+
if value is not None:
|
1320
|
+
self.osMicrokernel = value
|
1321
|
+
return self
|