The mapping model is intended to provide tools that use hardware and software models (e.g. code generators) information about the corresponding mappings and allocations. This information contains associations between
The Meta Model specifying the Mapping Model is shown below.
The MappingModel serves as a container for each of the mapping rules, i.e. Allocations (executable software and cores which are allocated to schedulers) and Mappings (labels and software which is mapped to memories).
The MemoryMapping is a class, describing the mapping of parts of the software model to Memory. It is used to associate specializations of the AbstractMemoryElement (i.e. Label, Runnable, TaskPrototype and Process). The target memory is specified by a reference to an explicit Memory within an existing hardware model. The position in memory can also be defined as address here. If the address is a absolute memory address, a offset address from the memories first address, or if the address information is not expected at all is defined by the Memory Address Mapping Type enumeration in the root element of the Mapping Model. The Additional attributes, e.g. to supply further information for a code generator, may be described by the containment attributeList.
The PhysicalSectionMapping class (can also be called as Physical Memory Section ) describes the following:
The CoreAllocation describes the allocation of cores to a Scheduler. This class consists of references to the respective Scheduler, which specified within an existing OS model, and a core, which is specified in a hardware model. Further attributes, which may be used to supply additional information, e.g. for a code generator, may be described by the containment attributeList.
The RunnableAllocation is a specialization of the ExecutableAllocation. It is used to associate a Runnable, specified within an existing software model, with a Scheduler.
The ISRAllocation is used to associate an ISR with an InterruptConroller. The attribute ‘priority’ can be used to assign a value for this specific context. If the value is set, it will be used instead of the default.
The TaskAllocation is used to associate a Task with a TaskScheduler. The attribute ‘priority’ can be used to assign a value for this specific context. If the value is set, it will be used instead of the default.