atom-1.0.10: A DSL for embedded hard realtime applications.

Language.Atom.Code

Description

Atom C code generation.

Synopsis

Documentation

data Config Source

C code configuration parameters.

Constructors

Config 

Fields

cFuncName :: String

Alternative primary function name. Leave empty to use compile name.

cStateName :: String

Name of state variable structure. Default: state

cCode :: [Name] -> [Name] -> [(Name, Type)] -> (String, String)

Custom C code to insert above and below the functions, given assertion names, coverage names, and probe names and types.

hCode :: [Name] -> [Name] -> [(Name, Type)] -> (String, String)

Custom C code to insert above and below the state definition in the header file, given assertion names, coverage names, and probe names and types.

cRuleCoverage :: Bool

Enable rule coverage tracking.

cAssert :: Bool

Enable assertions and functional coverage.

cAssertName :: String

Name of assertion function. Type: void assert(int, bool, uint64_t);

cCoverName :: String

Name of coverage function. Type: void cover(int, bool, uint64_t);

hardwareClock :: Maybe Clock

Do we use a hardware counter to schedule rules?

data Clock Source

Data associated with sampling a hardware clock. For the clock to work correctly, you MUST assign __global_clock the current time (accoring to clockName) the first time you enter the main Atom-generated function calling your rules.

Constructors

Clock 

Fields

clockName :: String

C function to sample the clock. The funciton is assumed to have the prototype clockType clockName(void).

clockType :: Type

Clock type. Assumed to be one of Word8, Word16, Word32, or Word64. It is permissible for the clock to rollover.

delta :: Integer

Number of ticks in a phase. Must be greater than 0.

delay :: String

C function to delay/sleep. The function is assumed to have the prototype void delay(clockType i), where i is the duration of delay/sleep.

err :: Maybe String

Nothing or a user-defined error-reporting function if the period duration is violated; e.g., the execution time was greater than delta. Assumed to have prototype void err(void).

defaults :: ConfigSource

Default C code configuration parameters (default function name, no pre/post code, ANSI C types).

cType :: Type -> StringSource

C99 type naming rules.