module ti.sysbios.family.arm.ducati.TimestampProvider

Ducati Cortex M3 TimestampProvider delegate for use with xdc.runtime.Timestamp

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 ... ]
C synopsis target-domain sourced in ti/sysbios/family/arm/ducati/TimestampProvider.xdc
DETAILS
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.

Calling Context

Function Hwi Swi Task Main** Startup***
get32 Y Y Y Y N
get64 Y Y Y Y N
getFreq Y Y Y Y N
 
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

C synopsis target-domain
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

C synopsis target-domain
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

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

Get the timestamp timer's frequency (in Hz)

C synopsis target-domain
Void TimestampProvider_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
Module-Wide Built-Ins

C synopsis target-domain
Types_ModuleId TimestampProvider_Module_id();
// Get this module's unique id
 
Bool TimestampProvider_Module_startupDone();
// Test if this module has completed startup
 
IHeap_Handle TimestampProvider_Module_heap();
// 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
 
Configuration settings sourced in ti/sysbios/family/arm/ducati/TimestampProvider.xdc
 
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

Configuration settings
TimestampProvider.inpsel = UInt8 0;
 
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
C SYNOPSIS
 
metaonly config TimestampProvider.common$  // module-wide

Common module configuration parameters

Configuration settings
TimestampProvider.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 TimestampProvider.rovViewInfo  // module-wide
Configuration settings
TimestampProvider.rovViewInfo = ViewInfo.Instance ViewInfo.create;
 
generated on Tue, 09 Oct 2018 20:57:47 GMT