Mercurial > public > ostc4
annotate Small_CPU/Inc/RTE_FlashAccess.h @ 1079:9e1fdb383d86 Icon_Integration
Changed reaction for uart DMA buffer overruns:
In the previous version a DMA was not restarted in case the read pointer is in the chunk which should be filled next. In normal operation this should never happen, in special cases, like debugging, it may occure. In case of an overrun the data may be already outdated and can be discarded. Because of this the new handling of a buffer overflow is to set the read pointer to the start of the chunk => the read function will start with the latest received data. Not yet processed data will be discarded.
| author | Ideenmodellierer |
|---|---|
| date | Sun, 08 Mar 2026 21:04:36 +0100 |
| parents | 91a8f9893e68 |
| children |
| rev | line source |
|---|---|
| 38 | 1 /** |
| 2 ****************************************************************************** | |
| 3 * @file RTE_FLashAccess.h based on BonexFLashAccess.h based on firmwareEraseProgram.h | |
| 4 * @author heinrichs weikamp gmbh | |
| 5 * @version V0.0.1 | |
| 6 * @date 20-July-2016 | |
| 7 * @version V0.0.1 | |
| 8 * @since 20-July-2016 | |
| 9 * @brief erase and program the STM32F4xx internal FLASH memory for compasss calib etc. | |
| 10 * | |
| 11 @verbatim | |
| 12 ============================================================================== | |
| 13 ##### How to use ##### | |
| 14 ============================================================================== | |
| 15 @endverbatim | |
| 16 ****************************************************************************** | |
| 17 * @attention | |
| 18 * | |
| 19 * <h2><center>© COPYRIGHT(c) 2016 heinrichs weikamp</center></h2> | |
| 20 * | |
| 21 ****************************************************************************** | |
| 22 */ | |
| 23 | |
| 24 /* Define to prevent recursive inclusion -------------------------------------*/ | |
| 25 #ifndef RTE_FLASH_ACCESS_H | |
| 26 #define RTE_FLASH_ACCESS_H | |
| 27 | |
| 28 #ifdef __cplusplus | |
| 29 extern "C" { | |
| 30 #endif | |
| 31 | |
| 32 /* Includes ------------------------------------------------------------------*/ | |
| 33 #include "stm32f4xx_hal.h" | |
| 34 | |
| 35 /* Exported variables --------------------------------------------------------*/ | |
| 36 /* Exported types ------------------------------------------------------------*/ | |
| 37 enum | |
| 38 { | |
| 39 BFA_OK = 0, //= HAL_OK | |
| 40 BFA_ERROR = (uint8_t)HAL_ERROR, | |
| 41 BFA_BUSY = (uint8_t)HAL_BUSY, | |
| 42 BFA_TIMEOUT = (uint8_t)HAL_TIMEOUT, | |
| 43 BFA_EMPTY, | |
| 44 }; | |
| 45 | |
|
571
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
46 /// split word to 2 bytes |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
47 typedef struct{ |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
48 uint8_t low; ///< split word to 2 bytes |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
49 uint8_t hi; ///< split word to 2 bytes |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
50 } two_byte; |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
51 |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
52 |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
53 /// split word to 2 bytes |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
54 typedef union{ |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
55 two_byte Byte; ///< split word to 2 bytes |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
56 uint16_t Word; ///< split word to 2 bytes |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
57 } tword; |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
58 |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
59 |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
60 /// split signed word to 2 bytes |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
61 typedef union{ |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
62 two_byte Byte; ///< split signed word to 2 bytes |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
63 int16_t Word; ///< split signed word to 2 bytes |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
64 } signed_tword; |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
65 |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
66 |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
67 /// split full32 to 2 words |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
68 typedef struct{ |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
69 uint16_t low16; ///< split word to 2 bytes |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
70 uint16_t hi16; ///< split word to 2 bytes |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
71 } two_word; |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
72 |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
73 typedef union{ |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
74 two_word Word16; ///< split word to 2 bytes |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
75 uint32_t Full32; ///< split word to 2 bytes |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
76 } tfull32; |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
77 |
| 38 | 78 /* Exported functions --------------------------------------------------------*/ |
| 79 | |
|
571
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
80 uint8_t BFA_readLastDataBlock(tfull32 *dataArray4); |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
81 uint8_t BFA_writeDataBlock(const tfull32 *dataArray4); |
|
91a8f9893e68
Reactivate compass parameter stored in NVM:
Ideenmodellierer
parents:
38
diff
changeset
|
82 uint16_t BFA_calc_Block_Checksum(const tfull32 *dataArray4); |
| 38 | 83 |
| 84 #ifdef __cplusplus | |
| 85 } | |
| 86 #endif | |
| 87 | |
| 88 #endif /* RTE_FLASH_ACCESS_H */ | |
| 89 | |
| 90 /************************ (C) COPYRIGHT heinrichs weikamp *****END OF FILE****/ |
