blob: da4a55543f2b1bd618c724cbb607bf3cad475d17 [file] [log] [blame]
package templates.m2m.hw
import com.google.inject.Inject
import org.eclipse.app4mc.amalthea.model.Cache
import org.eclipse.app4mc.amalthea.model.HwStructure
import org.eclipse.app4mc.amalthea.model.Memory
import templates.AbstractAmaltheaInchronTransformer
class HWStructure_MicroControllerTransformer extends AbstractAmaltheaInchronTransformer{
@Inject MemoryTransformer memoryTransformer
@Inject CacheTransformer cacheTransformer
public def create inchronModelFactory.createCpu createCpu(HwStructure amltHWMicroController){
it.name=amltHWMicroController.name
amltHWMicroController.modules.forEach[
amltHwModule|{
if(amltHwModule instanceof Memory){
it.memories.add(memoryTransformer.createMemory(amltHwModule))
}else if(amltHwModule instanceof Cache){
it.memories.add(cacheTransformer.createCache(amltHwModule))
}
}
]
//creating default memory regions
var inchronRamRegion= inchronModelFactory.createMemoryRegion
inchronRamRegion.name="ram"
inchronRamRegion.base= 16777216
inchronRamRegion.sections="data:bss:stack:heap"
inchronRamRegion.pages=1
inchronRamRegion.flags=290
var inchronRomRegion= inchronModelFactory.createMemoryRegion
inchronRomRegion.name="rom"
inchronRomRegion.base= 33554432
inchronRomRegion.sections="text"
inchronRomRegion.pages=1
inchronRomRegion.flags=275
it.memoryRegions.add(inchronRamRegion)
it.memoryRegions.add(inchronRomRegion)
}
}