Mapping Model

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

Overview

The Meta Model specifying the Mapping Model is shown below.

MappingModel

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).

Mapping

The Mapping is an abstract class, describing the mapping of parts of the software model to Memory. 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.

AbstractElementMapping

The AbstractElementMapping is a specialization of the Mapping. It is used to associate specializations of the AbstractElementMemoryInformation (i.e. Label, Runnable, TaskPrototype and Process), specified within the software model, with a Memory.

PhysicalSectionMapping

The PhysicalSectionMapping class (can also be called as Physical Memory Section ) describes the following:

Allocation

CoreAllocation

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.

RunnableAllocation

The RunnableAllocation is a specialization of the ExecutableAllocation. It is used to associate a Runnable, specified within an existing software model, with a Scheduler.

ISRAllocation

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.

TaskAllocation

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.