-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstm32f769i_eval_nor.h
134 lines (108 loc) · 3.63 KB
/
stm32f769i_eval_nor.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/**
******************************************************************************
* @file stm32f769i_eval_nor.h
* @author MCD Application Team
* @brief This file contains the common defines and functions prototypes for
* the stm32f769i_eval_nor.c driver.
******************************************************************************
* @attention
*
* Copyright (c) 2017 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32F769I_EVAL_NOR_H
#define __STM32F769I_EVAL_NOR_H
#ifdef __cplusplus
extern "C" {
#endif
/* Includes ------------------------------------------------------------------*/
#include "stm32f7xx_hal.h"
/** @addtogroup BSP
* @{
*/
/** @addtogroup STM32F769I_EVAL
* @{
*/
/** @addtogroup STM32F769I_EVAL_NOR
* @{
*/
/** @defgroup STM32F769I_EVAL_NOR_Exported_Types NOR Exported Types
* @{
*/
/**
* @}
*/
/**
* @brief NOR status structure definition
*/
#define NOR_STATUS_OK ((uint8_t)0x00)
#define NOR_STATUS_ERROR ((uint8_t)0x01)
/** @defgroup STM32F769I_EVAL_NOR_Exported_Constants NOR Exported Constants
* @{
*/
#define NOR_DEVICE_ADDR ((uint32_t)0x60000000)
/* #define NOR_MEMORY_WIDTH FMC_NORSRAM_MEM_BUS_WIDTH_8 */
#define NOR_MEMORY_WIDTH FMC_NORSRAM_MEM_BUS_WIDTH_16
#define NOR_BURSTACCESS FMC_BURST_ACCESS_MODE_DISABLE
/* #define NOR_BURSTACCESS FMC_BURST_ACCESS_MODE_ENABLE*/
#define NOR_WRITEBURST FMC_WRITE_BURST_DISABLE
/* #define NOR_WRITEBURST FMC_WRITE_BURST_ENABLE */
#define CONTINUOUSCLOCK_FEATURE FMC_CONTINUOUS_CLOCK_SYNC_ONLY
/* #define CONTINUOUSCLOCK_FEATURE FMC_CONTINUOUS_CLOCK_SYNC_ASYNC */
/* NOR operations Timeout definitions */
#define BLOCKERASE_TIMEOUT ((uint32_t)0x00A00000) /* NOR block erase timeout */
#define CHIPERASE_TIMEOUT ((uint32_t)0x30000000) /* NOR chip erase timeout */
#define PROGRAM_TIMEOUT ((uint32_t)0x00004400) /* NOR program timeout */
/* NOR Ready/Busy signal GPIO definitions */
#define NOR_READY_BUSY_PIN GPIO_PIN_6
#define NOR_READY_BUSY_GPIO GPIOC
#define NOR_READY_STATE GPIO_PIN_SET
#define NOR_BUSY_STATE GPIO_PIN_RESET
/**
* @}
*/
/** @defgroup STM32F769I_EVAL_NOR_Exported_Macro NOR Exported Macro
* @{
*/
/**
* @}
*/
/** @defgroup STM32F769I_EVAL_NOR_Exported_Functions NOR Exported Functions
* @{
*/
uint8_t BSP_NOR_Init(void);
uint8_t BSP_NOR_DeInit(void);
uint8_t BSP_NOR_ReadData(uint32_t uwStartAddress, uint16_t *pData, uint32_t uwDataSize);
uint8_t BSP_NOR_WriteData(uint32_t uwStartAddress, uint16_t *pData, uint32_t uwDataSize);
uint8_t BSP_NOR_ProgramData(uint32_t uwStartAddress, uint16_t *pData, uint32_t uwDataSize);
uint8_t BSP_NOR_Erase_Block(uint32_t BlockAddress);
uint8_t BSP_NOR_Erase_Chip(void);
uint8_t BSP_NOR_Read_ID(NOR_IDTypeDef *pNOR_ID);
void BSP_NOR_ReturnToReadMode(void);
/* These functions can be modified in case the current settings (e.g. DMA stream)
need to be changed for specific application needs */
void BSP_NOR_MspInit(NOR_HandleTypeDef *hnor, void *Params);
void BSP_NOR_MspDeInit(NOR_HandleTypeDef *hnor, void *Params);
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
#ifdef __cplusplus
}
#endif
#endif /* __STM32F769I_EVAL_NOR_H */