导图社区 AUTOAR4.2.2OS配置容器20230716A
AUTOAR4.2.2OS配置容器,Post-Build Variant Support false.
编辑于2023-08-18 16:42:43 安徽OS
Post-Build Variant Support false
OsAlarm(0..*)
An OsAlarm may be used to asynchronously inform or activate a specific task. It is possible to start alarms automatically at system start-up depending on the application mode.
OsAlarmAccessingApplication(0..*)
Reference to applications which have an access to this object
Reference to [ OsApplication ]
OsAlarmCounterRef
Reference to the assigned counter for that alarm
Reference to [ OsCounter ]
OsAlarmAction
This container defines which type of notification is used when the alarm expires
OsAlarmActivateTask(0..1)
This container specifies the parameters to activate a task.
OsAlarmActivateTaskRef
Reference to the task that will be activated by that alarm action
Reference to [ OsTask ]
OsAlarmCallback(0..1)
This container specifies the parameters to call a callback OS alarm action.
OsAlarmCallbackName
Name of the function that is called when this alarm callback is triggered
EcucFunctionNameDef
OsAlarmIncrementCounter(0..1)
This container specifies the parameters to increment a counter.
OsAlarmIncrementCounterRef
Reference to the counter that will be incremented by that alarm action
Reference to [ OsCounter ]
OsAlarmSetEvent(0..1)
This container specifies the parameters to set an event
OsAlarmSetEventRef
Reference to the event that will be set by that alarm action
Reference to [ OsEvent ]
OsAlarmSetEventTaskRef
Reference to the task that will be activated by that event
Reference to [ OsTask ]
OsAlarmAutostart(0..1)
If present this container defines if an alarm is started automatically at system start-up depending on the application mode
OsAlarmAlarmTime
The relative or absolute tick value when the alarm expires for the first time. Note that for an alarm which is RELATIVE the value must be at bigger than 0
EcucIntegerParamDef
OsAlarmAutostartType
This specifies the type of autostart for the alarm
ABSOLUTE
The alarm is started on startup via SetAbsAlarm().
RELATIVE
The alarm is started on startup via SetRelAlarm().
OsAlarmCycleTime
Cycle time of a cyclic alarm in ticks. If the value is 0 than the alarm is not cyclic
EcucIntegerParamDef
OsAlarmAppModeRef(1..*)
Reference to the application modes for which the AUTOSTART shall be performed
Reference to [ OsAppMode ]
OsAppMode(1..*)
OsAppMode is the object used to define OSEK OS properties for an OSEK OS application mode. No standard attributes are defined for AppMode. In a CPU, at least one AppMode object has to be defined. [source: OSEK OIL Spec. 2.5] An OsAppMode called OSDEFAULTAPPMODE must always be there for OSEK compatibility.
OsApplication(0..*)
An AUTOSAR OS must be capable of supporting a collection of OS objects (tasks, interrupts, alarms, hooks etc.) that form a cohesive functional unit. This collection of objects is termed an OS-Application. All objects which belong to the same OS-Application have access to each other. Access means to allow to use these objects within API services. Access by other applications can be granted separately.
OsTrusted
Parameter to specify if an OS-Application is trusted or not dependency: Required for scalability class 3 and 4
EcucBooleanParamDef
OsTrustedApplicationDelayTimingViolationCall
Parameter to specify if a timing violation which occurs within an trusted OS-Application is raised immediately of if it is delayed until the current task returns to the calling OS-Application (return of CallTrustedFunction) true: violation / call to ProtectionHook() is delayed false: timing violation cause an immediate call to the ProtectionHook()
EcucBooleanParamDef
OsTrustedApplicationWithProtection
Parameter to specify if a trusted OS-Application is executed with memory protection or not. true: OS-Application runs within a protected environment. This means that write access is limited. false: OS-Application has full write access (default)
EcucBooleanParamDef
OsAppAlarmRef(0..*)
Specifies the OsAlarms that belong to the OsApplication. dependency: Required for scalability class 3 and 4
Reference to [ OsAlarm ]
OsAppCounterRef(0..*)
References the OsCounters that belong to the OsApplication. dependency: Required for scalability class 3 and 4
Reference to [ OsCounter ]
OsAppEcucPartitionRef(0..1)
Reference to [ EcucPartition ]
OsAppIsrRef(0..*)
references which OsIsrs belong to the OsApplication dependency: Required for scalability class 3 and 4.
Reference to [ OsIsr ]
OsAppScheduleTableRef(0..*)
References the OsScheduleTables that belong to the OsApplication dependency: Required for scalability class 3 and 4
Reference to [ OsScheduleTable ]
OsAppTaskRef(0..*)
references which OsTasks belong to the OsApplication dependency: Required for scalability class 3 and 4
Reference to [ OsTask ]
OsApplicationCoreRef(0..1)
Reference to the Core Definition in the Ecuc Module where the CoreId is defined. This reference is used to describe to which Core the OsApplication is bound.
Symbolic name reference to [ EcucCoreDefinition ]
OsRestartTask(0..1)
Optionally one task of an OS-Application may be defined as Restart Task. Multiplicity = 1: Restart Task is activated by the Operating System if the protection hook requests it. Multiplicity = 0: No task is automatically started after a protection error happened. dependency: Required for scalability class 3 and 4.
Reference to [ OsTask ]
OsApplicationHooks
Container to structure the OS-Application-specific hooks
OsAppErrorHook
Select the OS-Application error hook. true: Hook is called false: Hook is not called dependency: Required for scalability class 3 and 4
EcucBooleanParamDef
OsAppShutdownHook
Select the OS-Application specific shutdown hook for the OS-Application. true: Hook is called false: Hook is not called dependency: Required for scalability class 3 and 4
EcucBooleanParamDef
OsAppStartupHook
Select the OS-Application specific startup hook for the OS-Application. true: Hook is called false: Hook is not called dependency: Required for scalability class 3 and 4
EcucBooleanParamDef
OsApplicationTrustedFunction
Container to structure the configuration parameters of trusted functions
OsTrustedFunctionName
Trusted function (as part of a trusted OS-Application) available to other OS-Applications. This also supersedes the OSEK OIL attribute TRUSTED in APPLICATION because the optionality of this parameter is describing that already dependency: Required for scalability class 3 and 4 and in trusted OSApplications.
EcucFunctionNameDef
OsCounter(0..*)
Configuration information for the counters that belong to the OsApplication
OsCounterMaxAllowedValue
Maximum possible allowed value of the system counter in ticks.
EcucIntegerParamDef
OsCounterMinCycle
The MINCYCLE attribute specifies the minimum allowed number of counter ticks for a cyclic alarm linked to the counter.
EcucIntegerParamDef
OsCounterTicksPerBase
The TICKSPERBASE attribute specifies the number of ticks required to reach a counterspecific unit. The interpretation is implementation-specific
EcucIntegerParamDef
OsCounterType
This parameter contains the natural type or unit of the counter.
HARDWARE
This counter is driven by some hardware e.g. a hardware timer unit.
SOFTWARE
The counter is driven by some software which calls the IncrementCounter service
OsSecondsPerTick(0..1)
Time of one counter tick in seconds.
EcucFloatParamDef
OsCounterAccessingApplication(0..*)
Reference to applications which have an access to this object
Reference to [ OsApplication ]
OsDriver(0..1)
This Container contains the information who will drive the counter. This configuration is only valid if the counter has OsCounterType set to HARDWARE. If the container does not exist (multiplicity=0) the timer is managed by the OS internally (OSINTERNAL). If the container exists the OS can use the GPT interface to manage the timer. The user have to supply the GPT channel. If the counter is driven by some other (external to the OS) source (like a TPU for example) this must be described as a vendor specific extension.
OsTimeConstant(0..*)
This Container contains the information who will drive the counter. This configuration is only valid if the counter has OsCounterType set to HARDWARE. If the container does not exist (multiplicity=0) the timer is managed by the OS internally (OSINTERNAL). If the container exists the OS can use the GPT interface to manage the timer. The user have to supply the GPT channel. If the counter is driven by some other (external to the OS) source (like a TPU for example) this must be described as a vendor specific extension.
OsTimeValue
This parameter contains the value of the constant in seconds.
EcucFloatParamDef
OsEvent(0..*)
Representation of OS events in the configuration context. Adopted from the OSEK OIL specification.
OsEventMask(0..1)
If event mask would be set to AUTO in OIL, this parameter should be omitted here.
EcucIntegerParamDef
OsIoc(0..1)
Configuration of the IOC (Inter OS Application Communicator) 该项有RTE Generator Tool生成,将Ioc.arxml导入OS工程生成IOC
OsIocCommunication(0..*)
Representation of a 1:1 or N:1 or N:M (unqueued only) communication between software parts located in different OSApplications that are bound to the same or to different cores. The name shall begin with the name of the sending software service and be followed by a unique identifier delivered by the sending software service. In the case of RTE as user attention shall be paid on the fact that uniqueness for identifier names has to be reached over ports, data elements, object instances and maybe additional identification properties (E.g. Case 1:N mapping to 1:1). Example: - <NameSpace>_UniqueID
OsIocBufferLength
This attribute defines the size of the IOC internal queue to be allocated for a queued communication. This configuration information shall allow the optimization of the needed memory for communications requiring buffers within the RTE and within the IOC
EcucIntegerParamDef
OsIocDataProperties(1..*)
Data properties of the data to be transferred on the IOC communication channel.
OsIocDataPropertyIndex(0..1)
This parameter is used to define in which order the data is send, e.g. whether IocSendGroup(A,B) or IocSendGroup(B,A) shall be used.
EcucIntegerParamDef
OsIocInitValue
Initial Value for the data to be transferred on the IOC communication channel.
EcucStringParamDef
OsIocDataTypeRef
This is the type of the data to be transferred on the IOC communication channel. This attribute is necessary to generate the parameter type of the Ioc functions. Additionally this information should be used to compute the data size for necessary data copy operations within the Ioc module. If more than one attribute is defined, the IOC generator should generate an IocXxxGroup function (Xxx= CHOICE [Send, Receive, Write, Read]). N:1 or N:M communication (Multiplicity of OsIocSenderProperties > 1) is only allowed for multiplicity of OsIocDataTypeRef = 1
Foreign reference to [ IMPLEMENTATION-DATA-TYPE ]
OsIocReceiverProperties(1..*)
Representation of receiver properties for one communication. For each OsIocCommunication one (1:1) or many receivers (N:M) have to be defined. This container should be instantiated within an OsIocCommunication
OsIocFunctionImplementationKind(0..1)
DO_NOT_CARE
It is not defined whether a macro or a function is used
FUNCTION
Communication is implemented as a function
MACRO
Communication is implemented as a macro
OsIocReceiverPullCB(0..1)
This attribute defines the name of a callback function that the IOC shall call on the receiving core for each data reception. In case of non existence of this attribute no ReceiverPullCB notification shall be applied by the IOC. The name of the function shall begin with the name of the receiving module, followed with a callback name and followed by the IocId. Example: void RTE_ReceiverPullCB_RTE25 (void). If this attribute does not exist, it means that no ReceiverPullCB shall be called (No notification from IOC is required). If this attribute exists the IOC shall call the callback function on the receiving core.
EcucFunctionNameDef
OsIocReceivingOsApplicationRef
This attribute is a reference to the receiving OsApplication instance defined in the configuration file of the OS. This information allows for the generator to get additional information necessary for the code generation like: The protection properties of the communicating OsApplications to find out which protections have to be crossed The core identifiers to find out if an intra or an inter core communication has to be realized Interrupt details in case of cross core notification to realize over IRQs
Reference to [ OsApplication ]
OsIocSenderProperties(1..*)
Representation of sender properties for one communication. For each OsIocCommunication one (1:1) or many senders (N:1 or N:M) have to be defined. Multiplicity > 1 (N:1 or N:M communication) is only allowed for Multiplicity of OsIocDataTypeRef = 1. This container should be instantiated within an OsIocCommunication
OsIocFunctionImplementationKind(0..1)
This parameter is used to select whether this communication is implemented as a macro or as a function.
DO_NOT_CARE
It is not defined whether a macro or a function is used
FUNCTION
Communication is implemented as a function
MACRO
Communication is implemented as a macro
OsIocSenderId(0..1)
Representation of a sender in a N:1 or N:M communication to distinguish between senders. This parameter does not exist in 1:1 communication
EcucIntegerParamDef
OsIocSendingOsApplicationRef
This attribute is a reference to the sending OS-Application instance defined in the configuration file of the OS. This information shall allows the generator to get additional information necessary for the code generation like: The protection properties of the communicating OS-Applications to find out which protection boundaries have to be crossed. The core identifiers to find out if an intra or an inter core communication has to be realized Interrupt details in case of cross core notification to realize over IRQs
Reference to [ OsApplication ]
OsIsr(0..*)
The OsIsr container represents an OSEK interrupt service routine
OsIsrCategory
CATEGORY_1
CATEGORY_2
OsIsrResourceRef(0..*)
This reference defines the resources accessed by this ISR.
Reference to [ OsResource ]
OsIsrTimingProtection(0..1)
This container contains all parameters which are related to timing protection If the container exists, the timing protection is used for this interrupt. If the container does not exist, the interrupt is not supervised regarding timing violations
OsIsrAllInterruptLockBudget(0..1)
This parameter contains the maximum time for which the ISR is allowed to lock all interrupts (via SuspendAllInterrupts() or DisableAllInterrupts()) (in seconds). dependency: Required for scalability class 2 and 4
EcucFloatParamDef
OsIsrExecutionBudget(0..1)
The parameter contains the maximum allowed execution time of the interrupt (in seconds). dependency: Required for scalability class 2 and 4
EcucFloatParamDef
OsIsrOsInterruptLockBudget
This parameter contains the maximum time for which the ISR is allowed to lock all Category 2 interrupts (via SuspendOSInterrupts()) (in seconds) dependency: Required for scalability class 2 and 4
EcucFloatParamDef
OsIsrTimeFrame(0..1)
This parameter contains the minimum inter-arrival time between successive interrupts (in seconds) dependency: Required for scalability class 2 and 4
EcucFloatParamDef
OsIsrResourceLock
OsIsrResourceLockBudget
This parameter contains the maximum time the interrupt is allowed to hold the given resource (in seconds).
EcucFloatParamDef
OsIsrResourceLockResourceRef
dependency: Required for scalability class 2 and 4
Reference to [ OsResource ]
OsOS
OS is the object used to define OSEK OS properties for an OSEK application. Per CPU exactly one OS object has to be defined
OsNumberOfCores(0..1)
Maximum number of cores that are controlled by the OS. The OS uses the value internally. It depends on the ECU HW
EcucIntegerParamDef
OsScalabilityClass(0..1)
A scalability class for each System Object "OS" has to be selected. In order to customize the operating system to the needs of the user and to take full advantage of the processor features the operating system can be scaled according to the scalability classes. If the scalability class is omitted this translates to the OIL AUTO mechanism
SC1
SC2
SC3
SC4
OsStackMonitoring
Select stack monitoring of Tasks/Category 2 ISRs true: Stacks are monitored false: Stacks are not monitored
EcucBooleanParamDef
OsStatus
The Status attribute specifies whether a system with standard or extended status has to be used. Automatic assignment is not supported for this attribute.
EXTENDED
STANDARD
OsUseGetServiceId
As defined by OSEK
EcucBooleanParamDef
OsUseParameterAccess
As defined by OSEK
EcucBooleanParamDef
OsUseResScheduler
The OsUseResScheduler attribute defines whether the resource RES_SCHEDULER is used within the application
EcucBooleanParamDef
OsHooks
OsErrorHook
EcucBooleanParamDef
OsPostTaskHook
EcucBooleanParamDef
OsPreTaskHook
EcucBooleanParamDef
OsProtectionHook(0..1)
Switch to enable/disable the call to the (user supplied) protection hook. true: Protection hook is called on protection error false: Protection hook is not called dependency: Required for scalability class 2,3 and 4
EcucBooleanParamDef
OsShutdownHook
EcucBooleanParamDef
OsStartupHook
EcucBooleanParamDef
OsResource(0..*)
An OsResource object is used to co-ordinate the concurrent access by tasks and ISRs to a shared resource, e.g. the scheduler, any program sequence, memory or any hardware area
OsResourceProperty
This specifies the type of the resource.
INTERNAL
LINKED
The resource is a linked resource (a second name for a existing resource)
STANDARD
OsResourceAccessingApplication(0..*)
Reference to applications which have an access to this object
Reference to [ OsApplication ]
OsResourceLinkedResourceRef(0..1)
The link to the resource. Must be valid if OsResourceProperty is LINKED. If OsResourceProperty is not LINKED the value is ignored.
Reference to [ OsResource ]
OsScheduleTable(0..*)
An OsScheduleTable addresses the synchronization issue by providing an encapsulation of a statically defined set of alarms that cannot be modified at runtime
OsScheduleTableDuration
This parameter defines the modulus of the schedule table (in ticks). 此参数定义明细表的模数(以tick为单位)。
EcucIntegerParamDef
OsScheduleTableRepeating
true: first expiry point on the schedule table shall be processed at final expiry point delay ticks after the final expiry point is processed false: the schedule table processing stops when the final expiry point is processed.
EcucBooleanParamDef
OsSchTblAccessingApplication(0..*)
Reference to applications which have an access to this object
Reference to [ OsApplication ]
OsScheduleTableCounterRef
This parameter contains a reference to the counter which drives the schedule table
Reference to [ OsCounter ]
OsScheduleTableAutostart(0..1)
This container specifies if and how the schedule table is started on startup of the Operating System. The options to start a schedule table correspond to the API calls to start schedule tables during runtime.
OsScheduleTableAutostartType
ABSOLUTE
The schedule table is started during startup with the StartScheduleTableAbs() service.
RELATIVE
The schedule table is started during startup with the StartScheduleTableRel() service
SYNCHRON
The schedule table is started during startup with the StartScheduleTableSynchron() service.
OsScheduleTableStartValue(0..1)
Absolute autostart tick value when the schedule table starts. Only used if the OsScheduleTableAutostartType is ABSOLUTE. Relative offset in ticks when the schedule table starts. Only used if the OsScheduleTableAutostartType is RELATIVE.
EcucIntegerParamDef
OsScheduleTableAppModeRef(1..*)
Reference in which application modes the schedule table should be started during startup
Reference to [ OsAppMode ]
OsScheduleTableExpiryPoint(1..*)
The point on a Schedule Table at which the OS activates tasks and/or sets events
OsScheduleTblExpPointOffset
The offset from zero (in ticks) at which the expiry point is to be processed
EcucIntegerParamDef
OsScheduleTableEventSetting(0..*)
Event that is triggered by that schedule table
OsScheduleTableSetEventRef
Reference to event that will be set by action
Reference to [ OsEvent ]
OsScheduleTableSetEventTaskRef
Reference to [ OsTask ]
OsScheduleTableTaskActivation(0..*)
Task that is triggered by that schedule table.
OsScheduleTableActivateTaskRe
Reference to task that will be activated by action
Reference to [ OsTask ]
OsScheduleTblAdjustableExpPoint(0..1)
Adjustable expiry point
OsScheduleTableMaxLengthen
The maximum positive adjustment that can be made to the expiry point offset (in ticks)
EcucIntegerParamDef
OsScheduleTableMaxShorten
The maximum negative adjustment that can be made to the expiry point offset (in ticks).
EcucIntegerParamDef
OsScheduleTableSync(0..1)
This container specifies the synchronization parameters of the schedule table.
OsScheduleTblExplicitPrecision(0..1)
This configuration is only valid if the explicit synchronization is used.
EcucIntegerParamDef
OsScheduleTblSyncStrategy
AUTOSAR OS provides support for synchronization in two ways: explicit and implicit
EXPLICIT
The schedule table is driven by an OS counter but processing needs to be synchronized with a different counter which is not an OS counter object.
IMPLICIT
The counter driving the schedule table is the counter with which synchronisation is required
NONE
No support for synchronisation.
OsSpinlock(0..*)
An OsSpinlock object is used to co-ordinate concurrent access by TASKs/ISR2s on different cores to a shared resource
OsSpinlockLockMethod
Lock method which is used when a spinlock is taken. Note that it is possible that a user (e.g. a Task) might hold more than one spinlock. In this case the last lock taken is forced to use at least a lock methode which locks as strong as the current one.
LOCK_ALL_INTERRUPTS
LOCK_CAT2_INTERRUPTS
LOCK_NOTHING(default)
LOCK_WITH_RES_SCHEDULER
OsSpinlockAccessingApplication(1..*)
Reference to [ OsApplication ]
OsSpinlockSuccessor(0..1)
Reference to OsApplications that have an access to this object. To check whether a spinlock can be occupied (in a nested way) without any danger of deadlock, a linked list of spinlocks can be defined. A spinlock can only be occupied in the order of the linked list. It is allowed to skip a spinlock. If no linked list is specified, spinlocks cannot be nested Successor:后继者
Reference to [ OsSpinlock ]
OsTask
This container represents an OSEK task.
OsTaskActivation
This attribute defines the maximum number of queued activation requests for the task. A value equal to "1" means that at any time only a single activation is permitted for this task. Note that the value must be a natural number starting at 1
EcucIntegerParamDef
OsTaskPriority
The priority of a task is defined by the value of this attribute. This value has to be understood as a relative value, i.e. the values show only the relative ordering of the tasks. OSEK OS defines the lowest priority as zero (0); larger values correspond to higher priorities.
EcucIntegerParamDef
OsTaskSchedule
The OsTaskSchedule attribute defines the preemptability of the task. If this attribute is set to NON, no internal resources may be assigned to this task.
FULL
Task is preemptable.
NON
Task is not preemptable
OsTaskAccessingApplication(0..*)
Reference to [ OsApplication ]
OsTaskEventRef(0..*)
This reference defines the list of events the extended task may react on
Reference to [ OsEvent ]
OsTaskResourceRef(0..*)
This reference defines a list of resources accessed by this task
Reference to [ OsResource ]
OsTaskAutostart(0..1)
This container determines whether the task is activated during the system start-up procedure or not for some specific application modes. If the task shall be activated during the system start-up, this container is present and holds the references to the application modes in which the task is auto-started
OsTaskAppModeRef(1..*)
Reference to application modes in which that task is activated on startup of the OS
Reference to [ OsAppMode ]
OsTaskTimingProtection(0..1)
This container contains all parameters regarding timing protection of the task
OsTaskAllInterruptLockBudget(0..1)
This parameter contains the maximum time for which the task is allowed to lock all interrupts (via SuspendAllInterrupts() or DisableAllInterrupts()) (in seconds). dependency: Required for scalability class 2 and 4
EcucFloatParamDef
OsTaskExecutionBudget(0..1)
This parameter contains the maximum allowed execution time of the task (in seconds) dependency: Required for scalability class 2 and 4
EcucFloatParamDef
OsTaskOsInterruptLockBudget(0..1)
This parameter contains the maximum time for which the task is allowed to lock all Category 2 interrupts (via SuspendOSInterrupts()) (in seconds) dependency: Required for scalability class 2 and 4
EcucFloatParamDef
OsTaskTimeFrame(0..1)
The minimum inter-arrival time between activations and/or releases of a task (in seconds). dependency: Required for scalability class 2 and 4
EcucFloatParamDef
OsTaskResourceLock
This container contains the worst case time between getting and releasing a given resource (in seconds)
OsTaskResourceLockBudget
This parameter contains the maximum time the task is allowed to lock the resource (in seconds) dependency: Required for scalability class 2 and 4
EcucFloatParamDef
OsTaskResourceLockResourceRef
Reference to the resource used by the task dependency: Required for scalability class 2 and 4
Reference to [ OsResource ]