interface ti.uia.runtime.IUIATimestampProvider

UIA timestamp provider interface

This interface is implemented by platform-specific modules that "provide" underlying timestamp services that allow 64b timestamp values to be read directly into event parameters. [ more ... ]
XDCspec summary sourced in ti/uia/runtime/IUIATimestampProvider.xdc
interface IUIATimestampProvider {  ...
    // inherits xdc.runtime.ITimestampClient
        // inherits xdc.runtime.IModule
XDCspec declarations sourced in ti/uia/runtime/IUIATimestampProvider.xdc
DETAILS
This interface is implemented by platform-specific modules that "provide" underlying timestamp services that allow 64b timestamp values to be read directly into event parameters.
Note that the implementation is typically not thread safe - it is up to the caller to ensure that the get64() API is protected from preemption by another thread or another CPU core in order to ensure that a coherent 64b result is returned. For timers that are a shared resource, some form of system-level lock (e.g. Lampart's bakery algorithm, spinlock or Peterson lock) or IPC round-robin mechanism may be required in order to ensure that there are no race conditions.
 
config IUIATimestampProvider.maxBusClockFreq  // module-wide

The highest bus clock frequency used to drive the timer

XDCspec declarations sourced in ti/uia/runtime/IUIATimestampProvider.xdc
config Types.FreqHz 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.
RETURNS
the 32 MSBs of the highest bus clock frequency used to drive the timer.
 
config IUIATimestampProvider.maxTimerClockFreq  // module-wide

The highest timer clock frequency

XDCspec declarations sourced in ti/uia/runtime/IUIATimestampProvider.xdc
config Types.FreqHz 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.
RETURNS
the 32 LSBs of the highest timer clock frequency (i.e. ticksPerSecond).
 
metaonly config IUIATimestampProvider.canCpuCyclesPerTickBeChanged  // module-wide

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

XDCspec declarations sourced in ti/uia/runtime/IUIATimestampProvider.xdc
metaonly config Bool canCpuCyclesPerTickBeChanged = false;
 
RETURNS
true if the timer's CPU cycles per tick can be changed
 
metaonly config IUIATimestampProvider.canFrequencyBeChanged  // module-wide

Indicates whether the timer frequency can be changed or not

XDCspec declarations sourced in ti/uia/runtime/IUIATimestampProvider.xdc
metaonly config Bool canFrequencyBeChanged = false;
 
RETURNS
true if the timer's clock frequency can be changed
 
metaonly config IUIATimestampProvider.common$  // module-wide

Common module configuration parameters

XDCspec declarations sourced in ti/uia/runtime/IUIATimestampProvider.xdc
metaonly config Types.Common$ common$;
 
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 IUIATimestampProvider.cpuCyclesPerTick  // module-wide

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

XDCspec declarations sourced in ti/uia/runtime/IUIATimestampProvider.xdc
metaonly config UInt32 cpuCyclesPerTick = 0;
 
DETAILS
A value of 0 indicates that no conversion between the timer's tick count and CPU cycles is possible.
 
IUIATimestampProvider.get32()  // module-wide

Return a 32-bit timestamp

XDCspec declarations sourced in ti/uia/runtime/IUIATimestampProvider.xdc
Bits32 get32();
 
RETURNS
Returns a 32-bit timestamp value. Use getFreq to convert this value into units of real time.
SEE
 
IUIATimestampProvider.get64()  // module-wide

Return a 64-bit timestamp

XDCspec declarations sourced in ti/uia/runtime/IUIATimestampProvider.xdc
Void 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.
SEE
 
IUIATimestampProvider.getFreq()  // module-wide

Get the timestamp timer's frequency (in Hz)

XDCspec declarations sourced in ti/uia/runtime/IUIATimestampProvider.xdc
Void 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.
SEE
generated on Tue, 14 Feb 2017 00:15:15 GMT