]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - msp430-bsl/msp430-bsl.git/blobdiff - source/driverlib/MSP430F5xx_6xx/deprecated/mpy32.h
MSP-BSL v3.0
[msp430-bsl/msp430-bsl.git] / source / driverlib / MSP430F5xx_6xx / deprecated / mpy32.h
diff --git a/source/driverlib/MSP430F5xx_6xx/deprecated/mpy32.h b/source/driverlib/MSP430F5xx_6xx/deprecated/mpy32.h
new file mode 100644 (file)
index 0000000..cab9b8e
--- /dev/null
@@ -0,0 +1,216 @@
+/* --COPYRIGHT--,BSD\r
+ * Copyright (c) 2014, Texas Instruments Incorporated\r
+ * All rights reserved.\r
+ *\r
+ * Redistribution and use in source and binary forms, with or without\r
+ * modification, are permitted provided that the following conditions\r
+ * are met:\r
+ *\r
+ * *  Redistributions of source code must retain the above copyright\r
+ *    notice, this list of conditions and the following disclaimer.\r
+ *\r
+ * *  Redistributions in binary form must reproduce the above copyright\r
+ *    notice, this list of conditions and the following disclaimer in the\r
+ *    documentation and/or other materials provided with the distribution.\r
+ *\r
+ * *  Neither the name of Texas Instruments Incorporated nor the names of\r
+ *    its contributors may be used to endorse or promote products derived\r
+ *    from this software without specific prior written permission.\r
+ *\r
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"\r
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\r
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\r
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR\r
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\r
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\r
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;\r
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\r
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\r
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
+ * --/COPYRIGHT--*/\r
+//*****************************************************************************\r
+//\r
+// mpy32.h - Driver for the MPY32 Module.\r
+//\r
+//*****************************************************************************\r
+\r
+#ifndef __MSP430WARE_MPY32_H__\r
+#define __MSP430WARE_MPY32_H__\r
+\r
+#include "inc/hw_memmap.h"\r
+\r
+#ifdef __MSP430_HAS_MPY32__\r
+\r
+//*****************************************************************************\r
+//\r
+// If building with a C++ compiler, make all of the definitions in this header\r
+// have a C binding.\r
+//\r
+//*****************************************************************************\r
+#ifdef __cplusplus\r
+extern "C"\r
+{\r
+#endif\r
+\r
+//******************************************************************************\r
+//\r
+// The following is a struct that can be returned by MPY32_getResult64Bit()\r
+//\r
+//******************************************************************************\r
+typedef struct {\r
+    uint16_t RES0;\r
+    uint16_t RES1;\r
+    uint16_t RES2;\r
+    uint16_t RES3;\r
+} uint64;\r
+\r
+//*****************************************************************************\r
+//\r
+// The following are values that can be passed to the writeDelaySelect\r
+// parameter for functions: MPY32_setWriteDelay().\r
+//\r
+//*****************************************************************************\r
+#define MPY32_WRITEDELAY_OFF                        (!(MPYDLY32 + MPYDLYWRTEN))\r
+#define MPY32_WRITEDELAY_32BIT                                    (MPYDLYWRTEN)\r
+#define MPY32_WRITEDELAY_64BIT                         (MPYDLY32 + MPYDLYWRTEN)\r
+\r
+//*****************************************************************************\r
+//\r
+// The following are values that can be passed to the multiplicationType\r
+// parameter for functions: MPY32_setOperandOne8Bit(),\r
+// MPY32_setOperandOne16Bit(), MPY32_setOperandOne24Bit(), and\r
+// MPY32_setOperandOne32Bit().\r
+//\r
+//*****************************************************************************\r
+#define MPY32_MULTIPLY_UNSIGNED                                          (0x00)\r
+#define MPY32_MULTIPLY_SIGNED                                            (0x02)\r
+#define MPY32_MULTIPLYACCUMULATE_UNSIGNED                                (0x04)\r
+#define MPY32_MULTIPLYACCUMULATE_SIGNED                                  (0x06)\r
+\r
+//*****************************************************************************\r
+//\r
+// The following are values that can be passed toThe following are values that\r
+// can be returned by the MPY32_getSaturationMode() function.\r
+//\r
+//*****************************************************************************\r
+#define MPY32_SATURATION_MODE_DISABLED                                     0x00\r
+#define MPY32_SATURATION_MODE_ENABLED                                    MPYSAT\r
+\r
+//*****************************************************************************\r
+//\r
+// The following are values that can be passed toThe following are values that\r
+// can be returned by the MPY32_getFractionalMode() function.\r
+//\r
+//*****************************************************************************\r
+#define MPY32_FRACTIONAL_MODE_DISABLED                                     0x00\r
+#define MPY32_FRACTIONAL_MODE_ENABLED                                   MPYFRAC\r
+\r
+//*****************************************************************************\r
+//\r
+// Prototypes for the APIs.\r
+//\r
+//*****************************************************************************\r
+extern void MPY32_setWriteDelay(uint16_t baseAddress,\r
+                                uint16_t writeDelaySelect);\r
+\r
+extern void MPY32_enableSaturationMode(uint16_t baseAddress);\r
+\r
+extern void MPY32_disableSaturationMode(uint16_t baseAddress);\r
+\r
+extern uint8_t MPY32_getSaturationMode(uint16_t baseAddress);\r
+\r
+extern void MPY32_enableFractionalMode(uint16_t baseAddress);\r
+\r
+extern void MPY32_disableFractionalMode(uint16_t baseAddress);\r
+\r
+extern uint8_t MPY32_getFractionalMode(uint16_t baseAddress);\r
+\r
+extern void MPY32_setOperandOne8Bit(uint16_t baseAddress,\r
+                                    uint8_t multiplicationType,\r
+                                    uint8_t operand);\r
+\r
+extern void MPY32_setOperandOne16Bit(uint16_t baseAddress,\r
+                                     uint8_t multiplicationType,\r
+                                     uint16_t operand);\r
+\r
+extern void MPY32_setOperandOne24Bit(uint16_t baseAddress,\r
+                                     uint8_t multiplicationType,\r
+                                     uint32_t operand);\r
+\r
+extern void MPY32_setOperandOne32Bit(uint16_t baseAddress,\r
+                                     uint8_t multiplicationType,\r
+                                     uint32_t operand);\r
+\r
+extern void MPY32_setOperandTwo8Bit(uint16_t baseAddress,\r
+                                    uint8_t operand);\r
+\r
+extern void MPY32_setOperandTwo16Bit(uint16_t baseAddress,\r
+                                     uint16_t operand);\r
+\r
+extern void MPY32_setOperandTwo24Bit(uint16_t baseAddress,\r
+                                     uint32_t operand);\r
+\r
+extern void MPY32_setOperandTwo32Bit(uint16_t baseAddress,\r
+                                     uint32_t operand);\r
+\r
+extern uint8_t MPY32_getResult8Bit(uint16_t baseAddress);\r
+\r
+extern uint16_t MPY32_getResult16Bit(uint16_t baseAddress);\r
+\r
+extern uint32_t MPY32_getResult24Bit(uint16_t baseAddress);\r
+\r
+extern uint32_t MPY32_getResult32Bit(uint16_t baseAddress);\r
+\r
+extern uint64 MPY32_getResult64Bit(uint16_t baseAddress);\r
+\r
+extern uint64_t MPY32_getResult(uint16_t baseAddress);\r
+\r
+extern uint16_t MPY32_getSumExtension(uint16_t baseAddress);\r
+\r
+extern uint16_t MPY32_getCarryBitValue(uint16_t baseAddress);\r
+\r
+extern void MPY32_clearCarryBitValue(uint16_t baseAddress);\r
+\r
+extern void MPY32_preloadResult(uint16_t baseAddress,\r
+                                uint64_t result);\r
+\r
+//*****************************************************************************\r
+//\r
+// The following are deprecated APIs.\r
+//\r
+//*****************************************************************************\r
+#define MPY32_setFractionMode                        MPY32_enableFractionalMode\r
+\r
+//*****************************************************************************\r
+//\r
+// The following are deprecated APIs.\r
+//\r
+//*****************************************************************************\r
+#define MPY32_resetFractionMode                     MPY32_disableFractionalMode\r
+\r
+//*****************************************************************************\r
+//\r
+// The following are deprecated APIs.\r
+//\r
+//*****************************************************************************\r
+#define MPY32_setSaturationMode                      MPY32_enableSaturationMode\r
+\r
+//*****************************************************************************\r
+//\r
+// The following are deprecated APIs.\r
+//\r
+//*****************************************************************************\r
+#define MPY32_resetSaturationMode                   MPY32_disableSaturationMode\r
+\r
+//*****************************************************************************\r
+//\r
+// Mark the end of the C bindings section for C++ compilers.\r
+//\r
+//*****************************************************************************\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif\r
+#endif // __MSP430WARE_MPY32_H__\r