The timestamp counters used in Ducati are CTM counters 2,3,4,5.
Each core uses two counters in chained mode to achieve 64 bits.
Core 0 uses counters 2,3.
Core 1 uses counters 4,5.
Which ever core is started first will start both sets of counters
synchronously so that both cores effectively share a common timestamp.
By default, the CTM counters are clocked at 2 times the CPU clock.
[
more ... ]
The timestamp counters used in Ducati are CTM counters 2,3,4,5.
Each core uses two counters in chained mode to achieve 64 bits.
Core 0 uses counters 2,3.
Core 1 uses counters 4,5.
Which ever core is started first will start both sets of counters
synchronously so that both cores effectively share a common timestamp.
By default, the CTM counters are clocked at 2 times the CPU clock.
config TimestampProvider_inpsel // module-wide |
|
Counter Input Select. The default value of 0 selects the
2x CPU clock as the clock source for the timestamp counters
extern const UInt8 TimestampProvider_inpsel;
DETAILS
See Table 28-22 of the OMAP4430 TRM for details of the
various events that can be counted.
1 Cache locks
2 Cache line replacements
3 Cache evictions
4 Cache maintenance operations (slave 0)
5 Cache maintenance operations (slave 1)
6 Cache maintenance operations (slave 2)
7 Cache maintenance operations (slave 3)
8 Cache OCP access (slave 0)
9 Cache OCP access (slave 1)
10 Cache OCP access (slave 2)
11 Cache OCP access (slave 3)
12 Cacheable access (slave 0)
13 Cacheable access (slave 1)
14 Cacheable access (slave 2)
15 Cacheable access (slave 3)
16 Cache bank conflicts (slave 0)
17 Cache bank conflicts (slave 1)
18 Cache bank conflicts (slave 2)
19 Cache bank conflicts (slave 3)
20 Cache allocations
21 Cache write buffer accesses (slave 0)
22 Cache write buffer accesses (slave 1)
23 Cache write buffer accesses (slave 2)
24 Cache write buffer accesses (slave 3)
25 Cache line fills (slave 0)
26 Cache line fills (slave 1)
27 Cache line fills (slave 2)
28 Cache line fills (slave 3)
29 Cache write fills (slave 0)
30 Cache write fills (slave 1)
31 Cache write fills (slave 2)
32 Cache write fills (slave 3)
33 Cache read fills (slave 0)
34 Cache read fills (slave 1)
35 Cache read fills (slave 2)
36 Cache read fills (slave 3)
37 Cache misses (slave 0)
38 Cache misses (slave 1)
39 Cache misses (slave 2)
40 Cache misses (slave 3)
41 Cache hits (slave 0)
42 Cache hits (slave 1)
43 Cache hits (slave 2)
44 Cache hits (slave 3)
45 Cortex-M3 ISS CTL deep sleep
46 Cortex-M3 ISS CTL sleep
47 Cortex-M3 RTOS deep sleep
48 Cortex-M3 RTOS sleep
TimestampProvider_get32() // module-wide |
|
Return a 32-bit timestamp
Bits32 TimestampProvider_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
TimestampProvider_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.
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
TimestampProvider_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.
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
Module-Wide Built-Ins |
|
// Get this module's unique id
Bool TimestampProvider_Module_startupDone();
// Test if this module has completed startup
// The heap from which this module allocates memory
Bool TimestampProvider_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 TimestampProvider_Module_getMask();
// Returns the diagnostics mask for this module
Void TimestampProvider_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module