Class PtidesPreemptiveEDFDirector
- java.lang.Object
-
- ptolemy.kernel.util.NamedObj
-
- ptolemy.cg.kernel.generic.CodeGeneratorAdapter
-
- ptolemy.cg.kernel.generic.program.ProgramCodeGeneratorAdapter
-
- ptolemy.cg.kernel.generic.program.NamedProgramCodeGeneratorAdapter
-
- ptolemy.cg.adapter.generic.adapters.ptolemy.actor.Director
-
- ptolemy.cg.adapter.generic.program.procedural.c.adapters.ptolemy.domains.ptides.kernel.PtidesPreemptiveEDFDirector
-
- ptolemy.cg.adapter.generic.program.procedural.c.xmos.adapters.ptolemy.domains.ptides.kernel.PtidesPreemptiveEDFDirector
-
- All Implemented Interfaces:
java.lang.Cloneable,Changeable,Debuggable,DebugListener,Derivable,ModelErrorHandler,MoMLExportable,Moveable,Nameable
public class PtidesPreemptiveEDFDirector extends PtidesPreemptiveEDFDirector
Code generator adapter associated with the PtidesPreemptiveEDFDirector class. This adapter generates XMOS specific code. FIXME: add renesas code- Since:
- Ptolemy II 10.0
- Version:
- $Id$
- Author:
- Patricia Derler
- Pt.AcceptedRating:
- red (derler)
- Pt.ProposedRating:
- red (derler)
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class ptolemy.cg.kernel.generic.program.NamedProgramCodeGeneratorAdapter
NamedProgramCodeGeneratorAdapter.VariableScope
-
Nested classes/interfaces inherited from class ptolemy.cg.kernel.generic.program.ProgramCodeGeneratorAdapter
ProgramCodeGeneratorAdapter.Channel
-
Nested classes/interfaces inherited from class ptolemy.kernel.util.NamedObj
NamedObj.ContainedObjectsIterator
-
-
Field Summary
-
Fields inherited from class ptolemy.cg.adapter.generic.program.procedural.c.adapters.ptolemy.domains.ptides.kernel.PtidesPreemptiveEDFDirector
actuators, sensors
-
Fields inherited from class ptolemy.cg.kernel.generic.program.ProgramCodeGeneratorAdapter
_component, _defaultBlocks, _eol, _templateParser
-
Fields inherited from class ptolemy.kernel.util.NamedObj
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _deferChangeRequests, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
-
-
Constructor Summary
Constructors Constructor Description PtidesPreemptiveEDFDirector(PtidesDirector ptidesPreemptiveEDFDirector)Construct the code generator adapter associated with the given PtidesDirector.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.String_generateActorFireCode()Fire methods for each actor.protected java.lang.String_generateInitializeHardwareCode()Generate the initialization code for any hardware component that is used.protected java.lang.String_generateSensorFuncProtoCode()Generate the function prototype.java.util.Map<java.lang.String,java.lang.String>generateAdditionalCodeFiles()Generate the assembly file associated for this PtidyOS program.java.lang.StringgenerateFireCode()Generate the director fire code.java.lang.StringgenerateFireFunctionCode()Generate the fire function code.java.lang.StringgenerateInitializeCode()Generate the initialize code.java.lang.StringgeneratePreinitializeCode()Generate the preinitialize code for the associated Ptides director.java.lang.StringgenerateVariableInitialization()Generate variable initialization for the referenced parameters.java.util.SetgetSharedCode()Generate the shared code.-
Methods inherited from class ptolemy.cg.adapter.generic.program.procedural.c.adapters.ptolemy.domains.ptides.kernel.PtidesPreemptiveEDFDirector
_generateActorFuncProtoCode, _generateActuatorActuationFuncArrayCode, _generateActuatorActuationFuncProtoCode, _generateClearEventHeadCode, _generateDirectorHeader, _generatePtrToEventHeadCodeInputs, _generateTypeConvertStatement, _modelStaticAnalysis, generateMainLoop, generateTransferInputsCode, generateTransferOutputsCode, generateTypeConvertFireCode, generateVariableDeclaration
-
Methods inherited from class ptolemy.cg.adapter.generic.adapters.ptolemy.actor.Director
_ceilToPowerOfTwo, _generateVariableDeclaration, _generateVariableInitialization, _getParameter, generateCodeForGet, generateCodeForSend, generateConstructorCode, generateModeTransitionCode, generatePostfireCode, generatePreinitializeMethodBodyCode, generateTransferInputsCode, generateTransferOutputsCode, generateVariableDeclaration, generateVariableInitialization, generateWrapupCode, getComponent, getIncludeDirectories, getLibraries, getLibraryDirectories, getModifiedVariables, getParameter, getReference
-
Methods inherited from class ptolemy.cg.kernel.generic.program.NamedProgramCodeGeneratorAdapter
_generateFireCode, analyzeTypeConvert, copyFilesToCodeDirectory, generatePrefireCode, generateSimpleName, generateTypeConvertFireCode, getAddTimeString, getBufferSize, getBufferSize, getDeclareSharedCode, getDefaultBlocks, getFireFunctionParameters, getHeaderFiles, getName, getParameterValue, getReference, getReference, getSinkChannels, getSourceTimeString, getTimeSourcePortName, getTypeConvertChannels, getTypeConvertReference, getTypeConvertSinkChannels, setupAdapter, targetType
-
Methods inherited from class ptolemy.cg.kernel.generic.program.ProgramCodeGeneratorAdapter
_generateBlockByName, getAdapter, getCodeGenerator, getTemplateParser, processCode, setCodeGenerator, setTemplateParser, toString
-
Methods inherited from class ptolemy.cg.kernel.generic.CodeGeneratorAdapter
createDecoratorAttributes, generateName
-
Methods inherited from class ptolemy.kernel.util.NamedObj
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _containedDecorators, _copyChangeRequestList, _debug, _debug, _debug, _debug, _debug, _description, _executeChangeRequests, _exportMoMLContents, _getContainedObject, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _notifyHierarchyListenersAfterChange, _notifyHierarchyListenersBeforeChange, _propagateExistence, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, _validateSettables, addChangeListener, addDebugListener, addHierarchyListener, attributeChanged, attributeDeleted, attributeList, attributeList, attributeTypeChanged, clone, clone, containedObjectsIterator, decorators, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttribute, getAttributes, getChangeListeners, getClassName, getContainer, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getElementName, getFullName, getModelErrorHandler, getName, getPrototypeList, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, notifyOfNameChange, propagateExistence, propagateValue, propagateValues, removeAttribute, removeChangeListener, removeDebugListener, removeHierarchyListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setName, setPersistent, setSource, sortContainedObjects, toplevel, uniqueName, validateSettables, workspace
-
-
-
-
Constructor Detail
-
PtidesPreemptiveEDFDirector
public PtidesPreemptiveEDFDirector(PtidesDirector ptidesPreemptiveEDFDirector)
Construct the code generator adapter associated with the given PtidesDirector.- Parameters:
ptidesPreemptiveEDFDirector- The associated director ptolemy.domains.ptides.kernel.PtidesDirector
-
-
Method Detail
-
generateAdditionalCodeFiles
public java.util.Map<java.lang.String,java.lang.String> generateAdditionalCodeFiles() throws IllegalActionExceptionGenerate the assembly file associated for this PtidyOS program.- Overrides:
generateAdditionalCodeFilesin classPtidesPreemptiveEDFDirector- Returns:
- The generated assembly file code.
- Throws:
IllegalActionException- If thrown while generating the XC file.
-
generateFireCode
public java.lang.String generateFireCode() throws IllegalActionExceptionGenerate the director fire code. The code creates a new task for each actor according to their specified parameters (e.g. stack depth, priority, and etc.). The code also initiates the task scheduler.- Overrides:
generateFireCodein classDirector- Returns:
- The generated fire code.
- Throws:
IllegalActionException- Not thrown in this class.
-
generateFireFunctionCode
public java.lang.String generateFireFunctionCode() throws IllegalActionExceptionGenerate the fire function code. The code contains the function code for each actor. It is a collection of global functions, one for each actor that is visible to this director adapter. Creating each new task requires one of these function as parameter. It is the code that the task executes. When the inline parameter is checked, the task function code is generated ingeneratePreinitializeCode()which is outside the main function.- Overrides:
generateFireFunctionCodein classDirector- Returns:
- The fire function code.
- Throws:
IllegalActionException- If there is an exception in generating the task function code.
-
generateInitializeCode
public java.lang.String generateInitializeCode() throws IllegalActionExceptionGenerate the initialize code. This generates the hardware initialization code and creates the queues for all referrable port channels.- Overrides:
generateInitializeCodein classPtidesPreemptiveEDFDirector- Returns:
- The generated initialize code.
- Throws:
IllegalActionException- If the adapter associated with an actor throws it while generating initialize code for the actor.
-
generatePreinitializeCode
public java.lang.String generatePreinitializeCode() throws IllegalActionExceptionGenerate the preinitialize code for the associated Ptides director.- Overrides:
generatePreinitializeCodein classPtidesPreemptiveEDFDirector- Returns:
- The generated preinitialize code.
- Throws:
IllegalActionException- If the adapter associated with an actor throws it while generating preinitialize code for the actor. FIXME: Take care of platform dependent code.
-
generateVariableInitialization
public java.lang.String generateVariableInitialization() throws IllegalActionExceptionGenerate variable initialization for the referenced parameters. This overrides the super class method and returns an empty string. It avoids generating any offset variables.- Overrides:
generateVariableInitializationin classDirector- Returns:
- code The empty string.
- Throws:
IllegalActionException- Not thrown in this class.
-
getSharedCode
public java.util.Set getSharedCode() throws IllegalActionExceptionGenerate the shared code. This is the first generate method invoked out of all, so any initialization of variables of this adapter should be done in this method. In this base class, return an empty set. Subclasses may generate code for variable declaration, defining constants, etc.- Overrides:
getSharedCodein classPtidesPreemptiveEDFDirector- Returns:
- An empty set in this base class.
- Throws:
IllegalActionException- Not thrown in this base class.
-
_generateActorFireCode
public java.lang.String _generateActorFireCode() throws IllegalActionExceptionFire methods for each actor.- Overrides:
_generateActorFireCodein classPtidesPreemptiveEDFDirector- Returns:
- fire methods for each actor
- Throws:
IllegalActionException- If thrown when getting the port's adapter.
-
_generateInitializeHardwareCode
protected java.lang.String _generateInitializeHardwareCode() throws IllegalActionExceptionGenerate the initialization code for any hardware component that is used.- Returns:
- code initialization code for hardware peripherals
- Throws:
IllegalActionException- If thrown by the super class.
-
_generateSensorFuncProtoCode
protected java.lang.String _generateSensorFuncProtoCode()
Generate the function prototype.- Returns:
- The function prototype.
-
-