mbed SDK library sources

Fork of mbed-src by mbed official

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Tue Jan 07 11:00:05 2014 +0000
Revision:
70:c1fbde68b492
Parent:
52:a51c77007319
Child:
84:f54042cbc282
Synchronized with git revision 3f438a307904431f2782db3c8fa49946b9fc1d85

Full URL: https://github.com/mbedmicro/mbed/commit/3f438a307904431f2782db3c8fa49946b9fc1d85/

[NUCLEO_F103RB] license text changed + sleep hal updated

Who changed what in which revision?

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