mbed SDK library sources

Fork of mbed-src by mbed official

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.

Committer:
mbed_official
Date:
Thu Jan 30 12:15:05 2014 +0000
Revision:
80:66393a7b209d
Parent:
76:aeb1df146756
Synchronized with git revision dba523f83fe09b7fce11fc1299dd1216e9776359

Full URL: https://github.com/mbedmicro/mbed/commit/dba523f83fe09b7fce11fc1299dd1216e9776359/

Update of I2C, SPI, SLEEP for NUCLEO_F103RB and L152RE

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 76:aeb1df146756 1 /**
mbed_official 76:aeb1df146756 2 ******************************************************************************
mbed_official 76:aeb1df146756 3 * @file misc.h
mbed_official 76:aeb1df146756 4 * @author MCD Application Team
mbed_official 80:66393a7b209d 5 * @version V1.3.0
mbed_official 80:66393a7b209d 6 * @date 31-January-2014
mbed_official 76:aeb1df146756 7 * @brief This file contains all the functions prototypes for the miscellaneous
mbed_official 76:aeb1df146756 8 * firmware library functions (add-on to CMSIS functions).
mbed_official 76:aeb1df146756 9 ******************************************************************************
mbed_official 76:aeb1df146756 10 * @attention
mbed_official 76:aeb1df146756 11 *
mbed_official 80:66393a7b209d 12 * <h2><center>&copy; COPYRIGHT 2014 STMicroelectronics</center></h2>
mbed_official 76:aeb1df146756 13 *
mbed_official 76:aeb1df146756 14 * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License");
mbed_official 76:aeb1df146756 15 * You may not use this file except in compliance with the License.
mbed_official 76:aeb1df146756 16 * You may obtain a copy of the License at:
mbed_official 76:aeb1df146756 17 *
mbed_official 76:aeb1df146756 18 * http://www.st.com/software_license_agreement_liberty_v2
mbed_official 76:aeb1df146756 19 *
mbed_official 76:aeb1df146756 20 * Unless required by applicable law or agreed to in writing, software
mbed_official 76:aeb1df146756 21 * distributed under the License is distributed on an "AS IS" BASIS,
mbed_official 76:aeb1df146756 22 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
mbed_official 76:aeb1df146756 23 * See the License for the specific language governing permissions and
mbed_official 76:aeb1df146756 24 * limitations under the License.
mbed_official 76:aeb1df146756 25 *
mbed_official 76:aeb1df146756 26 ******************************************************************************
mbed_official 76:aeb1df146756 27 */
mbed_official 76:aeb1df146756 28
mbed_official 76:aeb1df146756 29 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 76:aeb1df146756 30 #ifndef __MISC_H
mbed_official 76:aeb1df146756 31 #define __MISC_H
mbed_official 76:aeb1df146756 32
mbed_official 76:aeb1df146756 33 #ifdef __cplusplus
mbed_official 76:aeb1df146756 34 extern "C" {
mbed_official 76:aeb1df146756 35 #endif
mbed_official 76:aeb1df146756 36
mbed_official 76:aeb1df146756 37 /* Includes ------------------------------------------------------------------*/
mbed_official 76:aeb1df146756 38 #include "stm32l1xx.h"
mbed_official 76:aeb1df146756 39
mbed_official 76:aeb1df146756 40 /** @addtogroup STM32L1xx_StdPeriph_Driver
mbed_official 76:aeb1df146756 41 * @{
mbed_official 76:aeb1df146756 42 */
mbed_official 76:aeb1df146756 43
mbed_official 76:aeb1df146756 44 /** @addtogroup MISC
mbed_official 76:aeb1df146756 45 * @{
mbed_official 76:aeb1df146756 46 */
mbed_official 76:aeb1df146756 47
mbed_official 76:aeb1df146756 48 /* Exported types ------------------------------------------------------------*/
mbed_official 76:aeb1df146756 49
mbed_official 76:aeb1df146756 50 /**
mbed_official 76:aeb1df146756 51 * @brief NVIC Init Structure definition
mbed_official 76:aeb1df146756 52 */
mbed_official 76:aeb1df146756 53
mbed_official 76:aeb1df146756 54 typedef struct
mbed_official 76:aeb1df146756 55 {
mbed_official 76:aeb1df146756 56 uint8_t NVIC_IRQChannel; /*!< Specifies the IRQ channel to be enabled or disabled.
mbed_official 76:aeb1df146756 57 This parameter can be a value of @ref IRQn_Type
mbed_official 76:aeb1df146756 58 (For the complete STM32 Devices IRQ Channels list, please
mbed_official 76:aeb1df146756 59 refer to stm32l1xx.h file) */
mbed_official 76:aeb1df146756 60
mbed_official 76:aeb1df146756 61 uint8_t NVIC_IRQChannelPreemptionPriority; /*!< Specifies the pre-emption priority for the IRQ channel
mbed_official 76:aeb1df146756 62 specified in NVIC_IRQChannel. This parameter can be a value
mbed_official 76:aeb1df146756 63 between 0 and 15 as described in the table @ref NVIC_Priority_Table */
mbed_official 76:aeb1df146756 64
mbed_official 76:aeb1df146756 65 uint8_t NVIC_IRQChannelSubPriority; /*!< Specifies the subpriority level for the IRQ channel specified
mbed_official 76:aeb1df146756 66 in NVIC_IRQChannel. This parameter can be a value
mbed_official 76:aeb1df146756 67 between 0 and 15 as described in the table @ref NVIC_Priority_Table */
mbed_official 76:aeb1df146756 68
mbed_official 76:aeb1df146756 69 FunctionalState NVIC_IRQChannelCmd; /*!< Specifies whether the IRQ channel defined in NVIC_IRQChannel
mbed_official 76:aeb1df146756 70 will be enabled or disabled.
mbed_official 76:aeb1df146756 71 This parameter can be set either to ENABLE or DISABLE */
mbed_official 76:aeb1df146756 72 } NVIC_InitTypeDef;
mbed_official 76:aeb1df146756 73
mbed_official 76:aeb1df146756 74 /**
mbed_official 76:aeb1df146756 75 *
mbed_official 76:aeb1df146756 76 @verbatim
mbed_official 76:aeb1df146756 77 The table below gives the allowed values of the pre-emption priority and subpriority according
mbed_official 76:aeb1df146756 78 to the Priority Grouping configuration performed by NVIC_PriorityGroupConfig function
mbed_official 76:aeb1df146756 79 ============================================================================================================================
mbed_official 76:aeb1df146756 80 NVIC_PriorityGroup | NVIC_IRQChannelPreemptionPriority | NVIC_IRQChannelSubPriority | Description
mbed_official 76:aeb1df146756 81 ============================================================================================================================
mbed_official 76:aeb1df146756 82 NVIC_PriorityGroup_0 | 0 | 0-15 | 0 bits for pre-emption priority
mbed_official 76:aeb1df146756 83 | | | 4 bits for subpriority
mbed_official 76:aeb1df146756 84 ----------------------------------------------------------------------------------------------------------------------------
mbed_official 76:aeb1df146756 85 NVIC_PriorityGroup_1 | 0-1 | 0-7 | 1 bits for pre-emption priority
mbed_official 76:aeb1df146756 86 | | | 3 bits for subpriority
mbed_official 76:aeb1df146756 87 ----------------------------------------------------------------------------------------------------------------------------
mbed_official 76:aeb1df146756 88 NVIC_PriorityGroup_2 | 0-3 | 0-3 | 2 bits for pre-emption priority
mbed_official 76:aeb1df146756 89 | | | 2 bits for subpriority
mbed_official 76:aeb1df146756 90 ----------------------------------------------------------------------------------------------------------------------------
mbed_official 76:aeb1df146756 91 NVIC_PriorityGroup_3 | 0-7 | 0-1 | 3 bits for pre-emption priority
mbed_official 76:aeb1df146756 92 | | | 1 bits for subpriority
mbed_official 76:aeb1df146756 93 ----------------------------------------------------------------------------------------------------------------------------
mbed_official 76:aeb1df146756 94 NVIC_PriorityGroup_4 | 0-15 | 0 | 4 bits for pre-emption priority
mbed_official 76:aeb1df146756 95 | | | 0 bits for subpriority
mbed_official 76:aeb1df146756 96 ============================================================================================================================
mbed_official 76:aeb1df146756 97 @endverbatim
mbed_official 76:aeb1df146756 98 */
mbed_official 76:aeb1df146756 99
mbed_official 76:aeb1df146756 100 /* Exported constants --------------------------------------------------------*/
mbed_official 76:aeb1df146756 101
mbed_official 76:aeb1df146756 102 /** @defgroup MISC_Exported_Constants
mbed_official 76:aeb1df146756 103 * @{
mbed_official 76:aeb1df146756 104 */
mbed_official 76:aeb1df146756 105
mbed_official 76:aeb1df146756 106 /** @defgroup Vector_Table_Base
mbed_official 76:aeb1df146756 107 * @{
mbed_official 76:aeb1df146756 108 */
mbed_official 76:aeb1df146756 109
mbed_official 76:aeb1df146756 110 #define NVIC_VectTab_RAM ((uint32_t)0x20000000)
mbed_official 76:aeb1df146756 111 #define NVIC_VectTab_FLASH ((uint32_t)0x08000000)
mbed_official 76:aeb1df146756 112 #define IS_NVIC_VECTTAB(VECTTAB) (((VECTTAB) == NVIC_VectTab_RAM) || \
mbed_official 76:aeb1df146756 113 ((VECTTAB) == NVIC_VectTab_FLASH))
mbed_official 76:aeb1df146756 114 /**
mbed_official 76:aeb1df146756 115 * @}
mbed_official 76:aeb1df146756 116 */
mbed_official 76:aeb1df146756 117
mbed_official 76:aeb1df146756 118 /** @defgroup System_Low_Power
mbed_official 76:aeb1df146756 119 * @{
mbed_official 76:aeb1df146756 120 */
mbed_official 76:aeb1df146756 121
mbed_official 76:aeb1df146756 122 #define NVIC_LP_SEVONPEND ((uint8_t)0x10)
mbed_official 76:aeb1df146756 123 #define NVIC_LP_SLEEPDEEP ((uint8_t)0x04)
mbed_official 76:aeb1df146756 124 #define NVIC_LP_SLEEPONEXIT ((uint8_t)0x02)
mbed_official 76:aeb1df146756 125 #define IS_NVIC_LP(LP) (((LP) == NVIC_LP_SEVONPEND) || \
mbed_official 76:aeb1df146756 126 ((LP) == NVIC_LP_SLEEPDEEP) || \
mbed_official 76:aeb1df146756 127 ((LP) == NVIC_LP_SLEEPONEXIT))
mbed_official 76:aeb1df146756 128 /**
mbed_official 76:aeb1df146756 129 * @}
mbed_official 76:aeb1df146756 130 */
mbed_official 76:aeb1df146756 131
mbed_official 76:aeb1df146756 132 /** @defgroup Preemption_Priority_Group
mbed_official 76:aeb1df146756 133 * @{
mbed_official 76:aeb1df146756 134 */
mbed_official 76:aeb1df146756 135
mbed_official 76:aeb1df146756 136 #define NVIC_PriorityGroup_0 ((uint32_t)0x700) /*!< 0 bits for pre-emption priority
mbed_official 76:aeb1df146756 137 4 bits for subpriority */
mbed_official 76:aeb1df146756 138 #define NVIC_PriorityGroup_1 ((uint32_t)0x600) /*!< 1 bits for pre-emption priority
mbed_official 76:aeb1df146756 139 3 bits for subpriority */
mbed_official 76:aeb1df146756 140 #define NVIC_PriorityGroup_2 ((uint32_t)0x500) /*!< 2 bits for pre-emption priority
mbed_official 76:aeb1df146756 141 2 bits for subpriority */
mbed_official 76:aeb1df146756 142 #define NVIC_PriorityGroup_3 ((uint32_t)0x400) /*!< 3 bits for pre-emption priority
mbed_official 76:aeb1df146756 143 1 bits for subpriority */
mbed_official 76:aeb1df146756 144 #define NVIC_PriorityGroup_4 ((uint32_t)0x300) /*!< 4 bits for pre-emption priority
mbed_official 76:aeb1df146756 145 0 bits for subpriority */
mbed_official 76:aeb1df146756 146
mbed_official 76:aeb1df146756 147 #define IS_NVIC_PRIORITY_GROUP(GROUP) (((GROUP) == NVIC_PriorityGroup_0) || \
mbed_official 76:aeb1df146756 148 ((GROUP) == NVIC_PriorityGroup_1) || \
mbed_official 76:aeb1df146756 149 ((GROUP) == NVIC_PriorityGroup_2) || \
mbed_official 76:aeb1df146756 150 ((GROUP) == NVIC_PriorityGroup_3) || \
mbed_official 76:aeb1df146756 151 ((GROUP) == NVIC_PriorityGroup_4))
mbed_official 76:aeb1df146756 152
mbed_official 76:aeb1df146756 153 #define IS_NVIC_PREEMPTION_PRIORITY(PRIORITY) ((PRIORITY) < 0x10)
mbed_official 76:aeb1df146756 154
mbed_official 76:aeb1df146756 155 #define IS_NVIC_SUB_PRIORITY(PRIORITY) ((PRIORITY) < 0x10)
mbed_official 76:aeb1df146756 156
mbed_official 76:aeb1df146756 157 #define IS_NVIC_OFFSET(OFFSET) ((OFFSET) < 0x0005FFFF)
mbed_official 76:aeb1df146756 158
mbed_official 76:aeb1df146756 159 /**
mbed_official 76:aeb1df146756 160 * @}
mbed_official 76:aeb1df146756 161 */
mbed_official 76:aeb1df146756 162
mbed_official 76:aeb1df146756 163 /** @defgroup SysTick_clock_source
mbed_official 76:aeb1df146756 164 * @{
mbed_official 76:aeb1df146756 165 */
mbed_official 76:aeb1df146756 166
mbed_official 76:aeb1df146756 167 #define SysTick_CLKSource_HCLK_Div8 ((uint32_t)0xFFFFFFFB)
mbed_official 76:aeb1df146756 168 #define SysTick_CLKSource_HCLK ((uint32_t)0x00000004)
mbed_official 76:aeb1df146756 169 #define IS_SYSTICK_CLK_SOURCE(SOURCE) (((SOURCE) == SysTick_CLKSource_HCLK) || \
mbed_official 76:aeb1df146756 170 ((SOURCE) == SysTick_CLKSource_HCLK_Div8))
mbed_official 76:aeb1df146756 171 /**
mbed_official 76:aeb1df146756 172 * @}
mbed_official 76:aeb1df146756 173 */
mbed_official 76:aeb1df146756 174
mbed_official 76:aeb1df146756 175 /**
mbed_official 76:aeb1df146756 176 * @}
mbed_official 76:aeb1df146756 177 */
mbed_official 76:aeb1df146756 178
mbed_official 76:aeb1df146756 179 /* Exported macro ------------------------------------------------------------*/
mbed_official 76:aeb1df146756 180 /* Exported functions ------------------------------------------------------- */
mbed_official 76:aeb1df146756 181
mbed_official 76:aeb1df146756 182 void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);
mbed_official 76:aeb1df146756 183 void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct);
mbed_official 76:aeb1df146756 184 void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset);
mbed_official 76:aeb1df146756 185 void NVIC_SystemLPConfig(uint8_t LowPowerMode, FunctionalState NewState);
mbed_official 76:aeb1df146756 186 void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource);
mbed_official 76:aeb1df146756 187
mbed_official 76:aeb1df146756 188 #ifdef __cplusplus
mbed_official 76:aeb1df146756 189 }
mbed_official 76:aeb1df146756 190 #endif
mbed_official 76:aeb1df146756 191
mbed_official 76:aeb1df146756 192 #endif /* __MISC_H */
mbed_official 76:aeb1df146756 193
mbed_official 76:aeb1df146756 194 /**
mbed_official 76:aeb1df146756 195 * @}
mbed_official 76:aeb1df146756 196 */
mbed_official 76:aeb1df146756 197
mbed_official 76:aeb1df146756 198 /**
mbed_official 76:aeb1df146756 199 * @}
mbed_official 76:aeb1df146756 200 */
mbed_official 76:aeb1df146756 201
mbed_official 76:aeb1df146756 202 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/