diff --git a/drivers/MbedCRC.cpp b/drivers/MbedCRC.cpp new file mode 100644 index 0000000000..317cc8a78c --- /dev/null +++ b/drivers/MbedCRC.cpp @@ -0,0 +1,115 @@ +/* mbed Microcontroller Library + * Copyright (c) 2018 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include "drivers/TableCRC.h" +#include "drivers/MbedCRC.h" + +namespace mbed { +/** \addtogroup drivers */ +/** @{*/ + +/* Default values for different types of polynomials +*/ +template +MbedCRC::MbedCRC(uint32_t initial_xor, uint32_t final_xor, bool reflect_data, bool reflect_remainder): + _initial_value(initial_xor), _final_xor(final_xor), _reflect_data(reflect_data), _reflect_remainder(reflect_remainder), _crc_table(NULL) +{ + mbed_crc_ctor(); +} + +template<> +MbedCRC::MbedCRC(uint32_t initial_xor, uint32_t final_xor, bool reflect_data, bool reflect_remainder): + _initial_value(initial_xor), _final_xor(final_xor), _reflect_data(reflect_data), _reflect_remainder(reflect_remainder), + _crc_table((uint32_t *)Table_CRC_32bit_ANSI) +{ + mbed_crc_ctor(); +} + +template<> +MbedCRC::MbedCRC(uint32_t initial_xor, uint32_t final_xor, bool reflect_data, bool reflect_remainder): + _initial_value(initial_xor), _final_xor(final_xor), _reflect_data(reflect_data), _reflect_remainder(reflect_remainder), + _crc_table((uint32_t *)Table_CRC_8bit_CCITT) +{ + mbed_crc_ctor(); +} + +template<> +MbedCRC::MbedCRC(uint32_t initial_xor, uint32_t final_xor, bool reflect_data, bool reflect_remainder): + _initial_value(initial_xor), _final_xor(final_xor), _reflect_data(reflect_data), _reflect_remainder(reflect_remainder), + _crc_table((uint32_t *)Table_CRC_7Bit_SD) +{ + mbed_crc_ctor(); +} + +template<> +MbedCRC::MbedCRC(uint32_t initial_xor, uint32_t final_xor, bool reflect_data, bool reflect_remainder): + _initial_value(initial_xor), _final_xor(final_xor), _reflect_data(reflect_data), _reflect_remainder(reflect_remainder), + _crc_table((uint32_t *)Table_CRC_16bit_CCITT) +{ +} + +template<> +MbedCRC::MbedCRC(uint32_t initial_xor, uint32_t final_xor, bool reflect_data, bool reflect_remainder): + _initial_value(initial_xor), _final_xor(final_xor), _reflect_data(reflect_data), _reflect_remainder(reflect_remainder), + _crc_table((uint32_t *)Table_CRC_16bit_IBM) +{ + mbed_crc_ctor(); +} + +template<> +MbedCRC::MbedCRC(): + _initial_value(~(0x0)), _final_xor(~(0x0)), _reflect_data(true), _reflect_remainder(true), + _crc_table((uint32_t *)Table_CRC_32bit_ANSI) +{ + mbed_crc_ctor(); +} + +template<> +MbedCRC::MbedCRC(): + _initial_value(0), _final_xor(0), _reflect_data(true), _reflect_remainder(true), + _crc_table((uint32_t *)Table_CRC_16bit_IBM) +{ + mbed_crc_ctor(); +} + +template<> +MbedCRC::MbedCRC(): + _initial_value(~(0x0)), _final_xor(0), _reflect_data(false), _reflect_remainder(false), + _crc_table((uint32_t *)Table_CRC_16bit_CCITT) +{ + mbed_crc_ctor(); +} + +template<> +MbedCRC::MbedCRC(): + _initial_value(0), _final_xor(0), _reflect_data(false), _reflect_remainder(false), + _crc_table((uint32_t *)Table_CRC_7Bit_SD) +{ + mbed_crc_ctor(); +} + +template<> +MbedCRC::MbedCRC(): + _initial_value(0), _final_xor(0), _reflect_data(false), _reflect_remainder(false), + _crc_table((uint32_t *)Table_CRC_8bit_CCITT) +{ + mbed_crc_ctor(); +} + +/** @}*/ +} // namespace mbed + diff --git a/drivers/MbedCRC.h b/drivers/MbedCRC.h index c63d03e520..cd9e873afa 100644 --- a/drivers/MbedCRC.h +++ b/drivers/MbedCRC.h @@ -404,94 +404,6 @@ private: } }; -/* Default values for different types of polynomials -*/ -template -MbedCRC::MbedCRC(uint32_t initial_xor, uint32_t final_xor, bool reflect_data, bool reflect_remainder): - _initial_value(initial_xor), _final_xor(final_xor), _reflect_data(reflect_data), _reflect_remainder(reflect_remainder), _crc_table(NULL) -{ - mbed_crc_ctor(); -} - -template<> -MbedCRC::MbedCRC(uint32_t initial_xor, uint32_t final_xor, bool reflect_data, bool reflect_remainder): - _initial_value(initial_xor), _final_xor(final_xor), _reflect_data(reflect_data), _reflect_remainder(reflect_remainder), - _crc_table((uint32_t *)Table_CRC_32bit_ANSI) -{ - mbed_crc_ctor(); -} - -template<> -MbedCRC::MbedCRC(uint32_t initial_xor, uint32_t final_xor, bool reflect_data, bool reflect_remainder): - _initial_value(initial_xor), _final_xor(final_xor), _reflect_data(reflect_data), _reflect_remainder(reflect_remainder), - _crc_table((uint32_t *)Table_CRC_8bit_CCITT) -{ - mbed_crc_ctor(); -} - -template<> -MbedCRC::MbedCRC(uint32_t initial_xor, uint32_t final_xor, bool reflect_data, bool reflect_remainder): - _initial_value(initial_xor), _final_xor(final_xor), _reflect_data(reflect_data), _reflect_remainder(reflect_remainder), - _crc_table((uint32_t *)Table_CRC_7Bit_SD) -{ - mbed_crc_ctor(); -} - -template<> -MbedCRC::MbedCRC(uint32_t initial_xor, uint32_t final_xor, bool reflect_data, bool reflect_remainder): - _initial_value(initial_xor), _final_xor(final_xor), _reflect_data(reflect_data), _reflect_remainder(reflect_remainder), - _crc_table((uint32_t *)Table_CRC_16bit_CCITT) -{ -} - -template<> -MbedCRC::MbedCRC(uint32_t initial_xor, uint32_t final_xor, bool reflect_data, bool reflect_remainder): - _initial_value(initial_xor), _final_xor(final_xor), _reflect_data(reflect_data), _reflect_remainder(reflect_remainder), - _crc_table((uint32_t *)Table_CRC_16bit_IBM) -{ - mbed_crc_ctor(); -} - -template<> -MbedCRC::MbedCRC(): - _initial_value(~(0x0)), _final_xor(~(0x0)), _reflect_data(true), _reflect_remainder(true), - _crc_table((uint32_t *)Table_CRC_32bit_ANSI) -{ - mbed_crc_ctor(); -} - -template<> -MbedCRC::MbedCRC(): - _initial_value(0), _final_xor(0), _reflect_data(true), _reflect_remainder(true), - _crc_table((uint32_t *)Table_CRC_16bit_IBM) -{ - mbed_crc_ctor(); -} - -template<> -MbedCRC::MbedCRC(): - _initial_value(~(0x0)), _final_xor(0), _reflect_data(false), _reflect_remainder(false), - _crc_table((uint32_t *)Table_CRC_16bit_CCITT) -{ - mbed_crc_ctor(); -} - -template<> -MbedCRC::MbedCRC(): - _initial_value(0), _final_xor(0), _reflect_data(false), _reflect_remainder(false), - _crc_table((uint32_t *)Table_CRC_7Bit_SD) -{ - mbed_crc_ctor(); -} - -template<> -MbedCRC::MbedCRC(): - _initial_value(0), _final_xor(0), _reflect_data(false), _reflect_remainder(false), - _crc_table((uint32_t *)Table_CRC_8bit_CCITT) -{ - mbed_crc_ctor(); -} - #if defined ( __CC_ARM ) #elif defined ( __GNUC__ ) #pragma GCC diagnostic pop diff --git a/mbed.h b/mbed.h index f36010464e..dec1d6f692 100644 --- a/mbed.h +++ b/mbed.h @@ -70,7 +70,7 @@ #include "drivers/RawSerial.h" #include "drivers/UARTSerial.h" #include "drivers/FlashIAP.h" -#include "drivers/TableCRC.h" +#include "drivers/MbedCRC.h" // mbed Internal components #include "drivers/Timer.h"