/* * Copyright (C) 2023 Texas Instruments Incorporated * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the * distribution. * * Neither the name of Texas Instruments Incorporated nor the names of * its contributors may be used to endorse or promote products derived * from this software without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS * "AS IS" AND ANY EXPgResS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #ifndef _DCL_C28_COMPATIBILITY_H_ #define _DCL_C28_COMPATIBILITY_H_ //! \file dcl_c28_compatibility.h //! \brief C28 compatibility macro //! Contains backward compatbility mapping to C28 DCL's naming scheme //! //! Note: //! CLA functions are not compatible, nonetheless its //! direct equivalent are listed in comments //! ASM functions will be alias into inline C code #ifdef __cplusplus extern "C" { #endif //***************************************************************************** // PI //***************************************************************************** #define DCL_runPI_C1 DCL_runPISeries #define DCL_runPI_C2 DCL_runPISeries #define DCL_runPI_C3 DCL_runPIParallel #define DCL_runPI_C4 DCL_runPIParallel #define DCL_runPI_C5 DCL_runPIParallelEnhanced #define DCL_runPI_C6 DCL_runPISeriesTustin #define DCL_runPI_C7 DCL_runPISeriesTustin /* // C28 CLA Functions #define DCL_runPI_L1 DCL_runPISeries #define DCL_runPI_L2 DCL_runPIParallel #define DCL_runPI_L3 DCL_runPISeries #define DCL_runPI_L4 DCL_runPIParallel #define DCL_runPI_L5 DCL_runPISeriesTustin */ //***************************************************************************** // PI2 //***************************************************************************** #define DCL_runPI2_C1 DCL_runPI2Series #define DCL_runPI2_C2 DCL_runPI2Series //***************************************************************************** // PID //***************************************************************************** #define DCL_runPID_C1 DCL_runPIDSeries #define DCL_runPID_C2 DCL_runPIDSeries #define DCL_runPID_C3 DCL_runPIDParallel #define DCL_runPID_C4 DCL_runPIDParallel /* // C28 CLA Functions #define DCL_runPID_L1 DCL_runPIDSeries #define DCL_runPID_L2 DCL_runPIDParallel #define DCL_runPID_L3 DCL_runPIDSeries #define DCL_runPID_L4 DCL_runPIDParallel */ //***************************************************************************** // DF11 //***************************************************************************** #define DCL_runDF11_C1 DCL_runDF11 #define DCL_runDF11_C2 DCL_runDF11 /* // C28 CLA Functions #define DCL_runDF11_L1 DCL_runDF11 */ //***************************************************************************** // DF13 //***************************************************************************** #define DCL_runDF13_C1 DCL_runDF13 #define DCL_runDF13_C2 DCL_runDF13PartialCompute #define DCL_runDF13_C3 DCL_runDF13PartialUpdate #define DCL_runDF13_C4 DCL_runDF13 #define DCL_runDF13_C5 DCL_runDF13PartialCompute #define DCL_runDF13_C6 DCL_runDF13PartialUpdate /* // C28 CLA Functions #define DCL_runDF13_L1 DCL_runDF13 #define DCL_runDF13_L2 DCL_runDF13PartialCompute #define DCL_runDF13_L3 DCL_runDF13PartialUpdate #define DCL_runDF13_L4 DCL_runDF13 #define DCL_runDF13_L5 DCL_runDF13PartialCompute #define DCL_runDF13_L6 DCL_runDF13PartialUpdate */ //***************************************************************************** // DF22 //***************************************************************************** #define DCL_runDF22_C1 DCL_runDF22 #define DCL_runDF22_C2 DCL_runDF22PartialCompute #define DCL_runDF22_C3 DCL_runDF22PartialUpdate #define DCL_runDF22_C4 DCL_runDF22 #define DCL_runDF22_C5 DCL_runDF22PartialCompute #define DCL_runDF22_C6 DCL_runDF22PartialUpdate /* // C28 CLA Functions #define DCL_runDF22_L1 DCL_runDF22 #define DCL_runDF22_L2 DCL_runDF22PartialCompute #define DCL_runDF22_L3 DCL_runDF22PartialUpdate #define DCL_runDF22_L4 DCL_runDF22 */ //***************************************************************************** // DF23 //***************************************************************************** #define DCL_runDF23_C1 DCL_runDF23 #define DCL_runDF23_C2 DCL_runDF23PartialCompute #define DCL_runDF23_C3 DCL_runDF23PartialUpdate #define DCL_runDF23_C4 DCL_runDF23 #define DCL_runDF23_C5 DCL_runDF23PartialCompute #define DCL_runDF23_C6 DCL_runDF23PartialUpdate /* // C28 CLA Functions #define DCL_runDF23_L1 DCL_runDF23 #define DCL_runDF23_L2 DCL_runDF23PartialCompute #define DCL_runDF23_L3 DCL_runDF23PartialUpdate */ //***************************************************************************** // Clamp //***************************************************************************** #define DCL_runClamp_C1 DCL_runClamp #define DCL_runClamp_C2 DCL_runClamp #define DCL_runClamp_S1 DCL_runClampF64 /* // C28 CLA Functions #define DCL_runClamp_L1 DCL_runClamp */ //***************************************************************************** // Macro Functions //***************************************************************************** #define F32_IS_VALUE DCL_isValue #define F64_IS_VALUE DCL_isValue64 #define F32_IS_ZERO DCL_isZero #define F64_IS_ZERO DCL_isZero64 #define DCL_randf DCL_rand #define DCL_randf64 DCL_rand64 #define DCL_C2_LIMIT_32 DCL_c2Limit #define DCL_C2_LIMIT_64 DCL_c2Limit64 #define DCL_BREAK_POINT DCL_setBreakPoint #define DCL_DISABLE_INTS DCL_disableInts #define DCL_RESTORE_INTS DCL_restoreInts #define DCL_SET_CONTROLLER_PERIOD DCL_setControllerPeriod #define DCL_SET_SAMPLE_RATE DCL_setControllerPeriod #define DCL_REQUEST_UPDATE DCL_setPendingStatus #define DCL_CLEAR_UPDATE_REQUEST DCL_clearPendingStatus #define DCL_UPDATE_WAITING DCL_getPendingStatus #define DCL_CONTROLLER_BEGIN DCL_setControllerStatus #define DCL_CONTROLLER_END DCL_clearControllerStatus #define DCL_CONTROLLER_IN_PROGRESS DCL_getControllerStatus #define DCL_SET_ERROR DCL_setError #define DCL_CLEAR_ERROR_CODE DCL_clearError #define DCL_RUN_ERROR_HANDLER DCL_runErrorHandler #define DCL_GET_ERROR_LOC DCL_getErrorInfo //***************************************************************************** // Macro Constants //***************************************************************************** #define CONST_PI_32 CONST_PI #define CONST_2PI_32 CONST_2PI #define CONST_PI_64 CONST_PI_F64 #define CONST_2PI_64 CONST_2PI_F64 #define DCL_DEFAULT_T_F32 DCL_DEFAULT_PERIOD_S #define DCL_DEFAULT_T_F64 DCL_DEFAULT_PERIODF64_S #define DEFAULT_FPU32_TOL DCL_FPU32_TOL #define DEFAULT_FPU64_TOL DCL_FPU64_TOL #define NULL_ADDR NULL //***************************************************************************** // FDLOG //***************************************************************************** #define FDLOG DCL_FDLOG #define DCL_createLog DCL_initLog #define FDLOG_SPACE DCL_getLogRemain #define FDLOG_SIZE DCL_getLogSize #define FDLOG_ELEMENT DCL_getLogIndex #define FDLOG_DEFAULTS {0,0,0} #define FDLOG_DEFAULT_SIZE 0x0400 //***************************************************************************** // PID64 - 64 bit //***************************************************************************** #define DCL_runPIDF64_S1 DCL_runPIDF64Series #ifdef __cplusplus } #endif // extern "C" #endif // _DCL_C28_COMPATIBILITY_H_