aboutsummaryrefslogtreecommitdiff
path: root/lib/chibios/os/hal/ports/STM32/STM32F1xx/hal_efl_lld.h
diff options
context:
space:
mode:
authorAkshay <[email protected]>2022-04-10 12:13:40 +0100
committerAkshay <[email protected]>2022-04-10 12:13:40 +0100
commitdc90387ce7d8ba7b607d9c48540bf6d8b560f14d (patch)
tree4ccb8fa5886b66fa9d480edef74236c27f035e16 /lib/chibios/os/hal/ports/STM32/STM32F1xx/hal_efl_lld.h
Diffstat (limited to 'lib/chibios/os/hal/ports/STM32/STM32F1xx/hal_efl_lld.h')
-rw-r--r--lib/chibios/os/hal/ports/STM32/STM32F1xx/hal_efl_lld.h120
1 files changed, 120 insertions, 0 deletions
diff --git a/lib/chibios/os/hal/ports/STM32/STM32F1xx/hal_efl_lld.h b/lib/chibios/os/hal/ports/STM32/STM32F1xx/hal_efl_lld.h
new file mode 100644
index 000000000..8b3d74128
--- /dev/null
+++ b/lib/chibios/os/hal/ports/STM32/STM32F1xx/hal_efl_lld.h
@@ -0,0 +1,120 @@
1/*
2 ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio
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 * @file hal_efl_lld.h
19 * @brief STM32F1xx Embedded Flash subsystem low level driver header.
20 *
21 * @addtogroup HAL_EFL
22 * @{
23 */
24
25#ifndef HAL_EFL_LLD_H
26#define HAL_EFL_LLD_H
27
28#if (HAL_USE_EFL == TRUE) || defined(__DOXYGEN__)
29
30/*===========================================================================*/
31/* Driver constants. */
32/*===========================================================================*/
33
34/*===========================================================================*/
35/* Driver pre-compile time settings. */
36/*===========================================================================*/
37
38/**
39 * @name STM32F1xx configuration options
40 * @{
41 */
42/**
43 * @brief Suggested wait time during erase operations polling.
44 */
45#if !defined(STM32_FLASH_WAIT_TIME_MS) || defined(__DOXYGEN__)
46#define STM32_FLASH_WAIT_TIME_MS 1
47#endif
48/** @} */
49
50/*===========================================================================*/
51/* Derived constants and error checks. */
52/*===========================================================================*/
53
54#if !defined(STM32_FLASH_SECTOR_SIZE)
55#error "STM32_FLASH_SECTOR_SIZE not defined in registry"
56#endif
57
58#if !defined(STM32_FLASH_NUMBER_OF_BANKS)
59#error "STM32_FLASH_NUMBER_OF_BANKS not defined in registry"
60#endif
61
62#if !defined(STM32_FLASH_SECTORS_PER_BANK)
63#error "STM32_FLASH_SECTORS_PER_BANK not defined in registry"
64#endif
65
66/*===========================================================================*/
67/* Driver data structures and types. */
68/*===========================================================================*/
69
70/*===========================================================================*/
71/* Driver macros. */
72/*===========================================================================*/
73
74/**
75 * @brief Low level fields of the embedded flash driver structure.
76 */
77#define efl_lld_driver_fields \
78 /* Flash registers.*/ \
79 FLASH_TypeDef *flash
80
81/**
82 * @brief Low level fields of the embedded flash configuration structure.
83 */
84#define efl_lld_config_fields \
85 /* Dummy configuration, it is not needed.*/ \
86 uint32_t dummy
87
88/*===========================================================================*/
89/* External declarations. */
90/*===========================================================================*/
91
92#if !defined(__DOXYGEN__)
93extern EFlashDriver EFLD1;
94#endif
95
96#ifdef __cplusplus
97extern "C" {
98#endif
99 void efl_lld_init(void);
100 void efl_lld_start(EFlashDriver *eflp);
101 void efl_lld_stop(EFlashDriver *eflp);
102 const flash_descriptor_t *efl_lld_get_descriptor(void *instance);
103 flash_error_t efl_lld_read(void *instance, flash_offset_t offset,
104 size_t n, uint8_t *rp);
105 flash_error_t efl_lld_program(void *instance, flash_offset_t offset,
106 size_t n, const uint8_t *pp);
107 flash_error_t efl_lld_start_erase_all(void *instance);
108 flash_error_t efl_lld_start_erase_sector(void *instance,
109 flash_sector_t sector);
110 flash_error_t efl_lld_query_erase(void *instance, uint32_t *wait_time);
111 flash_error_t efl_lld_verify_erase(void *instance, flash_sector_t sector);
112#ifdef __cplusplus
113}
114#endif
115
116#endif /* HAL_USE_EFL == TRUE */
117
118#endif /* HAL_EFL_LLD_H */
119
120/** @} */