ELIOT1 HAL
Загрузка...
Поиск...
Не найдено
hal_flash.h
См. документацию.
1
22#ifndef HAL_FLASH_H
23#define HAL_FLASH_H
24
25#include "hal_common.h"
26
27#if defined(__cplusplus)
28extern "C" {
29#endif /* __cplusplus */
30
31#define FCTR_IRQ_STS_SET_RESULT_FLAGS \
32 (FCTR_IRQ_STATUS_SET_READ_OVERFLOW_IRQ_STS_SET_Msk \
33 | FCTR_IRQ_STATUS_SET_CMD_REJECT_IRQ_STS_SET_Msk \
34 | FCTR_IRQ_STATUS_SET_CMD_FAIL_IRQ_STS_SET_Msk \
35 | FCTR_IRQ_STATUS_SET_CMD_SUCCESS_IRQ_STS_SET_Msk)
37#define FCTR_IRQ_STS_CLR_SUCCESS_FLAGS \
38 (FCTR_IRQ_STATUS_CLR_CMD_SUCCESS_IRQ_STS_CLR_Msk \
39 | FCTR_IRQ_STATUS_CLR_CMD_ACCEPT_IRQ_STS_CLR_Msk)
45#define FCTR_CMD_READ (0x1)
46#define FCTR_CMD_WRITE (0x2)
47#define FCTR_CMD_ROW_WRITE (0x3)
48#define FCTR_CMD_ERASE (0x4)
49#define FCTR_CMD_MASS_ERASE (0x7)
66
71 FLASH_MainRegion = FLASH_BASE_ADDR,
72 FLASH_SystemRegion = FLASH_BASE_ADDR
73 + FLASH_SYSTEM_REGION_OFFSET,
74};
75
93#define FLASH_TEST_ADDRESSES(address, length) \
94 ( \
95 /* Проверка на выравнивание по слову. */\
96 ((address & FLASH_WORD_ALIGN_Msk) > 0x0U) \
97 || ( \
98 /* Проверка на выравнивание по странице. */\
99 ((length & FLASH_PAGE_ALIGN_Msk) == 0x0U) \
100 && ( \
101 ( \
102 (((address + length) & \
103 FLASH_PAGE_ALIGN_Msk) > 0x0U) \
104 && ((address & FLASH_PAGE_ALIGN_Msk) == 0x0U) \
105 ) \
106 || ((address & FLASH_PAGE_ALIGN_Msk) > 0x0U) \
107 ) \
108 ) \
109 ) ? FLASH_Status_AddressAlignmentError : \
110 ( \
111 ( \
112 /* Проверка попадания в основной раздел. */\
113 (address >= FLASH_BASE_ADDR) \
114 && ((address + length) \
115 <= FLASH_BASE_ADDR + FLASH_MAIN_REGION_SIZE_IN_BYTE) \
116 ) ? FLASH_Status_Ok : \
117 ( \
118 ( \
119 /* Проверка попадания в системный раздел. */\
120 (address >= FLASH_BASE_ADDR \
121 + FLASH_SYSTEM_REGION_OFFSET) \
122 && ((address + length) <= FLASH_BASE_ADDR \
123 + FLASH_SYSTEM_REGION_OFFSET \
124 + FLASH_SYSTEM_REGION_SIZE_IN_BYTE) \
125 ) ? FLASH_Status_Ok : FLASH_Status_AddressOutOfRange \
126 ) \
127 )
128
137enum flash_status FLASH_Init(FCTR_Type *base);
138
155enum flash_status FLASH_WriteWord(FCTR_Type *base, uint32_t addr,
156 uint32_t data);
157
178enum flash_status FLASH_Program(FCTR_Type *base, uint32_t *addr, uint32_t *src,
179 uint32_t length);
180
204enum flash_status FLASH_VerifyProgram(uint32_t *addr, uint32_t length,
205 uint32_t *expected_data, uint32_t *failed_address, uint32_t *failed_data);
206
224enum flash_status FLASH_Erase(FCTR_Type *base, uint32_t *addr,
225 uint32_t length);
226
236enum flash_status FLASH_MassErase(FCTR_Type *base, enum flash_region region);
237
256enum flash_status FLASH_VerifyErase(uint32_t *addr, uint32_t length);
257
279enum flash_status FLASH_Read(uint32_t *addr, uint32_t *dest, uint32_t length);
280
285#if defined(__cplusplus)
286}
287#endif /* __cplusplus */
288
289#endif /* HAL_FLASH_H */
290
enum flash_status FLASH_Init(FCTR_Type *base)
Инициализация накристалльной FLASH-памяти.
enum flash_status FLASH_WriteWord(FCTR_Type *base, uint32_t addr, uint32_t data)
Запись 32-битного слова во встроенную FLASH-память.
enum flash_status FLASH_Program(FCTR_Type *base, uint32_t *addr, uint32_t *src, uint32_t length)
Запись данных во встроенную FLASH-память.
enum flash_status FLASH_Erase(FCTR_Type *base, uint32_t *addr, uint32_t length)
Стирание сектора накристалльной FLASH-памяти.
enum flash_status FLASH_Read(uint32_t *addr, uint32_t *dest, uint32_t length)
Чтение данных из накристалльной FLASH-памяти.
enum flash_status FLASH_MassErase(FCTR_Type *base, enum flash_region region)
Стирание раздела накристалльной FLASH-памяти.
enum flash_status FLASH_VerifyProgram(uint32_t *addr, uint32_t length, uint32_t *expected_data, uint32_t *failed_address, uint32_t *failed_data)
Проверка корректности данных, записанных во внутреннюю FLASH-память.
enum flash_status FLASH_VerifyErase(uint32_t *addr, uint32_t length)
Проверка корректности стирания данных накристалльной FLASH-памяти.
flash_status
Статусы драйвера модуля FLASH.
Definition hal_flash.h:57
flash_region
Регионы накристалльной FLASH-памяти.
Definition hal_flash.h:70
@ FLASH_Status_ConfigureError
Definition hal_flash.h:62
@ FLASH_Status_CheckError
Definition hal_flash.h:60
@ FLASH_Status_VerifyError
Definition hal_flash.h:61
@ FLASH_Status_AddressAlignmentError
Definition hal_flash.h:63
@ FLASH_Status_AddressOutOfRange
Definition hal_flash.h:64
@ FLASH_Status_Ok
Definition hal_flash.h:58
@ FLASH_Status_InvalidArgument
Definition hal_flash.h:59
@ FLASH_MainRegion
Definition hal_flash.h:71
@ FLASH_SystemRegion
Definition hal_flash.h:72