CC27xxDriverLibrary
apu.h File Reference
#include <stdint.h>
#include <stdbool.h>
Include dependency graph for apu.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define APU_FBA_ENABLE   1
 Enable Forward/Backward Averaging. More...
 
#define APU_FBA_DISABLE   0
 Disable Forward/Backward Averaging. More...
 
#define APU_MEMORY_INTERLEAVED   1
 Set APU memory in interleaved mode. More...
 
#define APU_MEMORY_MIRRORED   0
 Set APU memory in mirrored mode. More...
 
#define APU_HEAP_ADDR   0x03CE
 50 positions for Heap, from 974->1023 More...
 
#define APU_OP_R2C   0
 C=real(A)+j*real(B) More...
 
#define APU_OP_R2CC   1
 C=real(A)-j*real(B) More...
 
#define APU_OP_R2CA   2
 C=imag(A)+j*real(A) More...
 
#define APU_OP_R2CCA   3
 C=imag(A)-j*real(A) More...
 
#define APU_OP_RA   4
 C=real(A) More...
 
#define APU_OP_IMA   5
 C=imag(A) More...
 
#define APU_OP_ABS   6
 C=abs(real(A)) + j*abs(imag(A)) More...
 
#define APU_OP_ADD   0
 Vector addition. More...
 
#define APU_OP_SUB   1
 Vector subtraction. More...
 
#define APU_OP_MIN   0
 Minimum operator. More...
 
#define APU_OP_MAX   1
 Maximum operator. More...
 
#define APU_GET_DATA_MEM_OFFSET(x)   ((uint32_t)x - (uint32_t)APURAM_DATA0_BASE) >> 3
 
#define APU_GET_DATA_MEM_ABS(x)   ((uint32_t)APURAM_DATA0_BASE + (((uint32_t)x) << 3))
 

Enumerations

enum  APUApi {
  APU_API_NOP = 0x0000, APU_API_CONFIG = 0x0001, APU_API_DOTPROD = 0x0002, APU_API_VECTMULT = 0x0003,
  APU_API_VECTSUM = 0x0004, APU_API_MATMATMULT = 0x0005, APU_API_UNITCIRC = 0x0006, APU_API_SYMMATRIXVECTPROD = 0x0007,
  APU_API_MATRIXMULT = 0x0008, APU_API_HERMATRIXMULT = 0x0009, APU_API_SYMMATRIXMULT = 0x000A, APU_API_MATRIXSUM = 0x000B,
  APU_API_SCALARMULT = 0x000C, APU_API_MATRIXSCALARSUM = 0x000D, APU_API_POLAR = 0x000E, APU_API_CARTESIAN = 0x000F,
  APU_API_COVMATRIX = 0x0010, APU_API_EIGEN = 0x0011, APU_API_R2C = 0x0012, APU_API_MATRIXNORM = 0x0013,
  APU_API_FFT = 0x0014, APU_API_DCT = 0x0015, APU_API_SORT = 0x0016, APU_API_GAUSS = 0x0017,
  APU_API_HERMLO = 0x0018, APU_API_MAXMIN = 0x0019
}
 

Functions

void APUWaitOnIrq (void)
 Wait for the APU interrupt. More...
 
bool APUOperationDone (void)
 Check if the APU has completed its operation. More...
 
void APUWaitOp (void)
 Wait for the APU to start and finish. More...
 
void APUSetConfig (uint32_t memConfig)
 Configure the APU. More...
 
void APUNop (void)
 APU NOP. More...
 
void APUVectorDot (uint16_t N, void *pInputA, void *pInputB, void *pResult)
 APU accelerator for vector dot product c = A dot B. More...
 
void APUVectorDotConj (uint16_t N, void *pInputA, void *pInputB, void *pResult)
 APU accelerator for vector dot product c = A dot conj(B) More...
 
void APUVectorMult (uint16_t N, void *pInputA, void *pInputB, void *pResult)
 APU accelerator for element-wise product of two vectors. More...
 
void APUVectorScalarMult (uint16_t N, void *pInputA, void *pInputB, void *pResult)
 APU accelerator for product of a vector and a scalar. More...
 
void APUVectorMultConj (uint16_t N, void *pInputA, void *pInputB, void *pResult)
 APU accelerator for element-wise product of vector A with the conjugate of vector B. More...
 
void APUVectorSum (uint16_t N, void *pInputA, void *pInputB, uint16_t op, void *pResult)
 APU accelerator for addition/subtraction of two vectors. More...
 
void APUVectorScalarSum (uint16_t N, void *pInputA, void *pInputB, uint16_t op, void *pResult)
 APU accelerator for addition/subtraction of a vector and a scalar. More...
 
void APUVectorCart2Pol (uint16_t N, void *pInput, void *pResult)
 APU accelerator for element-wise Cartesian-to-Polar transformation of a vector. More...
 
void APUVectorPol2Cart (uint16_t N, void *pInput, void *pResult, void *pTemp)
 APU accelerator for element-wise Polar-to-Cartesian transformation of a vector. More...
 
void APUVectorSort (uint16_t N, void *pInput)
 APU accelerator for in-place sorting of a vector. More...
 
void APUMatrixMult (uint16_t M, uint16_t N, uint16_t P, void *pInputA, void *pInputB, void *pResult)
 APU accelerator for matrix multiplication of two matrices C = A*B. More...
 
void APUMatrixMultHerm (uint16_t M, void *pInputA, void *pInputB, void *pResult)
 APU accelerator for matrix multiplication of two Hermitian matrices C = A*B. More...
 
void APUMatrixMultSym (uint16_t M, void *pInputA, void *pInputB, void *pResult)
 APU accelerator for matrix multiplication of two symmetric matrices C = A*B. More...
 
void APUMatrixSum (uint16_t M, uint16_t N, void *pInputA, void *pInputB, void *pResult)
 APU accelerator for matrix addition of two matrices C = A+B. More...
 
void APUMatrixScalarMult (uint16_t M, uint16_t N, void *pInputA, void *pInputB, void *pResult)
 APU accelerator for multiplication of a matrix A and a scalar b. More...
 
void APUMatrixScalarSum (uint16_t M, uint16_t N, void *pInputA, void *pInputB, void *pResult)
 APU accelerator for addition of a matrix A and a scalar b. More...
 
void APUMatrixNorm (uint16_t M, uint16_t N, void *pInput, void *pResult)
 APU accelerator for Frobenius norm computation of a matrix. More...
 
void APUSpSmoothCovMatrix (uint16_t N, void *pInput, uint16_t L, void *pResult, uint16_t fb)
 APU accelerator for covariance matrix computation using spatial smoothing and forward-backward averaging (optional) More...
 
void APUJacobiEVD (uint16_t N, void *pInput, void *pResultV, uint16_t maxIter, float minSum, float epsTol)
 APU accelerator for Jacobi Eigen-Decomposition (EVD) of Hermitian Matrix. More...
 
void APUGaussJordanElim (uint16_t M, uint16_t N, void *pInput, float epsTol)
 APU accelerator for Gauss-Jordan Elimination of a rectable complex matrix. More...
 
void APUConfigFft (uint16_t N, void *pX)
 Configure APU accelerator for Fast Fourier transform. More...
 
void APUComputeFft (uint16_t N, void *pX)
 APU accelerator for Fast Fourier transform. More...
 
void APUComputeIfft (uint16_t N, void *pX)
 APU accelerator for invert Fast Fourier transform. More...
 
void APUUnitCircle (uint16_t N, uint16_t M, uint16_t phase, uint16_t conj, void *pResult)
 APU accelerator for generating points evenly distributed on unit circle. More...
 
void APUVectorMaxMin (uint16_t N, void *pInput, float thresh, uint16_t op, void *pResult)
 APU accelerator for computing max/min of the real part of a vector and a real value scalar. More...
 
void APUVectorR2C (uint16_t N, void *pInputA, void *pInputB, uint16_t op, void *pResult)
 APU accelerator for converting back and forth between real and complex numbers. More...
 
void APUHermLo (uint16_t N, void *pInput, void *pResult)
 APU accelerator for converting Hermitian upper-triangular to lower-triangular. More...