![]() |
MCUXpresso SDK API Reference Manual
Rev. 0
NXP Semiconductors
|
The MCUXpresso SDK provides Peripheral driver for the Memory Mapped Arithmetic Unit (MMAU) block of MCUXpresso SDK devices.
The Memory Mapped Arithmetic Unit (MMAU) provides acceleration to a set of math operations, including signed/unsigned multiplication and accumulation, division and root-square, and so on.
To initialize the MMAU driver, call the MMAU_EnableDMA(MMAU, true) and MMAU_EnableSupervisorOnly(MMAU, false) functions.
MMAU supports three interrupts: Accumulation Overflow (Q), Divide/Multiply Overflow (V) and Divide-by-Zero (DZ). These interrupts were definition at mmau_flag_t structure. The MMAU driver supports enable/disable the interrupts, get/clear the interrupt flags.
For example:
The MMAU driver provides four instruction flags: Accumulation Overflow (Q), Divide or Multiply Overflow (V), Divide-by-Zero (DZ) and Signed calculation result is negative (N). These flags were updated after each calculation. MMAU driver contains get and set functions to access instruction flags.
The MMAU driver supports multiply, divide and square root functions. Each kind of function supports Unsigned Integer, Signed Integer (except square root) and Fractional Number as operator.
This example demonstrates the SIN calculation.
Enumerations | |
enum | mmau_interrupt_enable_t { kMMAU_AccumOverflowInterruptEnable = (MMAU_CSR_QIE_MASK), kMMAU_OverflowInterruptEnable = (MMAU_CSR_VIE_MASK), kMMAU_DivideByZeroInterruptEnable = (MMAU_CSR_DZIE_MASK) } |
MMAU interrupt configuration structure, default settings all disabled. More... | |
enum | mmau_interrupt_flag_t { kMMAU_AccumOverflowInterruptFlag = (MMAU_CSR_QIF_MASK), kMMAU_OverflowInterruptFlag = (MMAU_CSR_VIF_MASK), kMMAU_DivideByZeroInterruptFlag = (MMAU_CSR_DZIF_MASK) } |
MMAU interrupt and instruction flags. More... | |
enum | mmau_instruction_flag_t { kMMAU_AccumOverflowInstructionFlag = (MMAU_CSR_Q_MASK), kMMAU_OverflowInstructionFlag = (MMAU_CSR_V_MASK), kMMAU_DivideByZeroInstructionFlag = (MMAU_CSR_DZ_MASK), kMMAU_NegativeInstructionFlag = (MMAU_CSR_N_MASK) } |
MMAU interrupt and instruction flags. More... | |
Functions | |
static uint32_t | MMAU_GetHwRevCmd (MMAU_Type *base) |
Gets hardware revision level. More... | |
Driver version | |
#define | FSL_MMAU_DRIVER_VERSION (MAKE_VERSION(2, 0, 0)) |
Version 2.0.0. | |
Registers decorated load/store addresses | |
#define | MMAU__X0 0xF0004000UL |
Accumulator register X0. | |
#define | MMAU__X1 0xF0004004UL |
Accumulator register X1. | |
#define | MMAU__X2 0xF0004008UL |
Accumulator register X2. | |
#define | MMAU__X3 0xF000400CUL |
Accumulator register X3. | |
#define | MMAU__A0 0xF0004010UL |
Accumulator register A0. | |
#define | MMAU__A1 0xF0004014UL |
Accumulator register A1. | |
#define | MMAU__A10 0xF0004010UL |
Accumulator register pair A10. | |
Unsigned integer instructions decorated load/store addresses | |
#define | MMAU__REGRW 0xF0004000UL |
Registers RW. | |
#define | MMAU__UMUL 0xF0004020UL |
A10=X2*X3. | |
#define | MMAU__UMULD 0xF0004040UL |
A10=X21*X3. | |
#define | MMAU__UMULDA 0xF0004060UL |
A10=A10*X3. | |
#define | MMAU__UMAC 0xF00040A0UL |
A10=X2*X3+A10. | |
#define | MMAU__UMACD 0xF00040C0UL |
A10=X21*X3+A10. | |
#define | MMAU__UMACDA 0xF00040E0UL |
A10=A10*X3+X21. | |
#define | MMAU__UDIV 0xF0004120UL |
X21/X3=A10. | |
#define | MMAU__UDIVD 0xF0004140UL |
A10=X2/X3. | |
#define | MMAU__UDIVDA 0xF0004160UL |
A10=X21/X3. | |
#define | MMAU__UDIVDD 0xF0004180UL |
A10=A10/X3. | |
#define | MMAU__UDIVDDA 0xF00041A0UL |
A10=A10/X32. | |
#define | MMAU__USQR 0xF0004220UL |
A10=SQR(X3) | |
#define | MMAU__USQRD 0xF0004240UL |
A10=SQR(X32) | |
#define | MMAU__USQRDA 0xF0004260UL |
A10=SQR(A10) | |
Signed fractional instructions decorated load/store addresses | |
#define | MMAU__QSQR 0xF00042A0UL |
A10=SQR(X3) | |
#define | MMAU__QSQRD 0xF00042C0UL |
A10=SQR(X32) | |
#define | MMAU__QSQRDA 0xF00042E0UL |
A10=SQR(A10) | |
#define | MMAU__QDIV 0xF0004320UL |
A10=X2/X3. | |
#define | MMAU__QDIVD 0xF0004340UL |
A10=X21/X3. | |
#define | MMAU__QDIVDA 0xF0004360UL |
A10=A10/X3. | |
#define | MMAU__QMUL 0xF0004420UL |
A10=X2*X3. | |
#define | MMAU__QMULD 0xF0004440UL |
A10=X21*X3. | |
#define | MMAU__QMULDA 0xF0004460UL |
A10=A10*X3. | |
#define | MMAU__QMAC 0xF00044A0UL |
A10=X2*X3+A10. | |
#define | MMAU__QMACD 0xF00044C0UL |
A10=X21*X3+A10. | |
#define | MMAU__QMACDA 0xF00044E0UL |
A10=A10*X3+X21. | |
Signed integer instructions decorated load/store addresses | |
#define | MMAU__SMUL 0xF0004620UL |
A10=X2*X3. | |
#define | MMAU__SMULD 0xF0004640UL |
A10=X21*X3. | |
#define | MMAU__SMULDA 0xF0004660UL |
A10=A10*X3. | |
#define | MMAU__SMAC 0xF00046A0UL |
A10=X2*X3+A10. | |
#define | MMAU__SMACD 0xF00046C0UL |
A10=X21*X3+A10. | |
#define | MMAU__SMACDA 0xF00046E0UL |
A10=A10*X3+X21. | |
#define | MMAU__SDIV 0xF0004720UL |
A10=X2/X3. | |
#define | MMAU__SDIVD 0xF0004740UL |
A10=X21/X3. | |
#define | MMAU__SDIVDA 0xF0004760UL |
A10=A10/X3. | |
#define | MMAU__SDIVDD 0xF0004780UL |
A10=X10/X32. | |
#define | MMAU__SDIVDDA 0xF00047A0UL |
A10=A10/X32. | |
Auxiliary decorated load/store addresses | |
#define | MMAU__SAT 0xF0004800UL |
Saturation. | |
Fractional Data Type | |
typedef short int | frac16_t |
Q0.15 fractional. | |
typedef long | frac24_t |
Q8.23 fractional. | |
typedef long | frac32_t |
Q0.31 fractional. | |
typedef long long | frac48_t |
Q16.47 fractional. | |
typedef long long | frac64_t |
Q0.63 fractional. | |
MMAU Configure | |
static void | MMAU_EnableDMA (MMAU_Type *base, bool enable) |
Enable DMA for MMAU module. More... | |
static void | MMAU_EnableSupervisorOnly (MMAU_Type *base, bool enable) |
Enable supervisor only for MMAU module. More... | |
void | MMAU_Reset (MMAU_Type *base) |
Set control/status register into reset state. More... | |
MMAU Interrupt | |
static void | MMAU_EnableInterrupts (MMAU_Type *base, uint32_t mask) |
Enable MMAU interrupts. More... | |
static void | MMAU_DisableInterrupts (MMAU_Type *base, uint32_t mask) |
Disable MMAU interrupts. More... | |
static uint32_t | MMAU_GetEnabledInterrupts (MMAU_Type *base) |
Gets enabled interrupts. More... | |
static uint32_t | MMAU_GetInterruptFlags (MMAU_Type *base) |
Get interrupt flags. More... | |
void | MMAU_ClearInterruptFlags (MMAU_Type *base, uint32_t mask) |
Clears interrupt flags. More... | |
MMAU Instruction flag | |
static uint32_t | MMAU_GetInstructionFlags (MMAU_Type *base) |
Gets the instruction flags. More... | |
void | MMAU_SetInstructionFlags (MMAU_Type *base, uint32_t mask) |
Sets the instruction flags. More... | |
void | MMAU_ClearInstructionFlags (MMAU_Type *base, uint32_t mask) |
Clears instruction flags. More... | |
Unsigned Integer Operands | |
static void | MMAU_ulda_d (register uint64_t dval) |
Load A10 accumulator register of the MMAU by 64-bit unsigned value. More... | |
static uint64_t | MMAU_d_umul_ll (register uint32_t lval1, register uint32_t lval2) |
Multiply two 32-bit unsigned values returning a 64-bit unsigned product. More... | |
static uint64_t | MMAU_d_umul_dl (register uint64_t dval, register uint32_t lval) |
Multiply 64-bit unsigned value with 32-bit unsigned value returning a 64-bit unsigned product. More... | |
static uint64_t | MMAU_d_umuls_dl (register uint64_t dval, register uint32_t lval) |
Saturating multiply 64-bit unsigned value with 32-bit unsigned value returning saturated 64-bit unsigned product. More... | |
static uint64_t | MMAU_d_umula_l (register uint32_t lval) |
Multiply 32-bit unsigned value with 64-bit unsigned value stored in the A10 register of the MMAU returning a 64-bit unsigned product. More... | |
static uint64_t | MMAU_d_umulas_l (register uint32_t lval) |
Saturating multiply 32-bit unsigned value with 64-bit unsigned value stored in the A10 register of the MMAU returning saturated 64-bit unsigned product. More... | |
static uint64_t | MMAU_d_umac_ll (register uint32_t lval1, register uint32_t lval2) |
Multiply two 32-bit unsigned values and add product with value stored in the A10 register of the MMAU returning a 64-bit unsigned A10 register value. More... | |
static uint64_t | MMAU_d_umacs_ll (register uint32_t lval1, register uint32_t lval2) |
Saturating multiply two 32-bit unsigned values and add product with value stored in the A10 register of the MMAU returning a 64-bit unsigned A10 register value. More... | |
static uint64_t | MMAU_d_umac_dl (register uint64_t dval, register uint32_t lval) |
Multiply 64-bit unsigned value with 32-bit unsigned value and add product with value stored in the A10 register of the MMAU returning a 64-bit unsigned A10 register value. More... | |
static uint64_t | MMAU_d_umacs_dl (register uint64_t dval, register uint32_t lval) |
Saturating multiply 64-bit unsigned value with 32-bit unsigned value and add product with value stored in the A10 register of the MMAU returning saturated 64-bit unsigned A10 register value. More... | |
static uint64_t | MMAU_d_umaca_dl (register uint64_t dval, register uint32_t lval) |
Multiply 32-bit unsigned value by value stored in the A10 register of the MMAU and add product with 64-bit unsigned value returning a 64-bit unsigned A10 register value. More... | |
static uint64_t | MMAU_d_umacas_dl (register uint64_t dval, register uint32_t lval) |
Saturating multiply 32-bit unsigned value by value stored in the A10 register of the MMAU and add product with 64-bit unsigned value returning a saturated 64-bit unsigned A10 register value. More... | |
static uint32_t | MMAU_l_udiv_ll (register uint32_t lnum, register uint32_t lden) |
Divide two 32-bit unsigned values returning a 32-bit unsigned quotient. More... | |
static uint64_t | MMAU_d_udiv_dl (register uint64_t dnum, register uint32_t lden) |
Divide 64-bit unsigned value by 32-bit unsigned value returning a 64-bit unsigned quotient. More... | |
static uint64_t | MMAU_d_udiv_dd (register uint64_t dnum, register uint64_t dden) |
Divide two 64-bit unsigned values returning a 64-bit unsigned quotient. More... | |
static uint64_t | MMAU_d_udiva_l (register uint32_t lden1) |
Divide 32-bit unsigned value stored in the A10 register of the MMAU by 32-bit unsigned value returning a 64-bit unsigned quotient. More... | |
static uint64_t | MMAU_d_udiva_d (register uint64_t dden1) |
Divide 64-bit unsigned value stored in the A10 register of the MMAU by 64-bit unsigned value returning a 64-bit unsigned quotient. More... | |
static uint32_t | MMAU_l_usqr_l (register uint32_t lrad) |
Compute and return a 32-bit unsigned square root of the 32-bit unsigned radicand. More... | |
static uint32_t | MMAU_l_usqr_d (register uint64_t drad) |
Compute and return a 32-bit unsigned square root of the 64-bit unsigned radicand. More... | |
static uint16_t | MMAU_s_usqr_l (register uint32_t lrad) |
Compute and return a 16-bit unsigned square root of the 32-bit unsigned radicand. More... | |
static uint32_t | MMAU_l_usqra (void) |
Compute and return a 32-bit unsigned square root of the radicand stored in the A10 register of the MMAU. More... | |
Signed Integer Operands | |
static void | MMAU_slda_d (register int64_t dval) |
Load A10 accumulator register of the MMAU by 64-bit integer value. More... | |
static int64_t | MMAU_d_smul_ll (register int32_t lval1, register int32_t lval2) |
Multiply two 32-bit integer values returning a 64-bit integer product. More... | |
static int64_t | MMAU_d_smul_dl (register int64_t dval, register int32_t lval) |
Multiply 64-bit integer value with 32-bit integer value returning a 64-bit integer product. More... | |
static int64_t | MMAU_d_smuls_dl (register int64_t dval, register int32_t lval) |
Saturating multiply 64-bit integer value with 32-bit integer value returning saturated 64-bit integer product. More... | |
static int64_t | MMAU_d_smula_l (register int32_t lval) |
Multiply 32-bit integer value with 64-bit integer value stored in the A10 register of the MMAU returning a 64-bit integer product. More... | |
static int64_t | MMAU_d_smulas_l (register int32_t lval) |
Saturating multiply 32-bit integer value with 64-bit integer value stored in the A10 register of the MMAU returning saturated 64-bit integer product. More... | |
static int64_t | MMAU_d_smac_ll (register int32_t lval1, register int32_t lval2) |
Multiply two 32-bit integer values and add product with value stored in the A10 register of the MMAU returning a 64-bit integer A10 register value. More... | |
static int64_t | MMAU_d_smacs_ll (register int32_t lval1, register int32_t lval2) |
Saturating multiply two 32-bit integer values and add product with value stored in the A10 register of the MMAU returning a 64-bit integer A10 register value. More... | |
static int64_t | MMAU_d_smac_dl (register int64_t dval, register int32_t lval) |
Multiply 64-bit integer value with 32-bit integer value and add product with value stored in the A10 register of the MMAU returning a 64-bit integer A10 register value. More... | |
static int64_t | MMAU_d_smacs_dl (register int64_t dval, register int32_t lval) |
Saturating multiply 64-bit integer value with 32-bit integer value and add product with value stored in the A10 register of the MMAU returning saturated 64-bit integer A10 register value. More... | |
static int64_t | MMAU_d_smaca_dl (register int64_t dval, register int32_t lval) |
Multiply 32-bit integer value by value stored in the A10 register of the MMAU and add product with 64-bit integer value returning a 64-bit integer A10 register value. More... | |
static int64_t | MMAU_d_smacas_dl (register int64_t dval, register int32_t lval) |
Saturating multiply 32-bit integer value by value stored in the A10 register of the MMAU and add product with 64-bit integer value returning a saturated 64-bit integer A10 register value. More... | |
static int32_t | MMAU_l_sdiv_ll (register int32_t lnum, register int32_t lden) |
Divide two 32-bit integer values returning a 32-bit integer quotient. More... | |
static int32_t | MMAU_l_sdivs_ll (register int32_t lnum, register int32_t lden) |
Divide two 32-bit integer values returning a 32-bit integer quotient. More... | |
static int64_t | MMAU_d_sdiv_dl (register int64_t dnum, register int32_t lden) |
Divide 64-bit integer value by 32-bit integer value returning a 64-bit integer quotient. More... | |
static int64_t | MMAU_d_sdivs_dl (register int64_t dnum, register int32_t lden) |
Divide 64-bit integer value by 32-bit integer value returning a 64-bit integer quotient. More... | |
static int64_t | MMAU_d_sdiv_dd (register int64_t dnum, register int64_t dden) |
Divide two 64-bit integer values returning a 64-bit integer quotient. More... | |
static int64_t | MMAU_d_sdivs_dd (register int64_t dnum, register int64_t dden) |
Divide two 64-bit integer values returning a 64-bit integer quotient. More... | |
static int64_t | MMAU_d_sdiva_l (register int32_t lden1) |
Divide 32-bit integer value stored in the A10 register of the MMAU by 32-bit integer value returning a 64-bit integer quotient. More... | |
static int64_t | MMAU_d_sdivas_l (register int32_t lden1) |
Divide 32-bit integer value stored in the A10 register of the MMAU by 32-bit integer value returning saturated 64-bit integer quotient. More... | |
static int64_t | MMAU_d_sdiva_d (register int64_t dden1) |
Divide 64-bit integer value stored in the A10 register of the MMAU by 64-bit integer value returning a 64-bit integer quotient. More... | |
static int64_t | MMAU_d_sdivas_d (register int64_t dden1) |
Divide 64-bit integer value stored in the A10 register of the MMAU by 64-bit integer value returning saturated 64-bit integer quotient. More... | |
Fractional Operands | |
static void | MMAU_lda_d (register frac64_t dval) |
Load A10 accumulator register of the MMAU by 64-bit fractional value. More... | |
static frac32_t | MMAU_l_mul_ll (register frac32_t lval1, register frac32_t lval2) |
Multiply two 32-bit fractional values returning a 32-bit fractional product. More... | |
static frac32_t | MMAU_l_muls_ll (register frac32_t lval1, register frac32_t lval2) |
Saturating multiply two 32-bit fractional values returning saturated 32-bit fractional product. More... | |
static frac64_t | MMAU_d_mul_ll (register frac32_t lval1, register frac32_t lval2) |
Multiply two 32-bit fractional values returning a 64-bit fractional product. More... | |
static frac64_t | MMAU_d_muls_ll (register frac32_t lval1, register frac32_t lval2) |
Saturating multiply two 32-bit fractional values returning saturated 64-bit fractional product. More... | |
static frac64_t | MMAU_d_mul_dl (register frac64_t dval, register frac32_t lval) |
Multiply 64-bit fractional value with 32-bit fractional value returning a 64-bit fractional product. More... | |
static frac64_t | MMAU_d_muls_dl (register frac64_t dval, register frac32_t lval) |
Saturating multiply 64-bit fractional value with 32-bit fractional value returning saturated 64-bit fractional product. More... | |
static frac64_t | MMAU_d_mula_l (register frac32_t lval) |
Multiply 32-bit fractional value with 64-bit fractional value stored in the A10 register of the MMAU returning a 64-bit fractional product. More... | |
static frac64_t | MMAU_d_mulas_l (register frac32_t lval) |
Saturating multiply 32-bit fractional value with 64-bit fractional value stored in the A10 register of the MMAU returning saturated 64-bit fractional product. More... | |
static frac32_t | MMAU_l_mul_dl (register frac64_t dval, register frac32_t lval) |
Multiply 64-bit fractional value with 32-bit fractional value returning a 32-bit fractional product. More... | |
static frac32_t | MMAU_l_muls_dl (register frac64_t dval, register frac32_t lval) |
Saturating multiply 64-bit fractional value with 32-bit fractional value returning saturated 32-bit fractional product. More... | |
static frac32_t | MMAU_l_mula_l (register frac32_t lval) |
Multiply 32-bit fractional value with 64-bit fractional value stored in the A10 register of the MMAU returning a 32-bit fractional product. More... | |
static frac32_t | MMAU_l_mulas_l (register frac32_t lval) |
Saturating multiply 32-bit fractional value with 64-bit fractional value stored in the A10 register of the MMAU returning saturated 32-bit fractional product. More... | |
static frac64_t | MMAU_d_mac_ll (register frac32_t lval1, register frac32_t lval2) |
Multiply two 32-bit fractional values and add product with value stored in the A10 register of the MMAU returning a 64-bit fractional A10 register value. More... | |
static frac64_t | MMAU_d_macs_ll (register frac32_t lval1, register frac32_t lval2) |
Saturating multiply two 32-bit fractional values and add product with value stored in the A10 register of the MMAU returning a 64-bit fractional A10 register value. More... | |
static frac64_t | MMAU_d_mac_dl (register frac64_t dval, register frac32_t lval) |
Multiply 64-bit fractional value with 32-bit fractional value and add product with value stored in the A10 register of the MMAU returning a 64-bit fractional A10 register value. More... | |
static frac64_t | MMAU_d_macs_dl (register frac64_t dval, register frac32_t lval) |
Saturating multiply 64-bit fractional value with 32-bit fractional value and add product with value stored in the A10 register of the MMAU returning saturated 64-bit fractional A10 register value. More... | |
static frac64_t | MMAU_d_maca_dl (register frac64_t dval, register frac32_t lval) |
Multiply 32-bit fractional value by value stored in the A10 register of the MMAU and add product with 64-bit fractional value returning a 64-bit fractional A10 register value. More... | |
static frac64_t | MMAU_d_macas_dl (register frac64_t dval, register frac32_t lval) |
Saturating multiply 32-bit fractional value by value stored in the A10 register of the MMAU and add product with 64-bit fractional value returning a saturated 64-bit fractional A10 register value. More... | |
static frac32_t | MMAU_l_mac_ll (register frac32_t lval1, register frac32_t lval2) |
Multiply two 32-bit fractional values and add product with value stored in the A10 register of the MMAU returning a 32-bit fractional A10 register value. More... | |
static frac32_t | MMAU_l_macs_ll (register frac32_t lval1, register frac32_t lval2) |
Saturating multiply two 32-bit fractional values and add product with value stored in the A10 register of the MMAU returning a 32-bit fractional A10 register value. More... | |
static frac32_t | MMAU_l_mac_dl (register frac64_t dval, register frac32_t lval) |
Multiply 64-bit fractional value with 32-bit fractional value and add product with value stored in the A10 register of the MMAU returning a 32-bit fractional A10 register value. More... | |
static frac32_t | MMAU_l_macs_dl (register frac64_t dval, register frac32_t lval) |
Saturating multiply 64-bit fractional value with 32-bit fractional value and add product with value stored in the A10 register of the MMAU returning saturated 32-bit fractional A10 register value. More... | |
static frac32_t | MMAU_l_maca_dl (register frac64_t dval, register frac32_t lval) |
Multiply 32-bit fractional value by value stored in the A10 register of the MMAU and add product with 64-bit fractional value returning a 32-bit fractional A10 register value. More... | |
static frac32_t | MMAU_l_macas_dl (register frac64_t dval, register frac32_t lval) |
Saturating multiply 32-bit fractional value by value stored in the A10 register of the MMAU and add product with 64-bit fractional value returning a saturated 32-bit fractional A10 register value. More... | |
static frac32_t | MMAU_l_div_ll (register frac32_t lnum, register frac32_t lden) |
Divide two 32-bit fractional values returning a 32-bit fractional quotient. More... | |
static frac32_t | MMAU_l_divs_ll (register frac32_t lnum, register frac32_t lden) |
Divide two 32-bit fractional values returning a 32-bit fractional quotient. More... | |
static frac32_t | MMAU_l_divas_l (register frac32_t lden) |
Divide 64-bit fractional value stored in the A10 register of the MMAU by 32-bit fractional value returning saturated 32-bit fractional quotient. More... | |
static frac64_t | MMAU_d_div_dl (register frac64_t dnum, register frac32_t lden) |
Divide 64-bit fractional value by 32-bit fractional value returning a 64-bit fractional quotient. More... | |
static frac64_t | MMAU_d_divs_dl (register frac64_t dnum, register frac32_t lden) |
Divide 64-bit fractional value by 32-bit fractional value returning a 64-bit fractional quotient. More... | |
static frac64_t | MMAU_d_diva_l (register frac32_t lden1) |
Divide 32-bit fractional value stored in the A10 register of the MMAU by 32-bit fractional value returning a 64-bit fractional quotient. More... | |
static frac64_t | MMAU_d_divas_l (register frac32_t lden1) |
Divide 32-bit fractional value stored in the A10 register of the MMAU by 32-bit fractional value returning saturated 64-bit fractional quotient. More... | |
static frac32_t | MMAU_l_diva_l (register frac32_t lden) |
Divide 64-bit fractional value stored in the A10 register of the MMAU by 32-bit fractional value returning a 32-bit fractional quotient. More... | |
static frac32_t | MMAU_l_sqr_l (register frac32_t lrad) |
Compute and return a 32-bit fractional square root of the 32-bit fractional radicand. More... | |
static frac32_t | MMAU_l_sqr_d (register frac64_t drad) |
Compute and return a 32-bit fractional square root of the 64-bit fractional radicand. More... | |
static frac32_t | MMAU_l_sqra (void) |
Compute and return a 32-bit fractional square root of the radicand stored in the A10 register of the MMAU. More... | |
|
inlinestatic |
base | MMAU peripheral address. |
enable | Mode of DMA access
|
|
inlinestatic |
base | MMAU peripheral address. |
enable | Mode of MMAU module can be access
|
void MMAU_Reset | ( | MMAU_Type * | base | ) |
This function sets control/status register to a known state. This state is defined in Reference Manual, which is power on reset value. This function must execute in a Supervisor Mode
base | MMAU peripheral address. |
|
inlinestatic |
This function enables the interrupts related to the mask. Example:
base | MMAU peripheral address. |
mask | Mask of the interrupt enable to be written (kMMAU_AccumOverflowInterruptEnable|kMMAU_OverflowInterruptEnable|kMMAU_DivideByZeroInterruptEnable). |
|
inlinestatic |
This function disables the interrupt related to the mask. Example:
base | MMAU peripheral address. |
mask | Mask of the interrupt enable to be written (kMMAU_AccumOverflowInterruptEnable|kMMAU_OverflowInterruptEnable|kMMAU_DivideByZeroInterruptEnable). |
|
inlinestatic |
This function gets all interrupt values. Example:
base | MMAU peripheral address. |
|
inlinestatic |
This function gets interrupt flags.
base | MMAU peripheral address. |
void MMAU_ClearInterruptFlags | ( | MMAU_Type * | base, |
uint32_t | mask | ||
) |
This function clears the interrupt flags. Example, if you want to clear Overflow and DivideByZero interrupt flags:
base | MMAU peripheral address. |
mask | Mask of the asserted interrupt flags (kMMAU_AccumOverflowInterruptFlag|kMMAU_OverflowInterruptFlag|kMMAU_DivideByZeroInterruptFlag). |
|
inlinestatic |
This function gets the instruction flag. Instruction flags are updated by the MMAU after computation of each instruction. Example:
base | MMAU peripheral address. |
void MMAU_SetInstructionFlags | ( | MMAU_Type * | base, |
uint32_t | mask | ||
) |
This function sets the instruction flags. Example:
base | MMAU peripheral address. |
mask | Mask of the instruction flags to be written |
(kMMAU_AccumOverflowInstructionFlag|kMMAU_OverflowInstructionFlag|kMMAU_DivideByZeroInstructionFlag|kMMAU_NegativeInstructionFlag).
void MMAU_ClearInstructionFlags | ( | MMAU_Type * | base, |
uint32_t | mask | ||
) |
This function clears the instruction flags. Example, if you want to clear Overflow and DivideByZero instruction flags:
base | MMAU peripheral address. |
mask | Mask of the asserted instruction flags |
(kMMAU_AccumOverflowInstructionFlag|kMMAU_OverflowInstructionFlag|kMMAU_DivideByZeroInstructionFlag|kMMAU_NegativeInstructionFlag).
|
inlinestatic |
This function gets the hardware revision level of the MMAU. It returns HDR field of the control/status register.
base | MMAU peripheral address. |
|
inlinestatic |
The ulda_d function loads A10 accumulator register of the MMAU by 64-bit unsigned value.
dval | uint64_t unsigned load value. |
|
inlinestatic |
The MMAU_d_umul_ll function multiplies two 32-bit unsigned values returning a 64-bit unsigned product.
lval1 | uint32_t unsigned value. |
lval2 | uint32_t unsigned value. |
|
inlinestatic |
The MMAU_d_umul_dl function multiplies 64-bit unsigned value with 32-bit unsigned value returning a 64-bit unsigned product.
dval | uint64_t unsigned value. |
lval | uint32_t unsigned value. |
|
inlinestatic |
The MMAU_d_umuls_dl function multiplies 64-bit unsigned value with 32-bit unsigned value returning saturated 64-bit unsigned product.
dval | uint64_t unsigned value. |
lval | uint32_t unsigned value. |
|
inlinestatic |
The MMAU_d_umula_l function multiplies 32-bit unsigned value with 64-bit unsigned value stored in the A10 register of the MMAU returning a 64-bit unsigned product.
lval | uint32_t unsigned value. |
|
inlinestatic |
The MMAU_d_umulas_l function multiplies 32-bit unsigned value with 64-bit unsigned value stored in the A10 register of the MMAU returning saturated 64-bit unsigned product.
lval | uint32_t unsigned value. |
|
inlinestatic |
The MMAU_d_umac_ll function multiplies two 32-bit unsigned values and add product with value stored in the A10 register of the MMAU returning a 64-bit unsigned A10 register value.
lval1 | uint32_t unsigned value. |
lval2 | uint32_t unsigned value. |
|
inlinestatic |
The MMAU_d_umacs_ll function multiplies two 32-bit unsigned values and add product with value stored in the A10 register of the MMAU returning saturated 64-bit unsigned A10 register value.
lval1 | uint32_t unsigned value. |
lval2 | uint32_t unsigned value. |
|
inlinestatic |
The MMAU_d_umac_dl function multiplies 64-bit unsigned value with 32-bit unsigned value and add product with value stored in the A10 register of the MMAU returning a 64-bit unsigned A10 register value.
dval | uint64_t unsigned value. |
lval | uint32_t unsigned value. |
|
inlinestatic |
The MMAU_d_umacs_dl function multiplies 64-bit unsigned value with 32-bit unsigned value and add product with value stored in the A10 register of the MMAU returning saturated 64-bit unsigned A10 register value.
dval | uint64_t unsigned value. |
lval | uint32_t unsigned value. |
|
inlinestatic |
The MMAU_d_umaca_dl function multiplies 32-bit unsigned value by value stored in the A10 register of the MMAU and add product with 64-bit unsigned value returning a 64-bit unsigned A10 register value.
dval | uint64_t unsigned value. |
lval | uint32_t unsigned value. |
|
inlinestatic |
The MMAU_d_umacas_dl function multiplies 32-bit unsigned value by value stored in the A10 register of the MMAU and add product with 64-bit unsigned value returning saturated 64-bit unsigned A10 register value.
dval | uint64_t unsigned value. |
lval | uint32_t unsigned value. |
|
inlinestatic |
The MMAU_l_udiv_ll function divides two 32-bit unsigned values returning a 32-bit unsigned quotient.
lnum | uint32_t unsigned divisor value. |
lden | uint32_t unsigned dividend value. |
|
inlinestatic |
The MMAU_d_udiv_dl function divides 64-bit unsigned value by 32-bit unsigned value returning a 64-bit unsigned quotient.
dnum | uint64_t unsigned divisor value. |
lden | uint32_t unsigned dividend value. |
|
inlinestatic |
The MMAU_d_udiv_dd function divides two 64-bit unsigned values returning a 64-bit unsigned quotient.
dnum | uint64_t unsigned divisor value. |
dden | uint64_t unsigned dividend value. |
|
inlinestatic |
The MMAU_d_udiva_l function divides 64-bit unsigned value stored in the A10 register of the MMAU by 32-bit unsigned value returning a 64-bit unsigned quotient.
lden1 | uint32_t unsigned dividend value. |
|
inlinestatic |
The MMAU_d_udiva_d function divides 64-bit unsigned value stored in the A10 register of the MMAU by 64-bit unsigned value returning a 64-bit unsigned quotient.
dden1 | uint64_t unsigned dividend value. |
|
inlinestatic |
The MMAU_l_usqr_l function computes and returns a 32-bit unsigned square root of the 32-bit unsigned radicand.
lrad | uint32_t unsigned radicand. |
|
inlinestatic |
The MMAU_l_usqr_d function computes and returns a 32-bit unsigned square root of the 64-bit unsigned radicand.
drad | uint64_t unsigned radicand. |
|
inlinestatic |
The MMAU_s_usqr_l function computes and returns a 16-bit unsigned square root of the 32-bit unsigned radicand.
lrad | uint32 unsigned radicand. |
|
inlinestatic |
The MMAU_l_usqra function computes and returns a 32-bit unsigned square root of the radicand stored in the A10 register of the MMAU.
|
inlinestatic |
The MMAU_slda_d function loads A10 accumulator register of the MMAU by 64-bit integer value.
dval | int64_t integer value. |
|
inlinestatic |
The MMAU_d_smul_ll function multiplies two 32-bit integer values returning a 64-bit integer product.
lval1 | int32_t integer value. |
lval2 | int32_t integer value. |
|
inlinestatic |
The MMAU_d_smul_dl function multiplies 64-bit integer value with 32-bit integer value returning a 64-bit integer product.
dval | int64_t integer value. |
lval | int32_t integer value. |
|
inlinestatic |
The MMAU_d_smuls_dl function multiplies 64-bit integer value with 32-bit integer value returning saturated 64-bit integer product.
dval | int64_t integer value. |
lval | int32_t integer value. |
|
inlinestatic |
The MMAU_d_smula_l function multiplies 32-bit integer value with 64-bit integer value stored in the A10 register of the MMAU returning a 64-bit integer product.
lval | int32_t integer value. |
|
inlinestatic |
The MMAU_d_smulas_l function multiplies 32-bit integer value with 64-bit integer value stored in the A10 register of the MMAU returning saturated 64-bit integer product.
lval | int32_t integer value. |
|
inlinestatic |
The MMAU_d_smac_ll function multiplies two 32-bit integer values and add product with value stored in the A10 register of the MMAU returning a 64-bit integer A10 register value.
lval1 | int32_t integer value. |
lval2 | int32_t integer value. |
|
inlinestatic |
The MMAU_d_smacs_ll function multiplies two 32-bit integer values and add product with value stored in the A10 register of the MMAU returning saturated 64-bit integer A10 register value.
lval1 | int32_t integer value. |
lval2 | int32_t integer value. |
|
inlinestatic |
The MMAU_d_smac_dl function multiplies 64-bit integer value with 32-bit integer value and add product with value stored in the A10 register of the MMAU returning a 64-bit integer A10 register value.
dval | int64_t integer value. |
lval | int32_t integer value. |
|
inlinestatic |
The MMAU_d_smacs_dl function multiplies 64-bit integer value with 32-bit integer value and add product with value stored in the A10 register of the MMAU returning saturated 64-bit integer A10 register value.
dval | int64_t integer value. |
lval | int32_t integer value. |
|
inlinestatic |
The MMAU_d_smaca_dl function multiplies 32-bit integer value by value stored in the A10 register of the MMAU and add product with 64-bit integer value returning a 64-bit integer A10 register value.
dval | int64_t integer value. |
lval | int32_t integer value. |
|
inlinestatic |
The MMAU_d_smacas_dl function multiplies 32-bit integer value by value stored in the A10 register of the MMAU and add product with 64-bit integer value returning saturated 64-bit integer A10 register value.
dval | int64_t integer value. |
lval | int32_t integer value. |
|
inlinestatic |
The MMAU_l_sdiv_ll function divides two 32-bit integer values returning a 32-bit integer quotient.
lnum | int32_t integer divisor value. |
lden | int32_t integer dividend value. |
|
inlinestatic |
The MMAU_l_sdivs_ll function divides two 32-bit integer values returning a 32-bit integer quotient.
lnum | int32_t integer divisor value. |
lden | int32_t integer dividend value. |
|
inlinestatic |
The MMAU_d_sdiv_dl function divides 64-bit integer value by 32-bit integer value returning a 64-bit integer quotient.
dnum | int64_t integer divisor value. |
lden | int32_t integer dividend value. |
|
inlinestatic |
The MMAU_d_sdivs_dl function divides 64-bit integer value by 32-bit integer value returning a 64-bit integer quotient.
dnum | int64_t integer divisor value. |
lden | int32_t integer dividend value. |
|
inlinestatic |
The MMAU_d_sdiv_dd function divides two 64-bit integer values returning a 64-bit integer quotient.
dnum | int64_t integer divisor value. |
dden | int64_t integer dividend value. |
|
inlinestatic |
The MMAU_d_sdivs_dd function divides two 64-bit integer values returning a 64-bit integer quotient.
dnum | int64_t integer divisor value. |
dden | int64_t integer dividend value. |
|
inlinestatic |
The MMAU_d_sdiva_l function divides 32-bit integer value stored in the A10 register of the MMAU by 32-bit integer value returning a 64-bit integer quotient.
lden1 | int32_t integer dividend value. |
|
inlinestatic |
The MMAU_d_sdivas_l function divides 32-bit integer value stored in the A10 register of the MMAU by 32-bit integer value returning a saturated 64-bit integer quotient.
lden1 | int32_t integer dividend value. |
|
inlinestatic |
The MMAU_d_sdiva_d function divides 64-bit integer value stored in the A10 register of the MMAU by 64-bit integer value returning a 64-bit integer quotient.
dden1 | int64_t integer dividend value. |
|
inlinestatic |
The MMAU_d_sdivas_d function divides 64-bit integer value stored in the A10 register of the MMAU by 64-bit integer value returning a saturated 64-bit integer quotient.
dden1 | int64_t integer dividend value. |
|
inlinestatic |
The MMAU_lda_d function loads A10 accumulator register of the MMAU by 64-bit fractional value.
dval | frac64_t fractional value. |
The MMAU_l_mul_ll function multiplies two 32-bit fractional values returning a 32-bit fractional product.
The MMAU_l_muls_ll function multiplies two 32-bit fractional values returning saturated 32-bit fractional product.
The MMAU_d_mul_ll function multiplies two 32-bit fractional values returning a 64-bit fractional product.
The MMAU_d_muls_ll function multiplies two 32-bit fractional values returning saturated 64-bit fractional product.
The MMAU_d_mul_dl function multiplies 64-bit fractional value with 32-bit fractional value returning a 64-bit fractional product.
The MMAU_d_muls_dl function multiplies 64-bit fractional value with 32-bit fractional value returning saturated 64-bit fractional product.
The MMAU_d_mula_l function multiplies 32-bit fractional value with 64-bit fractional value stored in the A10 register of the MMAU returning a 64-bit fractional product.
lval | frac32_t fractional value. |
The MMAU_d_mulas_l function multiplies 32-bit fractional value with 64-bit fractional value stored in the A10 register of the MMAU returning saturated 64-bit fractional product.
lval | frac32_t fractional value. |
The MMAU_l_mul_dl function multiplies 64-bit fractional value with 32-bit fractional value returning a 32-bit fractional product.
The MMAU_l_muls_dl function multiplies 64-bit fractional value with 32-bit fractional value returning saturated 32-bit fractional product.
The MMAU_l_mula_l function multiplies 32-bit fractional value with 64-bit fractional value stored in the A10 register of the MMAU returning a 32-bit fractional product.
lval | frac32_t fractional value. |
The MMAU_l_mulas_l function multiplies 32-bit fractional value with 64-bit fractional value stored in the A10 register of the MMAU returning saturated 32-bit fractional product.
lval | frac32_t fractional value. |
The MMAU_d_mac_ll function multiplies two 32-bit fractional values and add product with value stored in the A10 register of the MMAU returning a 64-bit fractional A10 register value.
The MMAU_d_macs_ll function multiplies two 32-bit fractional values and add product with value stored in the A10 register of the MMAU returning saturated 64-bit fractional A10 register value.
The MMAU_d_mac_dl function multiplies 64-bit fractional value with 32-bit fractional value and add product with value stored in the A10 register of the MMAU returning a 64-bit fractional A10 register value.
The MMAU_d_macs_dl function multiplies 64-bit fractional value with 32-bit fractional value and add product with value stored in the A10 register of the MMAU returning saturated 64-bit fractional A10 register value.
The MMAU_d_maca_dl function multiplies 32-bit fractional value by value stored in the A10 register of the MMAU and add product with 64-bit fractional value returning a 64-bit fractional A10 register value.
The MMAU_d_macas_dl function multiplies 32-bit fractional value by value stored in the A10 register of the MMAU and add product with 64-bit fractional value returning saturated 64-bit fractional A10 register value.
The MMAU_l_mac_ll function multiplies two 32-bit fractional values and add product with value stored in the A10 register of the MMAU returning a 32-bit fractional A1 register value.
The MMAU_l_macs_ll function multiplies two 32-bit fractional values and add product with value stored in the A10 register of the MMAU returning saturated 32-bit fractional A1 register value.
The MMAU_l_mac_dl function multiplies 64-bit fractional value with 32-bit fractional value and add product with value stored in the A10 register of the MMAU returning a 32-bit fractional A1 register value.
The MMAU_l_macs_dl function multiplies 64-bit fractional value with 32-bit fractional value and add product with value stored in the A10 register of the MMAU returning saturated 32-bit fractional A1 register value.
The MMAU_l_maca_dl function multiplies 32-bit fractional value by value stored in the A10 register of the MMAU and add product with 64-bit fractional value returning a 32-bit fractional A1 register value.
The MMAU_l_macas_dl function multiplies 32-bit fractional value by value stored in the A10 register of the MMAU and add product with 64-bit fractional value returning saturated 32-bit fractional A1 register value.
The MMAU_l_div_ll function divides two 32-bit fractional values returning a 32-bit fractional quotient.
The MMAU_l_divs_ll function divides two 32-bit fractional values returning a 32-bit fractional quotient.
The MMAU_l_divas_l function divides 64-bit fractional value stored in the A10 register of the MMAU by 32-bit fractional value returning a saturated 32-bit fractional quotient.
lden | frac32_t fractional dividend value. |
The MMAU_d_div_dl function divides 64-bit fractional value by 32-bit fractional value returning a 64-bit fractional quotient.
The MMAU_d_divs_dl function divides 64-bit fractional value by 32-bit fractional value returning a 64-bit fractional quotient.
The MMAU_d_diva_l function divides 32-bit fractional value stored in the A10 register of the MMAU by 32-bit fractional value returning a 64-bit fractional quotient.
lden1 | frac32_t fractional dividend value. |
The MMAU_d_divas_l function divides 32-bit fractional value stored in the A10 register of the MMAU by 32-bit fractional value returning a saturated 64-bit fractional quotient.
lden1 | frac32_t fractional dividend value. |
The MMAU_l_diva_l function divides 64-bit fractional value stored in the A10 register of the MMAU by 32-bit fractional value returning a 32-bit fractional quotient.
lden | frac32_t fractional dividend value. |
The MMAU_l_sqr_l function computes and returns a 32-bit fractional square root of the 32-bit fractional radicand.
lrad | frac32_t fractional radicand. |
The MMAU_l_sqr_d function computes and returns a 32-bit fractional square root of the 64-bit fractional radicand.
drad | frac64_t fractional radicand. |
|
inlinestatic |
The MMAU_l_sqra function computes and returns a 32-bit fractional square root of the radicand stored in the A10 register of the MMAU.