48 #ifndef ti_dl_dl_mathacl__include 49 #define ti_dl_dl_mathacl__include 54 #include <ti/devices/msp/msp.h> 57 #ifdef __MSPM0_HAS_MATHACL__ 72 #define DL_MATHACL_STATUS_UNDERFLOW (MATHACL_STATUS_UF_UNDERFLOW) 77 #define DL_MATHACL_STATUS_UF_MASK (MATHACL_STATUS_UF_MASK) 82 #define DL_MATHACL_STATUS_OVERFLOW (MATHACL_STATUS_OVF_OVERFLOW) 87 #define DL_MATHACL_STATUS_OVF_MASK (MATHACL_STATUS_OVF_MASK) 92 #define DL_MATHACL_STATUS_ERR_DIVBY0 (MATHACL_STATUS_ERR_DIVBY0) 97 #define DL_MATHACL_STATUS_ERR_MASK (MATHACL_STATUS_ERR_MASK) 102 #define DL_MathACL_startSinCosOperation(MATHACL, config, op) DL_MathACL_configOperation(MATHACL, config, op, 0) 107 #define DL_MathACL_startArcTan2Operation(MATHACL, config, x, y) DL_MathACL_configOperation(MATHACL, config, x, y) 112 #define DL_MathACL_startArcTanOperation(MATHACL, config, x) DL_MathACL_configOperation(MATHACL, config, x, 0) 117 #define DL_MathACL_startDivOperation(MATHACL, config, num, den) DL_MathACL_configOperation(MATHACL, config, num, den) 122 #define DL_MathACL_startSqrtOperation(MATHACL, config, sqrt) DL_MathACL_configOperation(MATHACL, config, sqrt, 0) 127 #define DL_MathACL_startMpyOperation(MATHACL, config, multicand, multiplier) DL_MathACL_configOperation(MATHACL, config, multicand, multiplier) 267 mathacl->GPRCM.PWREN =
268 MATHACL_PWREN_KEY_UNLOCK_W | MATHACL_PWREN_ENABLE_ENABLE;
278 mathacl->GPRCM.PWREN =
279 MATHACL_PWREN_KEY_UNLOCK_W | MATHACL_PWREN_ENABLE_DISABLE;
288 mathacl->GPRCM.RSTCTL =
289 MATHACL_RSTCTL_RESETASSERT_ASSERT | MATHACL_RSTCTL_KEY_UNLOCK_W;
303 return (mathacl->GPRCM.STAT & MATHACL_STAT_RESETSTKY_MASK) ==
304 MATHACL_STAT_RESETSTKY_RESET;
322 mathacl->CTL |= MATHACL_CTL_SATEN_ENABLE;
335 mathacl->CTL &= ~(MATHACL_CTL_SATEN_MASK);
350 (mathacl->CTL & MATHACL_CTL_SATEN_MASK) == MATHACL_CTL_SATEN_ENABLE);
362 MATHACL_Regs *mathacl, uint32_t op)
376 MATHACL_Regs *mathacl, uint32_t op)
390 return mathacl->RES1;
403 return mathacl->RES2;
416 return mathacl->STATUS;
430 mathacl->STATUSCLR |= MATHACL_STATUSCLR_CLR_OVF_CLR;
444 mathacl->STATUSCLR |= MATHACL_STATUSCLR_CLR_UF_CLR;
458 mathacl->STATUSCLR |= MATHACL_STATUSCLR_CLR_ERR_CLR;
469 while ((mathacl->STATUS & MATHACL_STATUS_BUSY_MASK) ==
470 MATHACL_STATUS_BUSY_NOTDONE) {
Definition: dl_mathacl.h:225
__STATIC_INLINE void DL_MathACL_clearOverflowStatus(MATHACL_Regs *mathacl)
Clear the overflow status bit.
Definition: dl_mathacl.h:428
Definition: dl_mathacl.h:158
Definition: dl_mathacl.h:215
uint32_t scaleFactor
Definition: dl_mathacl.h:255
Definition: dl_mathacl.h:203
Definition: dl_mathacl.h:227
__STATIC_INLINE void DL_MathACL_setOperandTwo(MATHACL_Regs *mathacl, uint32_t op)
Load Operand two into the math accelerator.
Definition: dl_mathacl.h:375
Definition: dl_mathacl.h:151
Definition: dl_mathacl.h:185
__STATIC_INLINE bool DL_MathACL_isSaturationEnabled(MATHACL_Regs *mathacl)
Returns if saturation is enabled.
Definition: dl_mathacl.h:347
__STATIC_INLINE void DL_MathACL_clearUnderflowStatus(MATHACL_Regs *mathacl)
Clear the underflow status bit.
Definition: dl_mathacl.h:442
Definition: dl_mathacl.h:171
__STATIC_INLINE uint32_t DL_MathACL_getResultTwo(MATHACL_Regs *mathacl)
Returns MATHACL result two register.
Definition: dl_mathacl.h:401
Definition: dl_mathacl.h:237
Definition: dl_mathacl.h:140
Definition: dl_mathacl.h:181
Definition: dl_mathacl.h:239
__STATIC_INLINE void DL_MathACL_disablePower(MATHACL_Regs *mathacl)
Disable power on MATHACL module.
Definition: dl_mathacl.h:276
Definition: dl_mathacl.h:205
Definition: dl_mathacl.h:213
Definition: dl_mathacl.h:153
__STATIC_INLINE void DL_MathACL_disableSaturation(MATHACL_Regs *mathacl)
Disable saturation.
Definition: dl_mathacl.h:333
Definition: dl_mathacl.h:142
Definition: dl_mathacl.h:177
Definition: dl_mathacl.h:201
DL_MATHACL_Q_TYPE qType
Definition: dl_mathacl.h:257
Definition: dl_mathacl.h:221
__STATIC_INLINE uint32_t DL_MathACL_getStatus(MATHACL_Regs *mathacl)
Returns MATHACL operation status.
Definition: dl_mathacl.h:414
Definition: dl_mathacl.h:195
__STATIC_INLINE void DL_MathACL_reset(MATHACL_Regs *mathacl)
Resets the MATHACL module.
Definition: dl_mathacl.h:286
Definition: dl_mathacl.h:175
Definition: dl_mathacl.h:173
Definition: dl_mathacl.h:183
Definition: dl_mathacl.h:189
Definition: dl_mathacl.h:149
__STATIC_INLINE void DL_MathACL_enablePower(MATHACL_Regs *mathacl)
Enables power on MATHACL module.
Definition: dl_mathacl.h:265
__STATIC_INLINE void DL_MathACL_waitForOperation(MATHACL_Regs *mathacl)
Block until MATHACL_STATUS_BUSY_DONE is active in MATHACL.
Definition: dl_mathacl.h:467
Definition: dl_mathacl.h:191
DL_MATHACL_OPSIGN
Definition: dl_mathacl.h:235
__STATIC_INLINE void DL_MathACL_clearResultTwo(MATHACL_Regs *mathacl)
Clears the RES2 register.
Definition: dl_mathacl.h:513
__STATIC_INLINE bool DL_MathACL_isReset(MATHACL_Regs *mathacl)
Returns if MATHACL peripheral was reset.
Definition: dl_mathacl.h:301
DL_MATHACL_OP_TYPE
Definition: dl_mathacl.h:134
Definition: dl_mathacl.h:193
__STATIC_INLINE uint32_t DL_MathACL_getResultOne(MATHACL_Regs *mathacl)
Returns MATHACL result one register.
Definition: dl_mathacl.h:388
Definition: dl_mathacl.h:163
__STATIC_INLINE void DL_MathACL_clearResults(MATHACL_Regs *mathacl)
Clears the RES1 and RES2 registers.
Definition: dl_mathacl.h:526
Definition: dl_mathacl.h:187
Definition: dl_mathacl.h:219
Definition: dl_mathacl.h:179
Definition: dl_mathacl.h:197
Definition: dl_mathacl.h:207
DL_MATHACL_Q_TYPE
Definition: dl_mathacl.h:167
Configuration struct for DL_MathACL_configOperation.
Definition: dl_mathacl.h:245
Definition: dl_mathacl.h:199
Definition: dl_mathacl.h:231
__STATIC_INLINE void DL_MathACL_clearErrorStatus(MATHACL_Regs *mathacl)
Clear the error status bit.
Definition: dl_mathacl.h:456
Definition: dl_mathacl.h:209
__STATIC_INLINE void DL_MathACL_enableSaturation(MATHACL_Regs *mathacl)
Enable saturation.
Definition: dl_mathacl.h:320
Definition: dl_mathacl.h:138
Definition: dl_mathacl.h:169
__STATIC_INLINE void DL_MathACL_setOperandOne(MATHACL_Regs *mathacl, uint32_t op)
Load Operand one into the math accelerator.
Definition: dl_mathacl.h:361
__STATIC_INLINE void DL_MathACL_clearResultOne(MATHACL_Regs *mathacl)
Clears the RES1 register.
Definition: dl_mathacl.h:500
Definition: dl_mathacl.h:217
Definition: dl_mathacl.h:211
void DL_MathACL_configOperation(MATHACL_Regs *mathacl, const DL_MathACL_operationConfig *opConfig, uint32_t op1, uint32_t op2)
Configure and execute a Math accelerator operation.
Definition: dl_mathacl.h:136
uint32_t iterations
Definition: dl_mathacl.h:252
Definition: dl_mathacl.h:223
Definition: dl_mathacl.h:229
Definition: dl_mathacl.h:144
DL_MATHACL_OPSIGN opSign
Definition: dl_mathacl.h:249
DL_MATHACL_OP_TYPE opType
Definition: dl_mathacl.h:247