• R/O
  • SSH
  • HTTPS

chibios: Commit


Commit MetaInfo

Révision13668 (tree)
l'heure2020-05-28 13:00:12
Auteurcinsights

Message de Log

Fix sector size in STM32F4xx EFL driver and add F4x5/4x7

Change Summary

Modification

--- trunk/os/hal/ports/STM32/STM32F4xx/hal_efl_lld.c (revision 13667)
+++ trunk/os/hal/ports/STM32/STM32F4xx/hal_efl_lld.c (revision 13668)
@@ -16,7 +16,7 @@
1616
1717 /**
1818 * @file hal_efl_lld.c
19- * @brief STM32F412/413 Embedded Flash subsystem low level driver source.
19+ * @brief STM32F4xx Embedded Flash subsystem low level driver source.
2020 *
2121 * @addtogroup HAL_EFL
2222 * @{
@@ -44,6 +44,10 @@
4444 #define FLASH_OPTKEY1 0x08192A3BU
4545 #define FLASH_OPTKEY2 0x4C5D6E7FU
4646
47+#if !defined(FLASH_SR_OPERR)
48+#define FLASH_SR_OPERR FLASH_SR_SOP
49+#endif
50+
4751 /*===========================================================================*/
4852 /* Driver exported variables. */
4953 /*===========================================================================*/
@@ -57,41 +61,43 @@
5761 /* Driver local variables and types. */
5862 /*===========================================================================*/
5963
60-#if defined(STM32F413xx) || defined(STM32F412xx) || defined(__DOXYGEN__)
64+#if defined(STM32F413xx) || defined(STM32F412xx) || defined(STM32F40_41xxx) \
65+ || defined(__DOXYGEN__)
66+
6167 /* Sector table for 1.5M device. */
6268 static const flash_sector_descriptor_t efl_lld_sect1[STM32_FLASH1_SECTORS_TOTAL] = {
63- { 0, 16834}, /* Sector 0. */
64- { 1 * 16834, 16834}, /* Sector 1. */
65- { 2 * 16834, 16834}, /* Sector 2. */
66- { 3 * 16834, 16834}, /* Sector 3. */
67- { 4 * 16834, 65536}, /* Sector 4. */
68- { 4 * 16834 + 65536, 131072}, /* Sector 5. */
69- { 4 * 16834 + 65536 + 1 * 131072, 131072}, /* Sector 6. */
70- { 4 * 16834 + 65536 + 2 * 131072, 131072}, /* Sector 7. */
71- { 4 * 16834 + 65536 + 3 * 131072, 131072}, /* Sector 8. */
72- { 4 * 16834 + 65536 + 4 * 131072, 131072}, /* Sector 9. */
73- { 4 * 16834 + 65536 + 5 * 131072, 131072}, /* Sector 10. */
74- { 4 * 16834 + 65536 + 6 * 131072, 131072}, /* Sector 11. */
75- { 4 * 16834 + 65536 + 7 * 131072, 131072}, /* Sector 12. */
76- { 4 * 16834 + 65536 + 8 * 131072, 131072}, /* Sector 13. */
77- { 4 * 16834 + 65536 + 9 * 131072, 131072}, /* Sector 14. */
78- { 4 * 16834 + 65536 + 10 * 131072, 131072} /* Sector 15. */
69+ { 0, 16384}, /* Sector 0. */
70+ { 1 * 16384, 16384}, /* Sector 1. */
71+ { 2 * 16384, 16384}, /* Sector 2. */
72+ { 3 * 16384, 16384}, /* Sector 3. */
73+ { 4 * 16384, 65536}, /* Sector 4. */
74+ { 4 * 16384 + 65536, 131072}, /* Sector 5. */
75+ { 4 * 16384 + 65536 + 1 * 131072, 131072}, /* Sector 6. */
76+ { 4 * 16384 + 65536 + 2 * 131072, 131072}, /* Sector 7. */
77+ { 4 * 16384 + 65536 + 3 * 131072, 131072}, /* Sector 8. */
78+ { 4 * 16384 + 65536 + 4 * 131072, 131072}, /* Sector 9. */
79+ { 4 * 16384 + 65536 + 5 * 131072, 131072}, /* Sector 10. */
80+ { 4 * 16384 + 65536 + 6 * 131072, 131072}, /* Sector 11. */
81+ { 4 * 16384 + 65536 + 7 * 131072, 131072}, /* Sector 12. */
82+ { 4 * 16384 + 65536 + 8 * 131072, 131072}, /* Sector 13. */
83+ { 4 * 16384 + 65536 + 9 * 131072, 131072}, /* Sector 14. */
84+ { 4 * 16384 + 65536 + 10 * 131072, 131072} /* Sector 15. */
7985 };
8086
8187 /* Sector table for 1M device. */
8288 static const flash_sector_descriptor_t efl_lld_sect2[STM32_FLASH2_SECTORS_TOTAL] = {
83- { 0, 16834}, /* Sector 0. */
84- { 1 * 16834, 16834}, /* Sector 1. */
85- { 2 * 16834, 16834}, /* Sector 2. */
86- { 3 * 16834, 16834}, /* Sector 3. */
87- { 4 * 16834, 65536}, /* Sector 4. */
88- { 4 * 16834 + 65536, 131072}, /* Sector 5. */
89- { 4 * 16834 + 65536 + 1 * 131072, 131072}, /* Sector 6. */
90- { 4 * 16834 + 65536 + 2 * 131072, 131072}, /* Sector 7. */
91- { 4 * 16834 + 65536 + 3 * 131072, 131072}, /* Sector 8. */
92- { 4 * 16834 + 65536 + 4 * 131072, 131072}, /* Sector 9. */
93- { 4 * 16834 + 65536 + 5 * 131072, 131072}, /* Sector 10. */
94- { 4 * 16834 + 65536 + 6 * 131072, 131072} /* Sector 11. */
89+ { 0, 16384}, /* Sector 0. */
90+ { 1 * 16384, 16384}, /* Sector 1. */
91+ { 2 * 16384, 16384}, /* Sector 2. */
92+ { 3 * 16384, 16384}, /* Sector 3. */
93+ { 4 * 16384, 65536}, /* Sector 4. */
94+ { 4 * 16384 + 65536, 131072}, /* Sector 5. */
95+ { 4 * 16384 + 65536 + 1 * 131072, 131072}, /* Sector 6. */
96+ { 4 * 16384 + 65536 + 2 * 131072, 131072}, /* Sector 7. */
97+ { 4 * 16384 + 65536 + 3 * 131072, 131072}, /* Sector 8. */
98+ { 4 * 16384 + 65536 + 4 * 131072, 131072}, /* Sector 9. */
99+ { 4 * 16384 + 65536 + 5 * 131072, 131072}, /* Sector 10. */
100+ { 4 * 16384 + 65536 + 6 * 131072, 131072} /* Sector 11. */
95101 };
96102
97103 /* The descriptors for 1.5M device. */
@@ -325,10 +331,12 @@
325331 memcpy((void *)rp, (const void *)efl_lld_get_descriptor(instance)->address
326332 + offset, n);
327333
334+#if defined(FLASH_CR_RDERR)
328335 /* Checking for errors after reading.*/
329336 if ((devp->flash->SR & FLASH_SR_RDERR) != 0U) {
330337 err = FLASH_ERROR_READ;
331338 }
339+#endif
332340
333341 /* Ready state again.*/
334342 devp->state = FLASH_READY;
--- trunk/os/hal/ports/STM32/STM32F4xx/hal_efl_lld.h (revision 13667)
+++ trunk/os/hal/ports/STM32/STM32F4xx/hal_efl_lld.h (revision 13668)
@@ -16,7 +16,7 @@
1616
1717 /**
1818 * @file hal_efl_lld.h
19- * @brief STM32F412/413 Embedded Flash subsystem low level driver header.
19+ * @brief STM32F4xx Embedded Flash subsystem low level driver header.
2020 *
2121 * @addtogroup HAL_EFL
2222 * @{
@@ -51,7 +51,8 @@
5151 /* Derived constants and error checks. */
5252 /*===========================================================================*/
5353
54-#if defined(STM32F413xx) || defined(STM32F412xx) || defined(__DOXYGEN__)
54+#if defined(STM32F413xx) || defined(STM32F412xx) || defined(STM32F40_41xxx) \
55+ || defined(__DOXYGEN__)
5556
5657 /* Flash size register. */
5758 #define STM32_FLASH_SIZE_REGISTER 0x1FFF7A22
Afficher sur ancien navigateur de dépôt.