enum TimestampDM816XTimer_BaseAdrs |
 |
Enumeration that defines the base addresses for each timer instance
of the DM8168 device
typedef enum TimestampDM816XTimer_BaseAdrs {
TimestampDM816XTimer_BaseAdrs_ARM_Timer4,
TimestampDM816XTimer_BaseAdrs_ARM_Timer5,
TimestampDM816XTimer_BaseAdrs_ARM_Timer6,
TimestampDM816XTimer_BaseAdrs_ARM_Timer7,
TimestampDM816XTimer_BaseAdrs_C6000_Timer4,
TimestampDM816XTimer_BaseAdrs_C6000_Timer5,
TimestampDM816XTimer_BaseAdrs_C6000_Timer6,
TimestampDM816XTimer_BaseAdrs_C6000_Timer7
} TimestampDM816XTimer_BaseAdrs;
enum TimestampDM816XTimer_PrcmClkMuxBaseAdrs |
 |
PRCM CM_TIMERX_CLKSEL Timer clock mux select line
typedef enum TimestampDM816XTimer_PrcmClkMuxBaseAdrs {
TimestampDM816XTimer_PrcmClkMuxBaseAdrs_Timer4,
TimestampDM816XTimer_PrcmClkMuxBaseAdrs_Timer5,
TimestampDM816XTimer_PrcmClkMuxBaseAdrs_Timer6,
TimestampDM816XTimer_PrcmClkMuxBaseAdrs_Timer7
} TimestampDM816XTimer_PrcmClkMuxBaseAdrs;
DETAILS
The following enum provides the physical
addresses of the PRCM Clock Mux register
used for Timers 4,5,6 and 7.
If the virtual address of the register
is not the same as the physical address,
AND the autostart config option is true,
the prcmClkMuxBaseAdrs must be configured
with the virtual address of the register.
enum TimestampDM816XTimer_TimerInstance |
 |
typedef enum TimestampDM816XTimer_TimerInstance {
TimestampDM816XTimer_TimerInstance_UserConfigured,
TimestampDM816XTimer_TimerInstance_Timer4,
TimestampDM816XTimer_TimerInstance_Timer5,
TimestampDM816XTimer_TimerInstance_Timer6,
TimestampDM816XTimer_TimerInstance_Timer7
} TimestampDM816XTimer_TimerInstance;
struct TimestampDM816XTimer_Tclr |
 |
Timer Control Register (TCLR)
typedef struct TimestampDM816XTimer_Tclr {
Bits32 ptv;
// Trigger output mode
Bits8 pre;
// Prescalar enable
Bits8 ce;
// Compare enable
Bits8 scpwm;
// Pulse-width modulation
Bits16 tcm;
// Transition capture mode
Bits16 trg;
// Trigger output mode
Bits8 pt;
// Pulse or toggle select bit
Bits8 captmode;
// Capture mode select bit
Bits8 gpocfg;
// PWM output/event detection input pin
} TimestampDM816XTimer_Tclr;
struct TimestampDM816XTimer_Tier |
 |
Timer IRQENABLE CLR (IRQENABLE_CLR)
typedef struct TimestampDM816XTimer_Tier {
Bits8 mat_it_ena;
// Enable match interrupt
Bits8 ovf_it_ena;
// Enable overflow interrupt
Bits8 tcar_it_ena;
// Enable capture interrupt
} TimestampDM816XTimer_Tier;
struct TimestampDM816XTimer_TiocpCfg |
 |
Timer OCP Configuration Register (TIOCP_CFG) - L4 interface Configuration
typedef struct TimestampDM816XTimer_TiocpCfg {
Bits8 idlemode;
// 0=force-idle;1=no-idle;2=Smart-idle;3=Smart-idle
Bits8 emufree;
// 0=counter frozen; 1=counter free-running
Bits8 softreset;
// 0=normal mode; 1=soft reset
} TimestampDM816XTimer_TiocpCfg;
struct TimestampDM816XTimer_Tsicr |
 |
L4 Interface Synchronization Control Register (TSICR)
typedef struct TimestampDM816XTimer_Tsicr {
Bits8 sft;
// Reset software functional registers
Bits8 posted;
// Posted mode selection
} TimestampDM816XTimer_Tsicr;
struct TimestampDM816XTimer_Twer |
 |
Timer IRQ WAKEUP ENABLE (IRQWAKEEN)
typedef struct TimestampDM816XTimer_Twer {
Bits8 mat_wup_ena;
// Enable match wake-up
Bits8 ovf_wup_ena;
// Enable overflow wake-up
Bits8 tcar_wup_ena;
// Enable capture wake-up
} TimestampDM816XTimer_Twer;
config TimestampDM816XTimer_autoStart // module-wide |
 |
Controls whether the module initializes the timer or not
extern const Bool TimestampDM816XTimer_autoStart;
DETAILS
Must be set to true for one and only one CPU in the device
config TimestampDM816XTimer_maxBusClockFreq // module-wide |
 |
The highest bus clock frequency used to drive the timer
extern const Types_FreqHz TimestampDM816XTimer_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.
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 TimestampDM816XTimer_maxTimerClockFreq // module-wide |
 |
The highest timer clock frequency
extern const Types_FreqHz TimestampDM816XTimer_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.
RETURNS
the 32 LSBs of the highest timer clock frequency
(i.e. ticksPerSecond).
config TimestampDM816XTimer_prcmClkMuxBaseAdrs // module-wide |
 |
Base address of the PRCM register used to select the timer clock source
extern const Ptr TimestampDM816XTimer_prcmClkMuxBaseAdrs;
DETAILS
If the virtual address of the register is not the same as the
physical address, AND the autostart config option is true,
the prcmClkMuxBaseAdrs must be configured with the virtual
address of the register. Otherwise set to null to allow
module to automatically use the physical address for the
specified timer.
config TimestampDM816XTimer_prcmClkMuxInitValue // module-wide |
 |
Value to write into the prcmClkMux register in order to configure timer clock
extern const Int TimestampDM816XTimer_prcmClkMuxInitValue;
DETAILS
If autoStart is TRUE and prcmClkMuxBaseAdrs is not null
OR timerNumber is set to a value other than UserConfigured
the module will writh the prcmClkMuxInitValue into the
PRCM clock mux register upon startup.
By default, the value written, sets CLKSEL to SYS_CLK (b24 = 0) and sets
MODULEMODE to 2 (Module is enabled).
config TimestampDM816XTimer_tclr // module-wide |
 |
config TimestampDM816XTimer_tier // module-wide |
 |
config TimestampDM816XTimer_timerBaseAdrs // module-wide |
 |
Base address of the timer to be used as the global timer
extern const Ptr TimestampDM816XTimer_timerBaseAdrs;
DETAILS
If the virtual address of the timer is not the same as the
physical address, AND the autostart config option is true,
the timerBaseAdrs must be configured with the virtual
address of the timer. Otherwise set to null to allow
module to automatically use the physical address for the
specified timer.
config TimestampDM816XTimer_timerNumber // module-wide |
 |
Number of the timer to use as the global timer
DETAILS
The global timer provides a common time reference for all CPUs.
This configuration parameter specifies which timer to use
as the global timer. All CPUs on the device must be
configured to use the same timer as the global timer.
Must be a value of TimerInstance_Timer4,5,6,7 or
TimerInstance_UserConfigured.
If configured as TimerInstance_UserConfigured, then
the module's timerBaseAdrs must be configured with
the timer's virtual address and the module's
prcmClkMuxBaseAdrs must be configured with the
PRCM clock mux register's virtual address.
Note: Timers 0-2 are reserved for Linux.
Timer 3 is reserved for the DSP.
config TimestampDM816XTimer_tiocpCfg // module-wide |
 |
config TimestampDM816XTimer_tsicr // module-wide |
 |
Default value of tsicr to use when configuring the timer
DETAILS
Only used if autoStart is true
config TimestampDM816XTimer_twer // module-wide |
 |
TimestampDM816XTimer_get32() // module-wide |
 |
Return a 32-bit timestamp
Bits32 TimestampDM816XTimer_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
TimestampDM816XTimer_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
TimestampDM816XTimer_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
TimestampDM816XTimer_setMSW() // module-wide |
 |
Void TimestampDM816XTimer_setMSW(Int value);
Module-Wide Built-Ins |
 |
// Get this module's unique id
Bool TimestampDM816XTimer_Module_startupDone();
// Test if this module has completed startup
// The heap from which this module allocates memory
Bool TimestampDM816XTimer_Module_hasMask();
// Test whether this module has a diagnostics mask
Bits16 TimestampDM816XTimer_Module_getMask();
// Returns the diagnostics mask for this module
Void TimestampDM816XTimer_Module_setMask(Bits16 mask);
// Set the diagnostics mask for this module
enum TimestampDM816XTimer.BaseAdrs |
 |
Enumeration that defines the base addresses for each timer instance
of the DM8168 device
values of type TimestampDM816XTimer.BaseAdrs
const TimestampDM816XTimer.BaseAdrs_ARM_Timer4;
const TimestampDM816XTimer.BaseAdrs_ARM_Timer5;
const TimestampDM816XTimer.BaseAdrs_ARM_Timer6;
const TimestampDM816XTimer.BaseAdrs_ARM_Timer7;
const TimestampDM816XTimer.BaseAdrs_C6000_Timer4;
const TimestampDM816XTimer.BaseAdrs_C6000_Timer5;
const TimestampDM816XTimer.BaseAdrs_C6000_Timer6;
const TimestampDM816XTimer.BaseAdrs_C6000_Timer7;
C SYNOPSIS
enum TimestampDM816XTimer.PrcmClkMuxBaseAdrs |
 |
PRCM CM_TIMERX_CLKSEL Timer clock mux select line
values of type TimestampDM816XTimer.PrcmClkMuxBaseAdrs
const TimestampDM816XTimer.PrcmClkMuxBaseAdrs_Timer4;
const TimestampDM816XTimer.PrcmClkMuxBaseAdrs_Timer5;
const TimestampDM816XTimer.PrcmClkMuxBaseAdrs_Timer6;
const TimestampDM816XTimer.PrcmClkMuxBaseAdrs_Timer7;
DETAILS
The following enum provides the physical
addresses of the PRCM Clock Mux register
used for Timers 4,5,6 and 7.
If the virtual address of the register
is not the same as the physical address,
AND the autostart config option is true,
the prcmClkMuxBaseAdrs must be configured
with the virtual address of the register.
C SYNOPSIS
enum TimestampDM816XTimer.TimerInstance |
 |
values of type TimestampDM816XTimer.TimerInstance
const TimestampDM816XTimer.TimerInstance_UserConfigured;
const TimestampDM816XTimer.TimerInstance_Timer4;
const TimestampDM816XTimer.TimerInstance_Timer5;
const TimestampDM816XTimer.TimerInstance_Timer6;
const TimestampDM816XTimer.TimerInstance_Timer7;
C SYNOPSIS
struct TimestampDM816XTimer.Tclr |
 |
Timer Control Register (TCLR)
var obj = new TimestampDM816XTimer.Tclr;
obj.ptv = Bits32 ...
// Trigger output mode
obj.pre = Bits8 ...
// Prescalar enable
obj.ce = Bits8 ...
// Compare enable
obj.scpwm = Bits8 ...
// Pulse-width modulation
obj.tcm = Bits16 ...
// Transition capture mode
obj.trg = Bits16 ...
// Trigger output mode
obj.pt = Bits8 ...
// Pulse or toggle select bit
obj.captmode = Bits8 ...
// Capture mode select bit
obj.gpocfg = Bits8 ...
// PWM output/event detection input pin
C SYNOPSIS
struct TimestampDM816XTimer.Tier |
 |
Timer IRQENABLE CLR (IRQENABLE_CLR)
var obj = new TimestampDM816XTimer.Tier;
obj.mat_it_ena = Bits8 ...
// Enable match interrupt
obj.ovf_it_ena = Bits8 ...
// Enable overflow interrupt
obj.tcar_it_ena = Bits8 ...
// Enable capture interrupt
C SYNOPSIS
struct TimestampDM816XTimer.TiocpCfg |
 |
Timer OCP Configuration Register (TIOCP_CFG) - L4 interface Configuration
var obj = new TimestampDM816XTimer.TiocpCfg;
obj.idlemode = Bits8 ...
// 0=force-idle;1=no-idle;2=Smart-idle;3=Smart-idle
obj.emufree = Bits8 ...
// 0=counter frozen; 1=counter free-running
obj.softreset = Bits8 ...
// 0=normal mode; 1=soft reset
C SYNOPSIS
struct TimestampDM816XTimer.Tsicr |
 |
L4 Interface Synchronization Control Register (TSICR)
var obj = new TimestampDM816XTimer.Tsicr;
obj.sft = Bits8 ...
// Reset software functional registers
obj.posted = Bits8 ...
// Posted mode selection
C SYNOPSIS
struct TimestampDM816XTimer.Twer |
 |
Timer IRQ WAKEUP ENABLE (IRQWAKEEN)
var obj = new TimestampDM816XTimer.Twer;
obj.mat_wup_ena = Bits8 ...
// Enable match wake-up
obj.ovf_wup_ena = Bits8 ...
// Enable overflow wake-up
obj.tcar_wup_ena = Bits8 ...
// Enable capture wake-up
C SYNOPSIS
config TimestampDM816XTimer.autoStart // module-wide |
 |
Controls whether the module initializes the timer or not
TimestampDM816XTimer.autoStart = Bool false;
DETAILS
Must be set to true for one and only one CPU in the device
C SYNOPSIS
config TimestampDM816XTimer.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.
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.
C SYNOPSIS
config TimestampDM816XTimer.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.
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).
C SYNOPSIS
config TimestampDM816XTimer.prcmClkMuxBaseAdrs // module-wide |
 |
Base address of the PRCM register used to select the timer clock source
TimestampDM816XTimer.prcmClkMuxBaseAdrs = Ptr null;
DETAILS
If the virtual address of the register is not the same as the
physical address, AND the autostart config option is true,
the prcmClkMuxBaseAdrs must be configured with the virtual
address of the register. Otherwise set to null to allow
module to automatically use the physical address for the
specified timer.
C SYNOPSIS
config TimestampDM816XTimer.prcmClkMuxInitValue // module-wide |
 |
Value to write into the prcmClkMux register in order to configure timer clock
TimestampDM816XTimer.prcmClkMuxInitValue = Int 0x0000002;
DETAILS
If autoStart is TRUE and prcmClkMuxBaseAdrs is not null
OR timerNumber is set to a value other than UserConfigured
the module will writh the prcmClkMuxInitValue into the
PRCM clock mux register upon startup.
By default, the value written, sets CLKSEL to SYS_CLK (b24 = 0) and sets
MODULEMODE to 2 (Module is enabled).
C SYNOPSIS
config TimestampDM816XTimer.tclr // module-wide |
 |
ptv: 0,
pre: 0,
ce: 0,
scpwm: 0,
tcm: 0,
trg: 0,
pt: 0,
captmode: 0,
gpocfg: 0
};
C SYNOPSIS
config TimestampDM816XTimer.tier // module-wide |
 |
mat_it_ena: 0,
ovf_it_ena: 1,
tcar_it_ena: 0
};
C SYNOPSIS
config TimestampDM816XTimer.timerBaseAdrs // module-wide |
 |
Base address of the timer to be used as the global timer
TimestampDM816XTimer.timerBaseAdrs = Ptr null;
DETAILS
If the virtual address of the timer is not the same as the
physical address, AND the autostart config option is true,
the timerBaseAdrs must be configured with the virtual
address of the timer. Otherwise set to null to allow
module to automatically use the physical address for the
specified timer.
C SYNOPSIS
config TimestampDM816XTimer.timerNumber // module-wide |
 |
Number of the timer to use as the global timer
DETAILS
The global timer provides a common time reference for all CPUs.
This configuration parameter specifies which timer to use
as the global timer. All CPUs on the device must be
configured to use the same timer as the global timer.
Must be a value of TimerInstance_Timer4,5,6,7 or
TimerInstance_UserConfigured.
If configured as TimerInstance_UserConfigured, then
the module's timerBaseAdrs must be configured with
the timer's virtual address and the module's
prcmClkMuxBaseAdrs must be configured with the
PRCM clock mux register's virtual address.
Note: Timers 0-2 are reserved for Linux.
Timer 3 is reserved for the DSP.
C SYNOPSIS
config TimestampDM816XTimer.tiocpCfg // module-wide |
 |
idlemode: 0,
emufree: 0,
softreset: 1
};
C SYNOPSIS
config TimestampDM816XTimer.tsicr // module-wide |
 |
Default value of tsicr to use when configuring the timer
DETAILS
Only used if autoStart is true
C SYNOPSIS
config TimestampDM816XTimer.twer // module-wide |
 |
mat_wup_ena: 0,
ovf_wup_ena: 0,
tcar_wup_ena: 0
};
C SYNOPSIS
metaonly config TimestampDM816XTimer.canCpuCyclesPerTickBeChanged // module-wide |
 |
Indicates whether the timer's cycles per tick divide down ratio can be
changed or not
TimestampDM816XTimer.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 TimestampDM816XTimer.canFrequencyBeChanged // module-wide |
 |
Indicates whether the timer frequency can be changed or not
TimestampDM816XTimer.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 TimestampDM816XTimer.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 TimestampDM816XTimer.cpuCyclesPerTick // module-wide |
 |
The number of CPU cycles each tick of the timestamp corresponds to
TimestampDM816XTimer.cpuCyclesPerTick = UInt32 0;
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.