HFCC-01 Low-Level Software (LLSW) Rel_6802_HFCC-01-RP-CSAR-CB
Loading...
Searching...
No Matches
rvdt.c File Reference
#include <stdlib.h>
#include <math.h>
#include "rvdt.h"
#include "utilHelper.h"
#include "interDrv.h"
#include "interStatus.h"
#include "mmapRvdt.h"
Include dependency graph for rvdt.c:
rvdt.c Node1 rvdt.c Node2 stdlib.h Node1->Node2 Node3 math.h Node1->Node3 Node4 rvdt.h Node1->Node4 Node7 utilHelper.h Node1->Node7 Node9 interDrv.h Node1->Node9 Node10 interStatus.h Node1->Node10 Node11 mmapRvdt.h Node1->Node11 Node5 commonDataTypes.h Node4->Node5 Node6 driverStatus.h Node4->Node6 Node8 INTEGRITY.h Node7->Node8 Node9->Node5 Node9->Node10 Node11->Node5 Node11->Node6

Macros

#define RVDT_AMP_GAIN   (16.1F)
#define RVDT_LSB_RESOLUTION   (0.000119842249F)
#define RVDT_MAX_WAVE_GAIN   (3U)
#define RVDT_MAX_DACVCM   (3U)
#define RVDT_MAX_VOCM   (3U)
#define RVDT_MAX_WAVE_MODE   (1U)
#define RVDT_MAX_VCM_BIAS   (3U)
#define RVDT_MAX_CFG_SENSE   (1U)
#define RVDT_MAX_CFG_GAIN   (3U)
#define RVDT_MAX_CFG_RATE   (1U)
#define RVDT_B1_COEFF_X   (52.6590464548F)
#define RVDT_B1_COEFF_C   (1.7176039120F)
#define RVDT_A2_COEFF_X2   (-0.0003316888F)
#define RVDT_A2_COEFF_X1_1   (0.0030424130F)
#define RVDT_A2_COEFF_X1_2   (-52.6378998842F)
#define RVDT_A2_COEFF_C   (-6.3314601043F)
#define RVDT_A3_COEFF_X   (-105.3227383863F)
#define RVDT_A3_COEFF_C   (-3.1955990220F)

Functions

static DriverStatus readRvdtReg (const UInt32 baseAddress, const UInt32 offset, UInt32 *data)
 readRvdtReg.
static DriverStatus writeRvdtReg (const UInt32 baseAddress, const UInt32 offset, const UInt32 data)
 writeRvdtReg.
static Float64 customRound (const Float64 x)
 customRound.
static DriverStatus calculateWaveformTableSize (const Float32 voltRms, const Float32 frequency, Float32 *roundedWfmAmpPtr, ExcWaveformTable *wfmTablePtr, const Float32 gainValue)
 calculateWaveformTableSize.
static DriverStatus calculateWaveformTableValue (const Float32 roundedWfmAmp, const Float32 frequency, ExcWaveformTable *wfmTablePtr)
 calculateWaveformTableValue.
static DriverStatus configSec1BpfA2 (const RvdtDevHandler rvdtDevHdl, UInt8 *bpfData)
 configSec1BpfA2.
static DriverStatus configSec1BpfA3 (const RvdtDevHandler rvdtDevHdl, UInt8 *bpfData)
 configSec1BpfA3.
static DriverStatus configSec1BpfB1 (const RvdtDevHandler rvdtDevHdl, UInt8 *bpfData)
 configSec1BpfB1.
static DriverStatus configSec2BpfB1 (const RvdtDevHandler rvdtDevHdl, UInt8 *bpfData)
 configSec2BpfB1.
static DriverStatus configSec2BpfA2 (const RvdtDevHandler rvdtDevHdl, UInt8 *bpfData)
 configSec2BpfA2.
static DriverStatus configSec2BpfA3 (const RvdtDevHandler rvdtDevHdl, UInt8 *bpfData)
 configSec2BpfA3.
static DriverStatus configSec1Lpf (const RvdtDevHandler rvdtDevHdl, UInt8 *buff)
 configSec1Lpf.
static DriverStatus configSec2Lpf (const RvdtDevHandler rvdtDevHdl, UInt8 *buff)
 configSec2Lpf.
static DriverStatus getSenseDemod1Demod2Data (const RvdtDevHandler rvdtDevHdl, UInt32 *senseData)
 getSenseDemod1Demod2Data.
static DriverStatus butterworthLowPassFilter (const Float64 cutoffFreq, const Float64 samplingFreq, const Float64 halfRate, LPFFilterCoeffs *lpfCoeffsPtr)
 butterworthLowPassFilter.
DriverStatus rvdt_getPbit (const RvdtDevHandler rvdtDevHdl, RvdtPbitStatus *pbitStatus)
 rvdt_getPbit.
DriverStatus rvdt_getCbit (const RvdtDevHandler rvdtDevHdl, RvdtCbitStatus *cbitStatus)
 rvdt_getCbit.
DriverStatus rvdt_getTemp (const RvdtDevHandler rvdtDevHdl, Float32 *temp)
 rvdt_getTemp.
DriverStatus rvdt_initDev (const RvdtDevHandler rvdtDevHdl)
 rvdt_initDev.
DriverStatus rvdt_getRefStatus (const RvdtDevHandler rvdtDevHdl, Bool *opStatus)
 rvdt_getRefStatus.
DriverStatus rvdt_setPowerEnable (const RvdtDevHandler rvdtDevHdl, const Bool enable)
 rvdt_setPowerEnable.
DriverStatus rvdt_setTestMux (const RvdtDevHandler rvdtDevHdl, const Bool enable)
 rvdt_setTestMux
DriverStatus rvdt_setRefWaveEnable (const RvdtDevHandler rvdtDevHdl, const Bool enable)
 rvdt_setRefWaveEnable.
DriverStatus rvdt_configWaveformGeneration (const RvdtDevHandler rvdtDevHdl, const UInt8 dacvcm, const UInt8 vocm, const UInt8 gain, const UInt8 mode, const Float32 voltageRms, const Float32 frequency)
 rvdt_configWaveformGeneration.
DriverStatus rvdt_getSenseStatus (const RvdtDevHandler rvdtDevHdl, Bool *opStatus)
 rvdt_getSenseStatus.
DriverStatus rvdt_setSenseEnable (const RvdtDevHandler rvdtDevHdl, const Bool enable)
 rvdt_setSenseEnable.
DriverStatus rvdt_setS1s2Config (const RvdtDevHandler rvdtDevHdl, const UInt8 vcmBias)
 rvdt_setS1s2Config.
DriverStatus rvdt_configSec1 (const RvdtDevHandler rvdtDevHdl, const UInt8 sense, const UInt8 gain, const UInt8 rate)
 rvdt_configSec1.
DriverStatus rvdt_configSec2 (const RvdtDevHandler rvdtDevHdl, const UInt8 sense, const UInt8 gain, const UInt8 rate)
 rvdt_configSec2.
DriverStatus rvdt_configLpfCoefficient (const RvdtDevHandler rvdtDevHdl, const UInt32 lpfFreq, const UInt32 lpfRate)
 rvdt_configLpfCoefficient.
DriverStatus rvdt_configBpfCoefficient (const RvdtDevHandler rvdtDevHdl, const UInt32 bpfFreq, const UInt32 bpfBandwidth)
 rvdt_configBpfCoefficient.
DriverStatus rvdt_setRefConfigCommand (const RvdtDevHandler rvdtDevHdl)
 rvdt_setRefConfigCommand.
DriverStatus rvdt_setSenseConfigCommand (const RvdtDevHandler rvdtDevHdl)
 rvdt_setSenseConfigCommand.
DriverStatus rvdt_setSenseFilterCommand (const RvdtDevHandler rvdtDevHdl)
 rvdt_setSenseFilterCommand
DriverStatus rvdt_getSensePosition (const RvdtDevHandler rvdtDevHdl, Float32 *demod1Ptr, Float32 *demod2Ptr, Float32 *deltaVal, UInt32 *adcVal1, UInt32 *adcVal2)
 rvdt_getSensePosition.

Detailed Description

Author
Ramza Anuar ramza.nosp@m..anu.nosp@m.ar@tu.nosp@m.sas..nosp@m.my

Rvdt device driver file

Macro Definition Documentation

◆ RVDT_A2_COEFF_C

#define RVDT_A2_COEFF_C   (-6.3314601043F)

◆ RVDT_A2_COEFF_X1_1

#define RVDT_A2_COEFF_X1_1   (0.0030424130F)

◆ RVDT_A2_COEFF_X1_2

#define RVDT_A2_COEFF_X1_2   (-52.6378998842F)

◆ RVDT_A2_COEFF_X2

#define RVDT_A2_COEFF_X2   (-0.0003316888F)

◆ RVDT_A3_COEFF_C

#define RVDT_A3_COEFF_C   (-3.1955990220F)

◆ RVDT_A3_COEFF_X

#define RVDT_A3_COEFF_X   (-105.3227383863F)

◆ RVDT_AMP_GAIN

#define RVDT_AMP_GAIN   (16.1F)

◆ RVDT_B1_COEFF_C

#define RVDT_B1_COEFF_C   (1.7176039120F)

◆ RVDT_B1_COEFF_X

#define RVDT_B1_COEFF_X   (52.6590464548F)

◆ RVDT_LSB_RESOLUTION

#define RVDT_LSB_RESOLUTION   (0.000119842249F)

◆ RVDT_MAX_CFG_GAIN

#define RVDT_MAX_CFG_GAIN   (3U)

◆ RVDT_MAX_CFG_RATE

#define RVDT_MAX_CFG_RATE   (1U)

◆ RVDT_MAX_CFG_SENSE

#define RVDT_MAX_CFG_SENSE   (1U)

◆ RVDT_MAX_DACVCM

#define RVDT_MAX_DACVCM   (3U)

◆ RVDT_MAX_VCM_BIAS

#define RVDT_MAX_VCM_BIAS   (3U)

◆ RVDT_MAX_VOCM

#define RVDT_MAX_VOCM   (3U)

◆ RVDT_MAX_WAVE_GAIN

#define RVDT_MAX_WAVE_GAIN   (3U)

◆ RVDT_MAX_WAVE_MODE

#define RVDT_MAX_WAVE_MODE   (1U)

Function Documentation

◆ butterworthLowPassFilter()

DriverStatus butterworthLowPassFilter ( const Float64 cutoffFreq,
const Float64 samplingFreq,
const Float64 halfRate,
LPFFilterCoeffs * lpfCoeffsPtr )
static

butterworthLowPassFilter.

Calculates the coefficients for a Butterworth low-pass filter. This function computes the coefficients for a Butterworth low-pass filter based on the given cutoff frequency, sampling frequency, and half-rate. The coefficients are stored in the provided LPFFilterCoeffs structure.

Parameters
[in]cutoffFreqThe cutoff frequency of the low-pass filter (Hz).
[in]samplingFreqThe sampling frequency of the signal (Hz).
[in]halfRateThe half-rate of the filter.
[out]lpfCoeffsPtrPointer to the structure where the filter coefficients will be stored.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_INVALID_VALUE: The value input is out of range.
DRV_INVALID_PARAM:The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: butterworthLowPassFilter

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_BUTTERWORTHLOWPASSFILTER_01 HLR_RVDT_18870 WHEN the destination pointer parameter lpfCoeffsPtr is NULL, the butterworthLowPassFilter() function SHALL abort processing and return DRV_INVALID_PARAM. rvdt.c:butterworthLowPassFilter() Test Closed
LLR_RVDT_BUTTERWORTHLOWPASSFILTER_02 HLR_RVDT_18870 WHEN the parameter samplingFreq is within the zero-tolerance range (greater than -FLOAT_TOLERANCE and less than FLOAT_TOLERANCE), the butterworthLowPassFilter() function SHALL abort processing and return DRV_INVALID_VALUE. rvdt.c:butterworthLowPassFilter() Test Closed
LLR_RVDT_BUTTERWORTHLOWPASSFILTER_03 HLR_RVDT_18870 WHEN the term (alpha + 1.0) is within the zero-tolerance range (greater than -FLOAT_TOLERANCE and less than FLOAT_TOLERANCE), the butterworthLowPassFilter() function SHALL abort processing and return DRV_INVALID_VALUE. rvdt.c:butterworthLowPassFilter() Test Closed
LLR_RVDT_BUTTERWORTHLOWPASSFILTER_04 HLR_RVDT_18870 WHEN preconditions are satisfied, the butterworthLowPassFilter() function SHALL compute the second-order Butterworth filter coefficients using tan() and write the calculated parameters into the output structure referenced by lpfCoeffsPtr. rvdt.c:butterworthLowPassFilter() Test Closed
LLR_RVDT_BUTTERWORTHLOWPASSFILTER_05 HLR_RVDT_18870 WHEN all coefficient calculations complete successfully, the butterworthLowPassFilter() function SHALL return DRV_SUCCESS. rvdt.c:butterworthLowPassFilter() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller butterworthLowPassFilter() [Low-Level Device Drivers] Target tan() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   cutoffFreq (Flag) l_t1->l_b1   samplingFreq (Flag) l_t2->l_b2   halfRate (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller butterworthLowPassFilter() [Low-Level Device Drivers] Target tan() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   cutoffFreq (Payload) l_t1->l_b1   samplingFreq (Payload) l_t2->l_b2   halfRate (Payload) r_b0->r_t0   *lpfCoeffsPtr (Output Data)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_butterworthLowPassFilter start Entry: butterworthLowPassFilter() guard_1 LLR_01: Guard Check Is the pointer `lpfCoeffsPtr` is NULL (invalid)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_INVALID_PARAM` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is `samplingFreq` is less than `FLOAT_TOLERANCE` && samplingFreq > -FLOAT_TOLERANCE? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `DRV_INVALID_VALUE` guard_2->err_exit_2 YES (TRUE) guard_3 LLR_03: Guard Check Is (alpha + 1.0) < FLOAT_TOLERANCE && (alpha + 1.0) > -FLOAT_TOLERANCE? guard_2->guard_3 err_exit_3 LLR_03 Error Exit abort processing and return `DRV_INVALID_VALUE` guard_3->err_exit_3 YES (TRUE) act_4 LLR_04: Action Step invoke routine `tan()` to execute target subsystem hardware operation guard_3->act_4 NO (FALSE) success_exit LLR_05: Final Exit return `DRV_SUCCESS` act_4->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_butterworthLowPassFilter in_store Input Data Sources & Parameters • cutoffFreq (const Float64) • samplingFreq (const Float64) • halfRate (const Float64) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: lpfCoeffsPtr in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: samplingFreq proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Validation Check • Evaluate Parameter / State: alpha proc_2->proc_3 Validated Input Data proc_4 LLR_04: Data Payload Transformation • Process payload via tan() proc_3->proc_4 Data Payload (tan) proc_5 LLR_05: Status Output Packaging • Format Return Payload: DriverStatus proc_4->proc_5 Final Output Data out_sink Output Data Sinks & Status Return • lpfCoeffsPtr (LPFFilterCoeffs) proc_5->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
butterworthLowPassFilter Node1 butterworthLowPassFilter Node1->Node1
Here is the caller graph for this function:
butterworthLowPassFilter Node1 butterworthLowPassFilter Node1->Node1 Node2 rvdt_configLpfCoefficient Node1->Node2 Node2->Node2 Node3 modRvdt_SetSenseFilter Node2->Node3 Node3->Node3

◆ calculateWaveformTableSize()

DriverStatus calculateWaveformTableSize ( const Float32 voltRms,
const Float32 frequency,
Float32 * roundedWfmAmpPtr,
ExcWaveformTable * wfmTablePtr,
const Float32 gainValue )
static

calculateWaveformTableSize.

Waveform table size calculation.

Parameters
[in]voltRmsVRms value.
[in]frequencyOperating frequency (kHz).
[out]roundedWfmAmpPtrRounded waveform amplitude value.
[out]wfmTablePtrWaveform table size and amplitude value.
[in]gainValueThe gain value.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_INVALID_PARAM: The provided address pointer is invalid.
DRV_INVALID_VALUE: The value is out of range.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: calculateWaveformTableSize

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_CALCULATEWAVEFORMTABLESIZE_01 HLR_RVDT_18870 WHEN the pointer parameter roundedWfmAmpPtr is NULL or the pointer parameter wfmTablePtr is NULL, the calculateWaveformTableSize() function SHALL abort processing and return DRV_INVALID_PARAM. rvdt.c:calculateWaveformTableSize() Test Closed
LLR_RVDT_CALCULATEWAVEFORMTABLESIZE_02 HLR_RVDT_18870 WHEN the parameter gainValue is within the zero-tolerance range (greater than -FLOAT_TOLERANCE and less than FLOAT_TOLERANCE), the calculateWaveformTableSize() function SHALL abort processing and return DRV_INVALID_VALUE. rvdt.c:calculateWaveformTableSize() Test Closed
LLR_RVDT_CALCULATEWAVEFORMTABLESIZE_03 HLR_RVDT_18870 WHEN the parameter frequency is within the zero-tolerance range (greater than -FLOAT_TOLERANCE and less than FLOAT_TOLERANCE), the calculateWaveformTableSize() function SHALL abort processing and return DRV_INVALID_VALUE. rvdt.c:calculateWaveformTableSize() Test Closed
LLR_RVDT_CALCULATEWAVEFORMTABLESIZE_04 HLR_RVDT_18870 WHEN preconditions are satisfied, the calculateWaveformTableSize() function SHALL compute excitation waveform amplitude scaling using sqrt() and populate the excitation table referenced by wfmTablePtr. rvdt.c:calculateWaveformTableSize() Test Closed
LLR_RVDT_CALCULATEWAVEFORMTABLESIZE_05 HLR_RVDT_18870 WHEN all table calculations complete successfully, the calculateWaveformTableSize() function SHALL return DRV_SUCCESS. rvdt.c:calculateWaveformTableSize() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller calculateWaveformTableSize() [Low-Level Device Drivers] Target sqrt() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   voltRms (Flag) l_t1->l_b1   frequency (Flag) l_t2->l_b2   gainValue (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller calculateWaveformTableSize() [Low-Level Device Drivers] Target sqrt() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   voltRms (Payload) l_t1->l_b1   frequency (Payload) l_t2->l_b2   gainValue (Payload) r_b0->r_t0   *roundedWfmAmpPtr (Output Data) r_b1->r_t1   *wfmTablePtr (Output Data)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_calculateWaveformTableSize start Entry: calculateWaveformTableSize() guard_1 LLR_01: Guard Check Is the pointer `roundedWfmAmpPtr` is NULL (invalid) or the pointer `wfmTablePtr` is NULL (invalid)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_INVALID_PARAM` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is `gainValue` is less than `FLOAT_TOLERANCE` && gainValue > -FLOAT_TOLERANCE? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `DRV_INVALID_VALUE` guard_2->err_exit_2 YES (TRUE) guard_3 LLR_03: Guard Check Is `frequency` is less than `FLOAT_TOLERANCE` && frequency > -FLOAT_TOLERANCE? guard_2->guard_3 err_exit_3 LLR_03 Error Exit abort processing and return `DRV_INVALID_VALUE` guard_3->err_exit_3 YES (TRUE) act_4 LLR_04: Action Step invoke routine `sqrt()` to execute target subsystem hardware operation guard_3->act_4 NO (FALSE) success_exit LLR_05: Final Exit return `DRV_SUCCESS` act_4->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_calculateWaveformTableSize in_store Input Data Sources & Parameters • voltRms (const Float32) • frequency (const Float32) • gainValue (const Float32) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: roundedWfmAmpPtr in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: gainValue proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Validation Check • Evaluate Parameter / State: frequency proc_2->proc_3 Validated Input Data proc_4 LLR_04: Data Payload Transformation • Process payload via sqrt() proc_3->proc_4 Data Payload (sqrt) proc_5 LLR_05: Status Output Packaging • Format Return Payload: DriverStatus proc_4->proc_5 Final Output Data out_sink Output Data Sinks & Status Return • roundedWfmAmpPtr (Float32) • wfmTablePtr (ExcWaveformTable) proc_5->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
calculateWaveformTableSize Node1 calculateWaveformTableSize Node1->Node1 Node2 customRound Node1->Node2 Node2->Node2
Here is the caller graph for this function:
calculateWaveformTableSize Node1 calculateWaveformTableSize Node1->Node1 Node2 rvdt_configWaveformGeneration Node1->Node2 Node2->Node2 Node3 modRvdt_SetRefConfig Node2->Node3 Node3->Node3

◆ calculateWaveformTableValue()

DriverStatus calculateWaveformTableValue ( const Float32 roundedWfmAmp,
const Float32 frequency,
ExcWaveformTable * wfmTablePtr )
static

calculateWaveformTableValue.

Waveform table amplitude table calculation.

Parameters
[in]roundedWfmAmpRounded waveform amplitude value.
[in]frequencyOperating frequency (Hz).
[in,out]wfmTablePtrWaveform table size and amplitude value.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_INVALID_PARAM: Invalid address pointer.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: calculateWaveformTableValue

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_CALCULATEWAVEFORMTABLEVALUE_01 HLR_RVDT_18870 WHEN the pointer wfmTablePtr is NULL (invalid), the calculateWaveformTableValue() function SHALL abort processing and return DRV_INVALID_PARAM. rvdt.c:calculateWaveformTableValue() Test Closed
LLR_RVDT_CALCULATEWAVEFORMTABLEVALUE_02 HLR_RVDT_18870 WHEN preconditions are satisfied, the calculateWaveformTableValue() function SHALL invoke routine sin() to execute target subsystem hardware operation. rvdt.c:calculateWaveformTableValue() Test Closed
LLR_RVDT_CALCULATEWAVEFORMTABLEVALUE_03 HLR_RVDT_18870 WHEN all operational processing completes successfully, the calculateWaveformTableValue() function SHALL return DRV_SUCCESS. rvdt.c:calculateWaveformTableValue() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller calculateWaveformTableValue() [Low-Level Device Drivers] Target sin() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   roundedWfmAmp (Flag) l_t1->l_b1   frequency (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller calculateWaveformTableValue() [Low-Level Device Drivers] Target sin() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   roundedWfmAmp (Payload) l_t1->l_b1   frequency (Payload) r_b0->r_t0   *wfmTablePtr (Output Data)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_calculateWaveformTableValue start Entry: calculateWaveformTableValue() guard_1 LLR_01: Guard Check Is the pointer `wfmTablePtr` is NULL (invalid)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_INVALID_PARAM` guard_1->err_exit_1 YES (TRUE) act_2 LLR_02: Action Step invoke routine `sin()` to execute target subsystem hardware operation guard_1->act_2 NO (FALSE) success_exit LLR_03: Final Exit return `DRV_SUCCESS` act_2->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_calculateWaveformTableValue in_store Input Data Sources & Parameters • roundedWfmAmp (const Float32) • frequency (const Float32) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: wfmTablePtr in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Payload Transformation • Process payload via sin() proc_1->proc_2 Data Payload (sin) proc_3 LLR_03: Status Output Packaging • Format Return Payload: DriverStatus proc_2->proc_3 Final Output Data out_sink Output Data Sinks & Status Return • wfmTablePtr (ExcWaveformTable) proc_3->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
calculateWaveformTableValue Node1 calculateWaveformTableValue Node1->Node1
Here is the caller graph for this function:
calculateWaveformTableValue Node1 calculateWaveformTableValue Node1->Node1 Node2 rvdt_configWaveformGeneration Node1->Node2 Node2->Node2 Node3 modRvdt_SetRefConfig Node2->Node3 Node3->Node3

◆ configSec1BpfA2()

DriverStatus configSec1BpfA2 ( const RvdtDevHandler rvdtDevHdl,
UInt8 * bpfData )
static

configSec1BpfA2.

Configure secondary 1 bpf a2.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[in]bpfDataBuffer to hold bpf data.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_WRITE_FAILED: Failed to write to the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: configSec1BpfA2

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_CONFIGSEC1BPFA2_01 HLR_RVDT_18873 WHEN the pointer bpfData is NULL (invalid), the configSec1BpfA2() function SHALL abort processing and return DRV_INVALID_PARAM. rvdt.c:configSec1BpfA2() Test Closed
LLR_RVDT_CONFIGSEC1BPFA2_02 HLR_RVDT_18873 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the configSec1BpfA2() function SHALL abort processing and return that driver failure status. rvdt.c:configSec1BpfA2() Test Closed
LLR_RVDT_CONFIGSEC1BPFA2_03 HLR_RVDT_18873 WHEN preconditions are satisfied, the configSec1BpfA2() function SHALL write the RVDT module device block members memory offset (RVDT_CFG_SEC1_BPF_A2) at physical offset 0x0024 (MMAP_RVDT_CFG_SEC1_BPF_A2) using writeRvdtReg(). rvdt.c:configSec1BpfA2() Test Closed
LLR_RVDT_CONFIGSEC1BPFA2_04 HLR_RVDT_18873 WHEN all operational processing completes successfully, the configSec1BpfA2() function SHALL return DRV_SUCCESS. rvdt.c:configSec1BpfA2() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller configSec1BpfA2() [Low-Level Device Drivers] Target writeRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller configSec1BpfA2() [Low-Level Device Drivers] Target writeRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) r_b0->r_t0   *bpfData (Output Data)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_configSec1BpfA2 start Entry: configSec1BpfA2() guard_1 LLR_01: Guard Check Is the pointer `bpfData` is NULL (invalid)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_INVALID_PARAM` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `retStatus` guard_2->err_exit_2 YES (TRUE) act_3 LLR_03: Action Step write the RVDT module device block members memory offset (RVDT_CFG_SEC1_BPF_A2) at physical offset `0x0024` (`MMAP_RVDT_CFG_SEC1_BPF_A2`) using `writeRvdtReg()` guard_2->act_3 NO (FALSE) success_exit LLR_04: Final Exit return `DRV_SUCCESS` act_3->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_configSec1BpfA2 in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: bpfData in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: retStatus proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Payload Transformation • Process payload via writeRvdtReg() proc_2->proc_3 Data Payload (writeRvdtReg) proc_4 LLR_04: Status Output Packaging • Format Return Payload: DriverStatus proc_3->proc_4 Final Output Data out_sink Output Data Sinks & Status Return • bpfData (UInt8) proc_4->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
configSec1BpfA2 Node1 configSec1BpfA2 Node1->Node1 Node2 writeRvdtReg Node1->Node2 Node2->Node2 Node3 interDrv_Write32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Write32 Node3->Node5 Node4->Node4 Node5->Node5
Here is the caller graph for this function:
configSec1BpfA2 Node1 configSec1BpfA2 Node1->Node1 Node2 rvdt_configBpfCoefficient Node1->Node2 Node2->Node2 Node3 modRvdt_SetSenseFilter Node2->Node3 Node3->Node3

◆ configSec1BpfA3()

DriverStatus configSec1BpfA3 ( const RvdtDevHandler rvdtDevHdl,
UInt8 * bpfData )
static

configSec1BpfA3.

Configure secondary 1 bpf a3.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[in]bpfDataBuffer to hold bpf data.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_WRITE_FAILED: Failed to write to the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: configSec1BpfA3

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_CONFIGSEC1BPFA3_01 HLR_RVDT_18873 WHEN the pointer bpfData is NULL (invalid), the configSec1BpfA3() function SHALL abort processing and return DRV_INVALID_PARAM. rvdt.c:configSec1BpfA3() Test Closed
LLR_RVDT_CONFIGSEC1BPFA3_02 HLR_RVDT_18873 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the configSec1BpfA3() function SHALL abort processing and return that driver failure status. rvdt.c:configSec1BpfA3() Test Closed
LLR_RVDT_CONFIGSEC1BPFA3_03 HLR_RVDT_18873 WHEN preconditions are satisfied, the configSec1BpfA3() function SHALL write the RVDT module device block members memory offset (RVDT_CFG_SEC1_BPF_A3) at physical offset 0x0028 (MMAP_RVDT_CFG_SEC1_BPF_A3) using writeRvdtReg(). rvdt.c:configSec1BpfA3() Test Closed
LLR_RVDT_CONFIGSEC1BPFA3_04 HLR_RVDT_18873 WHEN all operational processing completes successfully, the configSec1BpfA3() function SHALL return DRV_SUCCESS. rvdt.c:configSec1BpfA3() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller configSec1BpfA3() [Low-Level Device Drivers] Target writeRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller configSec1BpfA3() [Low-Level Device Drivers] Target writeRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) r_b0->r_t0   *bpfData (Output Data)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_configSec1BpfA3 start Entry: configSec1BpfA3() guard_1 LLR_01: Guard Check Is the pointer `bpfData` is NULL (invalid)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_INVALID_PARAM` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `retStatus` guard_2->err_exit_2 YES (TRUE) act_3 LLR_03: Action Step write the RVDT module device block members memory offset (RVDT_CFG_SEC1_BPF_A3) at physical offset `0x0028` (`MMAP_RVDT_CFG_SEC1_BPF_A3`) using `writeRvdtReg()` guard_2->act_3 NO (FALSE) success_exit LLR_04: Final Exit return `DRV_SUCCESS` act_3->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_configSec1BpfA3 in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: bpfData in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: retStatus proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Payload Transformation • Process payload via writeRvdtReg() proc_2->proc_3 Data Payload (writeRvdtReg) proc_4 LLR_04: Status Output Packaging • Format Return Payload: DriverStatus proc_3->proc_4 Final Output Data out_sink Output Data Sinks & Status Return • bpfData (UInt8) proc_4->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
configSec1BpfA3 Node1 configSec1BpfA3 Node1->Node1 Node2 writeRvdtReg Node1->Node2 Node2->Node2 Node3 interDrv_Write32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Write32 Node3->Node5 Node4->Node4 Node5->Node5
Here is the caller graph for this function:
configSec1BpfA3 Node1 configSec1BpfA3 Node1->Node1 Node2 rvdt_configBpfCoefficient Node1->Node2 Node2->Node2 Node3 modRvdt_SetSenseFilter Node2->Node3 Node3->Node3

◆ configSec1BpfB1()

DriverStatus configSec1BpfB1 ( const RvdtDevHandler rvdtDevHdl,
UInt8 * bpfData )
static

configSec1BpfB1.

Configure secondary 1 bpf b1.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[in]bpfDataBuffer to hold bpf data.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_WRITE_FAILED: Failed to write to the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: configSec1BpfB1

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_CONFIGSEC1BPFB1_01 HLR_RVDT_18873 WHEN the pointer bpfData is NULL (invalid), the configSec1BpfB1() function SHALL abort processing and return DRV_INVALID_PARAM. rvdt.c:configSec1BpfB1() Test Closed
LLR_RVDT_CONFIGSEC1BPFB1_02 HLR_RVDT_18873 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the configSec1BpfB1() function SHALL abort processing and return that driver failure status. rvdt.c:configSec1BpfB1() Test Closed
LLR_RVDT_CONFIGSEC1BPFB1_03 HLR_RVDT_18873 WHEN preconditions are satisfied, the configSec1BpfB1() function SHALL write the RVDT module device block members memory offset (RVDT_CFG_SEC1_BPF_B1) at physical offset 0x0020 (MMAP_RVDT_CFG_SEC1_BPF_B1) using writeRvdtReg(). rvdt.c:configSec1BpfB1() Test Closed
LLR_RVDT_CONFIGSEC1BPFB1_04 HLR_RVDT_18873 WHEN all operational processing completes successfully, the configSec1BpfB1() function SHALL return DRV_SUCCESS. rvdt.c:configSec1BpfB1() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller configSec1BpfB1() [Low-Level Device Drivers] Target writeRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller configSec1BpfB1() [Low-Level Device Drivers] Target writeRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) r_b0->r_t0   *bpfData (Output Data)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_configSec1BpfB1 start Entry: configSec1BpfB1() guard_1 LLR_01: Guard Check Is the pointer `bpfData` is NULL (invalid)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_INVALID_PARAM` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `retStatus` guard_2->err_exit_2 YES (TRUE) act_3 LLR_03: Action Step write the RVDT module device block members memory offset (RVDT_CFG_SEC1_BPF_B1) at physical offset `0x0020` (`MMAP_RVDT_CFG_SEC1_BPF_B1`) using `writeRvdtReg()` guard_2->act_3 NO (FALSE) success_exit LLR_04: Final Exit return `DRV_SUCCESS` act_3->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_configSec1BpfB1 in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: bpfData in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: retStatus proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Payload Transformation • Process payload via writeRvdtReg() proc_2->proc_3 Data Payload (writeRvdtReg) proc_4 LLR_04: Status Output Packaging • Format Return Payload: DriverStatus proc_3->proc_4 Final Output Data out_sink Output Data Sinks & Status Return • bpfData (UInt8) proc_4->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
configSec1BpfB1 Node1 configSec1BpfB1 Node1->Node1 Node2 writeRvdtReg Node1->Node2 Node2->Node2 Node3 interDrv_Write32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Write32 Node3->Node5 Node4->Node4 Node5->Node5
Here is the caller graph for this function:
configSec1BpfB1 Node1 configSec1BpfB1 Node1->Node1 Node2 rvdt_configBpfCoefficient Node1->Node2 Node2->Node2 Node3 modRvdt_SetSenseFilter Node2->Node3 Node3->Node3

◆ configSec1Lpf()

DriverStatus configSec1Lpf ( const RvdtDevHandler rvdtDevHdl,
UInt8 * buff )
static

configSec1Lpf.

Configure secondary 1 lpf.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[in]buffBuffer to hold lpf data.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_WRITE_FAILED: Failed to write to the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: configSec1Lpf

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_CONFIGSEC1LPF_01 HLR_RVDT_18874 WHEN the pointer buff is NULL (invalid), the configSec1Lpf() function SHALL abort processing and return DRV_INVALID_PARAM. rvdt.c:configSec1Lpf() Test Closed
LLR_RVDT_CONFIGSEC1LPF_02 HLR_RVDT_18874 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the configSec1Lpf() function SHALL abort processing and return that driver failure status. rvdt.c:configSec1Lpf() Test Closed
LLR_RVDT_CONFIGSEC1LPF_03 HLR_RVDT_18874 WHEN preconditions are satisfied, the configSec1Lpf() function SHALL write the RVDT module device block members memory offset (RVDT_CFG_SEC1_LPF) at physical offset 0x0018 (MMAP_RVDT_CFG_SEC1_LPF) using writeRvdtReg(). rvdt.c:configSec1Lpf() Test Closed
LLR_RVDT_CONFIGSEC1LPF_04 HLR_RVDT_18874 WHEN all operational processing completes successfully, the configSec1Lpf() function SHALL return DRV_SUCCESS. rvdt.c:configSec1Lpf() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller configSec1Lpf() [Low-Level Device Drivers] Target writeRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller configSec1Lpf() [Low-Level Device Drivers] Target writeRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) r_b0->r_t0   *buff (Output Data)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_configSec1Lpf start Entry: configSec1Lpf() guard_1 LLR_01: Guard Check Is the pointer `buff` is NULL (invalid)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_INVALID_PARAM` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `retStatus` guard_2->err_exit_2 YES (TRUE) act_3 LLR_03: Action Step write the RVDT module device block members memory offset (RVDT_CFG_SEC1_LPF) at physical offset `0x0018` (`MMAP_RVDT_CFG_SEC1_LPF`) using `writeRvdtReg()` guard_2->act_3 NO (FALSE) success_exit LLR_04: Final Exit return `DRV_SUCCESS` act_3->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_configSec1Lpf in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: buff in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: retStatus proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Payload Transformation • Process payload via writeRvdtReg() proc_2->proc_3 Data Payload (writeRvdtReg) proc_4 LLR_04: Status Output Packaging • Format Return Payload: DriverStatus proc_3->proc_4 Final Output Data out_sink Output Data Sinks & Status Return • buff (UInt8) proc_4->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
configSec1Lpf Node1 configSec1Lpf Node1->Node1 Node2 writeRvdtReg Node1->Node2 Node2->Node2 Node3 interDrv_Write32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Write32 Node3->Node5 Node4->Node4 Node5->Node5
Here is the caller graph for this function:
configSec1Lpf Node1 configSec1Lpf Node1->Node1 Node2 rvdt_configLpfCoefficient Node1->Node2 Node2->Node2 Node3 modRvdt_SetSenseFilter Node2->Node3 Node3->Node3

◆ configSec2BpfA2()

DriverStatus configSec2BpfA2 ( const RvdtDevHandler rvdtDevHdl,
UInt8 * bpfData )
static

configSec2BpfA2.

Configure secondary 2 bpf a2.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[in]bpfDataBuffer to hold bpf data.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_WRITE_FAILED: Failed to write to the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: configSec2BpfA2

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_CONFIGSEC2BPFA2_01 HLR_RVDT_18873 WHEN the pointer bpfData is NULL (invalid), the configSec2BpfA2() function SHALL abort processing and return DRV_INVALID_PARAM. rvdt.c:configSec2BpfA2() Test Closed
LLR_RVDT_CONFIGSEC2BPFA2_02 HLR_RVDT_18873 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the configSec2BpfA2() function SHALL abort processing and return that driver failure status. rvdt.c:configSec2BpfA2() Test Closed
LLR_RVDT_CONFIGSEC2BPFA2_03 HLR_RVDT_18873 WHEN preconditions are satisfied, the configSec2BpfA2() function SHALL write the RVDT module device block members memory offset (RVDT_CFG_SEC2_BPF_A2) at physical offset 0x0030 (MMAP_RVDT_CFG_SEC2_BPF_A2) using writeRvdtReg(). rvdt.c:configSec2BpfA2() Test Closed
LLR_RVDT_CONFIGSEC2BPFA2_04 HLR_RVDT_18873 WHEN all operational processing completes successfully, the configSec2BpfA2() function SHALL return DRV_SUCCESS. rvdt.c:configSec2BpfA2() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller configSec2BpfA2() [Low-Level Device Drivers] Target writeRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller configSec2BpfA2() [Low-Level Device Drivers] Target writeRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) r_b0->r_t0   *bpfData (Output Data)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_configSec2BpfA2 start Entry: configSec2BpfA2() guard_1 LLR_01: Guard Check Is the pointer `bpfData` is NULL (invalid)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_INVALID_PARAM` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `retStatus` guard_2->err_exit_2 YES (TRUE) act_3 LLR_03: Action Step write the RVDT module device block members memory offset (RVDT_CFG_SEC2_BPF_A2) at physical offset `0x0030` (`MMAP_RVDT_CFG_SEC2_BPF_A2`) using `writeRvdtReg()` guard_2->act_3 NO (FALSE) success_exit LLR_04: Final Exit return `DRV_SUCCESS` act_3->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_configSec2BpfA2 in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: bpfData in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: retStatus proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Payload Transformation • Process payload via writeRvdtReg() proc_2->proc_3 Data Payload (writeRvdtReg) proc_4 LLR_04: Status Output Packaging • Format Return Payload: DriverStatus proc_3->proc_4 Final Output Data out_sink Output Data Sinks & Status Return • bpfData (UInt8) proc_4->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
configSec2BpfA2 Node1 configSec2BpfA2 Node1->Node1 Node2 writeRvdtReg Node1->Node2 Node2->Node2 Node3 interDrv_Write32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Write32 Node3->Node5 Node4->Node4 Node5->Node5
Here is the caller graph for this function:
configSec2BpfA2 Node1 configSec2BpfA2 Node1->Node1 Node2 rvdt_configBpfCoefficient Node1->Node2 Node2->Node2 Node3 modRvdt_SetSenseFilter Node2->Node3 Node3->Node3

◆ configSec2BpfA3()

DriverStatus configSec2BpfA3 ( const RvdtDevHandler rvdtDevHdl,
UInt8 * bpfData )
static

configSec2BpfA3.

Configure secondary 2 bpf a3.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[in]bpfDataBuffer to hold bpf data.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_WRITE_FAILED: Failed to write to the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: configSec2BpfA3

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_CONFIGSEC2BPFA3_01 HLR_RVDT_18873 WHEN the pointer bpfData is NULL (invalid), the configSec2BpfA3() function SHALL abort processing and return DRV_INVALID_PARAM. rvdt.c:configSec2BpfA3() Test Closed
LLR_RVDT_CONFIGSEC2BPFA3_02 HLR_RVDT_18873 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the configSec2BpfA3() function SHALL abort processing and return that driver failure status. rvdt.c:configSec2BpfA3() Test Closed
LLR_RVDT_CONFIGSEC2BPFA3_03 HLR_RVDT_18873 WHEN preconditions are satisfied, the configSec2BpfA3() function SHALL write the RVDT module device block members memory offset (RVDT_CFG_SEC2_BPF_A3) at physical offset 0x0034 (MMAP_RVDT_CFG_SEC2_BPF_A3) using writeRvdtReg(). rvdt.c:configSec2BpfA3() Test Closed
LLR_RVDT_CONFIGSEC2BPFA3_04 HLR_RVDT_18873 WHEN all operational processing completes successfully, the configSec2BpfA3() function SHALL return DRV_SUCCESS. rvdt.c:configSec2BpfA3() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller configSec2BpfA3() [Low-Level Device Drivers] Target writeRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller configSec2BpfA3() [Low-Level Device Drivers] Target writeRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) r_b0->r_t0   *bpfData (Output Data)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_configSec2BpfA3 start Entry: configSec2BpfA3() guard_1 LLR_01: Guard Check Is the pointer `bpfData` is NULL (invalid)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_INVALID_PARAM` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `retStatus` guard_2->err_exit_2 YES (TRUE) act_3 LLR_03: Action Step write the RVDT module device block members memory offset (RVDT_CFG_SEC2_BPF_A3) at physical offset `0x0034` (`MMAP_RVDT_CFG_SEC2_BPF_A3`) using `writeRvdtReg()` guard_2->act_3 NO (FALSE) success_exit LLR_04: Final Exit return `DRV_SUCCESS` act_3->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_configSec2BpfA3 in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: bpfData in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: retStatus proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Payload Transformation • Process payload via writeRvdtReg() proc_2->proc_3 Data Payload (writeRvdtReg) proc_4 LLR_04: Status Output Packaging • Format Return Payload: DriverStatus proc_3->proc_4 Final Output Data out_sink Output Data Sinks & Status Return • bpfData (UInt8) proc_4->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
configSec2BpfA3 Node1 configSec2BpfA3 Node1->Node1 Node2 writeRvdtReg Node1->Node2 Node2->Node2 Node3 interDrv_Write32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Write32 Node3->Node5 Node4->Node4 Node5->Node5
Here is the caller graph for this function:
configSec2BpfA3 Node1 configSec2BpfA3 Node1->Node1 Node2 rvdt_configBpfCoefficient Node1->Node2 Node2->Node2 Node3 modRvdt_SetSenseFilter Node2->Node3 Node3->Node3

◆ configSec2BpfB1()

DriverStatus configSec2BpfB1 ( const RvdtDevHandler rvdtDevHdl,
UInt8 * bpfData )
static

configSec2BpfB1.

Configure secondary 2 bpf b1.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[in]bpfDataBuffer to hold bpf data.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_WRITE_FAILED: Failed to write to the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: configSec2BpfB1

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_CONFIGSEC2BPFB1_01 HLR_RVDT_18873 WHEN the pointer bpfData is NULL (invalid), the configSec2BpfB1() function SHALL abort processing and return DRV_INVALID_PARAM. rvdt.c:configSec2BpfB1() Test Closed
LLR_RVDT_CONFIGSEC2BPFB1_02 HLR_RVDT_18873 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the configSec2BpfB1() function SHALL abort processing and return that driver failure status. rvdt.c:configSec2BpfB1() Test Closed
LLR_RVDT_CONFIGSEC2BPFB1_03 HLR_RVDT_18873 WHEN preconditions are satisfied, the configSec2BpfB1() function SHALL write the RVDT module device block members memory offset (RVDT_CFG_SEC2_BPF_B1) at physical offset 0x002C (MMAP_RVDT_CFG_SEC2_BPF_B1) using writeRvdtReg(). rvdt.c:configSec2BpfB1() Test Closed
LLR_RVDT_CONFIGSEC2BPFB1_04 HLR_RVDT_18873 WHEN all operational processing completes successfully, the configSec2BpfB1() function SHALL return DRV_SUCCESS. rvdt.c:configSec2BpfB1() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller configSec2BpfB1() [Low-Level Device Drivers] Target writeRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller configSec2BpfB1() [Low-Level Device Drivers] Target writeRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) r_b0->r_t0   *bpfData (Output Data)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_configSec2BpfB1 start Entry: configSec2BpfB1() guard_1 LLR_01: Guard Check Is the pointer `bpfData` is NULL (invalid)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_INVALID_PARAM` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `retStatus` guard_2->err_exit_2 YES (TRUE) act_3 LLR_03: Action Step write the RVDT module device block members memory offset (RVDT_CFG_SEC2_BPF_B1) at physical offset `0x002C` (`MMAP_RVDT_CFG_SEC2_BPF_B1`) using `writeRvdtReg()` guard_2->act_3 NO (FALSE) success_exit LLR_04: Final Exit return `DRV_SUCCESS` act_3->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_configSec2BpfB1 in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: bpfData in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: retStatus proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Payload Transformation • Process payload via writeRvdtReg() proc_2->proc_3 Data Payload (writeRvdtReg) proc_4 LLR_04: Status Output Packaging • Format Return Payload: DriverStatus proc_3->proc_4 Final Output Data out_sink Output Data Sinks & Status Return • bpfData (UInt8) proc_4->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
configSec2BpfB1 Node1 configSec2BpfB1 Node1->Node1 Node2 writeRvdtReg Node1->Node2 Node2->Node2 Node3 interDrv_Write32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Write32 Node3->Node5 Node4->Node4 Node5->Node5
Here is the caller graph for this function:
configSec2BpfB1 Node1 configSec2BpfB1 Node1->Node1 Node2 rvdt_configBpfCoefficient Node1->Node2 Node2->Node2 Node3 modRvdt_SetSenseFilter Node2->Node3 Node3->Node3

◆ configSec2Lpf()

DriverStatus configSec2Lpf ( const RvdtDevHandler rvdtDevHdl,
UInt8 * buff )
static

configSec2Lpf.

Configure secondary 2 lpf.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[in]buffBuffer to hold lpf data.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_WRITE_FAILED: Failed to write to the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: configSec2Lpf

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_CONFIGSEC2LPF_01 HLR_RVDT_18874 WHEN the pointer buff is NULL (invalid), the configSec2Lpf() function SHALL abort processing and return DRV_INVALID_PARAM. rvdt.c:configSec2Lpf() Test Closed
LLR_RVDT_CONFIGSEC2LPF_02 HLR_RVDT_18874 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the configSec2Lpf() function SHALL abort processing and return that driver failure status. rvdt.c:configSec2Lpf() Test Closed
LLR_RVDT_CONFIGSEC2LPF_03 HLR_RVDT_18874 WHEN preconditions are satisfied, the configSec2Lpf() function SHALL write the RVDT module device block members memory offset (RVDT_CFG_SEC2_LPF) at physical offset 0x001C (MMAP_RVDT_CFG_SEC2_LPF) using writeRvdtReg(). rvdt.c:configSec2Lpf() Test Closed
LLR_RVDT_CONFIGSEC2LPF_04 HLR_RVDT_18874 WHEN all operational processing completes successfully, the configSec2Lpf() function SHALL return DRV_SUCCESS. rvdt.c:configSec2Lpf() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller configSec2Lpf() [Low-Level Device Drivers] Target writeRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller configSec2Lpf() [Low-Level Device Drivers] Target writeRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) r_b0->r_t0   *buff (Output Data)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_configSec2Lpf start Entry: configSec2Lpf() guard_1 LLR_01: Guard Check Is the pointer `buff` is NULL (invalid)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_INVALID_PARAM` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `retStatus` guard_2->err_exit_2 YES (TRUE) act_3 LLR_03: Action Step write the RVDT module device block members memory offset (RVDT_CFG_SEC2_LPF) at physical offset `0x001C` (`MMAP_RVDT_CFG_SEC2_LPF`) using `writeRvdtReg()` guard_2->act_3 NO (FALSE) success_exit LLR_04: Final Exit return `DRV_SUCCESS` act_3->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_configSec2Lpf in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: buff in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: retStatus proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Payload Transformation • Process payload via writeRvdtReg() proc_2->proc_3 Data Payload (writeRvdtReg) proc_4 LLR_04: Status Output Packaging • Format Return Payload: DriverStatus proc_3->proc_4 Final Output Data out_sink Output Data Sinks & Status Return • buff (UInt8) proc_4->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
configSec2Lpf Node1 configSec2Lpf Node1->Node1 Node2 writeRvdtReg Node1->Node2 Node2->Node2 Node3 interDrv_Write32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Write32 Node3->Node5 Node4->Node4 Node5->Node5
Here is the caller graph for this function:
configSec2Lpf Node1 configSec2Lpf Node1->Node1 Node2 rvdt_configLpfCoefficient Node1->Node2 Node2->Node2 Node3 modRvdt_SetSenseFilter Node2->Node3 Node3->Node3

◆ customRound()

Float64 customRound ( const Float64 x)
static

customRound.

Custom rounding function for Float64 values. This function rounds a floating-point number of type Float64 to the nearest integer value. If the fractional part of the number is 0.5 or greater, the function rounds up. Otherwise, it rounds down.

Parameters
[in]xThe Float64 number to be rounded.
Returns
The rounded Float64 value.
Return values
value: The rounded Float64 value.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: customRound

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_CUSTOMROUND_01 HLR_RVDT_18870 WHEN the input floating-point value x is less than 0.0, the customRound() function SHALL compute the ceiling of (x - 0.5) and return the resulting rounded value. rvdt.c:customRound() Test Closed
LLR_RVDT_CUSTOMROUND_02 HLR_RVDT_18870 WHEN the input floating-point value x is greater than or equal to 0.0, the customRound() function SHALL compute the floor of (x + 0.5) and return the resulting rounded value. rvdt.c:customRound() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller customRound() [Low-Level Device Drivers] Target ceil() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   x (Flag) r_b0->r_t0   statusCode (Float64)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller customRound() [Low-Level Device Drivers] Target ceil() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   x (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_customRound start Entry: customRound() guard_1 LLR_01: Guard Check Is `x` is less than `0.0`? start->guard_1 err_exit_1 LLR_01 Error Exit execute conditional operational branch guard_1->err_exit_1 YES (TRUE) act_2 LLR_02: Action Step invoke routine `ceil()` to execute target subsystem hardware operation guard_1->act_2 NO (FALSE) act_3 LLR_03: Action Step invoke routine `floor()` to execute target subsystem hardware operation act_2->act_3 success_exit LLR_04: Final Exit return `the computed result` act_3->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_customRound in_store Input Data Sources & Parameters • x (const Float64) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: x in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Payload Transformation • Process payload via ceil() proc_1->proc_2 Data Payload (ceil) proc_3 LLR_03: Data Payload Transformation • Process payload via floor() proc_2->proc_3 Data Payload (floor) proc_4 LLR_04: Status Output Packaging • Format Return Payload: Float64 proc_3->proc_4 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (Float64) proc_4->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
customRound Node1 customRound Node1->Node1
Here is the caller graph for this function:
customRound Node1 customRound Node1->Node1 Node2 calculateWaveformTableSize Node1->Node2 Node5 rvdt_configLpfCoefficient Node1->Node5 Node2->Node2 Node3 rvdt_configWaveformGeneration Node2->Node3 Node3->Node3 Node4 modRvdt_SetRefConfig Node3->Node4 Node4->Node4 Node5->Node5 Node6 modRvdt_SetSenseFilter Node5->Node6 Node6->Node6

◆ getSenseDemod1Demod2Data()

DriverStatus getSenseDemod1Demod2Data ( const RvdtDevHandler rvdtDevHdl,
UInt32 * senseData )
static

getSenseDemod1Demod2Data.

Get sense demod 1 and demod 2 data.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[out]senseDataThe sense data output value.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_READ_FAILED: Failed to read from the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: getSenseDemod1Demod2Data

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_GETSENSEDEMOD1DEMOD2DATA_01 HLR_RVDT_18870 WHEN the pointer senseData is NULL (invalid), the getSenseDemod1Demod2Data() function SHALL abort processing and return DRV_INVALID_PARAM. rvdt.c:getSenseDemod1Demod2Data() Test Closed
LLR_RVDT_GETSENSEDEMOD1DEMOD2DATA_02 HLR_RVDT_18870 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the getSenseDemod1Demod2Data() function SHALL abort processing and return that driver failure status. rvdt.c:getSenseDemod1Demod2Data() Test Closed
LLR_RVDT_GETSENSEDEMOD1DEMOD2DATA_03 HLR_RVDT_18870 WHEN preconditions are satisfied, the getSenseDemod1Demod2Data() function SHALL read the RVDT module device block members memory offset (RVDT_SENSE1_SENSE2_DATA) at physical offset 0x02BC (MMAP_RVDT_SENSE1_SENSE2_DATA) using readRvdtReg(). rvdt.c:getSenseDemod1Demod2Data() Test Closed
LLR_RVDT_GETSENSEDEMOD1DEMOD2DATA_04 HLR_RVDT_18870 WHEN all operational processing completes successfully, the getSenseDemod1Demod2Data() function SHALL return DRV_SUCCESS. rvdt.c:getSenseDemod1Demod2Data() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller getSenseDemod1Demod2Data() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller getSenseDemod1Demod2Data() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) r_b0->r_t0   *senseData (Output Data)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_getSenseDemod1Demod2Data start Entry: getSenseDemod1Demod2Data() guard_1 LLR_01: Guard Check Is the pointer `senseData` is NULL (invalid)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_INVALID_PARAM` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `retStatus` guard_2->err_exit_2 YES (TRUE) act_3 LLR_03: Action Step read the RVDT module device block members memory offset (RVDT_SENSE1_SENSE2_DATA) at physical offset `0x02BC` (`MMAP_RVDT_SENSE1_SENSE2_DATA`) using `readRvdtReg()` guard_2->act_3 NO (FALSE) success_exit LLR_04: Final Exit return `DRV_SUCCESS` act_3->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_getSenseDemod1Demod2Data in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: senseData in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: retStatus proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Payload Transformation • Process payload via readRvdtReg() proc_2->proc_3 Data Payload (readRvdtReg) proc_4 LLR_04: Status Output Packaging • Format Return Payload: DriverStatus proc_3->proc_4 Final Output Data out_sink Output Data Sinks & Status Return • senseData (UInt32) proc_4->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
getSenseDemod1Demod2Data Node1 getSenseDemod1Demod2Data Node1->Node1 Node2 readRvdtReg Node1->Node2 Node2->Node2 Node3 interDrv_Read32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Read32 Node3->Node5 Node4->Node4 Node5->Node5
Here is the caller graph for this function:
getSenseDemod1Demod2Data Node1 getSenseDemod1Demod2Data Node1->Node1 Node2 rvdt_getSensePosition Node1->Node2 Node2->Node2 Node3 modRvdt_SenseRead Node2->Node3 Node3->Node3

◆ readRvdtReg()

DriverStatus readRvdtReg ( const UInt32 baseAddress,
const UInt32 offset,
UInt32 * data )
static

readRvdtReg.

RVDT PCIe read function.

Parameters
[in]baseAddressThe base address of the module and device.
[in]offsetThe offset address from module base address.
[out]data32bit data to read from PCIe.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_READ_FAILED: PCIe failed to read value.
DRV_INVALID_PARAM: Address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: readRvdtReg

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_READRVDTREG_01 HLR_RVDT_18870 WHEN the pointer data is NULL (invalid), the readRvdtReg() function SHALL abort processing and return DRV_INVALID_PARAM. rvdt.c:readRvdtReg() Test Closed
LLR_RVDT_READRVDTREG_02 HLR_RVDT_18870 WHEN the pointer data is valid, the readRvdtReg() function SHALL read a 32-bit register value from physical memory address (baseAddress + addrOffset) into *data using PCIe primitive interDrv_Read32(). rvdt.c:readRvdtReg() Test Closed
LLR_RVDT_READRVDTREG_03 HLR_RVDT_18870 WHEN memory access via interDrv_Read32() fails (status not equal to INTF_SUCCESS), the readRvdtReg() function SHALL abort processing and return DRV_READ_FAILED. rvdt.c:readRvdtReg() Test Closed
LLR_RVDT_READRVDTREG_04 HLR_RVDT_18870 WHEN all operational processing completes successfully, the readRvdtReg() function SHALL return DRV_SUCCESS. rvdt.c:readRvdtReg() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller readRvdtReg() [Low-Level Device Drivers] Target interDrv_Read32() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   baseAddress (Flag) l_t1->l_b1   offset (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller readRvdtReg() [Low-Level Device Drivers] Target interDrv_Read32() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   baseAddress (Payload) l_t1->l_b1   offset (Payload) r_b0->r_t0   *data (Output Data)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_readRvdtReg start Entry: readRvdtReg() guard_1 LLR_01: Guard Check Is the pointer `data` is NULL (invalid)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_INVALID_PARAM` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is `intStatus` is not equal to `INTF_SUCCESS`? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `DRV_READ_FAILED` guard_2->err_exit_2 YES (TRUE) act_3 LLR_03: Action Step invoke PCIe primitive `interDrv_Read32()` to read 32-bit word from physical memory address `baseAddress + addrOffset` into `*data` guard_2->act_3 NO (FALSE) success_exit LLR_04: Final Exit return `DRV_SUCCESS` act_3->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_readRvdtReg in_store Input Data Sources & Parameters • baseAddress (const UInt32) • offset (const UInt32) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: data in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: intStatus proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Payload Transformation • Process payload via interDrv_Read32() proc_2->proc_3 Data Payload (interDrv_Read32) proc_4 LLR_04: Status Output Packaging • Format Return Payload: DriverStatus proc_3->proc_4 Final Output Data out_sink Output Data Sinks & Status Return • data (UInt32) proc_4->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
readRvdtReg Node1 readRvdtReg Node1->Node1 Node2 interDrv_Read32 Node1->Node2 Node2->Node2 Node3 interDrv_isAddressValid Node2->Node3 Node4 memoryMap_Read32 Node2->Node4 Node3->Node3 Node4->Node4
Here is the caller graph for this function:
readRvdtReg Node1 readRvdtReg Node1->Node1 Node2 getSenseDemod1Demod2Data Node1->Node2 Node5 rvdt_configSec1 Node1->Node5 Node7 rvdt_configSec2 Node1->Node7 Node8 rvdt_getCbit Node1->Node8 Node10 rvdt_getPbit Node1->Node10 Node12 rvdt_getRefStatus Node1->Node12 Node19 rvdt_getSenseStatus Node1->Node19 Node22 rvdt_getTemp Node1->Node22 Node23 rvdt_initDev Node1->Node23 Node24 rvdt_setRefConfigCommand Node1->Node24 Node26 rvdt_setRefWaveEnable Node1->Node26 Node27 rvdt_setS1s2Config Node1->Node27 Node28 rvdt_setSenseConfigCommand Node1->Node28 Node29 rvdt_setSenseEnable Node1->Node29 Node30 rvdt_setSenseFilterCommand Node1->Node30 Node32 rvdt_setTestMux Node1->Node32 Node2->Node2 Node3 rvdt_getSensePosition Node2->Node3 Node3->Node3 Node4 modRvdt_SenseRead Node3->Node4 Node4->Node4 Node5->Node5 Node6 modRvdt_SetSenseConfig Node5->Node6 Node6->Node6 Node7->Node6 Node7->Node7 Node8->Node8 Node9 modHsb_getRvdtCbit Node8->Node9 Node9->Node9 Node10->Node10 Node11 modHsb_getRvdtPbit Node10->Node11 Node11->Node11 Node12->Node12 Node13 modRvdt_RefDisable Node12->Node13 Node18 modRvdt_RefEnable Node12->Node18 Node13->Node13 Node14 modRvdt_initReset Node13->Node14 Node14->Node14 Node15 modConfig_init Node14->Node15 Node16 modConfig_reset Node14->Node16 Node15->Node15 Node16->Node16 Node17 modConfig_close Node16->Node17 Node17->Node17 Node18->Node18 Node19->Node19 Node20 modRvdt_SenseDisable Node19->Node20 Node21 modRvdt_SenseEnable Node19->Node21 Node20->Node14 Node20->Node20 Node21->Node21 Node22->Node9 Node22->Node22 Node23->Node14 Node23->Node23 Node24->Node24 Node25 modRvdt_SetRefConfig Node24->Node25 Node25->Node25 Node26->Node13 Node26->Node18 Node26->Node26 Node27->Node6 Node27->Node27 Node28->Node6 Node28->Node28 Node29->Node20 Node29->Node21 Node29->Node29 Node30->Node30 Node31 modRvdt_SetSenseFilter Node30->Node31 Node31->Node31 Node32->Node6 Node32->Node32

◆ rvdt_configBpfCoefficient()

DriverStatus rvdt_configBpfCoefficient ( const RvdtDevHandler rvdtDevHdl,
const UInt32 bpfFreq,
const UInt32 bpfBandwidth )

rvdt_configBpfCoefficient.

Configure band pass filter coefficient.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[in]bpfFreqBPF Center Frequency value in Hz
[in]bpfBandwidthBand pass filter bandwidth in Hz
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_WRITE_FAILED: Failed to write to the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: rvdt_configBpfCoefficient

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_RVDT_CONFIGBPFCOEFFICIENT_01 HLR_RVDT_18873 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the rvdt_configBpfCoefficient() function SHALL abort processing and return that driver failure status. rvdt.c:rvdt_configBpfCoefficient() Test Closed
LLR_RVDT_RVDT_CONFIGBPFCOEFFICIENT_02 HLR_RVDT_18873 WHEN preconditions are satisfied, the rvdt_configBpfCoefficient() function SHALL invoke routine floor() to execute target subsystem hardware operation. rvdt.c:rvdt_configBpfCoefficient() Test Closed
LLR_RVDT_RVDT_CONFIGBPFCOEFFICIENT_03 HLR_RVDT_18873 WHEN preconditions are satisfied, the rvdt_configBpfCoefficient() function SHALL invoke routine configSec1BpfB1() to execute target subsystem hardware operation. rvdt.c:rvdt_configBpfCoefficient() Test Closed
LLR_RVDT_RVDT_CONFIGBPFCOEFFICIENT_04 HLR_RVDT_18873 WHEN preconditions are satisfied, the rvdt_configBpfCoefficient() function SHALL invoke routine configSec2BpfB1() to execute target subsystem hardware operation. rvdt.c:rvdt_configBpfCoefficient() Test Closed
LLR_RVDT_RVDT_CONFIGBPFCOEFFICIENT_05 HLR_RVDT_18873 WHEN preconditions are satisfied, the rvdt_configBpfCoefficient() function SHALL invoke routine configSec1BpfA2() to execute target subsystem hardware operation. rvdt.c:rvdt_configBpfCoefficient() Test Closed
LLR_RVDT_RVDT_CONFIGBPFCOEFFICIENT_06 HLR_RVDT_18873 WHEN preconditions are satisfied, the rvdt_configBpfCoefficient() function SHALL invoke routine configSec2BpfA2() to execute target subsystem hardware operation. rvdt.c:rvdt_configBpfCoefficient() Test Closed
LLR_RVDT_RVDT_CONFIGBPFCOEFFICIENT_07 HLR_RVDT_18873 WHEN all operational processing completes successfully, the rvdt_configBpfCoefficient() function SHALL return DRV_SUCCESS. rvdt.c:rvdt_configBpfCoefficient() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller rvdt_configBpfCoefficient() [Low-Level Device Drivers] Target floor() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) l_t1->l_b1   bpfFreq (Flag) l_t2->l_b2   bpfBandwidth (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller rvdt_configBpfCoefficient() [Low-Level Device Drivers] Target floor() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) l_t1->l_b1   bpfFreq (Payload) l_t2->l_b2   bpfBandwidth (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_rvdt_configBpfCoefficient start Entry: rvdt_configBpfCoefficient() guard_1 LLR_01: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `retStatus` guard_1->err_exit_1 YES (TRUE) act_2 LLR_02: Action Step invoke routine `floor()` to execute target subsystem hardware operation guard_1->act_2 NO (FALSE) act_3 LLR_03: Action Step invoke routine `configSec1BpfB1()` to execute target subsystem hardware operation act_2->act_3 act_4 LLR_04: Action Step invoke routine `configSec2BpfB1()` to execute target subsystem hardware operation act_3->act_4 act_5 LLR_05: Action Step invoke routine `configSec1BpfA2()` to execute target subsystem hardware operation act_4->act_5 act_6 LLR_06: Action Step invoke routine `configSec2BpfA2()` to execute target subsystem hardware operation act_5->act_6 success_exit LLR_07: Final Exit return `DRV_SUCCESS` act_6->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_rvdt_configBpfCoefficient in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) • bpfFreq (const UInt32) • bpfBandwidth (const UInt32) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: retStatus in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Payload Transformation • Process payload via floor() proc_1->proc_2 Data Payload (floor) proc_3 LLR_03: Data Payload Transformation • Process payload via configSec1BpfB1() proc_2->proc_3 Data Payload (configSec1BpfB1) proc_4 LLR_04: Data Payload Transformation • Process payload via configSec2BpfB1() proc_3->proc_4 Data Payload (configSec2BpfB1) proc_5 LLR_05: Data Payload Transformation • Process payload via configSec1BpfA2() proc_4->proc_5 Data Payload (configSec1BpfA2) proc_6 LLR_06: Data Payload Transformation • Process payload via configSec2BpfA2() proc_5->proc_6 Data Payload (configSec2BpfA2) proc_7 LLR_07: Status Output Packaging • Format Return Payload: DriverStatus proc_6->proc_7 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (DriverStatus) proc_7->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
rvdt_configBpfCoefficient Node1 rvdt_configBpfCoefficient Node1->Node1 Node2 configSec1BpfA2 Node1->Node2 Node7 configSec1BpfA3 Node1->Node7 Node8 configSec1BpfB1 Node1->Node8 Node9 configSec2BpfA2 Node1->Node9 Node10 configSec2BpfA3 Node1->Node10 Node11 configSec2BpfB1 Node1->Node11 Node2->Node2 Node3 writeRvdtReg Node2->Node3 Node3->Node3 Node4 interDrv_Write32 Node3->Node4 Node4->Node4 Node5 interDrv_isAddressValid Node4->Node5 Node6 memoryMap_Write32 Node4->Node6 Node5->Node5 Node6->Node6 Node7->Node3 Node7->Node7 Node8->Node3 Node8->Node8 Node9->Node3 Node9->Node9 Node10->Node3 Node10->Node10 Node11->Node3 Node11->Node11
Here is the caller graph for this function:
rvdt_configBpfCoefficient Node1 rvdt_configBpfCoefficient Node1->Node1 Node2 modRvdt_SetSenseFilter Node1->Node2 Node2->Node2

◆ rvdt_configLpfCoefficient()

DriverStatus rvdt_configLpfCoefficient ( const RvdtDevHandler rvdtDevHdl,
const UInt32 lpfFreq,
const UInt32 lpfRate )

rvdt_configLpfCoefficient.

Configure low pass filter coefficient.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[in]lpfFreqLow pass filter frequency (Hz).
[in]lpfRateLow pass filter rate (0 - 128us, 1 - 256us).
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_WRITE_FAILED: Failed to write to the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.
DRV_INVALID_VALUE: The value is out of range.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: rvdt_configLpfCoefficient

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_RVDT_CONFIGLPFCOEFFICIENT_01 HLR_RVDT_18874 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the rvdt_configLpfCoefficient() function SHALL abort processing and return that driver failure status. rvdt.c:rvdt_configLpfCoefficient() Test Closed
LLR_RVDT_RVDT_CONFIGLPFCOEFFICIENT_02 HLR_RVDT_18874 WHEN preconditions are satisfied, the rvdt_configLpfCoefficient() function SHALL invoke routine with() to execute target subsystem hardware operation. rvdt.c:rvdt_configLpfCoefficient() Test Closed
LLR_RVDT_RVDT_CONFIGLPFCOEFFICIENT_03 HLR_RVDT_18874 WHEN preconditions are satisfied, the rvdt_configLpfCoefficient() function SHALL invoke routine customRound() to execute target subsystem hardware operation. rvdt.c:rvdt_configLpfCoefficient() Test Closed
LLR_RVDT_RVDT_CONFIGLPFCOEFFICIENT_04 HLR_RVDT_18874 WHEN preconditions are satisfied, the rvdt_configLpfCoefficient() function SHALL invoke routine configSec1Lpf() to execute target subsystem hardware operation. rvdt.c:rvdt_configLpfCoefficient() Test Closed
LLR_RVDT_RVDT_CONFIGLPFCOEFFICIENT_05 HLR_RVDT_18874 WHEN preconditions are satisfied, the rvdt_configLpfCoefficient() function SHALL invoke routine configSec2Lpf() to execute target subsystem hardware operation. rvdt.c:rvdt_configLpfCoefficient() Test Closed
LLR_RVDT_RVDT_CONFIGLPFCOEFFICIENT_06 HLR_RVDT_18874 WHEN all operational processing completes successfully, the rvdt_configLpfCoefficient() function SHALL return DRV_SUCCESS. rvdt.c:rvdt_configLpfCoefficient() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller rvdt_configLpfCoefficient() [Low-Level Device Drivers] Target with() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) l_t1->l_b1   lpfFreq (Flag) l_t2->l_b2   lpfRate (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller rvdt_configLpfCoefficient() [Low-Level Device Drivers] Target with() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) l_t1->l_b1   lpfFreq (Payload) l_t2->l_b2   lpfRate (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_rvdt_configLpfCoefficient start Entry: rvdt_configLpfCoefficient() guard_1 LLR_01: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `retStatus` guard_1->err_exit_1 YES (TRUE) act_2 LLR_02: Action Step invoke routine `with()` to execute target subsystem hardware operation guard_1->act_2 NO (FALSE) act_3 LLR_03: Action Step invoke routine `customRound()` to execute target subsystem hardware operation act_2->act_3 act_4 LLR_04: Action Step invoke routine `configSec1Lpf()` to execute target subsystem hardware operation act_3->act_4 act_5 LLR_05: Action Step invoke routine `configSec2Lpf()` to execute target subsystem hardware operation act_4->act_5 success_exit LLR_06: Final Exit return `DRV_SUCCESS` act_5->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_rvdt_configLpfCoefficient in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) • lpfFreq (const UInt32) • lpfRate (const UInt32) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: retStatus in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Payload Transformation • Process payload via with() proc_1->proc_2 Data Payload (with) proc_3 LLR_03: Data Payload Transformation • Process payload via customRound() proc_2->proc_3 Data Payload (customRound) proc_4 LLR_04: Data Payload Transformation • Process payload via configSec1Lpf() proc_3->proc_4 Data Payload (configSec1Lpf) proc_5 LLR_05: Data Payload Transformation • Process payload via configSec2Lpf() proc_4->proc_5 Data Payload (configSec2Lpf) proc_6 LLR_06: Status Output Packaging • Format Return Payload: DriverStatus proc_5->proc_6 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (DriverStatus) proc_6->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
rvdt_configLpfCoefficient Node1 rvdt_configLpfCoefficient Node1->Node1 Node2 butterworthLowPassFilter Node1->Node2 Node3 configSec1Lpf Node1->Node3 Node8 configSec2Lpf Node1->Node8 Node9 customRound Node1->Node9 Node2->Node2 Node3->Node3 Node4 writeRvdtReg Node3->Node4 Node4->Node4 Node5 interDrv_Write32 Node4->Node5 Node5->Node5 Node6 interDrv_isAddressValid Node5->Node6 Node7 memoryMap_Write32 Node5->Node7 Node6->Node6 Node7->Node7 Node8->Node4 Node8->Node8 Node9->Node9
Here is the caller graph for this function:
rvdt_configLpfCoefficient Node1 rvdt_configLpfCoefficient Node1->Node1 Node2 modRvdt_SetSenseFilter Node1->Node2 Node2->Node2

◆ rvdt_configSec1()

DriverStatus rvdt_configSec1 ( const RvdtDevHandler rvdtDevHdl,
const UInt8 sense,
const UInt8 gain,
const UInt8 rate )

rvdt_configSec1.

Configure secondary 1 coil.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[in]senseThe secondary 1 sense value (0 - 1).
[in]gainThe secondary 1 gain value (0 - 3).
[in]rateThe demod 1 sample output rate (0 - 1).
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_WRITE_FAILED: Failed to write to the device or module.
DRV_READ_FAILED: Failed to read from the device or module.
DRV_INVALID_VALUE: The sense, gain, or rate value exceed limit.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: rvdt_configSec1

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_RVDT_CONFIGSEC1_01 HLR_RVDT_18870 WHEN sense is greater than RVDT_MAX_CFG_SENSE or gain is greater than RVDT_MAX_CFG_GAIN or rate is greater than RVDT_MAX_CFG_RATE, the rvdt_configSec1() function SHALL abort processing and return DRV_INVALID_VALUE. rvdt.c:rvdt_configSec1() Test Closed
LLR_RVDT_RVDT_CONFIGSEC1_02 HLR_RVDT_18870 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the rvdt_configSec1() function SHALL abort processing and return that driver failure status. rvdt.c:rvdt_configSec1() Test Closed
LLR_RVDT_RVDT_CONFIGSEC1_03 HLR_RVDT_18870 WHEN preconditions are satisfied, the rvdt_configSec1() function SHALL read the RVDT module device block members memory offset (RVDT_CFG_SEC1) at physical offset 0x0010 (MMAP_RVDT_CFG_SEC1) using readRvdtReg(). rvdt.c:rvdt_configSec1() Test Closed
LLR_RVDT_RVDT_CONFIGSEC1_04 HLR_RVDT_18870 WHEN preconditions are satisfied, the rvdt_configSec1() function SHALL write the RVDT module device block members memory offset (RVDT_CFG_SEC1) at physical offset 0x0010 (MMAP_RVDT_CFG_SEC1) using writeRvdtReg(). rvdt.c:rvdt_configSec1() Test Closed
LLR_RVDT_RVDT_CONFIGSEC1_05 HLR_RVDT_18870 WHEN all operational processing completes successfully, the rvdt_configSec1() function SHALL return DRV_SUCCESS. rvdt.c:rvdt_configSec1() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller rvdt_configSec1() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) l_t1->l_b1   sense (Flag) l_t2->l_b2   gain (Flag) l_t3->l_b3   rate (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller rvdt_configSec1() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) l_t1->l_b1   sense (Payload) l_t2->l_b2   gain (Payload) l_t3->l_b3   rate (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_rvdt_configSec1 start Entry: rvdt_configSec1() guard_1 LLR_01: Guard Check Is `sense` is greater than `RVDT_MAX_CFG_SENSE` or `gain` is greater than `RVDT_MAX_CFG_GAIN` or `rate` is greater than `RVDT_MAX_CFG_RATE`? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_INVALID_VALUE` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `retStatus` guard_2->err_exit_2 YES (TRUE) act_3 LLR_03: Action Step read the RVDT module device block members memory offset (RVDT_CFG_SEC1) at physical offset `0x0010` (`MMAP_RVDT_CFG_SEC1`) using `readRvdtReg()` guard_2->act_3 NO (FALSE) act_4 LLR_04: Action Step write the RVDT module device block members memory offset (RVDT_CFG_SEC1) at physical offset `0x0010` (`MMAP_RVDT_CFG_SEC1`) using `writeRvdtReg()` act_3->act_4 success_exit LLR_05: Final Exit return `DRV_SUCCESS` act_4->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_rvdt_configSec1 in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) • sense (const UInt8) • gain (const UInt8) • rate (const UInt8) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: sense in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: retStatus proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Payload Transformation • Process payload via readRvdtReg() proc_2->proc_3 Data Payload (readRvdtReg) proc_4 LLR_04: Data Payload Transformation • Process payload via writeRvdtReg() proc_3->proc_4 Data Payload (writeRvdtReg) proc_5 LLR_05: Status Output Packaging • Format Return Payload: DriverStatus proc_4->proc_5 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (DriverStatus) proc_5->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
rvdt_configSec1 Node1 rvdt_configSec1 Node1->Node1 Node2 readRvdtReg Node1->Node2 Node6 writeRvdtReg Node1->Node6 Node2->Node2 Node3 interDrv_Read32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Read32 Node3->Node5 Node4->Node4 Node5->Node5 Node6->Node6 Node7 interDrv_Write32 Node6->Node7 Node7->Node4 Node7->Node7 Node8 memoryMap_Write32 Node7->Node8 Node8->Node8
Here is the caller graph for this function:
rvdt_configSec1 Node1 rvdt_configSec1 Node1->Node1 Node2 modRvdt_SetSenseConfig Node1->Node2 Node2->Node2

◆ rvdt_configSec2()

DriverStatus rvdt_configSec2 ( const RvdtDevHandler rvdtDevHdl,
const UInt8 sense,
const UInt8 gain,
const UInt8 rate )

rvdt_configSec2.

Configure secondary 2 coil.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[in]senseThe secondary 2 sense value (0 - 1).
[in]gainThe secondary 2 gain value (0 - 3).
[in]rateThe demod 2 sample output rate (0 - 1).
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_WRITE_FAILED: Failed to write to the device or module.
DRV_READ_FAILED: Failed to read from the device or module.
DRV_INVALID_VALUE: The sense, gain, or rate value exceed limit.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: rvdt_configSec2

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_RVDT_CONFIGSEC2_01 HLR_RVDT_18870 WHEN sense is greater than RVDT_MAX_CFG_SENSE or gain is greater than RVDT_MAX_CFG_GAIN or rate is greater than RVDT_MAX_CFG_RATE, the rvdt_configSec2() function SHALL abort processing and return DRV_INVALID_VALUE. rvdt.c:rvdt_configSec2() Test Closed
LLR_RVDT_RVDT_CONFIGSEC2_02 HLR_RVDT_18870 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the rvdt_configSec2() function SHALL abort processing and return that driver failure status. rvdt.c:rvdt_configSec2() Test Closed
LLR_RVDT_RVDT_CONFIGSEC2_03 HLR_RVDT_18870 WHEN preconditions are satisfied, the rvdt_configSec2() function SHALL read the RVDT module device block members memory offset (RVDT_CFG_SEC2) at physical offset 0x0014 (MMAP_RVDT_CFG_SEC2) using readRvdtReg(). rvdt.c:rvdt_configSec2() Test Closed
LLR_RVDT_RVDT_CONFIGSEC2_04 HLR_RVDT_18870 WHEN preconditions are satisfied, the rvdt_configSec2() function SHALL write the RVDT module device block members memory offset (RVDT_CFG_SEC2) at physical offset 0x0014 (MMAP_RVDT_CFG_SEC2) using writeRvdtReg(). rvdt.c:rvdt_configSec2() Test Closed
LLR_RVDT_RVDT_CONFIGSEC2_05 HLR_RVDT_18870 WHEN all operational processing completes successfully, the rvdt_configSec2() function SHALL return DRV_SUCCESS. rvdt.c:rvdt_configSec2() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller rvdt_configSec2() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) l_t1->l_b1   sense (Flag) l_t2->l_b2   gain (Flag) l_t3->l_b3   rate (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller rvdt_configSec2() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) l_t1->l_b1   sense (Payload) l_t2->l_b2   gain (Payload) l_t3->l_b3   rate (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_rvdt_configSec2 start Entry: rvdt_configSec2() guard_1 LLR_01: Guard Check Is `sense` is greater than `RVDT_MAX_CFG_SENSE` or `gain` is greater than `RVDT_MAX_CFG_GAIN` or `rate` is greater than `RVDT_MAX_CFG_RATE`? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_INVALID_VALUE` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `retStatus` guard_2->err_exit_2 YES (TRUE) act_3 LLR_03: Action Step read the RVDT module device block members memory offset (RVDT_CFG_SEC2) at physical offset `0x0014` (`MMAP_RVDT_CFG_SEC2`) using `readRvdtReg()` guard_2->act_3 NO (FALSE) act_4 LLR_04: Action Step write the RVDT module device block members memory offset (RVDT_CFG_SEC2) at physical offset `0x0014` (`MMAP_RVDT_CFG_SEC2`) using `writeRvdtReg()` act_3->act_4 success_exit LLR_05: Final Exit return `DRV_SUCCESS` act_4->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_rvdt_configSec2 in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) • sense (const UInt8) • gain (const UInt8) • rate (const UInt8) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: sense in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: retStatus proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Payload Transformation • Process payload via readRvdtReg() proc_2->proc_3 Data Payload (readRvdtReg) proc_4 LLR_04: Data Payload Transformation • Process payload via writeRvdtReg() proc_3->proc_4 Data Payload (writeRvdtReg) proc_5 LLR_05: Status Output Packaging • Format Return Payload: DriverStatus proc_4->proc_5 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (DriverStatus) proc_5->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
rvdt_configSec2 Node1 rvdt_configSec2 Node1->Node1 Node2 readRvdtReg Node1->Node2 Node6 writeRvdtReg Node1->Node6 Node2->Node2 Node3 interDrv_Read32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Read32 Node3->Node5 Node4->Node4 Node5->Node5 Node6->Node6 Node7 interDrv_Write32 Node6->Node7 Node7->Node4 Node7->Node7 Node8 memoryMap_Write32 Node7->Node8 Node8->Node8
Here is the caller graph for this function:
rvdt_configSec2 Node1 rvdt_configSec2 Node1->Node1 Node2 modRvdt_SetSenseConfig Node1->Node2 Node2->Node2

◆ rvdt_configWaveformGeneration()

DriverStatus rvdt_configWaveformGeneration ( const RvdtDevHandler rvdtDevHdl,
const UInt8 dacvcm,
const UInt8 vocm,
const UInt8 gain,
const UInt8 mode,
const Float32 voltageRms,
const Float32 frequency )

rvdt_configWaveformGeneration.

Configure waveform generation.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[in]dacvcmDifferential offset adjustment value.
[in]vocmDifferential mode output common mode.
[in]gainReference gain.
[in]modeSingle-ended mode or differential mode.
[in]voltageRmsOperating vrms value.
[in]frequencyOperating frequency value (Hz).
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_WRITE_FAILED: Failed to write to the device or module.
DRV_INVALID_SIZE: The size of the waveform table is invalid.
DRV_INVALID_PARAM: The provided address pointer is invalid.
DRV_INVALID_VALUE: The input value is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: rvdt_configWaveformGeneration

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_RVDT_CONFIGWAVEFORMGENERATION_01 HLR_RVDT_18870 WHEN any waveform configuration argument exceeds maximum hardware limits (gain > RVDT_MAX_WAVE_GAIN, dacvcm > RVDT_MAX_DACVCM, vocm > RVDT_MAX_VOCM, or mode > RVDT_MAX_WAVE_MODE), the rvdt_configWaveformGeneration() function SHALL abort processing and return DRV_INVALID_VALUE. rvdt.c:rvdt_configWaveformGeneration() Test Closed
LLR_RVDT_RVDT_CONFIGWAVEFORMGENERATION_02 HLR_RVDT_18870 WHEN mode is equal to 0, the rvdt_configWaveformGeneration() function SHALL clear bit 7 (mode select) in the excitation waveform configuration data. rvdt.c:rvdt_configWaveformGeneration() Test Closed
LLR_RVDT_RVDT_CONFIGWAVEFORMGENERATION_03 HLR_RVDT_18870 WHEN mode is not equal to 0, the rvdt_configWaveformGeneration() function SHALL set bit 7 (mode select) in the excitation waveform configuration data. rvdt.c:rvdt_configWaveformGeneration() Test Closed
LLR_RVDT_RVDT_CONFIGWAVEFORMGENERATION_04 HLR_RVDT_18870 WHEN parameter validation passes, the rvdt_configWaveformGeneration() function SHALL calculate lookup table amplitude and write the excitation waveform pattern to FPGA memory map using writeRvdtReg(). rvdt.c:rvdt_configWaveformGeneration() Test Closed
LLR_RVDT_RVDT_CONFIGWAVEFORMGENERATION_05 HLR_RVDT_18870 WHEN any hardware register write operation fails (status not equal to DRV_SUCCESS), the rvdt_configWaveformGeneration() function SHALL abort processing and return that driver failure status. rvdt.c:rvdt_configWaveformGeneration() Test Closed
LLR_RVDT_RVDT_CONFIGWAVEFORMGENERATION_06 HLR_RVDT_18870 WHEN all operational processing completes successfully, the rvdt_configWaveformGeneration() function SHALL return DRV_SUCCESS. rvdt.c:rvdt_configWaveformGeneration() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller rvdt_configWaveformGeneration() [Low-Level Device Drivers] Target calculateWaveformTableSize() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) l_t1->l_b1   dacvcm (Flag) l_t2->l_b2   vocm (Flag) l_t3->l_b3   gain (Flag) l_t4->l_b4   mode (Flag) l_t5->l_b5   voltageRms (Flag) l_t6->l_b6   frequency (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller rvdt_configWaveformGeneration() [Low-Level Device Drivers] Target calculateWaveformTableSize() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) l_t1->l_b1   dacvcm (Payload) l_t2->l_b2   vocm (Payload) l_t3->l_b3   gain (Payload) l_t4->l_b4   mode (Payload) l_t5->l_b5   voltageRms (Payload) l_t6->l_b6   frequency (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_rvdt_configWaveformGeneration start Entry: rvdt_configWaveformGeneration() guard_1 LLR_01: Guard Check Is `gain` is greater than `RVDT_MAX_WAVE_GAIN` or `dacvcm` is greater than `RVDT_MAX_DACVCM` or `vocm` is greater than `RVDT_MAX_VOCM` or `mode` is greater than `RVDT_MAX_WAVE_MODE`? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_INVALID_VALUE` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is `mode` is equal to `0`? guard_1->guard_2 err_exit_2 LLR_02 Error Exit execute conditional operational branch guard_2->err_exit_2 YES (TRUE) guard_3 LLR_03: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_2->guard_3 err_exit_3 LLR_03 Error Exit abort processing and return `retStatus` guard_3->err_exit_3 YES (TRUE) guard_4 LLR_04: Guard Check Is `wfmTable.size` is greater than `UINT8_MAX`? guard_3->guard_4 err_exit_4 LLR_04 Error Exit abort processing and return `DRV_INVALID_SIZE` guard_4->err_exit_4 YES (TRUE) act_5 LLR_05: Action Step invoke routine `calculateWaveformTableSize()` to execute target subsystem hardware operation guard_4->act_5 NO (FALSE) act_6 LLR_06: Action Step invoke routine `calculateWaveformTableValue()` to execute target subsystem hardware operation act_5->act_6 act_7 LLR_07: Action Step write the RVDT module device block members memory offset (RVDT_CFG_WAVE_GEN) at physical offset `0x0008` (`MMAP_RVDT_CFG_WAVE_GEN`) using `writeRvdtReg()` act_6->act_7 success_exit LLR_08: Final Exit return `DRV_SUCCESS` act_7->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_rvdt_configWaveformGeneration in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) • dacvcm (const UInt8) • vocm (const UInt8) • gain (const UInt8) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: gain in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: mode proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Validation Check • Evaluate Parameter / State: retStatus proc_2->proc_3 Validated Input Data proc_4 LLR_04: Data Validation Check • Evaluate Parameter / State: wfmTable proc_3->proc_4 Validated Input Data proc_5 LLR_05: Data Payload Transformation • Process payload via calculateWaveformTableSize() proc_4->proc_5 Data Payload (calculateWaveformTableSize) proc_6 LLR_06: Data Payload Transformation • Process payload via calculateWaveformTableValue() proc_5->proc_6 Data Payload (calculateWaveformTableValue) proc_7 LLR_07: Data Payload Transformation • Process payload via writeRvdtReg() proc_6->proc_7 Data Payload (writeRvdtReg) proc_8 LLR_08: Status Output Packaging • Format Return Payload: DriverStatus proc_7->proc_8 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (DriverStatus) proc_8->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
rvdt_configWaveformGeneration Node1 rvdt_configWaveformGeneration Node1->Node1 Node2 calculateWaveformTableSize Node1->Node2 Node4 calculateWaveformTableValue Node1->Node4 Node5 writeRvdtReg Node1->Node5 Node2->Node2 Node3 customRound Node2->Node3 Node3->Node3 Node4->Node4 Node5->Node5 Node6 interDrv_Write32 Node5->Node6 Node6->Node6 Node7 interDrv_isAddressValid Node6->Node7 Node8 memoryMap_Write32 Node6->Node8 Node7->Node7 Node8->Node8
Here is the caller graph for this function:
rvdt_configWaveformGeneration Node1 rvdt_configWaveformGeneration Node1->Node1 Node2 modRvdt_SetRefConfig Node1->Node2 Node2->Node2

◆ rvdt_getCbit()

DriverStatus rvdt_getCbit ( const RvdtDevHandler rvdtDevHdl,
RvdtCbitStatus * cbitStatus )

rvdt_getCbit.

Get RVDT CBIT status.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[out]cbitStatusThe pointer of CBIT status value.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_READ_FAILED: Failed to read from the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: rvdt_getCbit

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_RVDT_GETCBIT_01 HLR_RVDT_23601 WHEN the pointer cbitStatus is NULL (invalid), the rvdt_getCbit() function SHALL abort processing and return DRV_INVALID_PARAM. rvdt.c:rvdt_getCbit() Test Closed
LLR_RVDT_RVDT_GETCBIT_02 HLR_RVDT_23601 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the rvdt_getCbit() function SHALL abort processing and return that driver failure status. rvdt.c:rvdt_getCbit() Test Closed
LLR_RVDT_RVDT_GETCBIT_03 HLR_RVDT_23601 WHEN querying RVDT Channel Bank 1, the rvdt_getCbit() function SHALL read common power-good, over-temperature, and supply rail fault status bits from the bank CBIT status register. rvdt.c:rvdt_getCbit() Test Closed
LLR_RVDT_RVDT_GETCBIT_04 HLR_RVDT_23601 FOR each RVDT device bank, WHEN the demodulator configuration register does not match active status, the rvdt_getCbit() function SHALL set the configuration mismatch failure status for that bank. rvdt.c:rvdt_getCbit() Test Closed
LLR_RVDT_RVDT_GETCBIT_05 HLR_RVDT_23601 FOR each configured RVDT device bank (0 through RVDT_DEV_CH_MAX - 1), the rvdt_getCbit() function SHALL calculate the register offset using MMAP_RVDT_DEV_OFFSET and read the bank CBIT Status Register (MMAP_RVDT_CBIT_STATUS) and Diagnostic Register via readRvdtReg(). rvdt.c:rvdt_getCbit() Test Closed
LLR_RVDT_RVDT_GETCBIT_06 HLR_RVDT_23601 WHEN preconditions are satisfied, the rvdt_getCbit() function SHALL invoke bitwise routine READ_BIT() to extract target channel status bit from register payload. rvdt.c:rvdt_getCbit() Test Closed
LLR_RVDT_RVDT_GETCBIT_07 HLR_RVDT_23601 WHEN all operational processing completes successfully, the rvdt_getCbit() function SHALL return DRV_SUCCESS. rvdt.c:rvdt_getCbit() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller rvdt_getCbit() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller rvdt_getCbit() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) r_b0->r_t0   *cbitStatus (Output Data)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_rvdt_getCbit start Entry: rvdt_getCbit() guard_1 LLR_01: Guard Check Is the pointer `cbitStatus` is NULL (invalid)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_INVALID_PARAM` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `retStatus` guard_2->err_exit_2 YES (TRUE) guard_3 LLR_03: Guard Check Is `i` is equal to `0U`? guard_2->guard_3 err_exit_3 LLR_03 Error Exit execute conditional operational branch guard_3->err_exit_3 YES (TRUE) guard_4 LLR_04: Guard Check Is `configStatus` is equal to `FALSE`? guard_3->guard_4 err_exit_4 LLR_04 Error Exit execute conditional operational branch guard_4->err_exit_4 YES (TRUE) act_5 LLR_05: Action Step read the RVDT CBIT Status Register (CBIT_STATUS) at physical offset `0x0288 + (MMAP_RVDT_DEV_OFFSET * i)` (`MMAP_RVDT_CBIT_STATUS`) using `readRvdtReg()` guard_4->act_5 NO (FALSE) act_6 LLR_06: Action Step invoke bitwise routine `READ_BIT()` to extract target channel status bit from register payload act_5->act_6 success_exit LLR_07: Final Exit return `DRV_SUCCESS` act_6->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_rvdt_getCbit in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: cbitStatus in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: retStatus proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Validation Check • Evaluate Parameter / State: i proc_2->proc_3 Validated Input Data proc_4 LLR_04: Data Validation Check • Evaluate Parameter / State: configStatus proc_3->proc_4 Validated Input Data proc_5 LLR_05: Data Payload Transformation • Process payload via readRvdtReg() proc_4->proc_5 Data Payload (readRvdtReg) proc_6 LLR_06: Data Payload Transformation • Process payload via READ_BIT() proc_5->proc_6 Data Payload (READ_BIT) proc_7 LLR_07: Status Output Packaging • Format Return Payload: DriverStatus proc_6->proc_7 Final Output Data out_sink Output Data Sinks & Status Return • cbitStatus (RvdtCbitStatus) proc_7->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
rvdt_getCbit Node1 rvdt_getCbit Node1->Node1 Node2 readRvdtReg Node1->Node2 Node2->Node2 Node3 interDrv_Read32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Read32 Node3->Node5 Node4->Node4 Node5->Node5
Here is the caller graph for this function:
rvdt_getCbit Node1 rvdt_getCbit Node1->Node1 Node2 modHsb_getRvdtCbit Node1->Node2 Node2->Node2

◆ rvdt_getPbit()

DriverStatus rvdt_getPbit ( const RvdtDevHandler rvdtDevHdl,
RvdtPbitStatus * pbitStatus )

rvdt_getPbit.

Get RVDT PBIT status.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[out]pbitStatusThe pointer of PBIT status value.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_READ_FAILED: Failed to read from the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: rvdt_getPbit

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_RVDT_GETPBIT_01 HLR_RVDT_323 WHEN the pointer pbitStatus is NULL (invalid), the rvdt_getPbit() function SHALL abort processing and return DRV_INVALID_PARAM. rvdt.c:rvdt_getPbit() Test Closed
LLR_RVDT_RVDT_GETPBIT_02 HLR_RVDT_323 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the rvdt_getPbit() function SHALL abort processing and return that driver failure status. rvdt.c:rvdt_getPbit() Test Closed
LLR_RVDT_RVDT_GETPBIT_03 HLR_RVDT_323 WHEN querying RVDT Channel Bank 1, the rvdt_getPbit() function SHALL read the global PBIT execution completion status (MMAP_RVDT_POS_PBIT_BIT_DONE) from the PBIT status register. rvdt.c:rvdt_getPbit() Test Closed
LLR_RVDT_RVDT_GETPBIT_04 HLR_RVDT_323 FOR each configured RVDT device bank (0 through RVDT_DEV_CH_MAX - 1), the rvdt_getPbit() function SHALL calculate the register offset using MMAP_RVDT_DEV_OFFSET and read the bank PBIT Status Register (MMAP_RVDT_PBIT_STATUS) via readRvdtReg(). rvdt.c:rvdt_getPbit() Test Closed
LLR_RVDT_RVDT_GETPBIT_05 HLR_RVDT_323 WHEN preconditions are satisfied, the rvdt_getPbit() function SHALL invoke bitwise routine READ_BIT() to extract target channel status bit from register payload. rvdt.c:rvdt_getPbit() Test Closed
LLR_RVDT_RVDT_GETPBIT_06 HLR_RVDT_323 WHEN all operational processing completes successfully, the rvdt_getPbit() function SHALL return DRV_SUCCESS. rvdt.c:rvdt_getPbit() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller rvdt_getPbit() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller rvdt_getPbit() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) r_b0->r_t0   *pbitStatus (Output Data)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_rvdt_getPbit start Entry: rvdt_getPbit() guard_1 LLR_01: Guard Check Is the pointer `pbitStatus` is NULL (invalid)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_INVALID_PARAM` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `retStatus` guard_2->err_exit_2 YES (TRUE) guard_3 LLR_03: Guard Check Is `i` is equal to `0U`? guard_2->guard_3 err_exit_3 LLR_03 Error Exit execute conditional operational branch guard_3->err_exit_3 YES (TRUE) act_4 LLR_04: Action Step read the RVDT PBIT Status Register (PBIT_STATUS) at physical offset `0x0284 + (MMAP_RVDT_DEV_OFFSET * i)` (`MMAP_RVDT_PBIT_STATUS`) using `readRvdtReg()` guard_3->act_4 NO (FALSE) act_5 LLR_05: Action Step invoke bitwise routine `READ_BIT()` to extract target channel status bit from register payload act_4->act_5 success_exit LLR_06: Final Exit return `DRV_SUCCESS` act_5->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_rvdt_getPbit in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: pbitStatus in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: retStatus proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Validation Check • Evaluate Parameter / State: i proc_2->proc_3 Validated Input Data proc_4 LLR_04: Data Payload Transformation • Process payload via readRvdtReg() proc_3->proc_4 Data Payload (readRvdtReg) proc_5 LLR_05: Data Payload Transformation • Process payload via READ_BIT() proc_4->proc_5 Data Payload (READ_BIT) proc_6 LLR_06: Status Output Packaging • Format Return Payload: DriverStatus proc_5->proc_6 Final Output Data out_sink Output Data Sinks & Status Return • pbitStatus (RvdtPbitStatus) proc_6->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
rvdt_getPbit Node1 rvdt_getPbit Node1->Node1 Node2 readRvdtReg Node1->Node2 Node2->Node2 Node3 interDrv_Read32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Read32 Node3->Node5 Node4->Node4 Node5->Node5
Here is the caller graph for this function:
rvdt_getPbit Node1 rvdt_getPbit Node1->Node1 Node2 modHsb_getRvdtPbit Node1->Node2 Node2->Node2

◆ rvdt_getRefStatus()

DriverStatus rvdt_getRefStatus ( const RvdtDevHandler rvdtDevHdl,
Bool * opStatus )

rvdt_getRefStatus.

Get reference status in control command.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[out]opStatusThe operational status for reference.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_READ_FAILED: Failed to read from the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: rvdt_getRefStatus

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_RVDT_GETREFSTATUS_01 HLR_RVDT_16937 WHEN the pointer opStatus is NULL (invalid), the rvdt_getRefStatus() function SHALL abort processing and return DRV_INVALID_PARAM. rvdt.c:rvdt_getRefStatus() Test Closed
LLR_RVDT_RVDT_GETREFSTATUS_02 HLR_RVDT_16937 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the rvdt_getRefStatus() function SHALL abort processing and return that driver failure status. rvdt.c:rvdt_getRefStatus() Test Closed
LLR_RVDT_RVDT_GETREFSTATUS_03 HLR_RVDT_16937 WHEN preconditions are satisfied, the rvdt_getRefStatus() function SHALL read the RVDT module device block members memory offset (RVDT_CONTROL_CMD) at physical offset 0x0258 (MMAP_RVDT_CONTROL_CMD) using readRvdtReg(). rvdt.c:rvdt_getRefStatus() Test Closed
LLR_RVDT_RVDT_GETREFSTATUS_04 HLR_RVDT_16937 WHEN preconditions are satisfied, the rvdt_getRefStatus() function SHALL invoke bitwise routine READ_BIT() to extract target channel status bit from register payload. rvdt.c:rvdt_getRefStatus() Test Closed
LLR_RVDT_RVDT_GETREFSTATUS_05 HLR_RVDT_16937 WHEN all operational processing completes successfully, the rvdt_getRefStatus() function SHALL return DRV_SUCCESS. rvdt.c:rvdt_getRefStatus() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller rvdt_getRefStatus() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller rvdt_getRefStatus() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) r_b0->r_t0   *opStatus (Output Data)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_rvdt_getRefStatus start Entry: rvdt_getRefStatus() guard_1 LLR_01: Guard Check Is the pointer `opStatus` is NULL (invalid)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_INVALID_PARAM` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `retStatus` guard_2->err_exit_2 YES (TRUE) act_3 LLR_03: Action Step read the RVDT module device block members memory offset (RVDT_CONTROL_CMD) at physical offset `0x0258` (`MMAP_RVDT_CONTROL_CMD`) using `readRvdtReg()` guard_2->act_3 NO (FALSE) act_4 LLR_04: Action Step invoke bitwise routine `READ_BIT()` to extract target channel status bit from register payload act_3->act_4 success_exit LLR_05: Final Exit return `DRV_SUCCESS` act_4->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_rvdt_getRefStatus in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: opStatus in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: retStatus proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Payload Transformation • Process payload via readRvdtReg() proc_2->proc_3 Data Payload (readRvdtReg) proc_4 LLR_04: Data Payload Transformation • Process payload via READ_BIT() proc_3->proc_4 Data Payload (READ_BIT) proc_5 LLR_05: Status Output Packaging • Format Return Payload: DriverStatus proc_4->proc_5 Final Output Data out_sink Output Data Sinks & Status Return • opStatus (Bool) proc_5->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
rvdt_getRefStatus Node1 rvdt_getRefStatus Node1->Node1 Node2 readRvdtReg Node1->Node2 Node2->Node2 Node3 interDrv_Read32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Read32 Node3->Node5 Node4->Node4 Node5->Node5
Here is the caller graph for this function:
rvdt_getRefStatus Node1 rvdt_getRefStatus Node1->Node1 Node2 modRvdt_RefDisable Node1->Node2 Node7 modRvdt_RefEnable Node1->Node7 Node2->Node2 Node3 modRvdt_initReset Node2->Node3 Node3->Node3 Node4 modConfig_init Node3->Node4 Node5 modConfig_reset Node3->Node5 Node4->Node4 Node5->Node5 Node6 modConfig_close Node5->Node6 Node6->Node6 Node7->Node7

◆ rvdt_getSensePosition()

DriverStatus rvdt_getSensePosition ( const RvdtDevHandler rvdtDevHdl,
Float32 * demod1Ptr,
Float32 * demod2Ptr,
Float32 * deltaVal,
UInt32 * adcVal1,
UInt32 * adcVal2 )

rvdt_getSensePosition.

Get sense position data.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[out]demod1PtrThe demod 1 value.
[out]demod2PtrThe demod 2 value.
[out]deltaValThe demod delta value.
[out]adcVal1The adc 1 value.
[out]adcVal2The adc 2 value.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_READ_FAILED: Failed to read from the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: rvdt_getSensePosition

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_RVDT_GETSENSEPOSITION_01 HLR_RVDT_18870 WHEN the pointer demod1Ptr is NULL (invalid) or the pointer demod2Ptr is NULL (invalid) or the pointer deltaVal is NULL (invalid) or the pointer adcVal1 is NULL (invalid) or the pointer adcVal2 is NULL (invalid), the rvdt_getSensePosition() function SHALL abort processing and return DRV_INVALID_PARAM. rvdt.c:rvdt_getSensePosition() Test Closed
LLR_RVDT_RVDT_GETSENSEPOSITION_02 HLR_RVDT_18870 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the rvdt_getSensePosition() function SHALL abort processing and return that driver failure status. rvdt.c:rvdt_getSensePosition() Test Closed
LLR_RVDT_RVDT_GETSENSEPOSITION_03 HLR_RVDT_18870 WHEN preconditions are satisfied, the rvdt_getSensePosition() function SHALL invoke routine getSenseDemod1Demod2Data() to execute target subsystem hardware operation. rvdt.c:rvdt_getSensePosition() Test Closed
LLR_RVDT_RVDT_GETSENSEPOSITION_04 HLR_RVDT_18870 WHEN all operational processing completes successfully, the rvdt_getSensePosition() function SHALL return DRV_SUCCESS. rvdt.c:rvdt_getSensePosition() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller rvdt_getSensePosition() [Low-Level Device Drivers] Target getSenseDemod1Demod2Data() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller rvdt_getSensePosition() [Low-Level Device Drivers] Target getSenseDemod1Demod2Data() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) r_b0->r_t0   *demod1Ptr (Output Data) r_b1->r_t1   *demod2Ptr (Output Data) r_b2->r_t2   *deltaVal (Output Data) r_b3->r_t3   *adcVal1 (Output Data) r_b4->r_t4   *adcVal2 (Output Data)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_rvdt_getSensePosition start Entry: rvdt_getSensePosition() guard_1 LLR_01: Guard Check Is the pointer `demod1Ptr` is NULL (invalid) or the pointer `demod2Ptr` is NULL (invalid) or the pointer `deltaVal` is NULL (invalid) or the pointer `adcVal1` is NULL (invalid) or the pointer `adcVal2` is NULL (invalid)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_INVALID_PARAM` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `retStatus` guard_2->err_exit_2 YES (TRUE) act_3 LLR_03: Action Step invoke routine `getSenseDemod1Demod2Data()` to execute target subsystem hardware operation guard_2->act_3 NO (FALSE) success_exit LLR_04: Final Exit return `DRV_SUCCESS` act_3->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_rvdt_getSensePosition in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: demod1Ptr in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: retStatus proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Payload Transformation • Process payload via getSenseDemod1Demod2Data() proc_2->proc_3 Data Payload (getSenseDemod1Demod2Data) proc_4 LLR_04: Status Output Packaging • Format Return Payload: DriverStatus proc_3->proc_4 Final Output Data out_sink Output Data Sinks & Status Return • demod1Ptr (Float32) • demod2Ptr (Float32) • deltaVal (Float32) • adcVal1 (UInt32) proc_4->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
rvdt_getSensePosition Node1 rvdt_getSensePosition Node1->Node1 Node2 getSenseDemod1Demod2Data Node1->Node2 Node2->Node2 Node3 readRvdtReg Node2->Node3 Node3->Node3 Node4 interDrv_Read32 Node3->Node4 Node4->Node4 Node5 interDrv_isAddressValid Node4->Node5 Node6 memoryMap_Read32 Node4->Node6 Node5->Node5 Node6->Node6
Here is the caller graph for this function:
rvdt_getSensePosition Node1 rvdt_getSensePosition Node1->Node1 Node2 modRvdt_SenseRead Node1->Node2 Node2->Node2

◆ rvdt_getSenseStatus()

DriverStatus rvdt_getSenseStatus ( const RvdtDevHandler rvdtDevHdl,
Bool * opStatus )

rvdt_getSenseStatus.

Get RVDT sense status in control command.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[out]opStatusThe operational status for sense.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_READ_FAILED: Failed to read from the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: rvdt_getSenseStatus

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_RVDT_GETSENSESTATUS_01 HLR_RVDT_18870 WHEN the pointer opStatus is NULL (invalid), the rvdt_getSenseStatus() function SHALL abort processing and return DRV_INVALID_PARAM. rvdt.c:rvdt_getSenseStatus() Test Closed
LLR_RVDT_RVDT_GETSENSESTATUS_02 HLR_RVDT_18870 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the rvdt_getSenseStatus() function SHALL abort processing and return that driver failure status. rvdt.c:rvdt_getSenseStatus() Test Closed
LLR_RVDT_RVDT_GETSENSESTATUS_03 HLR_RVDT_18870 WHEN preconditions are satisfied, the rvdt_getSenseStatus() function SHALL read the RVDT module device block members memory offset (RVDT_CONTROL_CMD) at physical offset 0x0258 (MMAP_RVDT_CONTROL_CMD) using readRvdtReg(). rvdt.c:rvdt_getSenseStatus() Test Closed
LLR_RVDT_RVDT_GETSENSESTATUS_04 HLR_RVDT_18870 WHEN preconditions are satisfied, the rvdt_getSenseStatus() function SHALL invoke bitwise routine READ_BIT() to extract target channel status bit from register payload. rvdt.c:rvdt_getSenseStatus() Test Closed
LLR_RVDT_RVDT_GETSENSESTATUS_05 HLR_RVDT_18870 WHEN all operational processing completes successfully, the rvdt_getSenseStatus() function SHALL return DRV_SUCCESS. rvdt.c:rvdt_getSenseStatus() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller rvdt_getSenseStatus() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller rvdt_getSenseStatus() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) r_b0->r_t0   *opStatus (Output Data)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_rvdt_getSenseStatus start Entry: rvdt_getSenseStatus() guard_1 LLR_01: Guard Check Is the pointer `opStatus` is NULL (invalid)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_INVALID_PARAM` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `retStatus` guard_2->err_exit_2 YES (TRUE) act_3 LLR_03: Action Step read the RVDT module device block members memory offset (RVDT_CONTROL_CMD) at physical offset `0x0258` (`MMAP_RVDT_CONTROL_CMD`) using `readRvdtReg()` guard_2->act_3 NO (FALSE) act_4 LLR_04: Action Step invoke bitwise routine `READ_BIT()` to extract target channel status bit from register payload act_3->act_4 success_exit LLR_05: Final Exit return `DRV_SUCCESS` act_4->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_rvdt_getSenseStatus in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: opStatus in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: retStatus proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Payload Transformation • Process payload via readRvdtReg() proc_2->proc_3 Data Payload (readRvdtReg) proc_4 LLR_04: Data Payload Transformation • Process payload via READ_BIT() proc_3->proc_4 Data Payload (READ_BIT) proc_5 LLR_05: Status Output Packaging • Format Return Payload: DriverStatus proc_4->proc_5 Final Output Data out_sink Output Data Sinks & Status Return • opStatus (Bool) proc_5->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
rvdt_getSenseStatus Node1 rvdt_getSenseStatus Node1->Node1 Node2 readRvdtReg Node1->Node2 Node2->Node2 Node3 interDrv_Read32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Read32 Node3->Node5 Node4->Node4 Node5->Node5
Here is the caller graph for this function:
rvdt_getSenseStatus Node1 rvdt_getSenseStatus Node1->Node1 Node2 modRvdt_SenseDisable Node1->Node2 Node7 modRvdt_SenseEnable Node1->Node7 Node2->Node2 Node3 modRvdt_initReset Node2->Node3 Node3->Node3 Node4 modConfig_init Node3->Node4 Node5 modConfig_reset Node3->Node5 Node4->Node4 Node5->Node5 Node6 modConfig_close Node5->Node6 Node6->Node6 Node7->Node7

◆ rvdt_getTemp()

DriverStatus rvdt_getTemp ( const RvdtDevHandler rvdtDevHdl,
Float32 * temp )

rvdt_getTemp.

Get RVDT temperature value in degree celsius (C).

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[out]tempThe pointer of temperature value in degree celsius (C).
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_READ_FAILED: Failed to read from the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: rvdt_getTemp

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_RVDT_GETTEMP_01 HLR_RVDT_29269 WHEN the pointer temp is NULL (invalid), the rvdt_getTemp() function SHALL abort processing and return DRV_INVALID_PARAM. rvdt.c:rvdt_getTemp() Test Closed
LLR_RVDT_RVDT_GETTEMP_02 HLR_RVDT_29269 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the rvdt_getTemp() function SHALL abort processing and return that driver failure status. rvdt.c:rvdt_getTemp() Test Closed
LLR_RVDT_RVDT_GETTEMP_03 HLR_RVDT_29269 WHEN preconditions are satisfied, the rvdt_getTemp() function SHALL read the RVDT module device block members memory offset (RVDT_TEMP_RAW) at physical offset 0x028C (MMAP_RVDT_TEMP_RAW) using readRvdtReg(). rvdt.c:rvdt_getTemp() Test Closed
LLR_RVDT_RVDT_GETTEMP_04 HLR_RVDT_29269 WHEN all operational processing completes successfully, the rvdt_getTemp() function SHALL return DRV_SUCCESS. rvdt.c:rvdt_getTemp() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller rvdt_getTemp() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller rvdt_getTemp() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) r_b0->r_t0   *temp (Output Data)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_rvdt_getTemp start Entry: rvdt_getTemp() guard_1 LLR_01: Guard Check Is the pointer `temp` is NULL (invalid)? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_INVALID_PARAM` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `retStatus` guard_2->err_exit_2 YES (TRUE) act_3 LLR_03: Action Step read the RVDT module device block members memory offset (RVDT_TEMP_RAW) at physical offset `0x028C` (`MMAP_RVDT_TEMP_RAW`) using `readRvdtReg()` guard_2->act_3 NO (FALSE) success_exit LLR_04: Final Exit return `DRV_SUCCESS` act_3->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_rvdt_getTemp in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: temp in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: retStatus proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Payload Transformation • Process payload via readRvdtReg() proc_2->proc_3 Data Payload (readRvdtReg) proc_4 LLR_04: Status Output Packaging • Format Return Payload: DriverStatus proc_3->proc_4 Final Output Data out_sink Output Data Sinks & Status Return • temp (Float32) proc_4->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
rvdt_getTemp Node1 rvdt_getTemp Node1->Node1 Node2 readRvdtReg Node1->Node2 Node2->Node2 Node3 interDrv_Read32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Read32 Node3->Node5 Node4->Node4 Node5->Node5
Here is the caller graph for this function:
rvdt_getTemp Node1 rvdt_getTemp Node1->Node1 Node2 modHsb_getRvdtCbit Node1->Node2 Node2->Node2

◆ rvdt_initDev()

DriverStatus rvdt_initDev ( const RvdtDevHandler rvdtDevHdl)

rvdt_initDev.

Initialize RVDT device.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_WRITE_FAILED: Failed to write to the device or module.
DRV_READ_FAILED: Failed to read from the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: rvdt_initDev

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_RVDT_INITDEV_01 HLR_RVDT_31389 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the rvdt_initDev() function SHALL abort processing and return that driver failure status. rvdt.c:rvdt_initDev() Test Closed
LLR_RVDT_RVDT_INITDEV_02 HLR_RVDT_31389 WHEN preconditions are satisfied, the rvdt_initDev() function SHALL read the RVDT module device block members memory offset (RVDT_CONTROL_CMD) at physical offset 0x0258 (MMAP_RVDT_CONTROL_CMD) using readRvdtReg(). rvdt.c:rvdt_initDev() Test Closed
LLR_RVDT_RVDT_INITDEV_03 HLR_RVDT_31389 WHEN preconditions are satisfied, the rvdt_initDev() function SHALL invoke bitwise routine TOGGLE_BIT() to update hardware control bit in register payload. rvdt.c:rvdt_initDev() Test Closed
LLR_RVDT_RVDT_INITDEV_04 HLR_RVDT_31389 WHEN preconditions are satisfied, the rvdt_initDev() function SHALL write the RVDT module device block members memory offset (RVDT_CONTROL_CMD) at physical offset 0x0258 (MMAP_RVDT_CONTROL_CMD) using writeRvdtReg(). rvdt.c:rvdt_initDev() Test Closed
LLR_RVDT_RVDT_INITDEV_05 HLR_RVDT_31389 WHEN all operational processing completes successfully, the rvdt_initDev() function SHALL return DRV_SUCCESS. rvdt.c:rvdt_initDev() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller rvdt_initDev() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller rvdt_initDev() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_rvdt_initDev start Entry: rvdt_initDev() guard_1 LLR_01: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `retStatus` guard_1->err_exit_1 YES (TRUE) act_2 LLR_02: Action Step read the RVDT module device block members memory offset (RVDT_CONTROL_CMD) at physical offset `0x0258` (`MMAP_RVDT_CONTROL_CMD`) using `readRvdtReg()` guard_1->act_2 NO (FALSE) act_3 LLR_03: Action Step invoke bitwise routine `TOGGLE_BIT()` to update hardware control bit in register payload act_2->act_3 act_4 LLR_04: Action Step write the RVDT module device block members memory offset (RVDT_CONTROL_CMD) at physical offset `0x0258` (`MMAP_RVDT_CONTROL_CMD`) using `writeRvdtReg()` act_3->act_4 success_exit LLR_05: Final Exit return `DRV_SUCCESS` act_4->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_rvdt_initDev in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: retStatus in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Payload Transformation • Process payload via readRvdtReg() proc_1->proc_2 Data Payload (readRvdtReg) proc_3 LLR_03: Data Payload Transformation • Process payload via TOGGLE_BIT() proc_2->proc_3 Data Payload (TOGGLE_BIT) proc_4 LLR_04: Data Payload Transformation • Process payload via writeRvdtReg() proc_3->proc_4 Data Payload (writeRvdtReg) proc_5 LLR_05: Status Output Packaging • Format Return Payload: DriverStatus proc_4->proc_5 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (DriverStatus) proc_5->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
rvdt_initDev Node1 rvdt_initDev Node1->Node1 Node2 readRvdtReg Node1->Node2 Node6 writeRvdtReg Node1->Node6 Node2->Node2 Node3 interDrv_Read32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Read32 Node3->Node5 Node4->Node4 Node5->Node5 Node6->Node6 Node7 interDrv_Write32 Node6->Node7 Node7->Node4 Node7->Node7 Node8 memoryMap_Write32 Node7->Node8 Node8->Node8
Here is the caller graph for this function:
rvdt_initDev Node1 rvdt_initDev Node1->Node1 Node2 modRvdt_initReset Node1->Node2 Node2->Node2 Node3 modConfig_init Node2->Node3 Node4 modConfig_reset Node2->Node4 Node3->Node3 Node4->Node4 Node5 modConfig_close Node4->Node5 Node5->Node5

◆ rvdt_setPowerEnable()

DriverStatus rvdt_setPowerEnable ( const RvdtDevHandler rvdtDevHdl,
const Bool enable )

rvdt_setPowerEnable.

Set enable or disable power.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[in]enableThe flag to enable or disable.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_WRITE_FAILED: Failed to write to the device or module.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: rvdt_setPowerEnable

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_RVDT_SETPOWERENABLE_01 HLR_RVDT_18870 WHEN enable is FALSE, the rvdt_setPowerEnable() function SHALL configure power shutdown by setting bit 0 (shutdown) and clearing bit 1 (ADC reference disable) in register MMAP_RVDT_EN_PWR. rvdt.c:rvdt_setPowerEnable() Test Closed
LLR_RVDT_RVDT_SETPOWERENABLE_02 HLR_RVDT_18870 WHEN enable is TRUE, the rvdt_setPowerEnable() function SHALL configure active power by clearing bit 0 (power up) and setting bit 1 (ADC reference enable) in register MMAP_RVDT_EN_PWR. rvdt.c:rvdt_setPowerEnable() Test Closed
LLR_RVDT_RVDT_SETPOWERENABLE_03 HLR_RVDT_18870 WHEN power state configuration data is formulated, the rvdt_setPowerEnable() function SHALL write the command register using writeRvdtReg(). rvdt.c:rvdt_setPowerEnable() Test Closed
LLR_RVDT_RVDT_SETPOWERENABLE_04 HLR_RVDT_18870 WHEN the register write operation fails (status not equal to DRV_SUCCESS), the rvdt_setPowerEnable() function SHALL abort processing and return that failure status. rvdt.c:rvdt_setPowerEnable() Test Closed
LLR_RVDT_RVDT_SETPOWERENABLE_05 HLR_RVDT_18870 WHEN all operational processing completes successfully, the rvdt_setPowerEnable() function SHALL return DRV_SUCCESS. rvdt.c:rvdt_setPowerEnable() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller rvdt_setPowerEnable() [Low-Level Device Drivers] Target writeRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) l_t1->l_b1   enable (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller rvdt_setPowerEnable() [Low-Level Device Drivers] Target writeRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) l_t1->l_b1   enable (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_rvdt_setPowerEnable start Entry: rvdt_setPowerEnable() guard_1 LLR_01: Guard Check Is `enable` is equal to `FALSE`? start->guard_1 err_exit_1 LLR_01 Error Exit execute conditional operational branch guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `retStatus` guard_2->err_exit_2 YES (TRUE) act_3 LLR_03: Action Step write the RVDT module device block members memory offset (RVDT_EN_PWR) at physical offset `0x0000` (`MMAP_RVDT_EN_PWR`) using `writeRvdtReg()` guard_2->act_3 NO (FALSE) success_exit LLR_04: Final Exit return `DRV_SUCCESS` act_3->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_rvdt_setPowerEnable in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) • enable (const Bool) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: enable in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: retStatus proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Payload Transformation • Process payload via writeRvdtReg() proc_2->proc_3 Data Payload (writeRvdtReg) proc_4 LLR_04: Status Output Packaging • Format Return Payload: DriverStatus proc_3->proc_4 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (DriverStatus) proc_4->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
rvdt_setPowerEnable Node1 rvdt_setPowerEnable Node1->Node1 Node2 writeRvdtReg Node1->Node2 Node2->Node2 Node3 interDrv_Write32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Write32 Node3->Node5 Node4->Node4 Node5->Node5
Here is the caller graph for this function:
rvdt_setPowerEnable Node1 rvdt_setPowerEnable Node1->Node1 Node2 modRvdt_SenseDisable Node1->Node2 Node7 modRvdt_SenseEnable Node1->Node7 Node2->Node2 Node3 modRvdt_initReset Node2->Node3 Node3->Node3 Node4 modConfig_init Node3->Node4 Node5 modConfig_reset Node3->Node5 Node4->Node4 Node5->Node5 Node6 modConfig_close Node5->Node6 Node6->Node6 Node7->Node7

◆ rvdt_setRefConfigCommand()

DriverStatus rvdt_setRefConfigCommand ( const RvdtDevHandler rvdtDevHdl)

rvdt_setRefConfigCommand.

Set reference configure command.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_WRITE_FAILED: Failed to write to the device or module.
DRV_READ_FAILED: Failed to read from the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: rvdt_setRefConfigCommand

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_RVDT_SETREFCONFIGCOMMAND_01 HLR_RVDT_16937 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the rvdt_setRefConfigCommand() function SHALL abort processing and return that driver failure status. rvdt.c:rvdt_setRefConfigCommand() Test Closed
LLR_RVDT_RVDT_SETREFCONFIGCOMMAND_02 HLR_RVDT_16937 WHEN preconditions are satisfied, the rvdt_setRefConfigCommand() function SHALL read the RVDT module device block members memory offset (RVDT_CONTROL_CMD) at physical offset 0x0258 (MMAP_RVDT_CONTROL_CMD) using readRvdtReg(). rvdt.c:rvdt_setRefConfigCommand() Test Closed
LLR_RVDT_RVDT_SETREFCONFIGCOMMAND_03 HLR_RVDT_16937 WHEN preconditions are satisfied, the rvdt_setRefConfigCommand() function SHALL invoke bitwise routine TOGGLE_BIT() to update hardware control bit in register payload. rvdt.c:rvdt_setRefConfigCommand() Test Closed
LLR_RVDT_RVDT_SETREFCONFIGCOMMAND_04 HLR_RVDT_16937 WHEN preconditions are satisfied, the rvdt_setRefConfigCommand() function SHALL write the RVDT module device block members memory offset (RVDT_CONTROL_CMD) at physical offset 0x0258 (MMAP_RVDT_CONTROL_CMD) using writeRvdtReg(). rvdt.c:rvdt_setRefConfigCommand() Test Closed
LLR_RVDT_RVDT_SETREFCONFIGCOMMAND_05 HLR_RVDT_16937 WHEN all operational processing completes successfully, the rvdt_setRefConfigCommand() function SHALL return DRV_SUCCESS. rvdt.c:rvdt_setRefConfigCommand() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller rvdt_setRefConfigCommand() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller rvdt_setRefConfigCommand() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_rvdt_setRefConfigCommand start Entry: rvdt_setRefConfigCommand() guard_1 LLR_01: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `retStatus` guard_1->err_exit_1 YES (TRUE) act_2 LLR_02: Action Step read the RVDT module device block members memory offset (RVDT_CONTROL_CMD) at physical offset `0x0258` (`MMAP_RVDT_CONTROL_CMD`) using `readRvdtReg()` guard_1->act_2 NO (FALSE) act_3 LLR_03: Action Step invoke bitwise routine `TOGGLE_BIT()` to update hardware control bit in register payload act_2->act_3 act_4 LLR_04: Action Step write the RVDT module device block members memory offset (RVDT_CONTROL_CMD) at physical offset `0x0258` (`MMAP_RVDT_CONTROL_CMD`) using `writeRvdtReg()` act_3->act_4 success_exit LLR_05: Final Exit return `DRV_SUCCESS` act_4->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_rvdt_setRefConfigCommand in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: retStatus in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Payload Transformation • Process payload via readRvdtReg() proc_1->proc_2 Data Payload (readRvdtReg) proc_3 LLR_03: Data Payload Transformation • Process payload via TOGGLE_BIT() proc_2->proc_3 Data Payload (TOGGLE_BIT) proc_4 LLR_04: Data Payload Transformation • Process payload via writeRvdtReg() proc_3->proc_4 Data Payload (writeRvdtReg) proc_5 LLR_05: Status Output Packaging • Format Return Payload: DriverStatus proc_4->proc_5 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (DriverStatus) proc_5->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
rvdt_setRefConfigCommand Node1 rvdt_setRefConfigCommand Node1->Node1 Node2 readRvdtReg Node1->Node2 Node6 writeRvdtReg Node1->Node6 Node2->Node2 Node3 interDrv_Read32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Read32 Node3->Node5 Node4->Node4 Node5->Node5 Node6->Node6 Node7 interDrv_Write32 Node6->Node7 Node7->Node4 Node7->Node7 Node8 memoryMap_Write32 Node7->Node8 Node8->Node8
Here is the caller graph for this function:
rvdt_setRefConfigCommand Node1 rvdt_setRefConfigCommand Node1->Node1 Node2 modRvdt_SetRefConfig Node1->Node2 Node2->Node2

◆ rvdt_setRefWaveEnable()

DriverStatus rvdt_setRefWaveEnable ( const RvdtDevHandler rvdtDevHdl,
const Bool enable )

rvdt_setRefWaveEnable.

Set RVDT reference waveform enable.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[in]enableThe flag to enable or disable.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_WRITE_FAILED: Failed to write to the device or module.
DRV_READ_FAILED: Failed to read from the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: rvdt_setRefWaveEnable

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_RVDT_SETREFWAVEENABLE_01 HLR_RVDT_16938 WHEN invoked, the rvdt_setRefWaveEnable() function SHALL read the current reference enable register MMAP_RVDT_EN_REF using readRvdtReg(). rvdt.c:rvdt_setRefWaveEnable() Test Closed
LLR_RVDT_RVDT_SETREFWAVEENABLE_02 HLR_RVDT_16938 WHEN the register read operation fails (status not equal to DRV_SUCCESS), the rvdt_setRefWaveEnable() function SHALL abort processing and return that failure status. rvdt.c:rvdt_setRefWaveEnable() Test Closed
LLR_RVDT_RVDT_SETREFWAVEENABLE_03 HLR_RVDT_16938 WHEN enable is FALSE, the rvdt_setRefWaveEnable() function SHALL disable reference waveform generation by clearing bit 0 in register MMAP_RVDT_EN_REF. rvdt.c:rvdt_setRefWaveEnable() Test Closed
LLR_RVDT_RVDT_SETREFWAVEENABLE_04 HLR_RVDT_16938 WHEN enable is TRUE, the rvdt_setRefWaveEnable() function SHALL enable reference waveform generation by setting bit 0 in register MMAP_RVDT_EN_REF. rvdt.c:rvdt_setRefWaveEnable() Test Closed
LLR_RVDT_RVDT_SETREFWAVEENABLE_05 HLR_RVDT_16938 WHEN reference waveform control bit is updated, the rvdt_setRefWaveEnable() function SHALL write back the modified register value using writeRvdtReg(). rvdt.c:rvdt_setRefWaveEnable() Test Closed
LLR_RVDT_RVDT_SETREFWAVEENABLE_06 HLR_RVDT_16938 WHEN all operational processing completes successfully, the rvdt_setRefWaveEnable() function SHALL return DRV_SUCCESS. rvdt.c:rvdt_setRefWaveEnable() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller rvdt_setRefWaveEnable() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) l_t1->l_b1   enable (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller rvdt_setRefWaveEnable() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) l_t1->l_b1   enable (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_rvdt_setRefWaveEnable start Entry: rvdt_setRefWaveEnable() guard_1 LLR_01: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `retStatus` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is `enable` is equal to `FALSE`? guard_1->guard_2 err_exit_2 LLR_02 Error Exit execute conditional operational branch guard_2->err_exit_2 YES (TRUE) act_3 LLR_03: Action Step read the RVDT module device block members memory offset (RVDT_EN_REF) at physical offset `0x0004` (`MMAP_RVDT_EN_REF`) using `readRvdtReg()` guard_2->act_3 NO (FALSE) act_4 LLR_04: Action Step write the RVDT module device block members memory offset (RVDT_EN_REF) at physical offset `0x0004` (`MMAP_RVDT_EN_REF`) using `writeRvdtReg()` act_3->act_4 success_exit LLR_05: Final Exit return `DRV_SUCCESS` act_4->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_rvdt_setRefWaveEnable in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) • enable (const Bool) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: retStatus in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: enable proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Payload Transformation • Process payload via readRvdtReg() proc_2->proc_3 Data Payload (readRvdtReg) proc_4 LLR_04: Data Payload Transformation • Process payload via writeRvdtReg() proc_3->proc_4 Data Payload (writeRvdtReg) proc_5 LLR_05: Status Output Packaging • Format Return Payload: DriverStatus proc_4->proc_5 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (DriverStatus) proc_5->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
rvdt_setRefWaveEnable Node1 rvdt_setRefWaveEnable Node1->Node1 Node2 readRvdtReg Node1->Node2 Node6 writeRvdtReg Node1->Node6 Node2->Node2 Node3 interDrv_Read32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Read32 Node3->Node5 Node4->Node4 Node5->Node5 Node6->Node6 Node7 interDrv_Write32 Node6->Node7 Node7->Node4 Node7->Node7 Node8 memoryMap_Write32 Node7->Node8 Node8->Node8
Here is the caller graph for this function:
rvdt_setRefWaveEnable Node1 rvdt_setRefWaveEnable Node1->Node1 Node2 modRvdt_RefDisable Node1->Node2 Node7 modRvdt_RefEnable Node1->Node7 Node2->Node2 Node3 modRvdt_initReset Node2->Node3 Node3->Node3 Node4 modConfig_init Node3->Node4 Node5 modConfig_reset Node3->Node5 Node4->Node4 Node5->Node5 Node6 modConfig_close Node5->Node6 Node6->Node6 Node7->Node7

◆ rvdt_setS1s2Config()

DriverStatus rvdt_setS1s2Config ( const RvdtDevHandler rvdtDevHdl,
const UInt8 vcmBias )

rvdt_setS1s2Config.

Set RVDT s1 and s2 configuration.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[in]vcmBiasThe vcm bias value (0 - 3).
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_WRITE_FAILED: Failed to write to the device or module.
DRV_READ_FAILED: Failed to read from the device or module.
DRV_INVALID_VALUE: The vcmBias value exceed limit.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: rvdt_setS1s2Config

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_RVDT_SETS1S2CONFIG_01 HLR_RVDT_18870 WHEN vcmBias is greater than RVDT_MAX_VCM_BIAS, the rvdt_setS1s2Config() function SHALL abort processing and return DRV_INVALID_VALUE. rvdt.c:rvdt_setS1s2Config() Test Closed
LLR_RVDT_RVDT_SETS1S2CONFIG_02 HLR_RVDT_18870 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the rvdt_setS1s2Config() function SHALL abort processing and return that driver failure status. rvdt.c:rvdt_setS1s2Config() Test Closed
LLR_RVDT_RVDT_SETS1S2CONFIG_03 HLR_RVDT_18870 WHEN preconditions are satisfied, the rvdt_setS1s2Config() function SHALL read the RVDT module device block members memory offset (RVDT_EN_SENSE) at physical offset 0x000C (MMAP_RVDT_EN_SENSE) using readRvdtReg(). rvdt.c:rvdt_setS1s2Config() Test Closed
LLR_RVDT_RVDT_SETS1S2CONFIG_04 HLR_RVDT_18870 WHEN preconditions are satisfied, the rvdt_setS1s2Config() function SHALL write the RVDT module device block members memory offset (RVDT_EN_SENSE) at physical offset 0x000C (MMAP_RVDT_EN_SENSE) using writeRvdtReg(). rvdt.c:rvdt_setS1s2Config() Test Closed
LLR_RVDT_RVDT_SETS1S2CONFIG_05 HLR_RVDT_18870 WHEN all operational processing completes successfully, the rvdt_setS1s2Config() function SHALL return DRV_SUCCESS. rvdt.c:rvdt_setS1s2Config() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller rvdt_setS1s2Config() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) l_t1->l_b1   vcmBias (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller rvdt_setS1s2Config() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) l_t1->l_b1   vcmBias (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_rvdt_setS1s2Config start Entry: rvdt_setS1s2Config() guard_1 LLR_01: Guard Check Is `vcmBias` is greater than `RVDT_MAX_VCM_BIAS`? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_INVALID_VALUE` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? guard_1->guard_2 err_exit_2 LLR_02 Error Exit abort processing and return `retStatus` guard_2->err_exit_2 YES (TRUE) act_3 LLR_03: Action Step read the RVDT module device block members memory offset (RVDT_EN_SENSE) at physical offset `0x000C` (`MMAP_RVDT_EN_SENSE`) using `readRvdtReg()` guard_2->act_3 NO (FALSE) act_4 LLR_04: Action Step write the RVDT module device block members memory offset (RVDT_EN_SENSE) at physical offset `0x000C` (`MMAP_RVDT_EN_SENSE`) using `writeRvdtReg()` act_3->act_4 success_exit LLR_05: Final Exit return `DRV_SUCCESS` act_4->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_rvdt_setS1s2Config in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) • vcmBias (const UInt8) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: vcmBias in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: retStatus proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Payload Transformation • Process payload via readRvdtReg() proc_2->proc_3 Data Payload (readRvdtReg) proc_4 LLR_04: Data Payload Transformation • Process payload via writeRvdtReg() proc_3->proc_4 Data Payload (writeRvdtReg) proc_5 LLR_05: Status Output Packaging • Format Return Payload: DriverStatus proc_4->proc_5 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (DriverStatus) proc_5->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
rvdt_setS1s2Config Node1 rvdt_setS1s2Config Node1->Node1 Node2 readRvdtReg Node1->Node2 Node6 writeRvdtReg Node1->Node6 Node2->Node2 Node3 interDrv_Read32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Read32 Node3->Node5 Node4->Node4 Node5->Node5 Node6->Node6 Node7 interDrv_Write32 Node6->Node7 Node7->Node4 Node7->Node7 Node8 memoryMap_Write32 Node7->Node8 Node8->Node8
Here is the caller graph for this function:
rvdt_setS1s2Config Node1 rvdt_setS1s2Config Node1->Node1 Node2 modRvdt_SetSenseConfig Node1->Node2 Node2->Node2

◆ rvdt_setSenseConfigCommand()

DriverStatus rvdt_setSenseConfigCommand ( const RvdtDevHandler rvdtDevHdl)

rvdt_setSenseConfigCommand.

Set sense configure command.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_WRITE_FAILED: Failed to write to the device or module.
DRV_READ_FAILED: Failed to read from the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: rvdt_setSenseConfigCommand

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_RVDT_SETSENSECONFIGCOMMAND_01 HLR_RVDT_16940 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the rvdt_setSenseConfigCommand() function SHALL abort processing and return that driver failure status. rvdt.c:rvdt_setSenseConfigCommand() Test Closed
LLR_RVDT_RVDT_SETSENSECONFIGCOMMAND_02 HLR_RVDT_16940 WHEN preconditions are satisfied, the rvdt_setSenseConfigCommand() function SHALL read the RVDT module device block members memory offset (RVDT_CONTROL_CMD) at physical offset 0x0258 (MMAP_RVDT_CONTROL_CMD) using readRvdtReg(). rvdt.c:rvdt_setSenseConfigCommand() Test Closed
LLR_RVDT_RVDT_SETSENSECONFIGCOMMAND_03 HLR_RVDT_16940 WHEN preconditions are satisfied, the rvdt_setSenseConfigCommand() function SHALL invoke bitwise routine TOGGLE_BIT() to update hardware control bit in register payload. rvdt.c:rvdt_setSenseConfigCommand() Test Closed
LLR_RVDT_RVDT_SETSENSECONFIGCOMMAND_04 HLR_RVDT_16940 WHEN preconditions are satisfied, the rvdt_setSenseConfigCommand() function SHALL write the RVDT module device block members memory offset (RVDT_CONTROL_CMD) at physical offset 0x0258 (MMAP_RVDT_CONTROL_CMD) using writeRvdtReg(). rvdt.c:rvdt_setSenseConfigCommand() Test Closed
LLR_RVDT_RVDT_SETSENSECONFIGCOMMAND_05 HLR_RVDT_16940 WHEN all operational processing completes successfully, the rvdt_setSenseConfigCommand() function SHALL return DRV_SUCCESS. rvdt.c:rvdt_setSenseConfigCommand() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller rvdt_setSenseConfigCommand() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller rvdt_setSenseConfigCommand() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_rvdt_setSenseConfigCommand start Entry: rvdt_setSenseConfigCommand() guard_1 LLR_01: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `retStatus` guard_1->err_exit_1 YES (TRUE) act_2 LLR_02: Action Step read the RVDT module device block members memory offset (RVDT_CONTROL_CMD) at physical offset `0x0258` (`MMAP_RVDT_CONTROL_CMD`) using `readRvdtReg()` guard_1->act_2 NO (FALSE) act_3 LLR_03: Action Step invoke bitwise routine `TOGGLE_BIT()` to update hardware control bit in register payload act_2->act_3 act_4 LLR_04: Action Step write the RVDT module device block members memory offset (RVDT_CONTROL_CMD) at physical offset `0x0258` (`MMAP_RVDT_CONTROL_CMD`) using `writeRvdtReg()` act_3->act_4 success_exit LLR_05: Final Exit return `DRV_SUCCESS` act_4->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_rvdt_setSenseConfigCommand in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: retStatus in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Payload Transformation • Process payload via readRvdtReg() proc_1->proc_2 Data Payload (readRvdtReg) proc_3 LLR_03: Data Payload Transformation • Process payload via TOGGLE_BIT() proc_2->proc_3 Data Payload (TOGGLE_BIT) proc_4 LLR_04: Data Payload Transformation • Process payload via writeRvdtReg() proc_3->proc_4 Data Payload (writeRvdtReg) proc_5 LLR_05: Status Output Packaging • Format Return Payload: DriverStatus proc_4->proc_5 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (DriverStatus) proc_5->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
rvdt_setSenseConfigCommand Node1 rvdt_setSenseConfigCommand Node1->Node1 Node2 readRvdtReg Node1->Node2 Node6 writeRvdtReg Node1->Node6 Node2->Node2 Node3 interDrv_Read32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Read32 Node3->Node5 Node4->Node4 Node5->Node5 Node6->Node6 Node7 interDrv_Write32 Node6->Node7 Node7->Node4 Node7->Node7 Node8 memoryMap_Write32 Node7->Node8 Node8->Node8
Here is the caller graph for this function:
rvdt_setSenseConfigCommand Node1 rvdt_setSenseConfigCommand Node1->Node1 Node2 modRvdt_SetSenseConfig Node1->Node2 Node2->Node2

◆ rvdt_setSenseEnable()

DriverStatus rvdt_setSenseEnable ( const RvdtDevHandler rvdtDevHdl,
const Bool enable )

rvdt_setSenseEnable.

Set RVDT sense enable or disable.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[in]enableThe flag to enable or disable.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_WRITE_FAILED: Failed to write to the device or module.
DRV_READ_FAILED: Failed to read from the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: rvdt_setSenseEnable

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_RVDT_SETSENSEENABLE_01 HLR_RVDT_16942 WHEN invoked, the rvdt_setSenseEnable() function SHALL read the current demodulator control register MMAP_RVDT_CONTROL_CMD using readRvdtReg(). rvdt.c:rvdt_setSenseEnable() Test Closed
LLR_RVDT_RVDT_SETSENSEENABLE_02 HLR_RVDT_16942 WHEN the register read operation fails (status not equal to DRV_SUCCESS), the rvdt_setSenseEnable() function SHALL abort processing and return that failure status. rvdt.c:rvdt_setSenseEnable() Test Closed
LLR_RVDT_RVDT_SETSENSEENABLE_03 HLR_RVDT_16942 WHEN enable is FALSE, the rvdt_setSenseEnable() function SHALL disable demodulator sense by clearing bit 1 in register MMAP_RVDT_CONTROL_CMD. rvdt.c:rvdt_setSenseEnable() Test Closed
LLR_RVDT_RVDT_SETSENSEENABLE_04 HLR_RVDT_16942 WHEN enable is TRUE, the rvdt_setSenseEnable() function SHALL enable demodulator sense by setting bit 1 in register MMAP_RVDT_CONTROL_CMD. rvdt.c:rvdt_setSenseEnable() Test Closed
LLR_RVDT_RVDT_SETSENSEENABLE_05 HLR_RVDT_16942 WHEN demodulator sense bit is updated, the rvdt_setSenseEnable() function SHALL write back the modified register value using writeRvdtReg(). rvdt.c:rvdt_setSenseEnable() Test Closed
LLR_RVDT_RVDT_SETSENSEENABLE_06 HLR_RVDT_16942 WHEN all operational processing completes successfully, the rvdt_setSenseEnable() function SHALL return DRV_SUCCESS. rvdt.c:rvdt_setSenseEnable() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller rvdt_setSenseEnable() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) l_t1->l_b1   enable (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller rvdt_setSenseEnable() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) l_t1->l_b1   enable (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_rvdt_setSenseEnable start Entry: rvdt_setSenseEnable() guard_1 LLR_01: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `retStatus` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is `enable` is equal to `FALSE`? guard_1->guard_2 err_exit_2 LLR_02 Error Exit execute conditional operational branch guard_2->err_exit_2 YES (TRUE) act_3 LLR_03: Action Step read the RVDT module device block members memory offset (RVDT_CONTROL_CMD) at physical offset `0x0258` (`MMAP_RVDT_CONTROL_CMD`) using `readRvdtReg()` guard_2->act_3 NO (FALSE) act_4 LLR_04: Action Step write the RVDT module device block members memory offset (RVDT_CONTROL_CMD) at physical offset `0x0258` (`MMAP_RVDT_CONTROL_CMD`) using `writeRvdtReg()` act_3->act_4 success_exit LLR_05: Final Exit return `DRV_SUCCESS` act_4->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_rvdt_setSenseEnable in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) • enable (const Bool) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: retStatus in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: enable proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Payload Transformation • Process payload via readRvdtReg() proc_2->proc_3 Data Payload (readRvdtReg) proc_4 LLR_04: Data Payload Transformation • Process payload via writeRvdtReg() proc_3->proc_4 Data Payload (writeRvdtReg) proc_5 LLR_05: Status Output Packaging • Format Return Payload: DriverStatus proc_4->proc_5 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (DriverStatus) proc_5->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
rvdt_setSenseEnable Node1 rvdt_setSenseEnable Node1->Node1 Node2 readRvdtReg Node1->Node2 Node6 writeRvdtReg Node1->Node6 Node2->Node2 Node3 interDrv_Read32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Read32 Node3->Node5 Node4->Node4 Node5->Node5 Node6->Node6 Node7 interDrv_Write32 Node6->Node7 Node7->Node4 Node7->Node7 Node8 memoryMap_Write32 Node7->Node8 Node8->Node8
Here is the caller graph for this function:
rvdt_setSenseEnable Node1 rvdt_setSenseEnable Node1->Node1 Node2 modRvdt_SenseDisable Node1->Node2 Node7 modRvdt_SenseEnable Node1->Node7 Node2->Node2 Node3 modRvdt_initReset Node2->Node3 Node3->Node3 Node4 modConfig_init Node3->Node4 Node5 modConfig_reset Node3->Node5 Node4->Node4 Node5->Node5 Node6 modConfig_close Node5->Node6 Node6->Node6 Node7->Node7

◆ rvdt_setSenseFilterCommand()

DriverStatus rvdt_setSenseFilterCommand ( const RvdtDevHandler rvdtDevHdl)

rvdt_setSenseFilterCommand

Set sense filter command.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_WRITE_FAILED: Failed to write to the device or module.
DRV_READ_FAILED: Failed to read from the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: rvdt_setSenseFilterCommand

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_RVDT_SETSENSEFILTERCOMMAND_01 HLR_RVDT_18873 WHEN a driver operation reports a failure status other than DRV_SUCCESS, the rvdt_setSenseFilterCommand() function SHALL abort processing and return that driver failure status. rvdt.c:rvdt_setSenseFilterCommand() Test Closed
LLR_RVDT_RVDT_SETSENSEFILTERCOMMAND_02 HLR_RVDT_18873 WHEN preconditions are satisfied, the rvdt_setSenseFilterCommand() function SHALL read the RVDT module device block members memory offset (RVDT_CONTROL_CMD) at physical offset 0x0258 (MMAP_RVDT_CONTROL_CMD) using readRvdtReg(). rvdt.c:rvdt_setSenseFilterCommand() Test Closed
LLR_RVDT_RVDT_SETSENSEFILTERCOMMAND_03 HLR_RVDT_18873 WHEN preconditions are satisfied, the rvdt_setSenseFilterCommand() function SHALL invoke bitwise routine TOGGLE_BIT() to update hardware control bit in register payload. rvdt.c:rvdt_setSenseFilterCommand() Test Closed
LLR_RVDT_RVDT_SETSENSEFILTERCOMMAND_04 HLR_RVDT_18873 WHEN preconditions are satisfied, the rvdt_setSenseFilterCommand() function SHALL write the RVDT module device block members memory offset (RVDT_CONTROL_CMD) at physical offset 0x0258 (MMAP_RVDT_CONTROL_CMD) using writeRvdtReg(). rvdt.c:rvdt_setSenseFilterCommand() Test Closed
LLR_RVDT_RVDT_SETSENSEFILTERCOMMAND_05 HLR_RVDT_18873 WHEN all operational processing completes successfully, the rvdt_setSenseFilterCommand() function SHALL return DRV_SUCCESS. rvdt.c:rvdt_setSenseFilterCommand() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller rvdt_setSenseFilterCommand() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller rvdt_setSenseFilterCommand() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_rvdt_setSenseFilterCommand start Entry: rvdt_setSenseFilterCommand() guard_1 LLR_01: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `retStatus` guard_1->err_exit_1 YES (TRUE) act_2 LLR_02: Action Step read the RVDT module device block members memory offset (RVDT_CONTROL_CMD) at physical offset `0x0258` (`MMAP_RVDT_CONTROL_CMD`) using `readRvdtReg()` guard_1->act_2 NO (FALSE) act_3 LLR_03: Action Step invoke bitwise routine `TOGGLE_BIT()` to update hardware control bit in register payload act_2->act_3 act_4 LLR_04: Action Step write the RVDT module device block members memory offset (RVDT_CONTROL_CMD) at physical offset `0x0258` (`MMAP_RVDT_CONTROL_CMD`) using `writeRvdtReg()` act_3->act_4 success_exit LLR_05: Final Exit return `DRV_SUCCESS` act_4->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_rvdt_setSenseFilterCommand in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: retStatus in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Payload Transformation • Process payload via readRvdtReg() proc_1->proc_2 Data Payload (readRvdtReg) proc_3 LLR_03: Data Payload Transformation • Process payload via TOGGLE_BIT() proc_2->proc_3 Data Payload (TOGGLE_BIT) proc_4 LLR_04: Data Payload Transformation • Process payload via writeRvdtReg() proc_3->proc_4 Data Payload (writeRvdtReg) proc_5 LLR_05: Status Output Packaging • Format Return Payload: DriverStatus proc_4->proc_5 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (DriverStatus) proc_5->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
rvdt_setSenseFilterCommand Node1 rvdt_setSenseFilterCommand Node1->Node1 Node2 readRvdtReg Node1->Node2 Node6 writeRvdtReg Node1->Node6 Node2->Node2 Node3 interDrv_Read32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Read32 Node3->Node5 Node4->Node4 Node5->Node5 Node6->Node6 Node7 interDrv_Write32 Node6->Node7 Node7->Node4 Node7->Node7 Node8 memoryMap_Write32 Node7->Node8 Node8->Node8
Here is the caller graph for this function:
rvdt_setSenseFilterCommand Node1 rvdt_setSenseFilterCommand Node1->Node1 Node2 modRvdt_SetSenseFilter Node1->Node2 Node2->Node2

◆ rvdt_setTestMux()

DriverStatus rvdt_setTestMux ( const RvdtDevHandler rvdtDevHdl,
const Bool enable )

rvdt_setTestMux

Set to test mux.

Parameters
[in]rvdtDevHdlThe RVDT device handler.
[in]enableThe flag to enable or disable.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_WRITE_FAILED: Failed to write to the device or module.
DRV_READ_FAILED: Failed to read from the device or module.
DRV_INVALID_PARAM: The provided address pointer is invalid.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: rvdt_setTestMux

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_RVDT_SETTESTMUX_01 HLR_RVDT_18870 WHEN invoked, the rvdt_setTestMux() function SHALL read the current multiplexer enable register MMAP_RVDT_EN_SENSE using readRvdtReg(). rvdt.c:rvdt_setTestMux() Test Closed
LLR_RVDT_RVDT_SETTESTMUX_02 HLR_RVDT_18870 WHEN the register read operation fails (status not equal to DRV_SUCCESS), the rvdt_setTestMux() function SHALL abort processing and return that failure status. rvdt.c:rvdt_setTestMux() Test Closed
LLR_RVDT_RVDT_SETTESTMUX_03 HLR_RVDT_18870 WHEN enable is FALSE, the rvdt_setTestMux() function SHALL disable the test multiplexer channels by clearing bit 1 and bit 2 in register MMAP_RVDT_EN_SENSE. rvdt.c:rvdt_setTestMux() Test Closed
LLR_RVDT_RVDT_SETTESTMUX_04 HLR_RVDT_18870 WHEN enable is TRUE, the rvdt_setTestMux() function SHALL enable the test multiplexer channels by setting bit 1 and bit 2 in register MMAP_RVDT_EN_SENSE. rvdt.c:rvdt_setTestMux() Test Closed
LLR_RVDT_RVDT_SETTESTMUX_05 HLR_RVDT_18870 WHEN test multiplexer control bits are updated, the rvdt_setTestMux() function SHALL write back the modified register value using writeRvdtReg(). rvdt.c:rvdt_setTestMux() Test Closed
LLR_RVDT_RVDT_SETTESTMUX_06 HLR_RVDT_18870 WHEN all operational processing completes successfully, the rvdt_setTestMux() function SHALL return DRV_SUCCESS. rvdt.c:rvdt_setTestMux() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller rvdt_setTestMux() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Flag) l_t1->l_b1   enable (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller rvdt_setTestMux() [Low-Level Device Drivers] Target readRvdtReg() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   rvdtDevHdl (Payload) l_t1->l_b1   enable (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_rvdt_setTestMux start Entry: rvdt_setTestMux() guard_1 LLR_01: Guard Check Is a driver operation reports a failure status other than DRV_SUCCESS? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `retStatus` guard_1->err_exit_1 YES (TRUE) guard_2 LLR_02: Guard Check Is `enable` is equal to `FALSE`? guard_1->guard_2 err_exit_2 LLR_02 Error Exit execute conditional operational branch guard_2->err_exit_2 YES (TRUE) act_3 LLR_03: Action Step read the RVDT module device block members memory offset (RVDT_EN_SENSE) at physical offset `0x000C` (`MMAP_RVDT_EN_SENSE`) using `readRvdtReg()` guard_2->act_3 NO (FALSE) act_4 LLR_04: Action Step write the RVDT module device block members memory offset (RVDT_EN_SENSE) at physical offset `0x000C` (`MMAP_RVDT_EN_SENSE`) using `writeRvdtReg()` act_3->act_4 success_exit LLR_05: Final Exit return `DRV_SUCCESS` act_4->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_rvdt_setTestMux in_store Input Data Sources & Parameters • rvdtDevHdl (const RvdtDevHandler) • enable (const Bool) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: retStatus in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Validation Check • Evaluate Parameter / State: enable proc_1->proc_2 Validated Input Data proc_3 LLR_03: Data Payload Transformation • Process payload via readRvdtReg() proc_2->proc_3 Data Payload (readRvdtReg) proc_4 LLR_04: Data Payload Transformation • Process payload via writeRvdtReg() proc_3->proc_4 Data Payload (writeRvdtReg) proc_5 LLR_05: Status Output Packaging • Format Return Payload: DriverStatus proc_4->proc_5 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (DriverStatus) proc_5->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
rvdt_setTestMux Node1 rvdt_setTestMux Node1->Node1 Node2 readRvdtReg Node1->Node2 Node6 writeRvdtReg Node1->Node6 Node2->Node2 Node3 interDrv_Read32 Node2->Node3 Node3->Node3 Node4 interDrv_isAddressValid Node3->Node4 Node5 memoryMap_Read32 Node3->Node5 Node4->Node4 Node5->Node5 Node6->Node6 Node7 interDrv_Write32 Node6->Node7 Node7->Node4 Node7->Node7 Node8 memoryMap_Write32 Node7->Node8 Node8->Node8
Here is the caller graph for this function:
rvdt_setTestMux Node1 rvdt_setTestMux Node1->Node1 Node2 modRvdt_SetSenseConfig Node1->Node2 Node2->Node2

◆ writeRvdtReg()

DriverStatus writeRvdtReg ( const UInt32 baseAddress,
const UInt32 offset,
const UInt32 data )
static

writeRvdtReg.

RVDT PCIe write function.

Parameters
[in]baseAddressThe base address of the module and device.
[in]offsetThe offset address from module base address.
[in]data32bit data to write to PCIe.
Returns
DriverStatus - Driver status return code, If no error occurs during the operation of the function, it returns DRV_SUCCESS. Otherwise related error message is returned.
Return values
DRV_SUCCESS: Success.
DRV_WRITE_FAILED: PCIe failed to write value.

Low-Level Software Requirements (LLR)

Low-Level Requirement Specification: writeRvdtReg

Requirement ID Parent HLR ID Detailed Low-Level Requirement Statement (EARS Format) Software Unit Reference Verification Method Status
LLR_RVDT_WRITERVDTREG_01 HLR_RVDT_18870 WHEN invoked, the writeRvdtReg() function SHALL write the 32-bit word data to physical memory address (baseAddress + addrOffset) using PCIe primitive interDrv_Write32(). rvdt.c:writeRvdtReg() Test Closed
LLR_RVDT_WRITERVDTREG_02 HLR_RVDT_18870 WHEN memory access via interDrv_Write32() fails (status not equal to INTF_SUCCESS), the writeRvdtReg() function SHALL abort processing and return DRV_WRITE_FAILED. rvdt.c:writeRvdtReg() Test Closed
LLR_RVDT_WRITERVDTREG_03 HLR_RVDT_18870 WHEN all operational processing completes successfully, the writeRvdtReg() function SHALL return DRV_SUCCESS. rvdt.c:writeRvdtReg() Test Closed

Control Coupling Diagram (CCD)

ControlCouplingStructureChart Caller writeRvdtReg() [Low-Level Device Drivers] Target interDrv_Write32() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   baseAddress (Flag) l_t1->l_b1   offset (Flag) l_t2->l_b2   data (Flag) r_b0->r_t0   statusCode (DriverStatus)
Control Coupling Structure Chart

Data Coupling Diagram (DCD)

DataCouplingStructureChart Caller writeRvdtReg() [Low-Level Device Drivers] Target interDrv_Write32() [Low-Level Driver Helper] Caller:s->Target:n l_t0->l_b0   baseAddress (Payload) l_t1->l_b1   offset (Payload) l_t2->l_b2   data (Payload) r_b0->r_t0   stateTelemetry (Internal State)
Data Coupling Structure Chart

Control Flow Diagram (CFD)

cfd_writeRvdtReg start Entry: writeRvdtReg() guard_1 LLR_01: Guard Check Is `intStatus` is not equal to `INTF_SUCCESS`? start->guard_1 err_exit_1 LLR_01 Error Exit abort processing and return `DRV_WRITE_FAILED` guard_1->err_exit_1 YES (TRUE) act_2 LLR_02: Action Step invoke PCIe primitive `interDrv_Write32()` to write 32-bit word `data` to physical memory address `baseAddress + addrOffset` guard_1->act_2 NO (FALSE) success_exit LLR_03: Final Exit invoke PCIe primitive `interDrv_Write32()` to write 32-bit word `data` to physical memory address `baseAddress + addrOffset` act_2->success_exit
Control Flow Diagram

Data Flow Diagram (DFD)

dfd_writeRvdtReg in_store Input Data Sources & Parameters • baseAddress (const UInt32) • offset (const UInt32) • data (const UInt32) proc_1 LLR_01: Data Validation Check • Evaluate Parameter / State: intStatus in_store->proc_1 Validated Input Data proc_2 LLR_02: Data Payload Transformation • Process payload via interDrv_Write32() proc_1->proc_2 Data Payload (interDrv_Write32) proc_3 LLR_03: Status Output Packaging • Format Return Payload: DriverStatus proc_2->proc_3 Final Output Data out_sink Output Data Sinks & Status Return • Status Payload (DriverStatus) proc_3->out_sink Output Data & Status Code
Data Flow Diagram
Here is the call graph for this function:
writeRvdtReg Node1 writeRvdtReg Node1->Node1 Node2 interDrv_Write32 Node1->Node2 Node2->Node2 Node3 interDrv_isAddressValid Node2->Node3 Node4 memoryMap_Write32 Node2->Node4 Node3->Node3 Node4->Node4
Here is the caller graph for this function:
writeRvdtReg Node1 writeRvdtReg Node1->Node1 Node2 configSec1BpfA2 Node1->Node2 Node5 configSec1BpfA3 Node1->Node5 Node6 configSec1BpfB1 Node1->Node6 Node7 configSec1Lpf Node1->Node7 Node9 configSec2BpfA2 Node1->Node9 Node10 configSec2BpfA3 Node1->Node10 Node11 configSec2BpfB1 Node1->Node11 Node12 configSec2Lpf Node1->Node12 Node13 rvdt_configSec1 Node1->Node13 Node15 rvdt_configSec2 Node1->Node15 Node16 rvdt_configWaveformGeneration Node1->Node16 Node18 rvdt_initDev Node1->Node18 Node23 rvdt_setPowerEnable Node1->Node23 Node26 rvdt_setRefConfigCommand Node1->Node26 Node27 rvdt_setRefWaveEnable Node1->Node27 Node30 rvdt_setS1s2Config Node1->Node30 Node31 rvdt_setSenseConfigCommand Node1->Node31 Node32 rvdt_setSenseEnable Node1->Node32 Node33 rvdt_setSenseFilterCommand Node1->Node33 Node34 rvdt_setTestMux Node1->Node34 Node2->Node2 Node3 rvdt_configBpfCoefficient Node2->Node3 Node3->Node3 Node4 modRvdt_SetSenseFilter Node3->Node4 Node4->Node4 Node5->Node3 Node5->Node5 Node6->Node3 Node6->Node6 Node7->Node7 Node8 rvdt_configLpfCoefficient Node7->Node8 Node8->Node4 Node8->Node8 Node9->Node3 Node9->Node9 Node10->Node3 Node10->Node10 Node11->Node3 Node11->Node11 Node12->Node8 Node12->Node12 Node13->Node13 Node14 modRvdt_SetSenseConfig Node13->Node14 Node14->Node14 Node15->Node14 Node15->Node15 Node16->Node16 Node17 modRvdt_SetRefConfig Node16->Node17 Node17->Node17 Node18->Node18 Node19 modRvdt_initReset Node18->Node19 Node19->Node19 Node20 modConfig_init Node19->Node20 Node21 modConfig_reset Node19->Node21 Node20->Node20 Node21->Node21 Node22 modConfig_close Node21->Node22 Node22->Node22 Node23->Node23 Node24 modRvdt_SenseDisable Node23->Node24 Node25 modRvdt_SenseEnable Node23->Node25 Node24->Node19 Node24->Node24 Node25->Node25 Node26->Node17 Node26->Node26 Node27->Node27 Node28 modRvdt_RefDisable Node27->Node28 Node29 modRvdt_RefEnable Node27->Node29 Node28->Node19 Node28->Node28 Node29->Node29 Node30->Node14 Node30->Node30 Node31->Node14 Node31->Node31 Node32->Node24 Node32->Node25 Node32->Node32 Node33->Node4 Node33->Node33 Node34->Node14 Node34->Node34