mbed SDK library sources
Fork of mbed-src by
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.
targets/cmsis/TARGET_STM/TARGET_NUCLEO_F103RB/stm32f10x_crc.c@84:f54042cbc282, 2014-02-03 (annotated)
- Committer:
- mbed_official
- Date:
- Mon Feb 03 09:30:05 2014 +0000
- Revision:
- 84:f54042cbc282
- Parent:
- 70:c1fbde68b492
Synchronized with git revision bbbd8699601c42149ccf0c37bc42bb6856ccc4c6
Full URL: https://github.com/mbedmicro/mbed/commit/bbbd8699601c42149ccf0c37bc42bb6856ccc4c6/
[NUCLEO_L152RE/F030_R8] SPI, I2C, Ticker, PWM updates
Who changed what in which revision?
User | Revision | Line number | New 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 | 84:f54042cbc282 | 5 | * @version V3.6.1 |
mbed_official | 84:f54042cbc282 | 6 | * @date 05-March-2012 |
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 | 84:f54042cbc282 | 175 | /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ |