MCUXpresso SDK API Reference Manual  Rev. 0
NXP Semiconductors
 All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages

Enumerations

enum  casper_operation_t { ,
  kCASPER_OpMul6464Sum,
  kCASPER_OpMul6464FullSum,
  kCASPER_OpMul6464Reduce,
  kCASPER_OpAdd64 = 0x08,
  kCASPER_OpSub64 = 0x09,
  kCASPER_OpDouble64 = 0x0A,
  kCASPER_OpXor64 = 0x0B,
  kCASPER_OpRSub64 = 0x0C,
  kCASPER_OpShiftLeft32,
  kCASPER_OpShiftRight32 = 0x11,
  kCASPER_OpCopy = 0x14,
  kCASPER_OpRemask = 0x15,
  kCASPER_OpFill = 0x16,
  kCASPER_OpZero = 0x17,
  kCASPER_OpCompare = 0x18,
  kCASPER_OpCompareFast = 0x19
}
 CASPER operation. More...
 

Functions

void CASPER_Init (CASPER_Type *base)
 Enables clock and disables reset for CASPER peripheral. More...
 
void CASPER_Deinit (CASPER_Type *base)
 Disables clock for CASPER peripheral. More...
 

Driver version

#define FSL_CASPER_DRIVER_VERSION   (MAKE_VERSION(2, 0, 9))
 CASPER driver version. More...
 

Detailed Description

Macro Definition Documentation

#define FSL_CASPER_DRIVER_VERSION   (MAKE_VERSION(2, 0, 9))

Version 2.0.9.

Current version: 2.0.9

Change log:

  • Version 2.0.0
    • Initial version
  • Version 2.0.1
    • Bug fix KPSDK-24531 double_scalar_multiplication() result may be all zeroes for some specific input
  • Version 2.0.2
    • Bug fix KPSDK-25015 CASPER_MEMCPY hard-fault on LPC55xx when both source and destination buffers are outside of CASPER_RAM
  • Version 2.0.3
    • Bug fix KPSDK-28107 RSUB, FILL and ZERO operations not implemented in enum _casper_operation.
  • Version 2.0.4
    • For GCC compiler, enforce O1 optimize level, specifically to remove strict-aliasing option. This driver is very specific and requires -fno-strict-aliasing.
  • Version 2.0.5
    • Fix sign-compare warning.
  • Version 2.0.6
    • Fix IAR Pa082 warning.
  • Version 2.0.7
    • Fix MISRA-C 2012 issue.
  • Version 2.0.8
    • Add feature macro for CASPER_RAM_OFFSET.
  • Version 2.0.9
    • Remove unused function Jac_oncurve().
    • Fix ECC384 build.

Enumeration Type Documentation

Enumerator
kCASPER_OpMul6464Sum 

Walking 1 or more of J loop, doing r=a*b using 64x64=128.

kCASPER_OpMul6464FullSum 

Walking 1 or more of J loop, doing c,r=r+a*b using 64x64=128, but assume inner j loop.

kCASPER_OpMul6464Reduce 

Walking 1 or more of J loop, doing c,r=r+a*b using 64x64=128, but sum all of w.

kCASPER_OpAdd64 

Walking 1 or more of J loop, doing c,r[-1]=r+a*b using 64x64=128, but skip 1st write.

kCASPER_OpSub64 

Walking add with off_AB, and in/out off_RES doing c,r=r+a+c using 64+64=65.

kCASPER_OpDouble64 

Walking subtract with off_AB, and in/out off_RES doing r=r-a using 64-64=64, with last borrow implicit if any.

kCASPER_OpXor64 

Walking add to self with off_RES doing c,r=r+r+c using 64+64=65.

kCASPER_OpRSub64 

Walking XOR with off_AB, and in/out off_RES doing r=r^a using 64^64=64.

kCASPER_OpShiftLeft32 

Walking subtract with off_AB, and in/out off_RES using r=a-r.

kCASPER_OpShiftRight32 

Walking shift left doing r1,r=(b*D)|r1, where D is 2^amt and is loaded by app (off_CD not used)

kCASPER_OpCopy 

Walking shift right doing r,r1=(b*D)|r1, where D is 2^(32-amt) and is loaded by app (off_CD not used) and off_RES starts at MSW.

kCASPER_OpRemask 

Copy from ABoff to resoff, 64b at a time.

kCASPER_OpFill 

Copy and mask from ABoff to resoff, 64b at a time.

kCASPER_OpZero 

Fill RESOFF using 64 bits at a time with value in A and B.

kCASPER_OpCompare 

Fill RESOFF using 64 bits at a time of 0s.

kCASPER_OpCompareFast 

Compare two arrays, running all the way to the end.

Function Documentation

void CASPER_Init ( CASPER_Type *  base)

Enable clock and disable reset for CASPER.

Parameters
baseCASPER base address
void CASPER_Deinit ( CASPER_Type *  base)

Disable clock and enable reset.

Parameters
baseCASPER base address