HPM SDK
HPMicro Software Development Kit
FFA driver APIs

FFA driver APIs. More...

Data Structures

struct  ffa_complex_q31_t
 FFA complex Q31 data type definition. More...
 
struct  ffa_complex_q15_t
 FFA complex Q15 data type definition. More...
 
struct  fft_xfer_t
 FFT transform context. More...
 
struct  fir_xfer_t
 FIR transform context. More...
 

Macros

#define FFA_OPCMD_FIR   (0U) /* !< FIR operation command index */
 Operation commands supported by FFA. More...
 
#define FFA_OPCMD_FFT   (2U) /* !< FFT operation command index */
 
#define FFA_DATA_TYPE_REAL_Q31   (0U) /* !< FFA Data type: Real Q31 */
 Data type supported by FFA. More...
 
#define FFA_DATA_TYPE_REAL_Q15   (1U) /* !< FFA Data type: Real Q15 */
 
#define FFA_DATA_TYPE_COMPLEX_Q31   (2U) /* !< FFA Data type: Complex Q31 */
 
#define FFA_DATA_TYPE_COMPLEX_Q15   (3U) /* !< FFA Data type: Complex Q15 */
 

Typedefs

typedef int32_t ffa_q31_t
 FFA Q31 data type definition. More...
 
typedef int16_t ffa_q15_t
 FFA Q15 data type definition. More...
 

Enumerations

enum  {
  status_ffa_fir_overflow = ((uint32_t)( status_group_ffa )*1000U + (uint32_t)( 0 )) , status_ffa_fft_overflow = ((uint32_t)( status_group_ffa )*1000U + (uint32_t)( 1 )) , status_ffa_write_error = ((uint32_t)( status_group_ffa )*1000U + (uint32_t)( 2 )) , status_ffa_read_next_error = ((uint32_t)( status_group_ffa )*1000U + (uint32_t)( 3 )) ,
  status_ffa_read_error = ((uint32_t)( status_group_ffa )*1000U + (uint32_t)( 4 ))
}
 FFA error codes. More...
 

Functions

static void ffa_enable (FFA_Type *ptr)
 Enable FFA module and start an specified FFA operation. More...
 
static void ffa_disable (FFA_Type *ptr)
 Stop FFA module. More...
 
static uint32_t ffa_get_status (FFA_Type *ptr)
 Get FFA status. More...
 
static void ffa_enable_interrupt (FFA_Type *ptr, uint32_t mask)
 Enable FFA Interrupt. More...
 
static void ffa_disable_interrupt (FFA_Type *ptr, uint32_t mask)
 Disable FFA interrupt. More...
 
void ffa_start_fft (FFA_Type *ptr, fft_xfer_t *fft_xfer)
 Start an FFT operation. More...
 
void ffa_start_fir (FFA_Type *ptr, fir_xfer_t *fir_xfer)
 Start an FIR operation. More...
 
hpm_stat_t ffa_calculate_fft_blocking (FFA_Type *ptr, fft_xfer_t *fft_xfer)
 Perform FFT transformation in blocking mode. More...
 
hpm_stat_t ffa_calculate_fir_blocking (FFA_Type *ptr, fir_xfer_t *fir_xfer)
 Perform FIR transform in blocking mode. More...
 

Detailed Description

FFA driver APIs.

Macro Definition Documentation

◆ FFA_DATA_TYPE_COMPLEX_Q15

#define FFA_DATA_TYPE_COMPLEX_Q15   (3U) /* !< FFA Data type: Complex Q15 */

◆ FFA_DATA_TYPE_COMPLEX_Q31

#define FFA_DATA_TYPE_COMPLEX_Q31   (2U) /* !< FFA Data type: Complex Q31 */

◆ FFA_DATA_TYPE_REAL_Q15

#define FFA_DATA_TYPE_REAL_Q15   (1U) /* !< FFA Data type: Real Q15 */

◆ FFA_DATA_TYPE_REAL_Q31

#define FFA_DATA_TYPE_REAL_Q31   (0U) /* !< FFA Data type: Real Q31 */

#include <drivers/inc/hpm_ffa_drv.h>

Data type supported by FFA.

◆ FFA_OPCMD_FFT

#define FFA_OPCMD_FFT   (2U) /* !< FFT operation command index */

◆ FFA_OPCMD_FIR

#define FFA_OPCMD_FIR   (0U) /* !< FIR operation command index */

#include <drivers/inc/hpm_ffa_drv.h>

Operation commands supported by FFA.

Typedef Documentation

◆ ffa_q15_t

typedef int16_t ffa_q15_t

#include <drivers/inc/hpm_ffa_drv.h>

FFA Q15 data type definition.

◆ ffa_q31_t

typedef int32_t ffa_q31_t

#include <drivers/inc/hpm_ffa_drv.h>

FFA Q31 data type definition.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

#include <drivers/inc/hpm_ffa_drv.h>

FFA error codes.

Enumerator
status_ffa_fir_overflow 
status_ffa_fft_overflow 
status_ffa_write_error 
status_ffa_read_next_error 
status_ffa_read_error 

FFA read error

Function Documentation

◆ ffa_calculate_fft_blocking()

hpm_stat_t ffa_calculate_fft_blocking ( FFA_Type ptr,
fft_xfer_t fft_xfer 
)

#include <drivers/inc/hpm_ffa_drv.h>

Perform FFT transformation in blocking mode.

Parameters
[in]ptrFFA base address
[in,out]fft_xferFFT transform context
Returns
FFT operation result

◆ ffa_calculate_fir_blocking()

hpm_stat_t ffa_calculate_fir_blocking ( FFA_Type ptr,
fir_xfer_t fir_xfer 
)

#include <drivers/inc/hpm_ffa_drv.h>

Perform FIR transform in blocking mode.

Parameters
[in]ptrFFA base address
[in,out]fir_xferFIR transform context
Returns
FIR operation result

◆ ffa_disable()

static void ffa_disable ( FFA_Type ptr)
inlinestatic

#include <drivers/inc/hpm_ffa_drv.h>

Stop FFA module.

Parameters
[in]ptrFFA base address

◆ ffa_disable_interrupt()

static void ffa_disable_interrupt ( FFA_Type ptr,
uint32_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_ffa_drv.h>

Disable FFA interrupt.

Parameters
[in]ptrFFA base address
[in]maskFFA interrupt mask

◆ ffa_enable()

static void ffa_enable ( FFA_Type ptr)
inlinestatic

#include <drivers/inc/hpm_ffa_drv.h>

Enable FFA module and start an specified FFA operation.

Parameters
[in]ptrFFA base address

◆ ffa_enable_interrupt()

static void ffa_enable_interrupt ( FFA_Type ptr,
uint32_t  mask 
)
inlinestatic

#include <drivers/inc/hpm_ffa_drv.h>

Enable FFA Interrupt.

Parameters
[in]ptrFFA base address
[in]maskFFA interrupt mask

◆ ffa_get_status()

static uint32_t ffa_get_status ( FFA_Type ptr)
inlinestatic

#include <drivers/inc/hpm_ffa_drv.h>

Get FFA status.

Parameters
[in]ptrFFA base address
Returns
FFA status register value

◆ ffa_start_fft()

void ffa_start_fft ( FFA_Type ptr,
fft_xfer_t fft_xfer 
)

#include <drivers/inc/hpm_ffa_drv.h>

Start an FFT operation.

Parameters
[in]ptrFFA base address
[in]fft_xferFFT transform context

◆ ffa_start_fir()

void ffa_start_fir ( FFA_Type ptr,
fir_xfer_t fir_xfer 
)

#include <drivers/inc/hpm_ffa_drv.h>

Start an FIR operation.

Parameters
[in]ptrFFA base address
[in]fir_xferFIR transform context