pro vyuku PSS v Jecne

Committer:
vladvana
Date:
Sun Sep 24 12:31:52 2017 +0000
Revision:
0:23d1f73bf130
podklady pro cviceni z PSS

Who changed what in which revision?

UserRevisionLine numberNew contents of line
vladvana 0:23d1f73bf130 1 /**
vladvana 0:23d1f73bf130 2 ******************************************************************************
vladvana 0:23d1f73bf130 3 * @file stm32f1xx_hal_def.h
vladvana 0:23d1f73bf130 4 * @author MCD Application Team
vladvana 0:23d1f73bf130 5 * @version V1.0.0
vladvana 0:23d1f73bf130 6 * @date 15-December-2014
vladvana 0:23d1f73bf130 7 * @brief This file contains HAL common defines, enumeration, macros and
vladvana 0:23d1f73bf130 8 * structures definitions.
vladvana 0:23d1f73bf130 9 ******************************************************************************
vladvana 0:23d1f73bf130 10 * @attention
vladvana 0:23d1f73bf130 11 *
vladvana 0:23d1f73bf130 12 * <h2><center>&copy; COPYRIGHT(c) 2014 STMicroelectronics</center></h2>
vladvana 0:23d1f73bf130 13 *
vladvana 0:23d1f73bf130 14 * Redistribution and use in source and binary forms, with or without modification,
vladvana 0:23d1f73bf130 15 * are permitted provided that the following conditions are met:
vladvana 0:23d1f73bf130 16 * 1. Redistributions of source code must retain the above copyright notice,
vladvana 0:23d1f73bf130 17 * this list of conditions and the following disclaimer.
vladvana 0:23d1f73bf130 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
vladvana 0:23d1f73bf130 19 * this list of conditions and the following disclaimer in the documentation
vladvana 0:23d1f73bf130 20 * and/or other materials provided with the distribution.
vladvana 0:23d1f73bf130 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
vladvana 0:23d1f73bf130 22 * may be used to endorse or promote products derived from this software
vladvana 0:23d1f73bf130 23 * without specific prior written permission.
vladvana 0:23d1f73bf130 24 *
vladvana 0:23d1f73bf130 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
vladvana 0:23d1f73bf130 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
vladvana 0:23d1f73bf130 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
vladvana 0:23d1f73bf130 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
vladvana 0:23d1f73bf130 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
vladvana 0:23d1f73bf130 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
vladvana 0:23d1f73bf130 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
vladvana 0:23d1f73bf130 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
vladvana 0:23d1f73bf130 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
vladvana 0:23d1f73bf130 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
vladvana 0:23d1f73bf130 35 *
vladvana 0:23d1f73bf130 36 ******************************************************************************
vladvana 0:23d1f73bf130 37 */
vladvana 0:23d1f73bf130 38
vladvana 0:23d1f73bf130 39 /* Define to prevent recursive inclusion -------------------------------------*/
vladvana 0:23d1f73bf130 40 #ifndef __STM32F1xx_HAL_DEF
vladvana 0:23d1f73bf130 41 #define __STM32F1xx_HAL_DEF
vladvana 0:23d1f73bf130 42
vladvana 0:23d1f73bf130 43 #ifdef __cplusplus
vladvana 0:23d1f73bf130 44 extern "C" {
vladvana 0:23d1f73bf130 45 #endif
vladvana 0:23d1f73bf130 46
vladvana 0:23d1f73bf130 47 /* Includes ------------------------------------------------------------------*/
vladvana 0:23d1f73bf130 48 #include "stm32f1xx.h"
vladvana 0:23d1f73bf130 49 #include "stm32_hal_legacy.h"
vladvana 0:23d1f73bf130 50
vladvana 0:23d1f73bf130 51 /* Exported types ------------------------------------------------------------*/
vladvana 0:23d1f73bf130 52
vladvana 0:23d1f73bf130 53 /**
vladvana 0:23d1f73bf130 54 * @brief HAL Status structures definition
vladvana 0:23d1f73bf130 55 */
vladvana 0:23d1f73bf130 56 typedef enum
vladvana 0:23d1f73bf130 57 {
vladvana 0:23d1f73bf130 58 HAL_OK = 0x00,
vladvana 0:23d1f73bf130 59 HAL_ERROR = 0x01,
vladvana 0:23d1f73bf130 60 HAL_BUSY = 0x02,
vladvana 0:23d1f73bf130 61 HAL_TIMEOUT = 0x03
vladvana 0:23d1f73bf130 62 } HAL_StatusTypeDef;
vladvana 0:23d1f73bf130 63
vladvana 0:23d1f73bf130 64 /**
vladvana 0:23d1f73bf130 65 * @brief HAL Lock structures definition
vladvana 0:23d1f73bf130 66 */
vladvana 0:23d1f73bf130 67 typedef enum
vladvana 0:23d1f73bf130 68 {
vladvana 0:23d1f73bf130 69 HAL_UNLOCKED = 0x00,
vladvana 0:23d1f73bf130 70 HAL_LOCKED = 0x01
vladvana 0:23d1f73bf130 71 } HAL_LockTypeDef;
vladvana 0:23d1f73bf130 72
vladvana 0:23d1f73bf130 73 /* Exported macro ------------------------------------------------------------*/
vladvana 0:23d1f73bf130 74 #ifndef NULL
vladvana 0:23d1f73bf130 75 #define NULL 0
vladvana 0:23d1f73bf130 76 #endif
vladvana 0:23d1f73bf130 77
vladvana 0:23d1f73bf130 78 #define HAL_MAX_DELAY 0xFFFFFFFF
vladvana 0:23d1f73bf130 79
vladvana 0:23d1f73bf130 80 #define HAL_IS_BIT_SET(REG, BIT) (((REG) & (BIT)) != RESET)
vladvana 0:23d1f73bf130 81 #define HAL_IS_BIT_CLR(REG, BIT) (((REG) & (BIT)) == RESET)
vladvana 0:23d1f73bf130 82
vladvana 0:23d1f73bf130 83 #define __HAL_LINKDMA(__HANDLE__, __PPP_DMA_FIELD_, __DMA_HANDLE_) \
vladvana 0:23d1f73bf130 84 do{ \
vladvana 0:23d1f73bf130 85 (__HANDLE__)->__PPP_DMA_FIELD_ = &(__DMA_HANDLE_); \
vladvana 0:23d1f73bf130 86 (__DMA_HANDLE_).Parent = (__HANDLE__); \
vladvana 0:23d1f73bf130 87 } while(0)
vladvana 0:23d1f73bf130 88
vladvana 0:23d1f73bf130 89 #define UNUSED(x) ((void)(x))
vladvana 0:23d1f73bf130 90
vladvana 0:23d1f73bf130 91 /** @brief Reset the Handle's State field.
vladvana 0:23d1f73bf130 92 * @param __HANDLE__: specifies the Peripheral Handle.
vladvana 0:23d1f73bf130 93 * @note This macro can be used for the following purpose:
vladvana 0:23d1f73bf130 94 * - When the Handle is declared as local variable; before passing it as parameter
vladvana 0:23d1f73bf130 95 * to HAL_PPP_Init() for the first time, it is mandatory to use this macro
vladvana 0:23d1f73bf130 96 * to set to 0 the Handle's "State" field.
vladvana 0:23d1f73bf130 97 * Otherwise, "State" field may have any random value and the first time the function
vladvana 0:23d1f73bf130 98 * HAL_PPP_Init() is called, the low level hardware initialization will be missed
vladvana 0:23d1f73bf130 99 * (i.e. HAL_PPP_MspInit() will not be executed).
vladvana 0:23d1f73bf130 100 * - When there is a need to reconfigure the low level hardware: instead of calling
vladvana 0:23d1f73bf130 101 * HAL_PPP_DeInit() then HAL_PPP_Init(), user can make a call to this macro then HAL_PPP_Init().
vladvana 0:23d1f73bf130 102 * In this later function, when the Handle's "State" field is set to 0, it will execute the function
vladvana 0:23d1f73bf130 103 * HAL_PPP_MspInit() which will reconfigure the low level hardware.
vladvana 0:23d1f73bf130 104 * @retval None
vladvana 0:23d1f73bf130 105 */
vladvana 0:23d1f73bf130 106 #define __HAL_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = 0)
vladvana 0:23d1f73bf130 107
vladvana 0:23d1f73bf130 108 #if (USE_RTOS == 1)
vladvana 0:23d1f73bf130 109 #error " USE_RTOS should be 0 in the current HAL release "
vladvana 0:23d1f73bf130 110 #else
vladvana 0:23d1f73bf130 111 #define __HAL_LOCK(__HANDLE__) \
vladvana 0:23d1f73bf130 112 do{ \
vladvana 0:23d1f73bf130 113 if((__HANDLE__)->Lock == HAL_LOCKED) \
vladvana 0:23d1f73bf130 114 { \
vladvana 0:23d1f73bf130 115 return HAL_BUSY; \
vladvana 0:23d1f73bf130 116 } \
vladvana 0:23d1f73bf130 117 else \
vladvana 0:23d1f73bf130 118 { \
vladvana 0:23d1f73bf130 119 (__HANDLE__)->Lock = HAL_LOCKED; \
vladvana 0:23d1f73bf130 120 } \
vladvana 0:23d1f73bf130 121 }while (0)
vladvana 0:23d1f73bf130 122
vladvana 0:23d1f73bf130 123 #define __HAL_UNLOCK(__HANDLE__) \
vladvana 0:23d1f73bf130 124 do{ \
vladvana 0:23d1f73bf130 125 (__HANDLE__)->Lock = HAL_UNLOCKED; \
vladvana 0:23d1f73bf130 126 }while (0)
vladvana 0:23d1f73bf130 127 #endif /* USE_RTOS */
vladvana 0:23d1f73bf130 128
vladvana 0:23d1f73bf130 129 #if defined ( __GNUC__ )
vladvana 0:23d1f73bf130 130 #ifndef __weak
vladvana 0:23d1f73bf130 131 #define __weak __attribute__((weak))
vladvana 0:23d1f73bf130 132 #endif /* __weak */
vladvana 0:23d1f73bf130 133 #ifndef __packed
vladvana 0:23d1f73bf130 134 #define __packed __attribute__((__packed__))
vladvana 0:23d1f73bf130 135 #endif /* __packed */
vladvana 0:23d1f73bf130 136 #endif /* __GNUC__ */
vladvana 0:23d1f73bf130 137
vladvana 0:23d1f73bf130 138
vladvana 0:23d1f73bf130 139 /* Macro to get variable aligned on 4-bytes, for __ICCARM__ the directive "#pragma data_alignment=4" must be used instead */
vladvana 0:23d1f73bf130 140 #if defined (__GNUC__) /* GNU Compiler */
vladvana 0:23d1f73bf130 141 #ifndef __ALIGN_END
vladvana 0:23d1f73bf130 142 #define __ALIGN_END __attribute__ ((aligned (4)))
vladvana 0:23d1f73bf130 143 #endif /* __ALIGN_END */
vladvana 0:23d1f73bf130 144 #ifndef __ALIGN_BEGIN
vladvana 0:23d1f73bf130 145 #define __ALIGN_BEGIN
vladvana 0:23d1f73bf130 146 #endif /* __ALIGN_BEGIN */
vladvana 0:23d1f73bf130 147 #else
vladvana 0:23d1f73bf130 148 #ifndef __ALIGN_END
vladvana 0:23d1f73bf130 149 #define __ALIGN_END
vladvana 0:23d1f73bf130 150 #endif /* __ALIGN_END */
vladvana 0:23d1f73bf130 151 #ifndef __ALIGN_BEGIN
vladvana 0:23d1f73bf130 152 #if defined (__CC_ARM) /* ARM Compiler */
vladvana 0:23d1f73bf130 153 #define __ALIGN_BEGIN __align(4)
vladvana 0:23d1f73bf130 154 #elif defined (__ICCARM__) /* IAR Compiler */
vladvana 0:23d1f73bf130 155 #define __ALIGN_BEGIN
vladvana 0:23d1f73bf130 156 #endif /* __CC_ARM */
vladvana 0:23d1f73bf130 157 #endif /* __ALIGN_BEGIN */
vladvana 0:23d1f73bf130 158 #endif /* __GNUC__ */
vladvana 0:23d1f73bf130 159
vladvana 0:23d1f73bf130 160 /**
vladvana 0:23d1f73bf130 161 * @brief __RAM_FUNC definition
vladvana 0:23d1f73bf130 162 */
vladvana 0:23d1f73bf130 163 #if defined ( __CC_ARM )
vladvana 0:23d1f73bf130 164 /* ARM Compiler
vladvana 0:23d1f73bf130 165 ------------
vladvana 0:23d1f73bf130 166 RAM functions are defined using the toolchain options.
vladvana 0:23d1f73bf130 167 Functions that are executed in RAM should reside in a separate source module.
vladvana 0:23d1f73bf130 168 Using the 'Options for File' dialog you can simply change the 'Code / Const'
vladvana 0:23d1f73bf130 169 area of a module to a memory space in physical RAM.
vladvana 0:23d1f73bf130 170 Available memory areas are declared in the 'Target' tab of the 'Options for Target'
vladvana 0:23d1f73bf130 171 dialog.
vladvana 0:23d1f73bf130 172 */
vladvana 0:23d1f73bf130 173 #define __RAM_FUNC HAL_StatusTypeDef
vladvana 0:23d1f73bf130 174
vladvana 0:23d1f73bf130 175 #elif defined ( __ICCARM__ )
vladvana 0:23d1f73bf130 176 /* ICCARM Compiler
vladvana 0:23d1f73bf130 177 ---------------
vladvana 0:23d1f73bf130 178 RAM functions are defined using a specific toolchain keyword "__ramfunc".
vladvana 0:23d1f73bf130 179 */
vladvana 0:23d1f73bf130 180 #define __RAM_FUNC __ramfunc HAL_StatusTypeDef
vladvana 0:23d1f73bf130 181
vladvana 0:23d1f73bf130 182 #elif defined ( __GNUC__ )
vladvana 0:23d1f73bf130 183 /* GNU Compiler
vladvana 0:23d1f73bf130 184 ------------
vladvana 0:23d1f73bf130 185 RAM functions are defined using a specific toolchain attribute
vladvana 0:23d1f73bf130 186 "__attribute__((section(".RamFunc")))".
vladvana 0:23d1f73bf130 187 */
vladvana 0:23d1f73bf130 188 #define __RAM_FUNC HAL_StatusTypeDef __attribute__((section(".RamFunc")))
vladvana 0:23d1f73bf130 189
vladvana 0:23d1f73bf130 190 #endif
vladvana 0:23d1f73bf130 191
vladvana 0:23d1f73bf130 192 /**
vladvana 0:23d1f73bf130 193 * @brief __NOINLINE definition
vladvana 0:23d1f73bf130 194 */
vladvana 0:23d1f73bf130 195 #if defined ( __CC_ARM ) || defined ( __GNUC__ )
vladvana 0:23d1f73bf130 196 /* ARM & GNUCompiler
vladvana 0:23d1f73bf130 197 ----------------
vladvana 0:23d1f73bf130 198 */
vladvana 0:23d1f73bf130 199 #define __NOINLINE __attribute__ ( (noinline) )
vladvana 0:23d1f73bf130 200
vladvana 0:23d1f73bf130 201 #elif defined ( __ICCARM__ )
vladvana 0:23d1f73bf130 202 /* ICCARM Compiler
vladvana 0:23d1f73bf130 203 ---------------
vladvana 0:23d1f73bf130 204 */
vladvana 0:23d1f73bf130 205 #define __NOINLINE _Pragma("optimize = no_inline")
vladvana 0:23d1f73bf130 206
vladvana 0:23d1f73bf130 207 #endif
vladvana 0:23d1f73bf130 208
vladvana 0:23d1f73bf130 209
vladvana 0:23d1f73bf130 210 #ifdef __cplusplus
vladvana 0:23d1f73bf130 211 }
vladvana 0:23d1f73bf130 212 #endif
vladvana 0:23d1f73bf130 213
vladvana 0:23d1f73bf130 214 #endif /* ___STM32F1xx_HAL_DEF */
vladvana 0:23d1f73bf130 215
vladvana 0:23d1f73bf130 216 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/