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
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
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
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
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
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
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
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
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)
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