xWRL6432 MMWAVE-L-SDK  05.04.00.01
rangeprochwa.h File Reference

Introduction

Implements range processing functionality using HWA. Range FFT processing is done by HWA hardware. Based on the RF parameters, rangeProcHWA configures hardware accelerator FFT engine accordingly. It also configures data input and output EDMA channels to bring data in and out of range Processing memory.

HWA FFT process is triggered by hardware based trigger -"chirp data available" which is hooked up to HWA internally in hardware.

After FFT processing is done, HWA generates interrupt to rangeProcHWA DPU, at the same time triggers EDMA data output channel to copy FFT results to radarCube in configured format. EDMA interrupt done interrupt is triggered by EDMA hardware after the copy is completed.

Go to the source code of this file.

Data Structures

struct  DPU_RangeProcHWA_FFTtuning
 rangeProc FFT tuning parameters for HWA based Range FFT More...
 
struct  DPU_RangeProcHWA_HwaConfig
 RangeProc HWA configuration. More...
 
struct  DPU_RangeProcHWA_EDMAInputConfig
 RangeProc EDMA configuration. More...
 
struct  DPU_RangeProcHWA_EDMAOutputConfigPath
 RangeProc EDMA configuration. More...
 
struct  DPU_RangeProcHWA_EDMAOutputConfig
 RangeProc output EDMA configuration. More...
 
struct  DPU_RangeProcHWA_HW_Resources
 RangeProcHWA hardware resources. More...
 
struct  DPU_RangeProcHWA_compressCfg
 Compression parameters. More...
 
struct  DPU_RangeProcHWA_StaticConfig
 RangeProcHWA static configuration. More...
 
struct  DPU_RangeProcHWA_DynamicConfig
 RangeProcHWA dynamic configuration. More...
 
struct  DPU_RangeProcHWA_Config
 Range FFT configuration. More...
 
struct  DPU_RangeProcHWA_InitParams
 rangeProcHWA output parameters populated during rangeProc Processing time More...
 
struct  DPU_RangeProcHWA_OutParams
 rangeProcHWA output parameters populated during rangeProc Processing time More...
 

Macros

#define DPU_RANGEPROCHWA_NUM_HWA_PARAM_SETS   4U
 
#define DPU_RANGEPROCHWA_DCRANGESIGMEAN_BYTE_ALIGNMENT_DSP   8U
 
#define DPU_RANGEPROCHWA_DCRANGESIGMEAN_BYTE_ALIGNMENT_R5F   4U
 
#define DPU_RANGEPROCHWA_RADARCUBE_BYTE_ALIGNMENT_R5F   CSL_CACHE_L1D_LINESIZE
 
#define DPU_RANGEPROCHWA_RADARCUBE_BYTE_ALIGNMENT_DSP   (sizeof(int16_t))
 
#define DPU_RANGEPROCHWA_EINVAL   (DP_ERRNO_RANGE_PROC_BASE-1)
 Error Code: Invalid argument. More...
 
#define DPU_RANGEPROCHWA_ENOMEM   (DP_ERRNO_RANGE_PROC_BASE-2)
 Error Code: Out of memory. More...
 
#define DPU_RANGEPROCHWA_EINTERNAL   (DP_ERRNO_RANGE_PROC_BASE-3)
 Error Code: Internal error. More...
 
#define DPU_RANGEPROCHWA_ENOTIMPL   (DP_ERRNO_RANGE_PROC_BASE-4)
 Error Code: Not implemented. More...
 
#define DPU_RANGEPROCHWA_EINPROGRESS   (DP_ERRNO_RANGE_PROC_BASE-5)
 Error Code: In Progress. More...
 
#define DPU_RANGEPROCHWA_ECMD   (DP_ERRNO_RANGE_PROC_BASE-6)
 Error Code: Invalid control command. More...
 
#define DPU_RANGEPROCHWA_ESEMA   (DP_ERRNO_RANGE_PROC_BASE-7)
 Error Code: Semaphore error. More...
 
#define DPU_RANGEPROCHWA_EDCREMOVAL   (DP_ERRNO_RANGE_PROC_BASE-8)
 Error Code: DC range signal removal configuration error. More...
 
#define DPU_RANGEPROCHWA_EADCBUF_INTF   (DP_ERRNO_RANGE_PROC_BASE-9)
 Error Code: ADCBuf data interface configuration error. More...
 
#define DPU_RANGEPROCHWA_ERADARCUBE_INTF   (DP_ERRNO_RANGE_PROC_BASE-10)
 Error Code: ADCBuf data interface configuration error. More...
 
#define DPU_RANGEPROCHWA_EWINDOW   (DP_ERRNO_RANGE_PROC_BASE-11)
 Error Code: HWA windowing configuration error. More...
 
#define DPU_RANGEPROCHWA_EBUTTERFLYSCALE   (DP_ERRNO_RANGE_PROC_BASE-12)
 Error Code: Incorrect number of butterfly stages specified for scaling. More...
 
#define DPU_RANGEPROCHWA_EEDMA_ERROR   (DP_ERRNO_RANGE_PROC_BASE-13)
 Error Code: Incorrect number of butterfly stages specified for scaling. More...
 
#define DPU_RangeProcHWA_InputMode_MAPPED   (uint32_t) 0U
 
#define DPU_RangeProcHWA_InputMode_ISOLATED   (uint32_t) 1U
 
#define DPU_RangeProcHWA_InputMode_HWA_INTERNAL_MEM   (uint32_t) 2U
 
#define DPU_RangeProcHWA_Cmd_dcRangeCfg   (uint32_t) 0
 
#define DPU_RangeProcHWA_Cmd_triggerProc   (uint32_t) 1
 

Typedefs

typedef uint32_t DPU_RangeProcHWA_InputMode
 RangeProc data input mode. More...
 
typedef uint32_t DPU_RangeProcHWA_Cmd
 rangeProc control command More...
 
typedef void * DPU_RangeProcHWA_Handle
 rangeProc DPU Handle More...
 

Functions

DPU_RangeProcHWA_Handle DPU_RangeProcHWA_init (DPU_RangeProcHWA_InitParams *initParams, int32_t *errCode)
 
int32_t DPU_RangeProcHWA_config (DPU_RangeProcHWA_Handle handle, DPU_RangeProcHWA_Config *rangeHwaCfg)
 
int32_t DPU_RangeProcHWA_process (DPU_RangeProcHWA_Handle handle, DPU_RangeProcHWA_OutParams *outParams)
 
int32_t DPU_RangeProcHWA_control (DPU_RangeProcHWA_Handle handle, DPU_RangeProcHWA_Cmd cmd, void *arg, uint32_t argSize)
 
int32_t DPU_RangeProcHWA_deinit (DPU_RangeProcHWA_Handle handle)
 
int32_t DPU_RangeProcHWA_GetNumUsedHwaParamSets (DPU_RangeProcHWA_Handle handle, uint8_t *numUsedHwaParamSets)
 

Macro Definition Documentation

◆ DPU_RANGEPROCHWA_NUM_HWA_PARAM_SETS

#define DPU_RANGEPROCHWA_NUM_HWA_PARAM_SETS   4U

Number of HWA parameter sets

◆ DPU_RANGEPROCHWA_DCRANGESIGMEAN_BYTE_ALIGNMENT_DSP

#define DPU_RANGEPROCHWA_DCRANGESIGMEAN_BYTE_ALIGNMENT_DSP   8U

Alignment for DC range signal mean buffer - if DPU is running on DSP(C66)

◆ DPU_RANGEPROCHWA_DCRANGESIGMEAN_BYTE_ALIGNMENT_R5F

#define DPU_RANGEPROCHWA_DCRANGESIGMEAN_BYTE_ALIGNMENT_R5F   4U

Alignment for DC range signal mean buffer - if DPU is running on R5F

◆ DPU_RANGEPROCHWA_RADARCUBE_BYTE_ALIGNMENT_R5F

#define DPU_RANGEPROCHWA_RADARCUBE_BYTE_ALIGNMENT_R5F   CSL_CACHE_L1D_LINESIZE

Alignment for radar cube on R5F

◆ DPU_RANGEPROCHWA_RADARCUBE_BYTE_ALIGNMENT_DSP

#define DPU_RANGEPROCHWA_RADARCUBE_BYTE_ALIGNMENT_DSP   (sizeof(int16_t))

Alignment for radar cube on DSP

◆ DPU_RangeProcHWA_InputMode_MAPPED

#define DPU_RangeProcHWA_InputMode_MAPPED   (uint32_t) 0U

◆ DPU_RangeProcHWA_InputMode_ISOLATED

#define DPU_RangeProcHWA_InputMode_ISOLATED   (uint32_t) 1U

◆ DPU_RangeProcHWA_InputMode_HWA_INTERNAL_MEM

#define DPU_RangeProcHWA_InputMode_HWA_INTERNAL_MEM   (uint32_t) 2U

◆ DPU_RangeProcHWA_Cmd_dcRangeCfg

#define DPU_RangeProcHWA_Cmd_dcRangeCfg   (uint32_t) 0

◆ DPU_RangeProcHWA_Cmd_triggerProc

#define DPU_RangeProcHWA_Cmd_triggerProc   (uint32_t) 1

Function Documentation

◆ DPU_RangeProcHWA_init()

DPU_RangeProcHWA_Handle DPU_RangeProcHWA_init ( DPU_RangeProcHWA_InitParams initParams,
int32_t *  errCode 
)

◆ DPU_RangeProcHWA_config()

int32_t DPU_RangeProcHWA_config ( DPU_RangeProcHWA_Handle  handle,
DPU_RangeProcHWA_Config rangeHwaCfg 
)

◆ DPU_RangeProcHWA_process()

int32_t DPU_RangeProcHWA_process ( DPU_RangeProcHWA_Handle  handle,
DPU_RangeProcHWA_OutParams outParams 
)

◆ DPU_RangeProcHWA_control()

int32_t DPU_RangeProcHWA_control ( DPU_RangeProcHWA_Handle  handle,
DPU_RangeProcHWA_Cmd  cmd,
void *  arg,
uint32_t  argSize 
)

◆ DPU_RangeProcHWA_deinit()

int32_t DPU_RangeProcHWA_deinit ( DPU_RangeProcHWA_Handle  handle)

◆ DPU_RangeProcHWA_GetNumUsedHwaParamSets()

int32_t DPU_RangeProcHWA_GetNumUsedHwaParamSets ( DPU_RangeProcHWA_Handle  handle,
uint8_t *  numUsedHwaParamSets 
)