The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
TARGET_ELMO_F411RE/TOOLCHAIN_ARM_STD/stm32f4xx_hal_nor.h@171:3a7713b1edbc
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Anna Bridge 169:a7c7b631e539 1 /**
Anna Bridge 169:a7c7b631e539 2 ******************************************************************************
Anna Bridge 169:a7c7b631e539 3 * @file stm32f4xx_hal_nor.h
Anna Bridge 169:a7c7b631e539 4 * @author MCD Application Team
Anna Bridge 169:a7c7b631e539 5 * @brief Header file of NOR HAL module.
Anna Bridge 169:a7c7b631e539 6 ******************************************************************************
Anna Bridge 169:a7c7b631e539 7 * @attention
Anna Bridge 169:a7c7b631e539 8 *
Anna Bridge 169:a7c7b631e539 9 * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
Anna Bridge 169:a7c7b631e539 10 *
Anna Bridge 169:a7c7b631e539 11 * Redistribution and use in source and binary forms, with or without modification,
Anna Bridge 169:a7c7b631e539 12 * are permitted provided that the following conditions are met:
Anna Bridge 169:a7c7b631e539 13 * 1. Redistributions of source code must retain the above copyright notice,
Anna Bridge 169:a7c7b631e539 14 * this list of conditions and the following disclaimer.
Anna Bridge 169:a7c7b631e539 15 * 2. Redistributions in binary form must reproduce the above copyright notice,
Anna Bridge 169:a7c7b631e539 16 * this list of conditions and the following disclaimer in the documentation
Anna Bridge 169:a7c7b631e539 17 * and/or other materials provided with the distribution.
Anna Bridge 169:a7c7b631e539 18 * 3. Neither the name of STMicroelectronics nor the names of its contributors
Anna Bridge 169:a7c7b631e539 19 * may be used to endorse or promote products derived from this software
Anna Bridge 169:a7c7b631e539 20 * without specific prior written permission.
Anna Bridge 169:a7c7b631e539 21 *
Anna Bridge 169:a7c7b631e539 22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
Anna Bridge 169:a7c7b631e539 23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
Anna Bridge 169:a7c7b631e539 24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
Anna Bridge 169:a7c7b631e539 25 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
Anna Bridge 169:a7c7b631e539 26 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
Anna Bridge 169:a7c7b631e539 27 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
Anna Bridge 169:a7c7b631e539 28 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Anna Bridge 169:a7c7b631e539 29 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Anna Bridge 169:a7c7b631e539 30 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Anna Bridge 169:a7c7b631e539 31 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Anna Bridge 169:a7c7b631e539 32 *
Anna Bridge 169:a7c7b631e539 33 ******************************************************************************
Anna Bridge 169:a7c7b631e539 34 */
Anna Bridge 169:a7c7b631e539 35
Anna Bridge 169:a7c7b631e539 36 /* Define to prevent recursive inclusion -------------------------------------*/
Anna Bridge 169:a7c7b631e539 37 #ifndef __STM32F4xx_HAL_NOR_H
Anna Bridge 169:a7c7b631e539 38 #define __STM32F4xx_HAL_NOR_H
Anna Bridge 169:a7c7b631e539 39
Anna Bridge 169:a7c7b631e539 40 #ifdef __cplusplus
Anna Bridge 169:a7c7b631e539 41 extern "C" {
Anna Bridge 169:a7c7b631e539 42 #endif
Anna Bridge 169:a7c7b631e539 43
Anna Bridge 169:a7c7b631e539 44 /* Includes ------------------------------------------------------------------*/
Anna Bridge 169:a7c7b631e539 45 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) || defined(STM32F412Zx) ||\
Anna Bridge 169:a7c7b631e539 46 defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F413xx) || defined(STM32F423xx)
Anna Bridge 169:a7c7b631e539 47 #include "stm32f4xx_ll_fsmc.h"
Anna Bridge 169:a7c7b631e539 48 #endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx || STM32F412Zx || STM32F412Vx || STM32F412Rx || STM32F413xx || STM32F423xx */
Anna Bridge 169:a7c7b631e539 49
Anna Bridge 169:a7c7b631e539 50 #if defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\
Anna Bridge 169:a7c7b631e539 51 defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx)
Anna Bridge 169:a7c7b631e539 52 #include "stm32f4xx_ll_fmc.h"
Anna Bridge 169:a7c7b631e539 53 #endif /* STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx || STM32F446xx || STM32F469xx || STM32F479xx */
Anna Bridge 169:a7c7b631e539 54
Anna Bridge 169:a7c7b631e539 55 /** @addtogroup STM32F4xx_HAL_Driver
Anna Bridge 169:a7c7b631e539 56 * @{
Anna Bridge 169:a7c7b631e539 57 */
Anna Bridge 169:a7c7b631e539 58
Anna Bridge 169:a7c7b631e539 59 /** @addtogroup NOR
Anna Bridge 169:a7c7b631e539 60 * @{
Anna Bridge 169:a7c7b631e539 61 */
Anna Bridge 169:a7c7b631e539 62
Anna Bridge 169:a7c7b631e539 63 #if defined(STM32F405xx) || defined(STM32F415xx) || defined(STM32F407xx) || defined(STM32F417xx) ||\
Anna Bridge 169:a7c7b631e539 64 defined(STM32F427xx) || defined(STM32F437xx) || defined(STM32F429xx) || defined(STM32F439xx) ||\
Anna Bridge 169:a7c7b631e539 65 defined(STM32F446xx) || defined(STM32F469xx) || defined(STM32F479xx) || defined(STM32F412Zx) ||\
Anna Bridge 169:a7c7b631e539 66 defined(STM32F412Vx) || defined(STM32F412Rx) || defined(STM32F413xx) || defined(STM32F423xx)
Anna Bridge 169:a7c7b631e539 67
Anna Bridge 169:a7c7b631e539 68 /* Exported typedef ----------------------------------------------------------*/
Anna Bridge 169:a7c7b631e539 69 /** @defgroup NOR_Exported_Types NOR Exported Types
Anna Bridge 169:a7c7b631e539 70 * @{
Anna Bridge 169:a7c7b631e539 71 */
Anna Bridge 169:a7c7b631e539 72
Anna Bridge 169:a7c7b631e539 73 /**
Anna Bridge 169:a7c7b631e539 74 * @brief HAL SRAM State structures definition
Anna Bridge 169:a7c7b631e539 75 */
Anna Bridge 169:a7c7b631e539 76 typedef enum
Anna Bridge 169:a7c7b631e539 77 {
Anna Bridge 169:a7c7b631e539 78 HAL_NOR_STATE_RESET = 0x00U, /*!< NOR not yet initialized or disabled */
Anna Bridge 169:a7c7b631e539 79 HAL_NOR_STATE_READY = 0x01U, /*!< NOR initialized and ready for use */
Anna Bridge 169:a7c7b631e539 80 HAL_NOR_STATE_BUSY = 0x02U, /*!< NOR internal processing is ongoing */
Anna Bridge 169:a7c7b631e539 81 HAL_NOR_STATE_ERROR = 0x03U, /*!< NOR error state */
Anna Bridge 169:a7c7b631e539 82 HAL_NOR_STATE_PROTECTED = 0x04U /*!< NOR NORSRAM device write protected */
Anna Bridge 169:a7c7b631e539 83 }HAL_NOR_StateTypeDef;
Anna Bridge 169:a7c7b631e539 84
Anna Bridge 169:a7c7b631e539 85 /**
Anna Bridge 169:a7c7b631e539 86 * @brief FMC NOR Status typedef
Anna Bridge 169:a7c7b631e539 87 */
Anna Bridge 169:a7c7b631e539 88 typedef enum
Anna Bridge 169:a7c7b631e539 89 {
Anna Bridge 169:a7c7b631e539 90 HAL_NOR_STATUS_SUCCESS = 0U,
Anna Bridge 169:a7c7b631e539 91 HAL_NOR_STATUS_ONGOING,
Anna Bridge 169:a7c7b631e539 92 HAL_NOR_STATUS_ERROR,
Anna Bridge 169:a7c7b631e539 93 HAL_NOR_STATUS_TIMEOUT
Anna Bridge 169:a7c7b631e539 94 }HAL_NOR_StatusTypeDef;
Anna Bridge 169:a7c7b631e539 95
Anna Bridge 169:a7c7b631e539 96 /**
Anna Bridge 169:a7c7b631e539 97 * @brief FMC NOR ID typedef
Anna Bridge 169:a7c7b631e539 98 */
Anna Bridge 169:a7c7b631e539 99 typedef struct
Anna Bridge 169:a7c7b631e539 100 {
Anna Bridge 169:a7c7b631e539 101 uint16_t Manufacturer_Code; /*!< Defines the device's manufacturer code used to identify the memory */
Anna Bridge 169:a7c7b631e539 102
Anna Bridge 169:a7c7b631e539 103 uint16_t Device_Code1;
Anna Bridge 169:a7c7b631e539 104
Anna Bridge 169:a7c7b631e539 105 uint16_t Device_Code2;
Anna Bridge 169:a7c7b631e539 106
Anna Bridge 169:a7c7b631e539 107 uint16_t Device_Code3; /*!< Defines the device's codes used to identify the memory.
Anna Bridge 169:a7c7b631e539 108 These codes can be accessed by performing read operations with specific
Anna Bridge 169:a7c7b631e539 109 control signals and addresses set.They can also be accessed by issuing
Anna Bridge 169:a7c7b631e539 110 an Auto Select command */
Anna Bridge 169:a7c7b631e539 111 }NOR_IDTypeDef;
Anna Bridge 169:a7c7b631e539 112
Anna Bridge 169:a7c7b631e539 113 /**
Anna Bridge 169:a7c7b631e539 114 * @brief FMC NOR CFI typedef
Anna Bridge 169:a7c7b631e539 115 */
Anna Bridge 169:a7c7b631e539 116 typedef struct
Anna Bridge 169:a7c7b631e539 117 {
Anna Bridge 169:a7c7b631e539 118 /*!< Defines the information stored in the memory's Common flash interface
Anna Bridge 169:a7c7b631e539 119 which contains a description of various electrical and timing parameters,
Anna Bridge 169:a7c7b631e539 120 density information and functions supported by the memory */
Anna Bridge 169:a7c7b631e539 121
Anna Bridge 169:a7c7b631e539 122 uint16_t CFI_1;
Anna Bridge 169:a7c7b631e539 123
Anna Bridge 169:a7c7b631e539 124 uint16_t CFI_2;
Anna Bridge 169:a7c7b631e539 125
Anna Bridge 169:a7c7b631e539 126 uint16_t CFI_3;
Anna Bridge 169:a7c7b631e539 127
Anna Bridge 169:a7c7b631e539 128 uint16_t CFI_4;
Anna Bridge 169:a7c7b631e539 129 }NOR_CFITypeDef;
Anna Bridge 169:a7c7b631e539 130
Anna Bridge 169:a7c7b631e539 131 /**
Anna Bridge 169:a7c7b631e539 132 * @brief NOR handle Structure definition
Anna Bridge 169:a7c7b631e539 133 */
Anna Bridge 169:a7c7b631e539 134 typedef struct
Anna Bridge 169:a7c7b631e539 135 {
Anna Bridge 169:a7c7b631e539 136 FMC_NORSRAM_TypeDef *Instance; /*!< Register base address */
Anna Bridge 169:a7c7b631e539 137
Anna Bridge 169:a7c7b631e539 138 FMC_NORSRAM_EXTENDED_TypeDef *Extended; /*!< Extended mode register base address */
Anna Bridge 169:a7c7b631e539 139
Anna Bridge 169:a7c7b631e539 140 FMC_NORSRAM_InitTypeDef Init; /*!< NOR device control configuration parameters */
Anna Bridge 169:a7c7b631e539 141
Anna Bridge 169:a7c7b631e539 142 HAL_LockTypeDef Lock; /*!< NOR locking object */
Anna Bridge 169:a7c7b631e539 143
Anna Bridge 169:a7c7b631e539 144 __IO HAL_NOR_StateTypeDef State; /*!< NOR device access state */
Anna Bridge 169:a7c7b631e539 145
Anna Bridge 169:a7c7b631e539 146 }NOR_HandleTypeDef;
Anna Bridge 169:a7c7b631e539 147 /**
Anna Bridge 169:a7c7b631e539 148 * @}
Anna Bridge 169:a7c7b631e539 149 */
Anna Bridge 169:a7c7b631e539 150
Anna Bridge 169:a7c7b631e539 151 /* Exported constants --------------------------------------------------------*/
Anna Bridge 169:a7c7b631e539 152 /* Exported macros ------------------------------------------------------------*/
Anna Bridge 169:a7c7b631e539 153 /** @defgroup NOR_Exported_Macros NOR Exported Macros
Anna Bridge 169:a7c7b631e539 154 * @{
Anna Bridge 169:a7c7b631e539 155 */
Anna Bridge 169:a7c7b631e539 156 /** @brief Reset NOR handle state
Anna Bridge 169:a7c7b631e539 157 * @param __HANDLE__ specifies the NOR handle.
Anna Bridge 169:a7c7b631e539 158 * @retval None
Anna Bridge 169:a7c7b631e539 159 */
Anna Bridge 169:a7c7b631e539 160 #define __HAL_NOR_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_NOR_STATE_RESET)
Anna Bridge 169:a7c7b631e539 161 /**
Anna Bridge 169:a7c7b631e539 162 * @}
Anna Bridge 169:a7c7b631e539 163 */
Anna Bridge 169:a7c7b631e539 164
Anna Bridge 169:a7c7b631e539 165 /* Exported functions --------------------------------------------------------*/
Anna Bridge 169:a7c7b631e539 166 /** @addtogroup NOR_Exported_Functions
Anna Bridge 169:a7c7b631e539 167 * @{
Anna Bridge 169:a7c7b631e539 168 */
Anna Bridge 169:a7c7b631e539 169
Anna Bridge 169:a7c7b631e539 170 /** @addtogroup NOR_Exported_Functions_Group1
Anna Bridge 169:a7c7b631e539 171 * @{
Anna Bridge 169:a7c7b631e539 172 */
Anna Bridge 169:a7c7b631e539 173 /* Initialization/de-initialization functions ********************************/
Anna Bridge 169:a7c7b631e539 174 HAL_StatusTypeDef HAL_NOR_Init(NOR_HandleTypeDef *hnor, FMC_NORSRAM_TimingTypeDef *Timing, FMC_NORSRAM_TimingTypeDef *ExtTiming);
Anna Bridge 169:a7c7b631e539 175 HAL_StatusTypeDef HAL_NOR_DeInit(NOR_HandleTypeDef *hnor);
Anna Bridge 169:a7c7b631e539 176 void HAL_NOR_MspInit(NOR_HandleTypeDef *hnor);
Anna Bridge 169:a7c7b631e539 177 void HAL_NOR_MspDeInit(NOR_HandleTypeDef *hnor);
Anna Bridge 169:a7c7b631e539 178 void HAL_NOR_MspWait(NOR_HandleTypeDef *hnor, uint32_t Timeout);
Anna Bridge 169:a7c7b631e539 179 /**
Anna Bridge 169:a7c7b631e539 180 * @}
Anna Bridge 169:a7c7b631e539 181 */
Anna Bridge 169:a7c7b631e539 182
Anna Bridge 169:a7c7b631e539 183 /** @addtogroup NOR_Exported_Functions_Group2
Anna Bridge 169:a7c7b631e539 184 * @{
Anna Bridge 169:a7c7b631e539 185 */
Anna Bridge 169:a7c7b631e539 186 /* I/O operation functions ***************************************************/
Anna Bridge 169:a7c7b631e539 187 HAL_StatusTypeDef HAL_NOR_Read_ID(NOR_HandleTypeDef *hnor, NOR_IDTypeDef *pNOR_ID);
Anna Bridge 169:a7c7b631e539 188 HAL_StatusTypeDef HAL_NOR_ReturnToReadMode(NOR_HandleTypeDef *hnor);
Anna Bridge 169:a7c7b631e539 189 HAL_StatusTypeDef HAL_NOR_Read(NOR_HandleTypeDef *hnor, uint32_t *pAddress, uint16_t *pData);
Anna Bridge 169:a7c7b631e539 190 HAL_StatusTypeDef HAL_NOR_Program(NOR_HandleTypeDef *hnor, uint32_t *pAddress, uint16_t *pData);
Anna Bridge 169:a7c7b631e539 191
Anna Bridge 169:a7c7b631e539 192 HAL_StatusTypeDef HAL_NOR_ReadBuffer(NOR_HandleTypeDef *hnor, uint32_t uwAddress, uint16_t *pData, uint32_t uwBufferSize);
Anna Bridge 169:a7c7b631e539 193 HAL_StatusTypeDef HAL_NOR_ProgramBuffer(NOR_HandleTypeDef *hnor, uint32_t uwAddress, uint16_t *pData, uint32_t uwBufferSize);
Anna Bridge 169:a7c7b631e539 194
Anna Bridge 169:a7c7b631e539 195 HAL_StatusTypeDef HAL_NOR_Erase_Block(NOR_HandleTypeDef *hnor, uint32_t BlockAddress, uint32_t Address);
Anna Bridge 169:a7c7b631e539 196 HAL_StatusTypeDef HAL_NOR_Erase_Chip(NOR_HandleTypeDef *hnor, uint32_t Address);
Anna Bridge 169:a7c7b631e539 197 HAL_StatusTypeDef HAL_NOR_Read_CFI(NOR_HandleTypeDef *hnor, NOR_CFITypeDef *pNOR_CFI);
Anna Bridge 169:a7c7b631e539 198 /**
Anna Bridge 169:a7c7b631e539 199 * @}
Anna Bridge 169:a7c7b631e539 200 */
Anna Bridge 169:a7c7b631e539 201
Anna Bridge 169:a7c7b631e539 202 /** @addtogroup NOR_Exported_Functions_Group3
Anna Bridge 169:a7c7b631e539 203 * @{
Anna Bridge 169:a7c7b631e539 204 */
Anna Bridge 169:a7c7b631e539 205 /* NOR Control functions *****************************************************/
Anna Bridge 169:a7c7b631e539 206 HAL_StatusTypeDef HAL_NOR_WriteOperation_Enable(NOR_HandleTypeDef *hnor);
Anna Bridge 169:a7c7b631e539 207 HAL_StatusTypeDef HAL_NOR_WriteOperation_Disable(NOR_HandleTypeDef *hnor);
Anna Bridge 169:a7c7b631e539 208 /**
Anna Bridge 169:a7c7b631e539 209 * @}
Anna Bridge 169:a7c7b631e539 210 */
Anna Bridge 169:a7c7b631e539 211
Anna Bridge 169:a7c7b631e539 212 /** @addtogroup NOR_Exported_Functions_Group4
Anna Bridge 169:a7c7b631e539 213 * @{
Anna Bridge 169:a7c7b631e539 214 */
Anna Bridge 169:a7c7b631e539 215 /* NOR State functions ********************************************************/
Anna Bridge 169:a7c7b631e539 216 HAL_NOR_StateTypeDef HAL_NOR_GetState(NOR_HandleTypeDef *hnor);
Anna Bridge 169:a7c7b631e539 217 HAL_NOR_StatusTypeDef HAL_NOR_GetStatus(NOR_HandleTypeDef *hnor, uint32_t Address, uint32_t Timeout);
Anna Bridge 169:a7c7b631e539 218 /**
Anna Bridge 169:a7c7b631e539 219 * @}
Anna Bridge 169:a7c7b631e539 220 */
Anna Bridge 169:a7c7b631e539 221
Anna Bridge 169:a7c7b631e539 222 /**
Anna Bridge 169:a7c7b631e539 223 * @}
Anna Bridge 169:a7c7b631e539 224 */
Anna Bridge 169:a7c7b631e539 225
Anna Bridge 169:a7c7b631e539 226 /* Private types -------------------------------------------------------------*/
Anna Bridge 169:a7c7b631e539 227 /* Private variables ---------------------------------------------------------*/
Anna Bridge 169:a7c7b631e539 228 /* Private constants ---------------------------------------------------------*/
Anna Bridge 169:a7c7b631e539 229 /** @defgroup NOR_Private_Constants NOR Private Constants
Anna Bridge 169:a7c7b631e539 230 * @{
Anna Bridge 169:a7c7b631e539 231 */
Anna Bridge 169:a7c7b631e539 232 /* NOR device IDs addresses */
Anna Bridge 169:a7c7b631e539 233 #define MC_ADDRESS ((uint16_t)0x0000)
Anna Bridge 169:a7c7b631e539 234 #define DEVICE_CODE1_ADDR ((uint16_t)0x0001)
Anna Bridge 169:a7c7b631e539 235 #define DEVICE_CODE2_ADDR ((uint16_t)0x000E)
Anna Bridge 169:a7c7b631e539 236 #define DEVICE_CODE3_ADDR ((uint16_t)0x000F)
Anna Bridge 169:a7c7b631e539 237
Anna Bridge 169:a7c7b631e539 238 /* NOR CFI IDs addresses */
Anna Bridge 169:a7c7b631e539 239 #define CFI1_ADDRESS ((uint16_t)0x0061)
Anna Bridge 169:a7c7b631e539 240 #define CFI2_ADDRESS ((uint16_t)0x0062)
Anna Bridge 169:a7c7b631e539 241 #define CFI3_ADDRESS ((uint16_t)0x0063)
Anna Bridge 169:a7c7b631e539 242 #define CFI4_ADDRESS ((uint16_t)0x0064)
Anna Bridge 169:a7c7b631e539 243
Anna Bridge 169:a7c7b631e539 244 /* NOR operation wait timeout */
Anna Bridge 169:a7c7b631e539 245 #define NOR_TMEOUT ((uint16_t)0xFFFF)
Anna Bridge 169:a7c7b631e539 246
Anna Bridge 169:a7c7b631e539 247 /* NOR memory data width */
Anna Bridge 169:a7c7b631e539 248 #define NOR_MEMORY_8B ((uint8_t)0x00)
Anna Bridge 169:a7c7b631e539 249 #define NOR_MEMORY_16B ((uint8_t)0x01)
Anna Bridge 169:a7c7b631e539 250
Anna Bridge 169:a7c7b631e539 251 /* NOR memory device read/write start address */
Anna Bridge 169:a7c7b631e539 252 #define NOR_MEMORY_ADRESS1 0x60000000U
Anna Bridge 169:a7c7b631e539 253 #define NOR_MEMORY_ADRESS2 0x64000000U
Anna Bridge 169:a7c7b631e539 254 #define NOR_MEMORY_ADRESS3 0x68000000U
Anna Bridge 169:a7c7b631e539 255 #define NOR_MEMORY_ADRESS4 0x6C000000U
Anna Bridge 169:a7c7b631e539 256 /**
Anna Bridge 169:a7c7b631e539 257 * @}
Anna Bridge 169:a7c7b631e539 258 */
Anna Bridge 169:a7c7b631e539 259
Anna Bridge 169:a7c7b631e539 260 /* Private macros ------------------------------------------------------------*/
Anna Bridge 169:a7c7b631e539 261 /** @defgroup NOR_Private_Macros NOR Private Macros
Anna Bridge 169:a7c7b631e539 262 * @{
Anna Bridge 169:a7c7b631e539 263 */
Anna Bridge 169:a7c7b631e539 264 /**
Anna Bridge 169:a7c7b631e539 265 * @brief NOR memory address shifting.
Anna Bridge 169:a7c7b631e539 266 * @param __NOR_ADDRESS__ NOR base address
Anna Bridge 169:a7c7b631e539 267 * @param NOR_MEMORY_WIDTH NOR memory width
Anna Bridge 169:a7c7b631e539 268 * @param ADDRESS NOR memory address
Anna Bridge 169:a7c7b631e539 269 * @retval NOR shifted address value
Anna Bridge 169:a7c7b631e539 270 */
Anna Bridge 169:a7c7b631e539 271 #define NOR_ADDR_SHIFT(__NOR_ADDRESS__, NOR_MEMORY_WIDTH, ADDRESS) (uint32_t)(((NOR_MEMORY_WIDTH) == NOR_MEMORY_16B)? ((uint32_t)((__NOR_ADDRESS__) + (2U * (ADDRESS)))):\
Anna Bridge 169:a7c7b631e539 272 ((uint32_t)((__NOR_ADDRESS__) + (ADDRESS))))
Anna Bridge 169:a7c7b631e539 273
Anna Bridge 169:a7c7b631e539 274 /**
Anna Bridge 169:a7c7b631e539 275 * @brief NOR memory write data to specified address.
Anna Bridge 169:a7c7b631e539 276 * @param ADDRESS NOR memory address
Anna Bridge 169:a7c7b631e539 277 * @param DATA Data to write
Anna Bridge 169:a7c7b631e539 278 * @retval None
Anna Bridge 169:a7c7b631e539 279 */
Anna Bridge 169:a7c7b631e539 280 #define NOR_WRITE(ADDRESS, DATA) (*(__IO uint16_t *)((uint32_t)(ADDRESS)) = (DATA))
Anna Bridge 169:a7c7b631e539 281
Anna Bridge 169:a7c7b631e539 282 /**
Anna Bridge 169:a7c7b631e539 283 * @}
Anna Bridge 169:a7c7b631e539 284 */
Anna Bridge 169:a7c7b631e539 285 #endif /* STM32F405xx || STM32F415xx || STM32F407xx || STM32F417xx ||\
Anna Bridge 169:a7c7b631e539 286 STM32F427xx || STM32F437xx || STM32F429xx || STM32F439xx ||\
Anna Bridge 169:a7c7b631e539 287 STM32F446xx || STM32F469xx || STM32F479xx || STM32F412Zx ||\
Anna Bridge 169:a7c7b631e539 288 STM32F412Vx || STM32F412Rx || STM32F413xx || STM32F423xx */
Anna Bridge 169:a7c7b631e539 289 /**
Anna Bridge 169:a7c7b631e539 290 * @}
Anna Bridge 169:a7c7b631e539 291 */
Anna Bridge 169:a7c7b631e539 292
Anna Bridge 169:a7c7b631e539 293 /**
Anna Bridge 169:a7c7b631e539 294 * @}
Anna Bridge 169:a7c7b631e539 295 */
Anna Bridge 169:a7c7b631e539 296
Anna Bridge 169:a7c7b631e539 297 #ifdef __cplusplus
Anna Bridge 169:a7c7b631e539 298 }
Anna Bridge 169:a7c7b631e539 299 #endif
Anna Bridge 169:a7c7b631e539 300
Anna Bridge 169:a7c7b631e539 301 #endif /* __STM32F4xx_HAL_NOR_H */
Anna Bridge 169:a7c7b631e539 302
Anna Bridge 169:a7c7b631e539 303 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/