Implements Datapath Angle of Arrival processing functionality using the HWA. Based on the RF parameters, rangeFFT output and detected points aoaProc configures hardware accelerator FFT engine in FFT mode, does recalculation for detected points doppler FFT, doppler phase compensation, rearranges the data in memory for elevation-azimuth FFT and finally outputs the elevation and azimuth indices.
It also configures data input and output EDMA channels to bring data in and out of AoA Processing memory during Doppler FFT recalculation and AoA calculation.
The process is triggered in the inter-frame processing time after 2D-FFT and detected points.
After HWA processing is done, it generates interrupt to AoA DPU, at the same time triggers EDMA data output channel to copy out elevation-azimuth indices. 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_AoAProcHWA_InitParams |
AoAProc DPU initial configuration parameters. More... | |
struct | DPU_AoAProcHWA_HwaCfg |
AoAProc DPU HWA configuration parameters. More... | |
struct | DPU_AoAProcHWA_EdmaCfg |
AoAProc DPU EDMA configuration parameters. More... | |
struct | DPU_AoAProcHWA_HW_Resources |
AoA DPU HW configuration parameters. More... | |
struct | DPU_AoAProcHWA_maxDetMatrix_Resources |
AoA DPU HW configuration parameters. More... | |
struct | DPU_AoAProcHWA_StaticConfig |
AoA DPU static configuration parameters. More... | |
struct | DPU_AoAProcHWA_Config |
AoAProc DPU configuration parameters. More... | |
struct | DPU_AoAProcHWA_OutParams |
DPU processing output parameters. More... | |
Macros | |
#define | DPU_AOAPROCHWA_EINVAL (DP_ERRNO_AOA_PROC_BASE-1) |
Error Code: Invalid argument. More... | |
#define | DPU_AOAPROCHWA_ENOMEM (DP_ERRNO_AOA_PROC_BASE-2) |
Error Code: Out of memory. More... | |
#define | DPU_AOAPROCHWA_EINPROGRESS (DP_ERRNO_AOA_PROC_BASE-3) |
Error Code: DPU is in progress. More... | |
#define | DPU_AOAPROCHWA_EHWARES (DP_ERRNO_AOA_PROC_BASE-4) |
Error Code: Out of HWA resources. More... | |
#define | DPU_AOAPROCHWA_ESEMA (DP_ERRNO_AOA_PROC_BASE-5) |
Error Code: Semaphore creation failed. More... | |
#define | DPU_AOAPROCHWA_ESEMASTATUS (DP_ERRNO_AOA_PROC_BASE-6) |
Error Code: Bad semaphore status. More... | |
#define | DPU_AOAPROCHWA_EEXCEEDHWAMEM (DP_ERRNO_AOA_PROC_BASE-7) |
Error Code: Configure parameters exceed HWA memory bank size. More... | |
#define | DPU_AOAPROCHWA_ECUBEFORMAT (DP_ERRNO_AOA_PROC_BASE-8) |
Error Code: Unsupported radar cube format. More... | |
#define | DPU_AOAPROCHWA_EDETMFORMAT (DP_ERRNO_AOA_PROC_BASE-9) |
Error Code: Unsupported detection matrix format. More... | |
#define | DPU_AOAPROCHWA_EDETMSIZE (DP_ERRNO_AOA_PROC_BASE-10) |
Error Code: Insufficient detection matrix size. More... | |
#define | DPU_AOAPROCHWA_EWINDSIZE (DP_ERRNO_AOA_PROC_BASE-11) |
Error Code: Wrong window size. More... | |
#define | DPU_AOAPROCHWA_MAX_NUM_HWA_PARAMSET 12 |
Maximum number of HWA paramsets used by DPU. Computed as follows: (1 for Doppler-FFT)*2(ping/pong) + (2 for Doppler-Compensation for Tx1 and Tx2)*2(ping/pong) + (3- for azimuth, elevation FFT, finding the maxima)*2(ping/pong) = 10. More... | |
#define | DPU_AOAPROCHWA_NUM_HWA_PARAMSET_DOPPLER_FFT 6 |
Number of HWA paramsets used by DPU for 2D FFT + Doppler compensation Computed as follows: (1 for Doppler FFT and 2 for Doppler Compensation - for 1st Tx and 2nd Tx)*2(ping/pong) = 6. More... | |
#define | DPU_AOAPROCHWA_NUM_HWA_PARAMSET_DOPPLER_FFT_ONLY 2 |
Number of HWA paramsets used by DPU for 2D FFT if numTx antennas = 1 (Doppler compensation is not required) Computed as follows: (1 for Doppler FFT)*2(ping/pong) = 2. More... | |
#define | DPU_AOAPROCHWA_NUM_HWA_PARAMSET_AOA 6 |
Number of HWA paramsets used by DPU for AoA Computed as follows: (1 paramset for azimuth FFT + 1 paramset for elevation FFT + 1-paramset to find the maxima)*2(ping/pong) = 6. More... | |
#define | DPU_AOAPROCHWA_NUM_HWA_MEMBANKS 4 |
Number of HWA memory banks needed. More... | |
Typedefs | |
typedef void * | DPU_AoAProcHWA_Handle |
Handle for AoA Processing DPU. More... | |
Functions | |
DPU_AoAProcHWA_Handle | DPU_AoAProcHWA_init (DPU_AoAProcHWA_InitParams *initCfg, int32_t *errCode) |
int32_t | DPU_AoAProcHWA_Dopplerprocess (DPU_AoAProcHWA_Handle handle, DPU_AoAProcHWA_OutParams *outParams) |
int32_t | DPU_AoAProcHWA_AoAprocess (DPU_AoAProcHWA_Handle handle, DPU_AoAProcHWA_OutParams *outParams) |
int32_t | DPU_AoAProcHWA_deinit (DPU_AoAProcHWA_Handle handle) |
int32_t | DPU_AoAProcHWA_config (DPU_AoAProcHWA_Handle handle, DPU_AoAProcHWA_Config *cfg) |
#define DPU_AOAPROCHWA_MAX_NUM_HWA_PARAMSET 12 |
Maximum number of HWA paramsets used by DPU. Computed as follows:
(1 for Doppler-FFT)*2(ping/pong) + (2 for Doppler-Compensation for Tx1 and Tx2)*2(ping/pong) + (3- for azimuth, elevation FFT, finding the maxima)*2(ping/pong) = 10.
#define DPU_AOAPROCHWA_NUM_HWA_PARAMSET_DOPPLER_FFT 6 |
Number of HWA paramsets used by DPU for 2D FFT + Doppler compensation Computed as follows:
(1 for Doppler FFT and 2 for Doppler Compensation - for 1st Tx and 2nd Tx)*2(ping/pong) = 6.
#define DPU_AOAPROCHWA_NUM_HWA_PARAMSET_DOPPLER_FFT_ONLY 2 |
Number of HWA paramsets used by DPU for 2D FFT if numTx antennas = 1 (Doppler compensation is not required) Computed as follows:
(1 for Doppler FFT)*2(ping/pong) = 2.
#define DPU_AOAPROCHWA_NUM_HWA_PARAMSET_AOA 6 |
Number of HWA paramsets used by DPU for AoA Computed as follows:
(1 paramset for azimuth FFT + 1 paramset for elevation FFT + 1-paramset to find the maxima)*2(ping/pong) = 6.
#define DPU_AOAPROCHWA_NUM_HWA_MEMBANKS 4 |
Number of HWA memory banks needed.
typedef void* DPU_AoAProcHWA_Handle |
Handle for AoA Processing DPU.
DPU_AoAProcHWA_Handle DPU_AoAProcHWA_init | ( | DPU_AoAProcHWA_InitParams * | initCfg, |
int32_t * | errCode | ||
) |
int32_t DPU_AoAProcHWA_Dopplerprocess | ( | DPU_AoAProcHWA_Handle | handle, |
DPU_AoAProcHWA_OutParams * | outParams | ||
) |
int32_t DPU_AoAProcHWA_AoAprocess | ( | DPU_AoAProcHWA_Handle | handle, |
DPU_AoAProcHWA_OutParams * | outParams | ||
) |
int32_t DPU_AoAProcHWA_deinit | ( | DPU_AoAProcHWA_Handle | handle | ) |
int32_t DPU_AoAProcHWA_config | ( | DPU_AoAProcHWA_Handle | handle, |
DPU_AoAProcHWA_Config * | cfg | ||
) |