VSF Documented
flash_template.inc
Go to the documentation of this file.
1/*****************************************************************************
2 * Copyright(C)2009-2022 by VSF Team *
3 * *
4 * Licensed under the Apache License, Version 2.0 (the "License"); *
5 * you may not use this file except in compliance with the License. *
6 * You may obtain a copy of the License at *
7 * *
8 * http://www.apache.org/licenses/LICENSE-2.0 *
9 * *
10 * Unless required by applicable law or agreed to in writing, software *
11 * distributed under the License is distributed on an "AS IS" BASIS, *
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13 * See the License for the specific language governing permissions and *
14 * limitations under the License. *
15 * *
16 ****************************************************************************/
17
18#if VSF_HAL_USE_FLASH == ENABLED
19
20/*============================ INCLUDES ======================================*/
21
22/*============================ MACROS ========================================*/
23
24#define vsf_real_flash_t VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_t)
25#define vsf_real_flash_capability VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_capability)
26#define vsf_real_flash_get_configuration VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_get_configuration)
27#define vsf_real_flash_erase_all VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_erase_all)
28#define vsf_real_flash_erase_one_sector VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_erase_one_sector)
29#define vsf_real_flash_erase_multi_sector VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_erase_multi_sector)
30#define vsf_real_flash_write_one_sector VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_write_one_sector)
31#define vsf_real_flash_write_multi_sector VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_write_multi_sector)
32#define vsf_real_flash_read_one_sector VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_read_one_sector)
33#define vsf_real_flash_read_multi_sector VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_read_multi_sector)
34
35#ifndef VSF_FLASH_CFG_REIMPLEMENT_API_GET_CONFIGURATION
36# define VSF_FLASH_CFG_REIMPLEMENT_API_GET_CONFIGURATION DISABLED
37#endif
38
39#ifndef VSF_FLASH_CFG_REIMPLEMENT_API_CAPABILITY
40# define VSF_FLASH_CFG_REIMPLEMENT_API_CAPABILITY DISABLED
41#endif
42
43#ifdef VSF_FLASH_CFG_IMP_REMAP_PREFIX
44# undef VSF_FLASH_CFG_REIMPLEMENT_API_CAPABILITY
45# define VSF_FLASH_CFG_REIMPLEMENT_API_CAPABILITY ENABLED
46# undef VSF_FLASH_CFG_REIMPLEMENT_API_GET_CONFIGURATION
47# define VSF_FLASH_CFG_REIMPLEMENT_API_GET_CONFIGURATION ENABLED
48#endif
49
50#if VSF_FLASH_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
51# ifndef VSF_FLASH_CFG_CAPABILITY_IRQ_MASK
52# define VSF_FLASH_CFG_CAPABILITY_IRQ_MASK VSF_FLASH_IRQ_ALL_BITS_MASK
53# endif
54# ifndef VSF_FLASH_CFG_CAPABILITY_BASE_ADDRESS
55# define VSF_FLASH_CFG_CAPABILITY_BASE_ADDRESS 0
56# endif
57# ifndef VSF_FLASH_CFG_CAPABILITY_MAX_SIZE
58# error "Please define flash size macro 'VSF_FLASH_CFG_CAPABILITY_MAX_SIZE' in source files"
59# endif
60# ifndef VSF_FLASH_CFG_CAPABILITY_ERASE_SECTORE_SIZE
61# define VSF_FLASH_CFG_CAPABILITY_ERASE_SECTORE_SIZE 4096
62# endif
63# ifndef VSF_FLASH_CFG_CAPABILITY_WRITE_SECTORE_SIZE
64# define VSF_FLASH_CFG_CAPABILITY_WRITE_SECTORE_SIZE 512
65# endif
66# ifndef VSF_FLASH_CFG_CAPABILITY_NONE_SECTOR_ALIGNED_WRITE
67# define VSF_FLASH_CFG_CAPABILITY_NONE_SECTOR_ALIGNED_WRITE 0
68# endif
69# ifndef VSF_FLASH_CFG_CAPABILITY_NONE_SECTOR_ALIGNED_READ
70# define VSF_FLASH_CFG_CAPABILITY_NONE_SECTOR_ALIGNED_READ 1
71# endif
72#endif
73
74/*============================ MACROFIED FUNCTIONS ===========================*/
75/*============================ TYPES =========================================*/
76/*============================ GLOBAL VARIABLES ==============================*/
77/*============================ LOCAL VARIABLES ===============================*/
78/*============================ PROTOTYPES ====================================*/
79/*============================ IMPLEMENTATION ================================*/
80
81#if VSF_FLASH_CFG_REIMPLEMENT_API_CAPABILITY == DISABLED
82vsf_flash_capability_t vsf_real_flash_capability(vsf_real_flash_t *flash_ptr)
83{
84 vsf_flash_capability_t flash_capability = {
85 .irq_mask = VSF_FLASH_CFG_CAPABILITY_IRQ_MASK,
86 .base_address = VSF_FLASH_CFG_CAPABILITY_BASE_ADDRESS,
87 .max_size = VSF_FLASH_CFG_CAPABILITY_MAX_SIZE,
88 .erase_sector_size = VSF_FLASH_CFG_CAPABILITY_ERASE_SECTORE_SIZE,
89 .write_sector_size = VSF_FLASH_CFG_CAPABILITY_WRITE_SECTORE_SIZE,
90 .none_sector_aligned_write = VSF_FLASH_CFG_CAPABILITY_NONE_SECTOR_ALIGNED_WRITE,
91 .none_sector_aligned_read = VSF_FLASH_CFG_CAPABILITY_NONE_SECTOR_ALIGNED_READ,
92 };
93
94 VSF_ASSERT(flash_capability.erase_sector_size >= flash_capability.write_sector_size);
95
96 return flash_capability;
97}
98#endif
99
100#if VSF_FLASH_CFG_REIMPLEMENT_API_GET_CONFIGURATION == DISABLED
101vsf_err_t vsf_real_flash_get_configuration(vsf_real_flash_t *flash_ptr, vsf_flash_cfg_t *cfg_ptr)
102{
103 VSF_HAL_ASSERT(NULL != flash_ptr);
104 VSF_HAL_ASSERT(NULL != cfg_ptr);
105
106 // Default implementation: not supported, trigger assertion
108
109 return VSF_ERR_NOT_SUPPORT;
110}
111#endif
112
113#if VSF_FLASH_CFG_ERASE_ONE_SECTOR_TEMPLATE == ENABLED
114vsf_err_t vsf_real_flash_erase_one_sector(vsf_real_flash_t *real_flash_ptr, vsf_flash_size_t offset)
115{
116 VSF_ASSERT(real_flash_ptr != 0);
117
118 vsf_flash_capability_t flash_capability = vsf_real_flash_capability(real_flash_ptr);
119
120 VSF_ASSERT((offset % flash_capability.erase_sector_size) == 0);
121 VSF_ASSERT(flash_capability.erase_sector_size != 0);
122
123 return vsf_real_flash_erase_multi_sector(real_flash_ptr, offset, flash_capability.erase_sector_size);
124}
125#endif
126
127#if VSF_FLASH_CFG_ERASE_MULTI_SECTOR_TEMPLATE == ENABLED
128# error not supported yet
129#endif
130
131#if VSF_FLASH_CFG_ERASE_ALL_TEMPLATE == ENABLED
132vsf_err_t vsf_real_flash_erase_all(vsf_real_flash_t *real_flash_ptr)
133{
134 VSF_ASSERT(real_flash_ptr != 0);
135
136 vsf_flash_capability_t flash_capability = vsf_real_flash_capability(real_flash_ptr);
137 VSF_ASSERT(flash_capability.erase_sector_size > 0);
138 VSF_ASSERT(flash_capability.erase_sector_size >= flash_capability.write_sector_size);
139 VSF_ASSERT(flash_capability.max_size >= flash_capability.erase_sector_size);
140
141 return vsf_real_flash_erase_multi_sector(real_flash_ptr, 0, flash_capability.max_size);
142}
143#endif
144
145#if VSF_FLASH_CFG_WRITE_ONE_SECTOR_TEMPLATE == ENABLED
146vsf_err_t vsf_real_flash_write_one_sector(vsf_real_flash_t *real_flash_ptr, vsf_flash_size_t offset, uint8_t* buffer, vsf_flash_size_t size)
147{
148 VSF_ASSERT(real_flash_ptr != 0);
149
150 vsf_flash_capability_t flash_capability = vsf_real_flash_capability(real_flash_ptr);
151 VSF_ASSERT(size <= flash_capability.write_sector_size);
152 VSF_ASSERT(flash_capability.none_sector_aligned_write || ((offset % flash_capability.write_sector_size) == 0));
153
154 return vsf_real_flash_write_multi_sector(real_flash_ptr, offset, buffer, size);
155}
156#endif
157
158#if VSF_FLASH_CFG_WRITE_MULTI_SECTOR_TEMPLATE == ENABLED
159# error not supported yet
160#endif
161
162#if VSF_FLASH_CFG_READ_ONE_SECTOR_TEMPLATE == ENABLED
163vsf_err_t vsf_real_flash_read_one_sector(vsf_real_flash_t *real_flash_ptr, vsf_flash_size_t offset, uint8_t* buffer, vsf_flash_size_t size)
164{
165 VSF_ASSERT(real_flash_ptr != 0);
166
167 vsf_flash_capability_t flash_capability = vsf_real_flash_capability(real_flash_ptr);
168 VSF_ASSERT(size <= flash_capability.write_sector_size);
169 VSF_ASSERT(flash_capability.none_sector_aligned_read || ((offset % flash_capability.write_sector_size) == 0));
170
171 return vsf_real_flash_read_multi_sector(real_flash_ptr, offset, buffer, size);
172}
173#endif
174
175#if VSF_FLASH_CFG_READ_MULTI_SECTOR_TEMPLATE == ENABLED
176# error not supported yet
177#endif
178
179/*============================ MACROS ========================================*/
180
181#undef VSF_FLASH_CFG_REIMPLEMENT_API_CAPABILITY
182#undef VSF_FLASH_CFG_REIMPLEMENT_API_GET_CONFIGURATION
183#undef VSF_FLASH_CFG_CAPABILITY_IRQ_MASK
184#undef VSF_FLASH_CFG_CAPABILITY_BASE_ADDRESS
185#undef VSF_FLASH_CFG_CAPABILITY_MAX_SIZE
186#undef VSF_FLASH_CFG_CAPABILITY_ERASE_SECTORE_SIZE
187#undef VSF_FLASH_CFG_CAPABILITY_WRITE_SECTORE_SIZE
188#undef VSF_FLASH_CFG_CAPABILITY_NONE_SECTOR_ALIGNED_WRITE
189#undef VSF_FLASH_CFG_CAPABILITY_NONE_SECTOR_ALIGNED_READ
190
191#undef vsf_real_flash_t
192#undef vsf_real_flash_erase_all
193#undef vsf_real_flash_erase_one_sector
194#undef vsf_real_flash_erase_multi_sector
195#undef vsf_real_flash_write_one_sector
196#undef vsf_real_flash_write_multi_sector
197#undef vsf_real_flash_read_one_sector
198#undef vsf_real_flash_read_multi_sector
199#undef vsf_real_flash_capability
200#undef vsf_real_flash_get_configuration
201
202/*============================ MACROS ========================================*/
203
204#ifdef VSF_FLASH_CFG_IMP_REMAP_PREFIX
205# define vsf_imp_flash_t VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_t)
206# define vsf_imp_flash_init VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_init)
207# define vsf_imp_flash_fini VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_fini)
208# define vsf_imp_flash_enable VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_enable)
209# define vsf_imp_flash_disable VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_disable)
210# define vsf_imp_flash_capability VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_capability)
211# define vsf_imp_flash_status VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_status)
212# define vsf_imp_flash_irq_enable VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_irq_enable)
213# define vsf_imp_flash_irq_disable VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_irq_disable)
214# define vsf_imp_flash_erase_one_sector VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_erase_one_sector)
215# define vsf_imp_flash_erase_multi_sector VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_erase_multi_sector)
216# define vsf_imp_flash_erase VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_erase_multi_sector)
217# define vsf_imp_flash_erase_all VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_erase_all)
218# define vsf_imp_flash_write_one_sector VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_write_one_sector)
219# define vsf_imp_flash_write_multi_sector VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_write_multi_sector)
220# define vsf_imp_flash_write VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_write_multi_sector)
221# define vsf_imp_flash_read_one_sector VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_read_one_sector)
222# define vsf_imp_flash_read_multi_sector VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_read_multi_sector)
223# define vsf_imp_flash_read VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_read_multi_sector)
224# define vsf_imp_flash_get_configuration VSF_MCONNECT(VSF_FLASH_CFG_IMP_PREFIX, _flash_get_configuration)
225
226# define vsf_remap_flash_t VSF_MCONNECT(VSF_FLASH_CFG_IMP_REMAP_PREFIX, _flash_t)
227# define vsf_remap_flash_init VSF_MCONNECT(VSF_FLASH_CFG_IMP_REMAP_PREFIX, _flash_init)
228# define vsf_remap_flash_fini VSF_MCONNECT(VSF_FLASH_CFG_IMP_REMAP_PREFIX, _flash_fini)
229# define vsf_remap_flash_enable VSF_MCONNECT(VSF_FLASH_CFG_IMP_REMAP_PREFIX, _flash_enable)
230# define vsf_remap_flash_disable VSF_MCONNECT(VSF_FLASH_CFG_IMP_REMAP_PREFIX, _flash_disable)
231# define vsf_remap_flash_capability VSF_MCONNECT(VSF_FLASH_CFG_IMP_REMAP_PREFIX, _flash_capability)
232# define vsf_remap_flash_status VSF_MCONNECT(VSF_FLASH_CFG_IMP_REMAP_PREFIX, _flash_status)
233# define vsf_remap_flash_irq_enable VSF_MCONNECT(VSF_FLASH_CFG_IMP_REMAP_PREFIX, _flash_irq_enable)
234# define vsf_remap_flash_irq_disable VSF_MCONNECT(VSF_FLASH_CFG_IMP_REMAP_PREFIX, _flash_irq_disable)
235# define vsf_remap_flash_erase_one_sector VSF_MCONNECT(VSF_FLASH_CFG_IMP_REMAP_PREFIX, _flash_erase_one_sector)
236# define vsf_remap_flash_erase_multi_sector VSF_MCONNECT(VSF_FLASH_CFG_IMP_REMAP_PREFIX, _flash_erase_multi_sector)
237# define vsf_remap_flash_erase VSF_MCONNECT(VSF_FLASH_CFG_IMP_REMAP_PREFIX, _flash_erase_multi_sector)
238# define vsf_remap_flash_erase_all VSF_MCONNECT(VSF_FLASH_CFG_IMP_REMAP_PREFIX, _flash_erase_all)
239# define vsf_remap_flash_write_one_sector VSF_MCONNECT(VSF_FLASH_CFG_IMP_REMAP_PREFIX, _flash_write_one_sector)
240# define vsf_remap_flash_write_multi_sector VSF_MCONNECT(VSF_FLASH_CFG_IMP_REMAP_PREFIX, _flash_write_multi_sector)
241# define vsf_remap_flash_write VSF_MCONNECT(VSF_FLASH_CFG_IMP_REMAP_PREFIX, _flash_write_multi_sector)
242# define vsf_remap_flash_read_one_sector VSF_MCONNECT(VSF_FLASH_CFG_IMP_REMAP_PREFIX, _flash_read_one_sector)
243# define vsf_remap_flash_read_multi_sector VSF_MCONNECT(VSF_FLASH_CFG_IMP_REMAP_PREFIX, _flash_read_multi_sector)
244# define vsf_remap_flash_read VSF_MCONNECT(VSF_FLASH_CFG_IMP_REMAP_PREFIX, _flash_read_multi_sector)
245# define vsf_remap_flash_get_configuration VSF_MCONNECT(VSF_FLASH_CFG_IMP_REMAP_PREFIX, _flash_get_configuration)
246
247# define VSF_FLASH_CFG_IMP_REMAP_FUNCTIONS \
248 vsf_err_t vsf_imp_flash_init(vsf_imp_flash_t *flash_ptr, vsf_flash_cfg_t *cfg_ptr) \
249 { \
250 VSF_HAL_ASSERT(flash_ptr != NULL); \
251 return vsf_remap_flash_init((vsf_remap_flash_t *)flash_ptr, cfg_ptr); \
252 } \
253 void vsf_imp_flash_fini(vsf_imp_flash_t *flash_ptr) \
254 { \
255 VSF_HAL_ASSERT(flash_ptr != NULL); \
256 vsf_remap_flash_fini((vsf_remap_flash_t *)flash_ptr); \
257 } \
258 fsm_rt_t vsf_imp_flash_enable(vsf_imp_flash_t *flash_ptr) \
259 { \
260 VSF_HAL_ASSERT(flash_ptr != NULL); \
261 return vsf_remap_flash_enable((vsf_remap_flash_t *)flash_ptr); \
262 } \
263 fsm_rt_t vsf_imp_flash_disable(vsf_imp_flash_t *flash_ptr) \
264 { \
265 VSF_HAL_ASSERT(flash_ptr != NULL); \
266 return vsf_remap_flash_disable((vsf_remap_flash_t *)flash_ptr); \
267 } \
268 void vsf_imp_flash_irq_enable(vsf_imp_flash_t *flash_ptr, vsf_flash_irq_mask_t irq_mask) \
269 { \
270 VSF_HAL_ASSERT(flash_ptr != NULL); \
271 vsf_remap_flash_irq_enable((vsf_remap_flash_t *)flash_ptr, irq_mask); \
272 } \
273 void vsf_imp_flash_irq_disable(vsf_imp_flash_t *flash_ptr, vsf_flash_irq_mask_t irq_mask) \
274 { \
275 VSF_HAL_ASSERT(flash_ptr != NULL); \
276 vsf_remap_flash_irq_disable((vsf_remap_flash_t *)flash_ptr, irq_mask); \
277 } \
278 vsf_flash_status_t vsf_imp_flash_status(vsf_imp_flash_t *flash_ptr) \
279 { \
280 VSF_HAL_ASSERT(flash_ptr != NULL); \
281 return vsf_remap_flash_status((vsf_remap_flash_t *)flash_ptr); \
282 } \
283 vsf_flash_capability_t vsf_imp_flash_capability(vsf_imp_flash_t *flash_ptr) \
284 { \
285 VSF_HAL_ASSERT(flash_ptr != NULL); \
286 return vsf_remap_flash_capability((vsf_remap_flash_t *)flash_ptr); \
287 } \
288 vsf_err_t vsf_imp_flash_erase_one_sector(vsf_imp_flash_t *flash_ptr, uint_fast32_t offset) \
289 { \
290 VSF_HAL_ASSERT(flash_ptr != NULL); \
291 return vsf_remap_flash_erase_one_sector((vsf_remap_flash_t *)flash_ptr, offset); \
292 } \
293 vsf_err_t vsf_imp_flash_erase_multi_sector(vsf_imp_flash_t *flash_ptr, uint_fast32_t offset, uint_fast32_t size) \
294 { \
295 VSF_HAL_ASSERT(flash_ptr != NULL); \
296 return vsf_remap_flash_erase_multi_sector((vsf_remap_flash_t *)flash_ptr, offset, size); \
297 } \
298 vsf_err_t vsf_imp_flash_erase_all(vsf_imp_flash_t *flash_ptr) \
299 { \
300 VSF_HAL_ASSERT(flash_ptr != NULL); \
301 return vsf_remap_flash_erase_all((vsf_remap_flash_t *)flash_ptr); \
302 } \
303 vsf_err_t vsf_imp_flash_write_one_sector(vsf_imp_flash_t *flash_ptr, uint_fast32_t offset, uint8_t* buffer, uint_fast32_t size) \
304 { \
305 VSF_HAL_ASSERT(flash_ptr != NULL); \
306 return vsf_remap_flash_write_one_sector((vsf_remap_flash_t *)flash_ptr, offset, buffer, size); \
307 } \
308 vsf_err_t vsf_imp_flash_write_multi_sector(vsf_imp_flash_t *flash_ptr, uint_fast32_t offset, uint8_t* buffer, uint_fast32_t size) \
309 { \
310 VSF_HAL_ASSERT(flash_ptr != NULL); \
311 return vsf_remap_flash_write_multi_sector((vsf_remap_flash_t *)flash_ptr, offset, buffer, size); \
312 } \
313 vsf_err_t vsf_imp_flash_read_one_sector(vsf_imp_flash_t *flash_ptr, uint_fast32_t offset, uint8_t* buffer, uint_fast32_t size) \
314 { \
315 VSF_HAL_ASSERT(flash_ptr != NULL); \
316 return vsf_remap_flash_read_one_sector((vsf_remap_flash_t *)flash_ptr, offset, buffer, size); \
317 } \
318 vsf_err_t vsf_imp_flash_read_multi_sector(vsf_imp_flash_t *flash_ptr, uint_fast32_t offset, uint8_t* buffer, uint_fast32_t size) \
319 { \
320 VSF_HAL_ASSERT(flash_ptr != NULL); \
321 return vsf_remap_flash_read_multi_sector((vsf_remap_flash_t *)flash_ptr, offset, buffer, size); \
322 } \
323 \
324 vsf_err_t vsf_imp_flash_get_configuration(vsf_imp_flash_t *flash_ptr, vsf_flash_cfg_t *cfg_ptr) \
325 { \
326 VSF_HAL_ASSERT(flash_ptr != NULL); \
327 return vsf_remap_flash_get_configuration((vsf_remap_flash_t *)flash_ptr, cfg_ptr); \
328 }
329#endif
330
331/*============================ GLOBAL VARIABLES ==============================*/
332
333#define VSF_HAL_TEMPLATE_IMP_NAME _flash
334#define VSF_HAL_TEMPLATE_IMP_UPCASE_NAME _FLASH
335
336#if !defined(VSF_FLASH_CFG_IMP_PREFIX) && !defined(VSF_FLASH_CFG_IMP_DEVICE_PREFIX)
337# error "Please define VSF_FLASH_CFG_IMP_PREFIX in flash driver"
338#endif
339
340#if !defined(VSF_FLASH_CFG_IMP_UPCASE_PREFIX) && !defined(VSF_FLASH_CFG_IMP_DEVICE_UPCASE_PREFIX)
341# error "Please define VSF_FLASH_CFG_IMP_UPCASE_PREFIX in flash driver"
342#endif
343
344#ifndef VSF_FLASH_CFG_IMP_COUNT_MASK_PREFIX
345# define VSF_FLASH_CFG_IMP_COUNT_MASK_PREFIX VSF_FLASH_CFG_IMP_UPCASE_PREFIX
346#endif
347
348#ifdef VSF_FLASH_CFG_IMP_REMAP_FUNCTIONS
349# define VSF_HAL_CFG_IMP_REMAP_FUNCTIONS VSF_FLASH_CFG_IMP_REMAP_FUNCTIONS
350#endif
351
353
354#undef VSF_FLASH_CFG_IMP_PREFIX
355#undef VSF_FLASH_CFG_IMP_COUNT_MASK_PREFIX
356#undef VSF_FLASH_CFG_IMP_UPCASE_PREFIX
357#undef VSF_FLASH_CFG_IMP_DEVICE_PREFIX
358#undef VSF_FLASH_CFG_IMP_DEVICE_UPCASE_PREFIX
359#undef VSF_FLASH_CFG_IMP_LV0
360#undef VSF_FLASH_CFG_IMP_REMAP_FUNCTIONS
361#undef VSF_FLASH_CFG_IMP_HAS_OP
362#undef VSF_FLASH_CFG_IMP_EXTERN_OP
363
364#undef vsf_imp_flash_t
365#undef vsf_imp_flash_init
366#undef vsf_imp_flash_fini
367#undef vsf_imp_flash_enable
368#undef vsf_imp_flash_disable
369#undef vsf_imp_flash_capability
370#undef vsf_imp_flash_status
371#undef vsf_imp_flash_irq_enable
372#undef vsf_imp_flash_irq_disable
373#undef vsf_imp_flash_erase_one_sector
374#undef vsf_imp_flash_erase_multi_sector
375#undef vsf_imp_flash_erase
376#undef vsf_imp_flash_erase_all
377#undef vsf_imp_flash_write_one_sector
378#undef vsf_imp_flash_write_multi_sector
379#undef vsf_imp_flash_write
380#undef vsf_imp_flash_read_one_sector
381#undef vsf_imp_flash_read_multi_sector
382#undef vsf_imp_flash_read
383#undef vsf_imp_flash_get_configuration
384
385#undef vsf_remap_flash_t
386#undef vsf_remap_flash_init
387#undef vsf_remap_flash_fini
388#undef vsf_remap_flash_enable
389#undef vsf_remap_flash_disable
390#undef vsf_remap_flash_capability
391#undef vsf_remap_flash_status
392#undef vsf_remap_flash_irq_enable
393#undef vsf_remap_flash_irq_disable
394#undef vsf_remap_flash_erase_one_sector
395#undef vsf_remap_flash_erase_multi_sector
396#undef vsf_remap_flash_erase
397#undef vsf_remap_flash_erase_all
398#undef vsf_remap_flash_write_one_sector
399#undef vsf_remap_flash_write_multi_sector
400#undef vsf_remap_flash_write
401#undef vsf_remap_flash_read_one_sector
402#undef vsf_remap_flash_read_multi_sector
403#undef vsf_remap_flash_read
404#undef vsf_remap_flash_get_configuration
405
406#endif /* VSF_HAL_USE_FLASH */
vsf_err_t
Definition __type.h:42
@ VSF_ERR_NOT_SUPPORT
function not supported
Definition __type.h:46
#define NULL
Definition lvgl.h:26
unsigned char uint8_t
Definition stdint.h:5
Definition vsf_template_flash.h:263
vsf_flash_size_t max_size
Definition vsf_template_flash.h:270
uint8_t none_sector_aligned_read
Definition vsf_template_flash.h:276
vsf_flash_size_t write_sector_size
Definition vsf_template_flash.h:272
vsf_flash_size_t base_address
Definition vsf_template_flash.h:269
vsf_flash_size_t erase_sector_size
Definition vsf_template_flash.h:271
uint8_t none_sector_aligned_write
Definition vsf_template_flash.h:275
Definition vsf_template_flash.h:239
#define VSF_HAL_ASSERT(__CON)
all hal modules use this configuration file
Definition vsf_hal_cfg.h:36
uint64_t offset
Definition vsf_memfs.h:49
uint32_t size
Definition vsf_memfs.h:50
uint_fast32_t vsf_flash_size_t
Definition vsf_template_flash.h:220
#define VSF_ASSERT(...)
Definition vsf_usr_cfg.h:1
Generated from commit: vsfteam/vsf@74aa6ce