mbed library sources

Fork of mbed-src by mbed official

Committer:
mbed_official
Date:
Wed Feb 26 09:45:12 2014 +0000
Revision:
106:ced8cbb51063
Parent:
80:66393a7b209d
Synchronized with git revision 4222735eff5868389433f0e9271976b39c8115cd

Full URL: https://github.com/mbedmicro/mbed/commit/4222735eff5868389433f0e9271976b39c8115cd/

[NUCLEO_xxx] Update STM32CubeF4 driver V1.0.0 + update license

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 76:aeb1df146756 1 /**
mbed_official 76:aeb1df146756 2 ******************************************************************************
mbed_official 76:aeb1df146756 3 * @file stm32l1xx_crc.c
mbed_official 76:aeb1df146756 4 * @author MCD Application Team
mbed_official 80:66393a7b209d 5 * @version V1.3.0
mbed_official 80:66393a7b209d 6 * @date 31-January-2014
mbed_official 76:aeb1df146756 7 * @brief This file provides all the CRC firmware functions.
mbed_official 76:aeb1df146756 8 ******************************************************************************
mbed_official 76:aeb1df146756 9 * @attention
mbed_official 76:aeb1df146756 10 *
mbed_official 106:ced8cbb51063 11 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
mbed_official 76:aeb1df146756 12 *
mbed_official 106:ced8cbb51063 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 106:ced8cbb51063 14 * are permitted provided that the following conditions are met:
mbed_official 106:ced8cbb51063 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 106:ced8cbb51063 16 * this list of conditions and the following disclaimer.
mbed_official 106:ced8cbb51063 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 106:ced8cbb51063 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 106:ced8cbb51063 19 * and/or other materials provided with the distribution.
mbed_official 106:ced8cbb51063 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 106:ced8cbb51063 21 * may be used to endorse or promote products derived from this software
mbed_official 106:ced8cbb51063 22 * without specific prior written permission.
mbed_official 76:aeb1df146756 23 *
mbed_official 106:ced8cbb51063 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 106:ced8cbb51063 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 106:ced8cbb51063 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 106:ced8cbb51063 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 106:ced8cbb51063 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 106:ced8cbb51063 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 106:ced8cbb51063 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 106:ced8cbb51063 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 106:ced8cbb51063 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 106:ced8cbb51063 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 76:aeb1df146756 34 *
mbed_official 76:aeb1df146756 35 ******************************************************************************
mbed_official 76:aeb1df146756 36 */
mbed_official 76:aeb1df146756 37
mbed_official 76:aeb1df146756 38 /* Includes ------------------------------------------------------------------*/
mbed_official 76:aeb1df146756 39 #include "stm32l1xx_crc.h"
mbed_official 76:aeb1df146756 40
mbed_official 76:aeb1df146756 41 /** @addtogroup STM32L1xx_StdPeriph_Driver
mbed_official 76:aeb1df146756 42 * @{
mbed_official 76:aeb1df146756 43 */
mbed_official 76:aeb1df146756 44
mbed_official 76:aeb1df146756 45 /** @defgroup CRC
mbed_official 76:aeb1df146756 46 * @brief CRC driver modules
mbed_official 76:aeb1df146756 47 * @{
mbed_official 76:aeb1df146756 48 */
mbed_official 76:aeb1df146756 49
mbed_official 76:aeb1df146756 50 /* Private typedef -----------------------------------------------------------*/
mbed_official 76:aeb1df146756 51 /* Private define ------------------------------------------------------------*/
mbed_official 76:aeb1df146756 52 /* Private macro -------------------------------------------------------------*/
mbed_official 76:aeb1df146756 53 /* Private variables ---------------------------------------------------------*/
mbed_official 76:aeb1df146756 54 /* Private function prototypes -----------------------------------------------*/
mbed_official 76:aeb1df146756 55 /* Private functions ---------------------------------------------------------*/
mbed_official 76:aeb1df146756 56
mbed_official 76:aeb1df146756 57 /** @defgroup CRC_Private_Functions
mbed_official 76:aeb1df146756 58 * @{
mbed_official 76:aeb1df146756 59 */
mbed_official 76:aeb1df146756 60
mbed_official 76:aeb1df146756 61 /**
mbed_official 76:aeb1df146756 62 * @brief Resets the CRC Data register (DR).
mbed_official 76:aeb1df146756 63 * @param None
mbed_official 76:aeb1df146756 64 * @retval None
mbed_official 76:aeb1df146756 65 */
mbed_official 76:aeb1df146756 66 void CRC_ResetDR(void)
mbed_official 76:aeb1df146756 67 {
mbed_official 76:aeb1df146756 68 /* Reset CRC generator */
mbed_official 76:aeb1df146756 69 CRC->CR = CRC_CR_RESET;
mbed_official 76:aeb1df146756 70 }
mbed_official 76:aeb1df146756 71
mbed_official 76:aeb1df146756 72 /**
mbed_official 76:aeb1df146756 73 * @brief Computes the 32-bit CRC of a given data word(32-bit).
mbed_official 76:aeb1df146756 74 * @param Data: data word(32-bit) to compute its CRC.
mbed_official 76:aeb1df146756 75 * @retval 32-bit CRC
mbed_official 76:aeb1df146756 76 */
mbed_official 76:aeb1df146756 77 uint32_t CRC_CalcCRC(uint32_t Data)
mbed_official 76:aeb1df146756 78 {
mbed_official 76:aeb1df146756 79 CRC->DR = Data;
mbed_official 76:aeb1df146756 80
mbed_official 76:aeb1df146756 81 return (CRC->DR);
mbed_official 76:aeb1df146756 82 }
mbed_official 76:aeb1df146756 83
mbed_official 76:aeb1df146756 84 /**
mbed_official 76:aeb1df146756 85 * @brief Computes the 32-bit CRC of a given buffer of data word(32-bit).
mbed_official 76:aeb1df146756 86 * @param pBuffer: pointer to the buffer containing the data to be computed.
mbed_official 76:aeb1df146756 87 * @param BufferLength: length of the buffer to be computed
mbed_official 76:aeb1df146756 88 * @retval 32-bit CRC
mbed_official 76:aeb1df146756 89 */
mbed_official 76:aeb1df146756 90 uint32_t CRC_CalcBlockCRC(uint32_t pBuffer[], uint32_t BufferLength)
mbed_official 76:aeb1df146756 91 {
mbed_official 76:aeb1df146756 92 uint32_t index = 0;
mbed_official 76:aeb1df146756 93
mbed_official 76:aeb1df146756 94 for(index = 0; index < BufferLength; index++)
mbed_official 76:aeb1df146756 95 {
mbed_official 76:aeb1df146756 96 CRC->DR = pBuffer[index];
mbed_official 76:aeb1df146756 97 }
mbed_official 76:aeb1df146756 98 return (CRC->DR);
mbed_official 76:aeb1df146756 99 }
mbed_official 76:aeb1df146756 100
mbed_official 76:aeb1df146756 101 /**
mbed_official 76:aeb1df146756 102 * @brief Returns the current CRC value.
mbed_official 76:aeb1df146756 103 * @param None
mbed_official 76:aeb1df146756 104 * @retval 32-bit CRC
mbed_official 76:aeb1df146756 105 */
mbed_official 76:aeb1df146756 106 uint32_t CRC_GetCRC(void)
mbed_official 76:aeb1df146756 107 {
mbed_official 76:aeb1df146756 108 return (CRC->DR);
mbed_official 76:aeb1df146756 109 }
mbed_official 76:aeb1df146756 110
mbed_official 76:aeb1df146756 111 /**
mbed_official 76:aeb1df146756 112 * @brief Stores a 8-bit data in the Independent Data(ID) register.
mbed_official 76:aeb1df146756 113 * @param IDValue: 8-bit value to be stored in the ID register
mbed_official 76:aeb1df146756 114 * @retval None
mbed_official 76:aeb1df146756 115 */
mbed_official 76:aeb1df146756 116 void CRC_SetIDRegister(uint8_t IDValue)
mbed_official 76:aeb1df146756 117 {
mbed_official 76:aeb1df146756 118 CRC->IDR = IDValue;
mbed_official 76:aeb1df146756 119 }
mbed_official 76:aeb1df146756 120
mbed_official 76:aeb1df146756 121 /**
mbed_official 76:aeb1df146756 122 * @brief Returns the 8-bit data stored in the Independent Data(ID) register.
mbed_official 76:aeb1df146756 123 * @param None
mbed_official 76:aeb1df146756 124 * @retval 8-bit value of the ID register
mbed_official 76:aeb1df146756 125 */
mbed_official 76:aeb1df146756 126 uint8_t CRC_GetIDRegister(void)
mbed_official 76:aeb1df146756 127 {
mbed_official 76:aeb1df146756 128 return (CRC->IDR);
mbed_official 76:aeb1df146756 129 }
mbed_official 76:aeb1df146756 130
mbed_official 76:aeb1df146756 131 /**
mbed_official 76:aeb1df146756 132 * @}
mbed_official 76:aeb1df146756 133 */
mbed_official 76:aeb1df146756 134
mbed_official 76:aeb1df146756 135 /**
mbed_official 76:aeb1df146756 136 * @}
mbed_official 76:aeb1df146756 137 */
mbed_official 76:aeb1df146756 138
mbed_official 76:aeb1df146756 139 /**
mbed_official 76:aeb1df146756 140 * @}
mbed_official 76:aeb1df146756 141 */
mbed_official 76:aeb1df146756 142
mbed_official 76:aeb1df146756 143 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/