module ti.uia.family.c64p.TimestampC64XLocal

Implementation of ITimestampProvider for the C64X ISA's internal timestamp

Assigning an instance of this module to the ti.uia.runtime.LogSync module's CpuTimestampProxy provides a way for applications to notify System Analyzer about CPU frequency changes, so that multicore event correlation properly accounts for the change in CPU frequency. [ more ... ]
C synopsis target-domain sourced in ti/uia/family/c64p/TimestampC64XLocal.xdc
#include <ti/uia/family/c64p/TimestampC64XLocal.h>
Functions
Void
Void 
Functions common to all ITimestampClient modules
Bits32 
Void 
Void 
Functions common to all target instances
Functions common to all target modules
Typedefs
typedef struct
typedef struct
typedef struct
Constants
extern const Types_FreqHz 
extern const Types_FreqHz 
 
DETAILS
Assigning an instance of this module to the ti.uia.runtime.LogSync module's CpuTimestampProxy provides a way for applications to notify System Analyzer about CPU frequency changes, so that multicore event correlation properly accounts for the change in CPU frequency.
Whenever a SyncPoint event is logged, the LogSync module will use the information stored in this module's Module_state as the CPU clock frequency information.
 
config TimestampC64XLocal_maxBusClockFreq  // module-wide

The highest bus clock frequency used to drive the timer

C synopsis target-domain
extern const Types_FreqHz TimestampC64XLocal_maxBusClockFreq;
 
DETAILS
The default ticks per second rate of the timer is calculated by dividing the timer's bus clock frequency by the cyclesPerTick config parameter.
The default ticks per second rate of the timer is calculated by dividing the timer's bus clock frequency by the cyclesPerTick config parameter. By default, this will be set to the CPU speed defined in the Platform.xdc file that is part of the platform specified in the build settings.
RETURNS
the 32 MSBs of the highest bus clock frequency used to drive the timer.
EXAMPLES
Example: The following is an example of the configuration script used to configure the frequency for a value of 700 MHz:
 var TimestampC64XLocal = xdc.useModule('ti.uia.family.c64p.TimestampC64XLocal');
 TimestampC64XLocal.maxBusClockFreq = {lo:700000000,hi:0};
 
config TimestampC64XLocal_maxTimerClockFreq  // module-wide

The highest timer clock frequency

C synopsis target-domain
extern const Types_FreqHz TimestampC64XLocal_maxTimerClockFreq;
 
DETAILS
The default ticks per second rate of the timer is calculated by dividing the timer's bus clock frequency by the cyclesPerTick config parameter.
The default ticks per second rate of the timer is calculated by dividing the timer's bus clock frequency by the cyclesPerTick config parameter. By default, this will be set to the CPU speed defined in the Platform.xdc file that is part of the platform specified in the build settings.
RETURNS
the 32 LSBs of the highest timer clock frequency (i.e. ticksPerSecond).
EXAMPLES
Example: The following is an example of the configuration script used to configure the frequency for a value of 700 MHz:
 var TimestampC64XLocal = xdc.useModule('ti.uia.family.c64p.TimestampC64XLocal');
 TimestampC64XLocal.maxTimerClockFreq = {lo:700000000,hi:0};
 
TimestampC64XLocal_get32()  // module-wide

Return a 32-bit timestamp

C synopsis target-domain
Bits32 TimestampC64XLocal_get32();
 
RETURNS
Returns a 32-bit timestamp value. Use getFreq to convert this value into units of real time.
Returns a 32-bit timestamp value. Use getFreq to convert this value into units of real time.
SEE
 
TimestampC64XLocal_get64()  // module-wide

Return a 64-bit timestamp

C synopsis target-domain
Void TimestampC64XLocal_get64(Types_Timestamp64 *result);
 
ARGUMENTS
result — pointer to 64-bit result
This parameter is a pointer to a structure representing a 64-bit wide timestamp value where the current timestamp is written.
If the underlying hardware does not support 64-bit resolution, the hi field of result is always set to 0; see xdc.runtime.Types.Timestamp64. So, it is possible for the lo field to wrap around without any change to the hi field. Use getFreq to convert this value into units of real time.
pointer to 64-bit result
This parameter is a pointer to a structure representing a 64-bit wide timestamp value where the current timestamp is written.
If the underlying hardware does not support 64-bit resolution, the hi field of result is always set to 0; see xdc.runtime.Types.Timestamp64. So, it is possible for the lo field to wrap around without any change to the hi field. Use getFreq to convert this value into units of real time.
SEE
 
TimestampC64XLocal_getFreq()  // module-wide

Get the timestamp timer's frequency (in Hz)

C synopsis target-domain
Void TimestampC64XLocal_getFreq(Types_FreqHz *freq);
 
ARGUMENTS
freq — pointer to a 64-bit result
This parameter is a pointer to a structure representing a 64-bit wide frequency value where the timer's frequency (in Hz) is written; see xdc.runtime.Types.FreqHz. This function provides a way of converting timestamp values into units of real time.
pointer to a 64-bit result
This parameter is a pointer to a structure representing a 64-bit wide frequency value where the timer's frequency (in Hz) is written; see xdc.runtime.Types.FreqHz. This function provides a way of converting timestamp values into units of real time.
SEE
 
TimestampC64XLocal_setFreq()  // module-wide

Set the timestamp timer's frequency (in Hz)

C synopsis target-domain
Void TimestampC64XLocal_setFreq(Types_FreqHz *freq);
 
ARGUMENTS
freq — pointer to a 64-bit input value
This parameter is a pointer to a structure representing a 64-bit wide frequency value where the timer's frequency (in Hz) is written; see xdc.runtime.Types.FreqHz. This function provides a way of updating the timestamp data that is logged with a sync point event.
SEE
Module-Wide Built-Ins

C synopsis target-domain
Types_ModuleId TimestampC64XLocal_Module_id();
// Get this module's unique id
 
Bool TimestampC64XLocal_Module_startupDone();
// Test if this module has completed startup
 
IHeap_Handle TimestampC64XLocal_Module_heap();
// The heap from which this module allocates memory
 
Bool TimestampC64XLocal_Module_hasMask();
// Test whether this module has a diagnostics mask
 
Bits16 TimestampC64XLocal_Module_getMask();
// Returns the diagnostics mask for this module
 
Void TimestampC64XLocal_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types

C synopsis target-domain
typedef struct TimestampC64XLocal_Object TimestampC64XLocal_Object;
// Opaque internal representation of an instance object
 
typedef TimestampC64XLocal_Object *TimestampC64XLocal_Handle;
// Client reference to an instance object
 
typedef struct TimestampC64XLocal_Struct TimestampC64XLocal_Struct;
// Opaque client structure large enough to hold an instance object
 
TimestampC64XLocal_Handle TimestampC64XLocal_handle(TimestampC64XLocal_Struct *structP);
// Convert this instance structure pointer into an instance handle
 
TimestampC64XLocal_Struct *TimestampC64XLocal_struct(TimestampC64XLocal_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters

C synopsis target-domain
typedef struct TimestampC64XLocal_Params {
// Instance config-params structure
    IInstance_Params *instance;
    // Common per-instance configs
} TimestampC64XLocal_Params;
 
Void TimestampC64XLocal_Params_init(TimestampC64XLocal_Params *params);
// Initialize this config-params structure with supplier-specified defaults before instance creation
Instance Built-Ins

C synopsis target-domain
Int TimestampC64XLocal_Object_count();
// The number of statically-created instance objects
 
TimestampC64XLocal_Handle TimestampC64XLocal_Object_get(TimestampC64XLocal_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
 
TimestampC64XLocal_Handle TimestampC64XLocal_Object_first();
// The handle of the first dynamically-created instance object, or NULL
 
TimestampC64XLocal_Handle TimestampC64XLocal_Object_next(TimestampC64XLocal_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
 
IHeap_Handle TimestampC64XLocal_Object_heap();
// The heap used to allocate dynamically-created instance objects
 
Types_Label *TimestampC64XLocal_Handle_label(TimestampC64XLocal_Handle handle, Types_Label *buf);
// The label associated with this instance object
 
String TimestampC64XLocal_Handle_name(TimestampC64XLocal_Handle handle);
// The name of this instance object
 
XDCscript usage meta-domain sourced in ti/uia/family/c64p/TimestampC64XLocal.xdc
 
config TimestampC64XLocal.maxBusClockFreq  // module-wide

The highest bus clock frequency used to drive the timer

XDCscript usage meta-domain
TimestampC64XLocal.maxBusClockFreq = Types.FreqHz undefined;
 
DETAILS
The default ticks per second rate of the timer is calculated by dividing the timer's bus clock frequency by the cyclesPerTick config parameter.
The default ticks per second rate of the timer is calculated by dividing the timer's bus clock frequency by the cyclesPerTick config parameter. By default, this will be set to the CPU speed defined in the Platform.xdc file that is part of the platform specified in the build settings.
RETURNS
the 32 MSBs of the highest bus clock frequency used to drive the timer.
EXAMPLES
Example: The following is an example of the configuration script used to configure the frequency for a value of 700 MHz:
 var TimestampC64XLocal = xdc.useModule('ti.uia.family.c64p.TimestampC64XLocal');
 TimestampC64XLocal.maxBusClockFreq = {lo:700000000,hi:0};
C SYNOPSIS
 
config TimestampC64XLocal.maxTimerClockFreq  // module-wide

The highest timer clock frequency

XDCscript usage meta-domain
TimestampC64XLocal.maxTimerClockFreq = Types.FreqHz undefined;
 
DETAILS
The default ticks per second rate of the timer is calculated by dividing the timer's bus clock frequency by the cyclesPerTick config parameter.
The default ticks per second rate of the timer is calculated by dividing the timer's bus clock frequency by the cyclesPerTick config parameter. By default, this will be set to the CPU speed defined in the Platform.xdc file that is part of the platform specified in the build settings.
RETURNS
the 32 LSBs of the highest timer clock frequency (i.e. ticksPerSecond).
EXAMPLES
Example: The following is an example of the configuration script used to configure the frequency for a value of 700 MHz:
 var TimestampC64XLocal = xdc.useModule('ti.uia.family.c64p.TimestampC64XLocal');
 TimestampC64XLocal.maxTimerClockFreq = {lo:700000000,hi:0};
C SYNOPSIS
 
metaonly config TimestampC64XLocal.canCpuCyclesPerTickBeChanged  // module-wide

Indicates whether the timer's cycles per tick divide down ratio can be changed or not

XDCscript usage meta-domain
TimestampC64XLocal.canCpuCyclesPerTickBeChanged = Bool false;
 
RETURNS
true if the timer's CPU cycles per tick can be changed
true if the timer's CPU cycles per tick can be changed
 
metaonly config TimestampC64XLocal.canFrequencyBeChanged  // module-wide

Indicates whether the timer frequency can be changed or not

XDCscript usage meta-domain
TimestampC64XLocal.canFrequencyBeChanged = Bool false;
 
RETURNS
true if the timer's clock frequency can be changed
true if the timer's clock frequency can be changed
 
metaonly config TimestampC64XLocal.common$  // module-wide

Common module configuration parameters

XDCscript usage meta-domain
TimestampC64XLocal.common$ = Types.Common$ undefined;
 
DETAILS
All modules have this configuration parameter. Its name contains the '$' character to ensure it does not conflict with configuration parameters declared by the module. This allows new configuration parameters to be added in the future without any chance of breaking existing modules.
 
metaonly config TimestampC64XLocal.cpuCyclesPerTick  // module-wide

The number of CPU cycles each tick of the timestamp corresponds to

XDCscript usage meta-domain
TimestampC64XLocal.cpuCyclesPerTick = UInt32 1;
 
DETAILS
A value of 0 indicates that no conversion between the timer's tick count and CPU cycles is possible.
A value of 0 indicates that no conversion between the timer's tick count and CPU cycles is possible.
Instance Config Parameters

XDCscript usage meta-domain
var params = new TimestampC64XLocal.Params;
// Instance config-params object
generated on Mon, 28 Jan 2013 17:45:35 GMT