You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Feb 4, 2023. It is now read-only.
*[1. EEPROM_get on BLUEPILL_F103C8 with 64KB Flash](#1-eeprom_get-on-bluepill_f103c8-with-64kb-flash)
@@ -61,7 +62,6 @@
61
62
*[The content of the FlashStorage is erased each time a new sketch is uploaded?](#the-content-of-the-flashstorage-is-erased-each-time-a-new-sketch-is-uploaded)
62
63
*[Do you recommend to use FLASH instead of EEPROM?](#do-you-recommend-to-use-flash-instead-of-eeprom)
63
64
*[Troubleshooting](#troubleshooting)
64
-
*[Releases](#releases)
65
65
*[Issues](#issues)
66
66
*[TO DO](#to-do)
67
67
*[DONE](#done)
@@ -73,6 +73,13 @@
73
73
---
74
74
---
75
75
76
+
### Important Change from v1.1.0
77
+
78
+
Please have a look at [HOWTO Fix `Multiple Definitions` Linker Error](#howto-fix-multiple-definitions-linker-error)
79
+
80
+
---
81
+
---
82
+
76
83
### Why do we need this [FlashStorage_STM32F1 library](https://github.com/khoih-prog/FlashStorage_STM32F1)
77
84
78
85
### Features
@@ -122,31 +129,13 @@ Currently, the library supports both new [**STM32 core v2.0.0**](https://github.
1. Initial release to support STM32F1/F3 boards with / without integrated EEPROM
138
-
2. Tested using genuine STM32F103, or CH32F103/CS32F103 boards with 32KB, 64KB or 128KB Flash Size
139
-
3. Configurable Flash Sector to use
140
-
4. FlashStorage size is 1024 bytes (including `1-byte valid` and `4-byte signature`)
141
-
142
-
143
132
---
144
133
---
145
134
146
135
## Prerequisites
147
136
148
-
1.[`Arduino IDE 1.8.15+` for Arduino](https://www.arduino.cc/en/Main/Software)
149
-
2.[`Arduino Core for STM32 v2.0.0+`](https://github.com/stm32duino/Arduino_Core_STM32) for STM32 boards. [](https://github.com/stm32duino/Arduino_Core_STM32/releases/latest)
137
+
1.[`Arduino IDE 1.8.19+` for Arduino](https://github.com/arduino/Arduino). [](https://github.com/arduino/Arduino/releases/latest)
138
+
2.[`Arduino Core for STM32 v2.2.0+`](https://github.com/stm32duino/Arduino_Core_STM32) for STM32 boards. [](https://github.com/stm32duino/Arduino_Core_STM32/releases/latest)
150
139
151
140
---
152
141
@@ -181,7 +170,7 @@ Another way to install is to:
181
170
182
171
#### 1. For STM32 boards to use LAN8720
183
172
184
-
Already updated and tested with latest **STM32 core v2.0.0**
173
+
Already updated and tested with latest **STM32 core v2.2.0**
185
174
186
175
To use LAN8720 on some STM32 boards
187
176
@@ -191,10 +180,10 @@ To use LAN8720 on some STM32 boards
191
180
192
181
you have to copy the files [stm32f4xx_hal_conf_default.h](Packages_Patches/STM32/hardware/stm32/x.yy.zz/system/STM32F4xx) and [stm32f7xx_hal_conf_default.h](Packages_Patches/STM32/hardware/stm32/x.yy.zz/system/STM32F7xx) into STM32 stm32 directory (~/.arduino15/packages/STM32/hardware/stm32/x.yy.zz/system) to overwrite the old files.
193
182
194
-
Supposing the STM32 stm32 core version is 2.0.0. These files must be copied into the directory:
183
+
Supposing the STM32 stm32 core version is 2.2.0. These files must be copied into the directory:
195
184
196
-
-`~/.arduino15/packages/STM32/hardware/stm32/2.0.0/system/STM32F4xx/stm32f4xx_hal_conf_default.h` for STM32F4.
197
-
-`~/.arduino15/packages/STM32/hardware/stm32/2.o.0/system/STM32F7xx/stm32f7xx_hal_conf_default.h` for Nucleo-144 STM32F7.
185
+
-`~/.arduino15/packages/STM32/hardware/stm32/2.2.0/system/STM32F4xx/stm32f4xx_hal_conf_default.h` for STM32F4.
186
+
-`~/.arduino15/packages/STM32/hardware/stm32/2.2.0/system/STM32F7xx/stm32f7xx_hal_conf_default.h` for Nucleo-144 STM32F7.
198
187
199
188
Whenever a new version is installed, remember to copy this file into the new version directory. For example, new version is x.yy.zz,
200
189
theses files must be copied into the corresponding directory:
@@ -205,19 +194,46 @@ theses files must be copied into the corresponding directory:
205
194
206
195
#### 2. For STM32 boards to use Serial1
207
196
208
-
**To use Serial1 on some STM32 boards without Serial1 definition (Nucleo-144 NUCLEO_F767ZI, Nucleo-64 NUCLEO_L053R8, etc.) boards**, you have to copy the files [STM32 variant.h](Packages_Patches/STM32/hardware/stm32/1.9.0) into STM32 stm32 directory (~/.arduino15/packages/STM32/hardware/stm32/1.9.0). You have to modify the files corresponding to your boards, this is just an illustration how to do.
197
+
**To use Serial1 on some STM32 boards without Serial1 definition (Nucleo-144 NUCLEO_F767ZI, Nucleo-64 NUCLEO_L053R8, etc.) boards**, you have to copy the files [STM32 variant.h](Packages_Patches/STM32/hardware/stm32/2.2.0) into STM32 stm32 directory (~/.arduino15/packages/STM32/hardware/stm32/2.2.0). You have to modify the files corresponding to your boards, this is just an illustration how to do.
209
198
210
-
Supposing the STM32 stm32 core version is 1.9.0. These files must be copied into the directory:
199
+
Supposing the STM32 stm32 core version is 2.2.0. These files must be copied into the directory:
211
200
212
-
-`~/.arduino15/packages/STM32/hardware/stm32/1.9.0/variants/NUCLEO_F767ZI/variant.h` for Nucleo-144 NUCLEO_F767ZI.
213
-
-`~/.arduino15/packages/STM32/hardware/stm32/1.9.0/variants/NUCLEO_L053R8/variant.h` for Nucleo-64 NUCLEO_L053R8.
201
+
-`~/.arduino15/packages/STM32/hardware/stm32/2.2.0/variants/NUCLEO_F767ZI/variant.h` for Nucleo-144 NUCLEO_F767ZI.
202
+
-`~/.arduino15/packages/STM32/hardware/stm32/2.2.0/variants/NUCLEO_L053R8/variant.h` for Nucleo-64 NUCLEO_L053R8.
214
203
215
204
Whenever a new version is installed, remember to copy this file into the new version directory. For example, new version is x.yy.zz,
216
205
theses files must be copied into the corresponding directory:
The current library implementation, using `xyz-Impl.h` instead of standard `xyz.cpp`, possibly creates certain `Multiple Definitions` Linker error in certain use cases.
217
+
218
+
You can include this `.hpp` file
219
+
220
+
```
221
+
// Can be included as many times as necessary, without `Multiple Definitions` Linker Error
in many files. But be sure to use the following `.h` file **in just 1 `.h`, `.cpp` or `.ino` file**, which must **not be included in any other file**, to avoid `Multiple Definitions` Linker Error
226
+
227
+
```
228
+
// To be included only in main(), .ino with setup() to avoid `Multiple Definitions` Linker Error
Check the new [**multiFileProject** example](examples/multiFileProject) for a `HOWTO` demo.
233
+
234
+
Have a look at the discussion in [Different behaviour using the src_cpp or src_h lib #80](https://github.com/khoih-prog/ESPAsync_WiFiManager/discussions/80)
235
+
236
+
221
237
---
222
238
---
223
239
@@ -261,7 +277,7 @@ The API is very similar to the well known Arduino EEPROM.h API but with 4 additi
0 commit comments