| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 | 
							- /******************************* (C) LiteMesh **********************************
 
- * @module  crc
 
-  * @file    crc.c
 
-  * @version 1.0.0
 
-  * @date    XX.XX.XXXX
 
-  * $brief   crc
 
-  *******************************************************************************
 
-  * @history     Version  Author         Comment
 
-  * XX.XX.XXXX   1.0.0    kim  First release.
 
-  *******************************************************************************
 
-  */
 
-    
 
- #include "stm32f4xx.h"
 
- #include "crc.h"
 
- #include "common_config.h"
 
- /**
 
-   * @brief  
 
-   * @retval 
 
-   */
 
- void CRC_Init(void)
 
- {
 
-   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_CRC, ENABLE);
 
-   CRC->CR |= CRC_CR_RESET;  
 
- }
 
- /**
 
-   * @brief  
 
-   * @retval 
 
-   */
 
- void CRC_DeInit(void)
 
- {
 
-   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_CRC, DISABLE);
 
- }
 
- /**
 
-   * @brief Читаем crc из последних 4х байт записанной прошивки
 
-   * @retval 
 
-   */
 
- uint32_t CRC_Read(void) {
 
-   uint32_t* ptr = (uint32_t*)USER_FLASH_CRC_ADDRESS;
 
-   return *ptr;
 
- }
 
- /**
 
-   * @brief Считаем crc для записанной прошивки
 
-   * @retval 
 
-   */
 
- uint32_t CRC_Calcucate(void) {
 
-   uint32_t res;
 
-   /* Reset CRC */
 
-   CRC->CR = ((uint8_t)0x01);
 
-   for(uint32_t* ptr=(uint32_t*)USER_FLASH_FIRST_PAGE_ADDRESS;ptr != (uint32_t*)USER_FLASH_CRC_ADDRESS;ptr++)
 
-     CRC->DR = *ptr; // добавляем всю прошивку в CRC
 
-   res = CRC->DR;
 
-   return res;
 
- }
 
-  /******************************* (C) SWITRON *********************************/
 
 
  |