tdse-tp2_01-model_integration

Index Commits Files Refs README
Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_ll_system.h (23460B)
   1 /**
   2   ******************************************************************************
   3   * @file    stm32f1xx_ll_system.h
   4   * @author  MCD Application Team
   5   * @brief   Header file of SYSTEM LL module.
   6   *
   7   ******************************************************************************
   8   * @attention
   9   *
  10   * Copyright (c) 2016 STMicroelectronics.
  11   * All rights reserved.
  12   *
  13   * This software is licensed under terms that can be found in the LICENSE file
  14   * in the root directory of this software component.
  15   * If no LICENSE file comes with this software, it is provided AS-IS.
  16   *
  17   ******************************************************************************
  18   @verbatim
  19   ==============================================================================
  20                      ##### How to use this driver #####
  21   ==============================================================================
  22     [..]
  23     The LL SYSTEM driver contains a set of generic APIs that can be
  24     used by user:
  25       (+) Some of the FLASH features need to be handled in the SYSTEM file.
  26       (+) Access to DBGCMU registers
  27       (+) Access to SYSCFG registers
  28 
  29   @endverbatim
  30   ******************************************************************************
  31   */
  32 
  33 /* Define to prevent recursive inclusion -------------------------------------*/
  34 #ifndef __STM32F1xx_LL_SYSTEM_H
  35 #define __STM32F1xx_LL_SYSTEM_H
  36 
  37 #ifdef __cplusplus
  38 extern "C" {
  39 #endif
  40 
  41 /* Includes ------------------------------------------------------------------*/
  42 #include "stm32f1xx.h"
  43 
  44 /** @addtogroup STM32F1xx_LL_Driver
  45   * @{
  46   */
  47 
  48 #if defined (FLASH) || defined (DBGMCU)
  49 
  50 /** @defgroup SYSTEM_LL SYSTEM
  51   * @{
  52   */
  53 
  54 /* Private types -------------------------------------------------------------*/
  55 /* Private variables ---------------------------------------------------------*/
  56 
  57 /* Private constants ---------------------------------------------------------*/
  58 /** @defgroup SYSTEM_LL_Private_Constants SYSTEM Private Constants
  59   * @{
  60   */
  61 
  62 /**
  63   * @}
  64   */
  65 
  66 /* Private macros ------------------------------------------------------------*/
  67 
  68 /* Exported types ------------------------------------------------------------*/
  69 /* Exported constants --------------------------------------------------------*/
  70 /** @defgroup SYSTEM_LL_Exported_Constants SYSTEM Exported Constants
  71   * @{
  72   */
  73 
  74 
  75 
  76 /** @defgroup SYSTEM_LL_EC_TRACE DBGMCU TRACE Pin Assignment
  77   * @{
  78   */
  79 #define LL_DBGMCU_TRACE_NONE               0x00000000U                                     /*!< TRACE pins not assigned (default state) */
  80 #define LL_DBGMCU_TRACE_ASYNCH             DBGMCU_CR_TRACE_IOEN                            /*!< TRACE pin assignment for Asynchronous Mode */
  81 #define LL_DBGMCU_TRACE_SYNCH_SIZE1        (DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE_0) /*!< TRACE pin assignment for Synchronous Mode with a TRACEDATA size of 1 */
  82 #define LL_DBGMCU_TRACE_SYNCH_SIZE2        (DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE_1) /*!< TRACE pin assignment for Synchronous Mode with a TRACEDATA size of 2 */
  83 #define LL_DBGMCU_TRACE_SYNCH_SIZE4        (DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE)   /*!< TRACE pin assignment for Synchronous Mode with a TRACEDATA size of 4 */
  84 /**
  85   * @}
  86   */
  87 
  88 /** @defgroup SYSTEM_LL_EC_APB1_GRP1_STOP_IP DBGMCU APB1 GRP1 STOP IP
  89   * @{
  90   */
  91 #define LL_DBGMCU_APB1_GRP1_TIM2_STOP      DBGMCU_CR_DBG_TIM2_STOP          /*!< TIM2 counter stopped when core is halted */
  92 #define LL_DBGMCU_APB1_GRP1_TIM3_STOP      DBGMCU_CR_DBG_TIM3_STOP          /*!< TIM3 counter stopped when core is halted */
  93 #define LL_DBGMCU_APB1_GRP1_TIM4_STOP      DBGMCU_CR_DBG_TIM4_STOP          /*!< TIM4 counter stopped when core is halted */
  94 #if defined(DBGMCU_CR_DBG_TIM5_STOP)
  95 #define LL_DBGMCU_APB1_GRP1_TIM5_STOP      DBGMCU_CR_DBG_TIM5_STOP          /*!< TIM5 counter stopped when core is halted */
  96 #endif /* DBGMCU_CR_DBG_TIM5_STOP */
  97 #if defined(DBGMCU_CR_DBG_TIM6_STOP)
  98 #define LL_DBGMCU_APB1_GRP1_TIM6_STOP      DBGMCU_CR_DBG_TIM6_STOP          /*!< TIM6 counter stopped when core is halted */
  99 #endif /* DBGMCU_CR_DBG_TIM6_STOP */
 100 #if defined(DBGMCU_CR_DBG_TIM7_STOP)
 101 #define LL_DBGMCU_APB1_GRP1_TIM7_STOP      DBGMCU_CR_DBG_TIM7_STOP          /*!< TIM7 counter stopped when core is halted */
 102 #endif /* DBGMCU_CR_DBG_TIM7_STOP */
 103 #if defined(DBGMCU_CR_DBG_TIM12_STOP)
 104 #define LL_DBGMCU_APB1_GRP1_TIM12_STOP     DBGMCU_CR_DBG_TIM12_STOP         /*!< TIM12 counter stopped when core is halted */
 105 #endif /* DBGMCU_CR_DBG_TIM12_STOP */
 106 #if defined(DBGMCU_CR_DBG_TIM13_STOP)
 107 #define LL_DBGMCU_APB1_GRP1_TIM13_STOP     DBGMCU_CR_DBG_TIM13_STOP         /*!< TIM13 counter stopped when core is halted */
 108 #endif /* DBGMCU_CR_DBG_TIM13_STOP */
 109 #if defined(DBGMCU_CR_DBG_TIM14_STOP)
 110 #define LL_DBGMCU_APB1_GRP1_TIM14_STOP     DBGMCU_CR_DBG_TIM14_STOP         /*!< TIM14 counter stopped when core is halted */
 111 #endif /* DBGMCU_CR_DBG_TIM14_STOP */
 112 #define LL_DBGMCU_APB1_GRP1_WWDG_STOP      DBGMCU_CR_DBG_WWDG_STOP          /*!< Debug Window Watchdog stopped when Core is halted */
 113 #define LL_DBGMCU_APB1_GRP1_IWDG_STOP      DBGMCU_CR_DBG_IWDG_STOP          /*!< Debug Independent Watchdog stopped when Core is halted */
 114 #define LL_DBGMCU_APB1_GRP1_I2C1_STOP      DBGMCU_CR_DBG_I2C1_SMBUS_TIMEOUT /*!< I2C1 SMBUS timeout mode stopped when Core is halted */
 115 #if defined(DBGMCU_CR_DBG_I2C2_SMBUS_TIMEOUT)
 116 #define LL_DBGMCU_APB1_GRP1_I2C2_STOP      DBGMCU_CR_DBG_I2C2_SMBUS_TIMEOUT /*!< I2C2 SMBUS timeout mode stopped when Core is halted */
 117 #endif /* DBGMCU_CR_DBG_I2C2_SMBUS_TIMEOUT */
 118 #if defined(DBGMCU_CR_DBG_CAN1_STOP)
 119 #define LL_DBGMCU_APB1_GRP1_CAN1_STOP      DBGMCU_CR_DBG_CAN1_STOP          /*!< CAN1 debug stopped when Core is halted  */
 120 #endif /* DBGMCU_CR_DBG_CAN1_STOP */
 121 #if defined(DBGMCU_CR_DBG_CAN2_STOP)
 122 #define LL_DBGMCU_APB1_GRP1_CAN2_STOP      DBGMCU_CR_DBG_CAN2_STOP          /*!< CAN2 debug stopped when Core is halted  */
 123 #endif /* DBGMCU_CR_DBG_CAN2_STOP */
 124 /**
 125   * @}
 126   */
 127 
 128 /** @defgroup SYSTEM_LL_EC_APB2_GRP1_STOP_IP DBGMCU APB2 GRP1 STOP IP
 129   * @{
 130   */
 131 #define LL_DBGMCU_APB2_GRP1_TIM1_STOP      DBGMCU_CR_DBG_TIM1_STOP   /*!< TIM1 counter stopped when core is halted */
 132 #if defined(DBGMCU_CR_DBG_TIM8_STOP)
 133 #define LL_DBGMCU_APB2_GRP1_TIM8_STOP      DBGMCU_CR_DBG_TIM8_STOP   /*!< TIM8 counter stopped when core is halted */
 134 #endif /* DBGMCU_CR_DBG_CAN1_STOP */
 135 #if defined(DBGMCU_CR_DBG_TIM9_STOP)
 136 #define LL_DBGMCU_APB2_GRP1_TIM9_STOP      DBGMCU_CR_DBG_TIM9_STOP   /*!< TIM9 counter stopped when core is halted */
 137 #endif /* DBGMCU_CR_DBG_TIM9_STOP */
 138 #if defined(DBGMCU_CR_DBG_TIM10_STOP)
 139 #define LL_DBGMCU_APB2_GRP1_TIM10_STOP     DBGMCU_CR_DBG_TIM10_STOP   /*!< TIM10 counter stopped when core is halted */
 140 #endif /* DBGMCU_CR_DBG_TIM10_STOP */
 141 #if defined(DBGMCU_CR_DBG_TIM11_STOP)
 142 #define LL_DBGMCU_APB2_GRP1_TIM11_STOP     DBGMCU_CR_DBG_TIM11_STOP   /*!< TIM11 counter stopped when core is halted */
 143 #endif /* DBGMCU_CR_DBG_TIM11_STOP */
 144 #if defined(DBGMCU_CR_DBG_TIM15_STOP)
 145 #define LL_DBGMCU_APB2_GRP1_TIM15_STOP     DBGMCU_CR_DBG_TIM15_STOP   /*!< TIM15 counter stopped when core is halted */
 146 #endif /* DBGMCU_CR_DBG_TIM15_STOP */
 147 #if defined(DBGMCU_CR_DBG_TIM16_STOP)
 148 #define LL_DBGMCU_APB2_GRP1_TIM16_STOP     DBGMCU_CR_DBG_TIM16_STOP   /*!< TIM16 counter stopped when core is halted */
 149 #endif /* DBGMCU_CR_DBG_TIM16_STOP */
 150 #if defined(DBGMCU_CR_DBG_TIM17_STOP)
 151 #define LL_DBGMCU_APB2_GRP1_TIM17_STOP     DBGMCU_CR_DBG_TIM17_STOP   /*!< TIM17 counter stopped when core is halted */
 152 #endif /* DBGMCU_CR_DBG_TIM17_STOP */
 153 /**
 154   * @}
 155   */
 156 
 157 /** @defgroup SYSTEM_LL_EC_LATENCY FLASH LATENCY
 158   * @{
 159   */
 160 #if defined(FLASH_ACR_LATENCY)
 161 #define LL_FLASH_LATENCY_0                 0x00000000U             /*!< FLASH Zero Latency cycle */
 162 #define LL_FLASH_LATENCY_1                 FLASH_ACR_LATENCY_0     /*!< FLASH One Latency cycle */
 163 #define LL_FLASH_LATENCY_2                 FLASH_ACR_LATENCY_1     /*!< FLASH Two wait states */
 164 #else
 165 #endif /* FLASH_ACR_LATENCY */
 166 /**
 167   * @}
 168   */
 169 
 170 /**
 171   * @}
 172   */
 173 
 174 /* Exported macro ------------------------------------------------------------*/
 175 
 176 /* Exported functions --------------------------------------------------------*/
 177 /** @defgroup SYSTEM_LL_Exported_Functions SYSTEM Exported Functions
 178   * @{
 179   */
 180 
 181 
 182 
 183 /** @defgroup SYSTEM_LL_EF_DBGMCU DBGMCU
 184   * @{
 185   */
 186 
 187 /**
 188   * @brief  Return the device identifier
 189   * @note For Low Density devices, the device ID is 0x412
 190   * @note For Medium Density devices, the device ID is 0x410
 191   * @note For High Density devices, the device ID is 0x414
 192   * @note For XL Density devices, the device ID is 0x430
 193   * @note For Connectivity Line devices, the device ID is 0x418
 194   * @rmtoll DBGMCU_IDCODE DEV_ID        LL_DBGMCU_GetDeviceID
 195   * @retval Values between Min_Data=0x00 and Max_Data=0xFFF
 196   */
 197 __STATIC_INLINE uint32_t LL_DBGMCU_GetDeviceID(void)
 198 {
 199   return (uint32_t)(READ_BIT(DBGMCU->IDCODE, DBGMCU_IDCODE_DEV_ID));
 200 }
 201 
 202 /**
 203   * @brief  Return the device revision identifier
 204   * @note This field indicates the revision of the device.
 205           For example, it is read as revA -> 0x1000,for Low Density devices
 206           For example, it is read as revA -> 0x0000, revB -> 0x2000, revZ -> 0x2001, rev1,2,3,X or Y -> 0x2003,for Medium Density devices
 207           For example, it is read as revA or 1 -> 0x1000, revZ -> 0x1001,rev1,2,3,X or Y -> 0x1003,for Medium Density devices
 208           For example, it is read as revA or 1 -> 0x1003,for XL Density devices
 209           For example, it is read as revA -> 0x1000, revZ -> 0x1001 for  Connectivity line devices
 210   * @rmtoll DBGMCU_IDCODE REV_ID        LL_DBGMCU_GetRevisionID
 211   * @retval Values between Min_Data=0x00 and Max_Data=0xFFFF
 212   */
 213 __STATIC_INLINE uint32_t LL_DBGMCU_GetRevisionID(void)
 214 {
 215   return (uint32_t)(READ_BIT(DBGMCU->IDCODE, DBGMCU_IDCODE_REV_ID) >> DBGMCU_IDCODE_REV_ID_Pos);
 216 }
 217 
 218 /**
 219   * @brief  Enable the Debug Module during SLEEP mode
 220   * @rmtoll DBGMCU_CR    DBG_SLEEP     LL_DBGMCU_EnableDBGSleepMode
 221   * @retval None
 222   */
 223 __STATIC_INLINE void LL_DBGMCU_EnableDBGSleepMode(void)
 224 {
 225   SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP);
 226 }
 227 
 228 /**
 229   * @brief  Disable the Debug Module during SLEEP mode
 230   * @rmtoll DBGMCU_CR    DBG_SLEEP     LL_DBGMCU_DisableDBGSleepMode
 231   * @retval None
 232   */
 233 __STATIC_INLINE void LL_DBGMCU_DisableDBGSleepMode(void)
 234 {
 235   CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_SLEEP);
 236 }
 237 
 238 /**
 239   * @brief  Enable the Debug Module during STOP mode
 240   * @rmtoll DBGMCU_CR    DBG_STOP      LL_DBGMCU_EnableDBGStopMode
 241   * @retval None
 242   */
 243 __STATIC_INLINE void LL_DBGMCU_EnableDBGStopMode(void)
 244 {
 245   SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP);
 246 }
 247 
 248 /**
 249   * @brief  Disable the Debug Module during STOP mode
 250   * @rmtoll DBGMCU_CR    DBG_STOP      LL_DBGMCU_DisableDBGStopMode
 251   * @retval None
 252   */
 253 __STATIC_INLINE void LL_DBGMCU_DisableDBGStopMode(void)
 254 {
 255   CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STOP);
 256 }
 257 
 258 /**
 259   * @brief  Enable the Debug Module during STANDBY mode
 260   * @rmtoll DBGMCU_CR    DBG_STANDBY   LL_DBGMCU_EnableDBGStandbyMode
 261   * @retval None
 262   */
 263 __STATIC_INLINE void LL_DBGMCU_EnableDBGStandbyMode(void)
 264 {
 265   SET_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY);
 266 }
 267 
 268 /**
 269   * @brief  Disable the Debug Module during STANDBY mode
 270   * @rmtoll DBGMCU_CR    DBG_STANDBY   LL_DBGMCU_DisableDBGStandbyMode
 271   * @retval None
 272   */
 273 __STATIC_INLINE void LL_DBGMCU_DisableDBGStandbyMode(void)
 274 {
 275   CLEAR_BIT(DBGMCU->CR, DBGMCU_CR_DBG_STANDBY);
 276 }
 277 
 278 /**
 279   * @brief  Set Trace pin assignment control
 280   * @rmtoll DBGMCU_CR    TRACE_IOEN    LL_DBGMCU_SetTracePinAssignment\n
 281   *         DBGMCU_CR    TRACE_MODE    LL_DBGMCU_SetTracePinAssignment
 282   * @param  PinAssignment This parameter can be one of the following values:
 283   *         @arg @ref LL_DBGMCU_TRACE_NONE
 284   *         @arg @ref LL_DBGMCU_TRACE_ASYNCH
 285   *         @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE1
 286   *         @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE2
 287   *         @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE4
 288   * @retval None
 289   */
 290 __STATIC_INLINE void LL_DBGMCU_SetTracePinAssignment(uint32_t PinAssignment)
 291 {
 292   MODIFY_REG(DBGMCU->CR, DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE, PinAssignment);
 293 }
 294 
 295 /**
 296   * @brief  Get Trace pin assignment control
 297   * @rmtoll DBGMCU_CR    TRACE_IOEN    LL_DBGMCU_GetTracePinAssignment\n
 298   *         DBGMCU_CR    TRACE_MODE    LL_DBGMCU_GetTracePinAssignment
 299   * @retval Returned value can be one of the following values:
 300   *         @arg @ref LL_DBGMCU_TRACE_NONE
 301   *         @arg @ref LL_DBGMCU_TRACE_ASYNCH
 302   *         @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE1
 303   *         @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE2
 304   *         @arg @ref LL_DBGMCU_TRACE_SYNCH_SIZE4
 305   */
 306 __STATIC_INLINE uint32_t LL_DBGMCU_GetTracePinAssignment(void)
 307 {
 308   return (uint32_t)(READ_BIT(DBGMCU->CR, DBGMCU_CR_TRACE_IOEN | DBGMCU_CR_TRACE_MODE));
 309 }
 310 
 311 /**
 312   * @brief  Freeze APB1 peripherals (group1 peripherals)
 313   * @rmtoll DBGMCU_CR_APB1      DBG_TIM2_STOP           LL_DBGMCU_APB1_GRP1_FreezePeriph\n
 314   *         DBGMCU_CR_APB1      DBG_TIM3_STOP           LL_DBGMCU_APB1_GRP1_FreezePeriph\n
 315   *         DBGMCU_CR_APB1      DBG_TIM4_STOP           LL_DBGMCU_APB1_GRP1_FreezePeriph\n
 316   *         DBGMCU_CR_APB1      DBG_TIM5_STOP           LL_DBGMCU_APB1_GRP1_FreezePeriph\n
 317   *         DBGMCU_CR_APB1      DBG_TIM6_STOP           LL_DBGMCU_APB1_GRP1_FreezePeriph\n
 318   *         DBGMCU_CR_APB1      DBG_TIM7_STOP           LL_DBGMCU_APB1_GRP1_FreezePeriph\n
 319   *         DBGMCU_CR_APB1      DBG_TIM12_STOP          LL_DBGMCU_APB1_GRP1_FreezePeriph\n
 320   *         DBGMCU_CR_APB1      DBG_TIM13_STOP          LL_DBGMCU_APB1_GRP1_FreezePeriph\n
 321   *         DBGMCU_CR_APB1      DBG_TIM14_STOP          LL_DBGMCU_APB1_GRP1_FreezePeriph\n
 322   *         DBGMCU_CR_APB1      DBG_RTC_STOP            LL_DBGMCU_APB1_GRP1_FreezePeriph\n
 323   *         DBGMCU_CR_APB1      DBG_WWDG_STOP           LL_DBGMCU_APB1_GRP1_FreezePeriph\n
 324   *         DBGMCU_CR_APB1      DBG_IWDG_STOP           LL_DBGMCU_APB1_GRP1_FreezePeriph\n
 325   *         DBGMCU_CR_APB1      DBG_I2C1_SMBUS_TIMEOUT  LL_DBGMCU_APB1_GRP1_FreezePeriph\n
 326   *         DBGMCU_CR_APB1      DBG_I2C2_SMBUS_TIMEOUT  LL_DBGMCU_APB1_GRP1_FreezePeriph\n
 327   *         DBGMCU_CR_APB1      DBG_CAN1_STOP           LL_DBGMCU_APB1_GRP1_FreezePeriph\n
 328   *         DBGMCU_CR_APB1      DBG_CAN2_STOP           LL_DBGMCU_APB1_GRP1_FreezePeriph
 329   * @param  Periphs This parameter can be a combination of the following values:
 330   *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM2_STOP
 331   *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM3_STOP
 332   *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM4_STOP
 333   *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM5_STOP
 334   *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM6_STOP
 335   *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM7_STOP
 336   *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM12_STOP
 337   *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM13_STOP
 338   *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM14_STOP
 339   *         @arg @ref LL_DBGMCU_APB1_GRP1_WWDG_STOP
 340   *         @arg @ref LL_DBGMCU_APB1_GRP1_IWDG_STOP
 341   *         @arg @ref LL_DBGMCU_APB1_GRP1_I2C1_STOP
 342   *         @arg @ref LL_DBGMCU_APB1_GRP1_I2C2_STOP (*)
 343   *         @arg @ref LL_DBGMCU_APB1_GRP1_CAN1_STOP (*)
 344   *         @arg @ref LL_DBGMCU_APB1_GRP1_CAN2_STOP (*)
 345   *
 346   *         (*) value not defined in all devices.
 347   * @retval None
 348   */
 349 __STATIC_INLINE void LL_DBGMCU_APB1_GRP1_FreezePeriph(uint32_t Periphs)
 350 {
 351   SET_BIT(DBGMCU->CR, Periphs);
 352 }
 353 
 354 /**
 355   * @brief  Unfreeze APB1 peripherals (group1 peripherals)
 356   * @rmtoll DBGMCU_CR_APB1      DBG_TIM2_STOP           LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
 357   *         DBGMCU_CR_APB1      DBG_TIM3_STOP           LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
 358   *         DBGMCU_CR_APB1      DBG_TIM4_STOP           LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
 359   *         DBGMCU_CR_APB1      DBG_TIM5_STOP           LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
 360   *         DBGMCU_CR_APB1      DBG_TIM6_STOP           LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
 361   *         DBGMCU_CR_APB1      DBG_TIM7_STOP           LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
 362   *         DBGMCU_CR_APB1      DBG_TIM12_STOP          LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
 363   *         DBGMCU_CR_APB1      DBG_TIM13_STOP          LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
 364   *         DBGMCU_CR_APB1      DBG_TIM14_STOP          LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
 365   *         DBGMCU_CR_APB1      DBG_RTC_STOP            LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
 366   *         DBGMCU_CR_APB1      DBG_WWDG_STOP           LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
 367   *         DBGMCU_CR_APB1      DBG_IWDG_STOP           LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
 368   *         DBGMCU_CR_APB1      DBG_I2C1_SMBUS_TIMEOUT  LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
 369   *         DBGMCU_CR_APB1      DBG_I2C2_SMBUS_TIMEOUT  LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
 370   *         DBGMCU_CR_APB1      DBG_CAN1_STOP           LL_DBGMCU_APB1_GRP1_UnFreezePeriph\n
 371   *         DBGMCU_CR_APB1      DBG_CAN2_STOP           LL_DBGMCU_APB1_GRP1_UnFreezePeriph
 372   * @param  Periphs This parameter can be a combination of the following values:
 373   *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM2_STOP
 374   *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM3_STOP
 375   *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM4_STOP
 376   *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM5_STOP
 377   *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM6_STOP
 378   *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM7_STOP
 379   *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM12_STOP
 380   *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM13_STOP
 381   *         @arg @ref LL_DBGMCU_APB1_GRP1_TIM14_STOP
 382   *         @arg @ref LL_DBGMCU_APB1_GRP1_RTC_STOP
 383   *         @arg @ref LL_DBGMCU_APB1_GRP1_WWDG_STOP
 384   *         @arg @ref LL_DBGMCU_APB1_GRP1_IWDG_STOP
 385   *         @arg @ref LL_DBGMCU_APB1_GRP1_I2C1_STOP
 386   *         @arg @ref LL_DBGMCU_APB1_GRP1_I2C2_STOP (*)
 387   *         @arg @ref LL_DBGMCU_APB1_GRP1_CAN1_STOP (*)
 388   *         @arg @ref LL_DBGMCU_APB1_GRP1_CAN2_STOP (*)
 389   *
 390   *         (*) value not defined in all devices.
 391   * @retval None
 392   */
 393 __STATIC_INLINE void LL_DBGMCU_APB1_GRP1_UnFreezePeriph(uint32_t Periphs)
 394 {
 395   CLEAR_BIT(DBGMCU->CR, Periphs);
 396 }
 397 
 398 /**
 399   * @brief  Freeze APB2 peripherals
 400   * @rmtoll DBGMCU_CR_APB2      DBG_TIM1_STOP    LL_DBGMCU_APB2_GRP1_FreezePeriph\n
 401   *         DBGMCU_CR_APB2      DBG_TIM8_STOP    LL_DBGMCU_APB2_GRP1_FreezePeriph\n
 402   *         DBGMCU_CR_APB2      DBG_TIM9_STOP    LL_DBGMCU_APB2_GRP1_FreezePeriph\n
 403   *         DBGMCU_CR_APB2      DBG_TIM10_STOP   LL_DBGMCU_APB2_GRP1_FreezePeriph\n
 404   *         DBGMCU_CR_APB2      DBG_TIM11_STOP   LL_DBGMCU_APB2_GRP1_FreezePeriph\n
 405   *         DBGMCU_CR_APB2      DBG_TIM15_STOP   LL_DBGMCU_APB2_GRP1_FreezePeriph\n
 406   *         DBGMCU_CR_APB2      DBG_TIM16_STOP   LL_DBGMCU_APB2_GRP1_FreezePeriph\n
 407   *         DBGMCU_CR_APB2      DBG_TIM17_STOP   LL_DBGMCU_APB2_GRP1_FreezePeriph
 408   * @param  Periphs This parameter can be a combination of the following values:
 409   *         @arg @ref LL_DBGMCU_APB2_GRP1_TIM1_STOP
 410   *         @arg @ref LL_DBGMCU_APB2_GRP1_TIM8_STOP (*)
 411   *         @arg @ref LL_DBGMCU_APB2_GRP1_TIM9_STOP (*)
 412   *         @arg @ref LL_DBGMCU_APB2_GRP1_TIM10_STOP (*)
 413   *         @arg @ref LL_DBGMCU_APB2_GRP1_TIM11_STOP (*)
 414   *         @arg @ref LL_DBGMCU_APB2_GRP1_TIM15_STOP (*)
 415   *         @arg @ref LL_DBGMCU_APB2_GRP1_TIM16_STOP (*)
 416   *         @arg @ref LL_DBGMCU_APB2_GRP1_TIM17_STOP (*)
 417   *
 418   *         (*) value not defined in all devices.
 419   * @retval None
 420   */
 421 __STATIC_INLINE void LL_DBGMCU_APB2_GRP1_FreezePeriph(uint32_t Periphs)
 422 {
 423   SET_BIT(DBGMCU->CR, Periphs);
 424 }
 425 
 426 /**
 427   * @brief  Unfreeze APB2 peripherals
 428   * @rmtoll DBGMCU_CR_APB2      DBG_TIM1_STOP    LL_DBGMCU_APB2_GRP1_FreezePeriph\n
 429   *         DBGMCU_CR_APB2      DBG_TIM8_STOP    LL_DBGMCU_APB2_GRP1_FreezePeriph\n
 430   *         DBGMCU_CR_APB2      DBG_TIM9_STOP    LL_DBGMCU_APB2_GRP1_FreezePeriph\n
 431   *         DBGMCU_CR_APB2      DBG_TIM10_STOP   LL_DBGMCU_APB2_GRP1_FreezePeriph\n
 432   *         DBGMCU_CR_APB2      DBG_TIM11_STOP   LL_DBGMCU_APB2_GRP1_FreezePeriph\n
 433   *         DBGMCU_CR_APB2      DBG_TIM15_STOP   LL_DBGMCU_APB2_GRP1_FreezePeriph\n
 434   *         DBGMCU_CR_APB2      DBG_TIM16_STOP   LL_DBGMCU_APB2_GRP1_FreezePeriph\n
 435   *         DBGMCU_CR_APB2      DBG_TIM17_STOP   LL_DBGMCU_APB2_GRP1_FreezePeriph
 436   * @param  Periphs This parameter can be a combination of the following values:
 437   *         @arg @ref LL_DBGMCU_APB2_GRP1_TIM1_STOP
 438   *         @arg @ref LL_DBGMCU_APB2_GRP1_TIM8_STOP (*)
 439   *         @arg @ref LL_DBGMCU_APB2_GRP1_TIM9_STOP (*)
 440   *         @arg @ref LL_DBGMCU_APB2_GRP1_TIM10_STOP (*)
 441   *         @arg @ref LL_DBGMCU_APB2_GRP1_TIM11_STOP (*)
 442   *         @arg @ref LL_DBGMCU_APB2_GRP1_TIM15_STOP (*)
 443   *         @arg @ref LL_DBGMCU_APB2_GRP1_TIM16_STOP (*)
 444   *         @arg @ref LL_DBGMCU_APB2_GRP1_TIM17_STOP (*)
 445   *
 446   *         (*) value not defined in all devices.
 447   * @retval None
 448   */
 449 __STATIC_INLINE void LL_DBGMCU_APB2_GRP1_UnFreezePeriph(uint32_t Periphs)
 450 {
 451   CLEAR_BIT(DBGMCU->CR, Periphs);
 452 }
 453 /**
 454   * @}
 455   */
 456 
 457 #if defined(FLASH_ACR_LATENCY)
 458 /** @defgroup SYSTEM_LL_EF_FLASH FLASH
 459   * @{
 460   */
 461 
 462 /**
 463   * @brief  Set FLASH Latency
 464   * @rmtoll FLASH_ACR    LATENCY       LL_FLASH_SetLatency
 465   * @param  Latency This parameter can be one of the following values:
 466   *         @arg @ref LL_FLASH_LATENCY_0
 467   *         @arg @ref LL_FLASH_LATENCY_1
 468   *         @arg @ref LL_FLASH_LATENCY_2
 469   * @retval None
 470   */
 471 __STATIC_INLINE void LL_FLASH_SetLatency(uint32_t Latency)
 472 {
 473   MODIFY_REG(FLASH->ACR, FLASH_ACR_LATENCY, Latency);
 474 }
 475 
 476 /**
 477   * @brief  Get FLASH Latency
 478   * @rmtoll FLASH_ACR    LATENCY       LL_FLASH_GetLatency
 479   * @retval Returned value can be one of the following values:
 480   *         @arg @ref LL_FLASH_LATENCY_0
 481   *         @arg @ref LL_FLASH_LATENCY_1
 482   *         @arg @ref LL_FLASH_LATENCY_2
 483   */
 484 __STATIC_INLINE uint32_t LL_FLASH_GetLatency(void)
 485 {
 486   return (uint32_t)(READ_BIT(FLASH->ACR, FLASH_ACR_LATENCY));
 487 }
 488 
 489 /**
 490   * @brief  Enable Prefetch
 491   * @rmtoll FLASH_ACR    PRFTBE        LL_FLASH_EnablePrefetch
 492   * @retval None
 493   */
 494 __STATIC_INLINE void LL_FLASH_EnablePrefetch(void)
 495 {
 496   SET_BIT(FLASH->ACR, FLASH_ACR_PRFTBE);
 497 }
 498 
 499 /**
 500   * @brief  Disable Prefetch
 501   * @rmtoll FLASH_ACR    PRFTBE        LL_FLASH_DisablePrefetch
 502   * @retval None
 503   */
 504 __STATIC_INLINE void LL_FLASH_DisablePrefetch(void)
 505 {
 506   CLEAR_BIT(FLASH->ACR, FLASH_ACR_PRFTBE);
 507 }
 508 
 509 /**
 510   * @brief  Check if Prefetch buffer is enabled
 511   * @rmtoll FLASH_ACR    PRFTBS        LL_FLASH_IsPrefetchEnabled
 512   * @retval State of bit (1 or 0).
 513   */
 514 __STATIC_INLINE uint32_t LL_FLASH_IsPrefetchEnabled(void)
 515 {
 516   return (READ_BIT(FLASH->ACR, FLASH_ACR_PRFTBS) == (FLASH_ACR_PRFTBS));
 517 }
 518 
 519 #endif /* FLASH_ACR_LATENCY */
 520 /**
 521   * @brief  Enable Flash Half Cycle Access
 522   * @rmtoll FLASH_ACR    HLFCYA        LL_FLASH_EnableHalfCycleAccess
 523   * @retval None
 524   */
 525 __STATIC_INLINE void LL_FLASH_EnableHalfCycleAccess(void)
 526 {
 527   SET_BIT(FLASH->ACR, FLASH_ACR_HLFCYA);
 528 }
 529 
 530 /**
 531   * @brief  Disable Flash Half Cycle Access
 532   * @rmtoll FLASH_ACR    HLFCYA        LL_FLASH_DisableHalfCycleAccess
 533   * @retval None
 534   */
 535 __STATIC_INLINE void LL_FLASH_DisableHalfCycleAccess(void)
 536 {
 537   CLEAR_BIT(FLASH->ACR, FLASH_ACR_HLFCYA);
 538 }
 539 
 540 /**
 541   * @brief  Check if  Flash Half Cycle Access is enabled or not
 542   * @rmtoll FLASH_ACR    HLFCYA        LL_FLASH_IsHalfCycleAccessEnabled
 543   * @retval State of bit (1 or 0).
 544   */
 545 __STATIC_INLINE uint32_t LL_FLASH_IsHalfCycleAccessEnabled(void)
 546 {
 547   return (READ_BIT(FLASH->ACR, FLASH_ACR_HLFCYA) == (FLASH_ACR_HLFCYA));
 548 }
 549 
 550 
 551 /**
 552   * @}
 553   */
 554 
 555 /**
 556   * @}
 557   */
 558 
 559 /**
 560   * @}
 561   */
 562 
 563 #endif /* defined (FLASH) || defined (DBGMCU) */
 564 
 565 /**
 566   * @}
 567   */
 568 
 569 #ifdef __cplusplus
 570 }
 571 #endif
 572 
 573 #endif /* __STM32F1xx_LL_SYSTEM_H */
 574 
 575