RMM API 2.0.0
Loading...
Searching...
No Matches
RMMClocks Class Reference

Class to manage and configure timing and clock synchronization in the RMM system. More...

#include <RMMClocks.h>

Collaboration diagram for RMMClocks:

Public Member Functions

 RMMClocks (RMMRegisterAccess &RMMRegs)
 Constructor of the RMMClocks.
 
rmmStatus setupAll (TimingMode timingMode)
 Setup all clocks and the timing system.
 
rmmStatus getTimingStatus (TimingStatus *time)
 Get the status of the timestamping system (including the embedded EVR) in the RMM.
 
rmmStatus getCurrentTime (uint32_t *currentTime)
 Get the current timestamping for RMM.
 
rmmStatus setEventCode (uint32_t eventCode)
 Set MRF event code.
 
bool isTimingConfigDone ()
 Checks if the hardware timing and clock configuration is complete.
 

Public Attributes

RMMLog rmmLog
 Log handler for RMMClocks messages.
 

Detailed Description

Class to manage and configure timing and clock synchronization in the RMM system.

Constructor & Destructor Documentation

◆ RMMClocks()

RMMClocks::RMMClocks ( RMMRegisterAccess & RMMRegs)

Constructor of the RMMClocks.

Parameters
RMMRegsReference to the RMMRegisterAccess instance used to interact with RMM hardware registers.

Member Function Documentation

◆ getCurrentTime()

rmmStatus RMMClocks::getCurrentTime ( uint32_t * currentTime)

Get the current timestamping for RMM.

Parameters
currentTimepointer to current time.
Returns
rmmStatus

◆ getTimingStatus()

rmmStatus RMMClocks::getTimingStatus ( TimingStatus * time)

Get the status of the timestamping system (including the embedded EVR) in the RMM.

Parameters
timepointer to struct of timing status registers to be populated.
Returns
rmmStatus success

◆ isTimingConfigDone()

bool RMMClocks::isTimingConfigDone ( )

Checks if the hardware timing and clock configuration is complete.

Verifies the timing stability by checking two conditions:

  1. The GTY reference clock is locked (cmn_out_gtyref_lock).
  2. The timestamp internal initialization is non-zero (cmn_out_ts_int).
Returns
true if both the reference lock and timestamp initialization are successful, false otherwise.

◆ setEventCode()

rmmStatus RMMClocks::setEventCode ( uint32_t eventCode)

Set MRF event code.

Parameters
eventCodeEvent code number
Returns
rmmStatus

◆ setupAll()

rmmStatus RMMClocks::setupAll ( TimingMode timingMode)

Setup all clocks and the timing system.

Parameters
[in]timingModeThe timing mode to be used for clock configuration.

The following TimingMode values are supported:

  • MRF: Mode for MRF-based timing configuration.
  • LCL: Local mode for internal clock synchronization.
  • EXT: External mode for using external clock sources.
Returns
rmmSuccess if all configurations are completed successfully. Otherwise, returns an appropriate error status if any clock configuration step fails.

The documentation for this class was generated from the following files: