mbed library sources. Supersedes mbed-src.

Dependents:   Nucleo_Hello_Encoder BLE_iBeaconScan AM1805_DEMO DISCO-F429ZI_ExportTemplate1 ... more

Revision:
186:707f6e361f3e
Parent:
180:96ed750bd169
--- a/targets/TARGET_STM/TARGET_STM32F0/device/stm32f0xx_hal_crc.c	Thu Apr 19 17:12:19 2018 +0100
+++ b/targets/TARGET_STM/TARGET_STM32F0/device/stm32f0xx_hal_crc.c	Fri Jun 22 16:45:37 2018 +0100
@@ -421,6 +421,15 @@
   * @{
   */
 
+#if __GNUC__
+#    define MAY_ALIAS __attribute__ ((__may_alias__))
+#else
+#    define MAY_ALIAS
+#endif
+
+typedef __IO uint8_t  MAY_ALIAS uint8_io_t;
+typedef __IO uint16_t MAY_ALIAS uint16_io_t;
+
 /**
   * @brief  Return the CRC handle state.
   * @param  hcrc CRC handle
@@ -468,16 +477,16 @@
    {
      if  (BufferLength%4U == 1U)
      {
-       *(uint8_t volatile*) (&hcrc->Instance->DR) = pBuffer[4*i];
+       *(uint8_io_t*) (&hcrc->Instance->DR) = pBuffer[4*i];
      }
      if  (BufferLength%4U == 2U)
      {
-       *(uint16_t volatile*) (&hcrc->Instance->DR) = ((uint32_t)pBuffer[4*i]<<8) | (uint32_t)pBuffer[4*i+1];
+       *(uint16_io_t*) (&hcrc->Instance->DR) = ((uint32_t)pBuffer[4*i]<<8) | (uint32_t)pBuffer[4*i+1];
      }
      if  (BufferLength%4U == 3U)
      {
-       *(uint16_t volatile*) (&hcrc->Instance->DR) = ((uint32_t)pBuffer[4*i]<<8) | (uint32_t)pBuffer[4*i+1];
-       *(uint8_t volatile*) (&hcrc->Instance->DR) = pBuffer[4*i+2];       
+       *(uint16_io_t*) (&hcrc->Instance->DR) = ((uint32_t)pBuffer[4*i]<<8) | (uint32_t)pBuffer[4*i+1];
+       *(uint8_io_t*) (&hcrc->Instance->DR) = pBuffer[4*i+2];
      }
    }
   
@@ -508,7 +517,7 @@
   }
   if ((BufferLength%2U) != 0U)
   {
-       *(uint16_t volatile*) (&hcrc->Instance->DR) = pBuffer[2*i]; 
+       *(uint16_io_t*) (&hcrc->Instance->DR) = pBuffer[2*i];
   }
    
   /* Return the CRC computed value */