module ti.uia.family.c66.TimestampC66XGlobal

Implementation of ITimestampProvider using the 64b emulation counter in the PLL Ctrl module

C synopsis target-domain sourced in ti/uia/family/c66/TimestampC66XGlobal.xdc
#include <ti/uia/family/c66/TimestampC66XGlobal.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 
extern const UInt32 
 
 
config TimestampC66XGlobal_maxBusClockFreq  // module-wide

The highest bus clock frequency used to drive the timer

C synopsis target-domain
extern const Types_FreqHz TimestampC66XGlobal_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.
By default, the timer's bus clock frequency 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 1.2 GHz:
 var TimestampC66XGlobal = xdc.useModule('ti.uia.family.c66.TimestampC66XGlobal');
 TimestampC66XGlobal.maxTimerClockFreq = {lo:1200000000,hi:0};
 
config TimestampC66XGlobal_maxTimerClockFreq  // module-wide

The highest timer clock frequency

C synopsis target-domain
extern const Types_FreqHz TimestampC66XGlobal_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 1/4 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 200 MHz, and assigns it to the LogSync module so that it can be used to enable multicore event correlation.
 var TimestampC66XGlobal = xdc.useModule('ti.uia.family.c66.TimestampC66XGlobal');
 TimestampC66XGlobal.maxTimerClockFreq = {lo:200000000,hi:0};
 var LogSync = xdc.useModule('ti.uia.runtime.LogSync');
 LogSync.GlobalTimestampProxy = TimestampC66XGlobal;
 
config TimestampC66XGlobal_timerBaseAdrs  // module-wide

Base address of the timer to be used as the global timer that provides a common time reference for all CPUs

C synopsis target-domain
extern const UInt32 TimestampC66XGlobal_timerBaseAdrs;
 
DETAILS
This timer will be used to enable multicore event correlation.
 
TimestampC66XGlobal_get32()  // module-wide

Return a 32-bit timestamp

C synopsis target-domain
Bits32 TimestampC66XGlobal_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
 
TimestampC66XGlobal_get64()  // module-wide

Return a 64-bit timestamp

C synopsis target-domain
Void TimestampC66XGlobal_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
 
TimestampC66XGlobal_getFreq()  // module-wide

Get the timestamp timer's frequency (in Hz)

C synopsis target-domain
Void TimestampC66XGlobal_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
 
TimestampC66XGlobal_setFreq()  // module-wide

Set the timestamp timer's frequency (in Hz)

C synopsis target-domain
Void TimestampC66XGlobal_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 TimestampC66XGlobal_Module_id();
// Get this module's unique id
 
Bool TimestampC66XGlobal_Module_startupDone();
// Test if this module has completed startup
 
IHeap_Handle TimestampC66XGlobal_Module_heap();
// The heap from which this module allocates memory
 
Bool TimestampC66XGlobal_Module_hasMask();
// Test whether this module has a diagnostics mask
 
Bits16 TimestampC66XGlobal_Module_getMask();
// Returns the diagnostics mask for this module
 
Void TimestampC66XGlobal_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
Instance Object Types

C synopsis target-domain
typedef struct TimestampC66XGlobal_Object TimestampC66XGlobal_Object;
// Opaque internal representation of an instance object
 
typedef TimestampC66XGlobal_Object *TimestampC66XGlobal_Handle;
// Client reference to an instance object
 
typedef struct TimestampC66XGlobal_Struct TimestampC66XGlobal_Struct;
// Opaque client structure large enough to hold an instance object
 
TimestampC66XGlobal_Handle TimestampC66XGlobal_handle(TimestampC66XGlobal_Struct *structP);
// Convert this instance structure pointer into an instance handle
 
TimestampC66XGlobal_Struct *TimestampC66XGlobal_struct(TimestampC66XGlobal_Handle handle);
// Convert this instance handle into an instance structure pointer
Instance Config Parameters

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

C synopsis target-domain
Int TimestampC66XGlobal_Object_count();
// The number of statically-created instance objects
 
TimestampC66XGlobal_Handle TimestampC66XGlobal_Object_get(TimestampC66XGlobal_Object *array, Int i);
// The handle of the i-th statically-created instance object (array == NULL)
 
TimestampC66XGlobal_Handle TimestampC66XGlobal_Object_first();
// The handle of the first dynamically-created instance object, or NULL
 
TimestampC66XGlobal_Handle TimestampC66XGlobal_Object_next(TimestampC66XGlobal_Handle handle);
// The handle of the next dynamically-created instance object, or NULL
 
IHeap_Handle TimestampC66XGlobal_Object_heap();
// The heap used to allocate dynamically-created instance objects
 
Types_Label *TimestampC66XGlobal_Handle_label(TimestampC66XGlobal_Handle handle, Types_Label *buf);
// The label associated with this instance object
 
String TimestampC66XGlobal_Handle_name(TimestampC66XGlobal_Handle handle);
// The name of this instance object
 
Configuration settings sourced in ti/uia/family/c66/TimestampC66XGlobal.xdc
 
config TimestampC66XGlobal.maxBusClockFreq  // module-wide

The highest bus clock frequency used to drive the timer

Configuration settings
TimestampC66XGlobal.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.
By default, the timer's bus clock frequency 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 1.2 GHz:
 var TimestampC66XGlobal = xdc.useModule('ti.uia.family.c66.TimestampC66XGlobal');
 TimestampC66XGlobal.maxTimerClockFreq = {lo:1200000000,hi:0};
C SYNOPSIS
 
config TimestampC66XGlobal.maxTimerClockFreq  // module-wide

The highest timer clock frequency

Configuration settings
TimestampC66XGlobal.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 1/4 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 200 MHz, and assigns it to the LogSync module so that it can be used to enable multicore event correlation.
 var TimestampC66XGlobal = xdc.useModule('ti.uia.family.c66.TimestampC66XGlobal');
 TimestampC66XGlobal.maxTimerClockFreq = {lo:200000000,hi:0};
 var LogSync = xdc.useModule('ti.uia.runtime.LogSync');
 LogSync.GlobalTimestampProxy = TimestampC66XGlobal;
C SYNOPSIS
 
config TimestampC66XGlobal.timerBaseAdrs  // module-wide

Base address of the timer to be used as the global timer that provides a common time reference for all CPUs

Configuration settings
TimestampC66XGlobal.timerBaseAdrs = UInt32 0x023101F0;
 
DETAILS
This timer will be used to enable multicore event correlation.
C SYNOPSIS
 
metaonly config TimestampC66XGlobal.canCpuCyclesPerTickBeChanged  // module-wide

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

Configuration settings
TimestampC66XGlobal.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 TimestampC66XGlobal.canFrequencyBeChanged  // module-wide

Indicates whether the timer frequency can be changed or not

Configuration settings
TimestampC66XGlobal.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 TimestampC66XGlobal.common$  // module-wide

Common module configuration parameters

Configuration settings
TimestampC66XGlobal.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 TimestampC66XGlobal.cpuCyclesPerTick  // module-wide

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

Configuration settings
TimestampC66XGlobal.cpuCyclesPerTick = UInt32 4;
 
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

Configuration settings
var params = new TimestampC66XGlobal.Params;
// Instance config-params object
generated on Tue, 14 Feb 2017 00:15:11 GMT