Peter Barker
ecde9f8c3f
AP_HAL_ChibiOS: make HAL_FLASH_PROTECTION a boolean, stop checking for definition
2022-08-16 08:10:16 +10:00
Andrew Tridgell
392e80001f
HAL_ChibiOS: fixed H7 flash storage
...
this fixes the flash re-init problem when flash storage fills on
H7. It was caused by rejecting writes where one or more of the 32 byte
chunks was not all 0xff but was equal to the current data. That
happens when writing to the sector header in AP_FlashStorage
it also moves the interrupt disable inside the loop to allow for
other interrupts to run between blocks
2022-04-05 17:46:52 +10:00
Andrew Tridgell
a0c867bce7
HAL_ChibiOS: disable interrupts during flash operations
...
we have now shown that interrupts being enabled during flash
operations can cause the infamous "68ms" bug, or watchdog when using a
32 bit timer on boards using flash for storage
The issue is quite repeatable with a load of a very large waypoint
file (over 500 waypoints) using "wp ftpload" in MAVProxy. This puts a
huge load on flash storage.
Our current working theory is that while doing flash writes for
storage on dual-bank we block access to only one bank, so if another
thread uses a timeout function with a short timeout while the flash
write is happening and chVTDoTickI calls code which crosses the flash
bank boundary then it can cause chVTDoTickI to violate the assumption
that no more than CH_CFG_ST_DELTA ticks pass while it is calculating
the value to set in the system timer. In that case we get a delay of a
full timer wrap, which is 68ms on boards with 16 bit timer and 70
minutes on boards with 32 bit timer
2022-04-05 17:46:52 +10:00
Andy Piper
ed952a0ea0
AP_HAL_ChibiOS: allow flash to be write-protected/unprotected on reboot
...
control protection support via HAL_FLASH_PROTECTION
provide support for flash protection on SPRacingH7
SPRacingH7 bootloader needs to use w25q-dtr
2022-02-24 10:19:07 +11:00
bugobliterator
ee35350129
HAL_ChibiOS: setup for recording crashdump at the remaining flash space
2021-12-01 18:17:50 +11:00
bugobliterator
91fdf6e875
HAL_ChibiOS: fix issue with writing the last byte
2021-10-30 19:24:57 +11:00
bugobliterator
66b8b9cf74
HAL_ChibiOS: add support for dumping crash logs to flash page
2021-10-30 19:24:57 +11:00
Andrew Tridgell
0212e23cd3
HAL_ChibiOS: added support for STM32L496 MCUs
...
good MCU for AP_Periph
2021-09-24 18:08:00 +10:00
Andrew Tridgell
22f7218acf
HAL_ChibiOS: support 512k F7 parts for flash
2021-05-09 06:44:19 +10:00
Andrew Tridgell
439a944801
HAL_ChibiOS: added support for STM32G474 MCU
2021-03-23 12:01:20 +11:00
Andy Piper
2823fa7245
AP_HAL_ChibiOS: never write bytes that have not been erased on H7
...
Be more careful about flash failure conditions on H7
2021-01-27 18:30:36 +11:00
Andy Piper
78735a946e
AP_HAL_ChibiOS: allow STM32_FLASH_DISABLE_ISR for H7
2021-01-27 18:30:36 +11:00
Andrew Tridgell
b4201436dd
HAL_ChibiOS: fixed flash space on 16k bl boards
...
this avoids the stm32_flash_recent_erase() function which added around
800 bytes to the bootloader. It is not needed
2020-12-17 12:51:25 +11:00
Andrew Tridgell
0c440d5675
HAL_ChibiOS: cope with flash erase in expected delay
...
when there has been a flash erase when we are definately in an
expected delay
2020-12-08 13:22:36 +11:00
Andrew Tridgell
6a1f43d5df
HAL_ChibiOS: fixed build with our old compiler
...
gcc 4.9 doesn't like static_assert() in C code
2020-06-07 14:11:48 +10:00
Andrew Tridgell
74f33d57c5
HAL_ChibiOS: avoid unnecessary H7 flash writes
2020-04-14 10:02:51 +10:00
Peter Barker
1a123e5f8d
AP_HAL_ChibiOS: avoid referencing flash sector/page 22 on 1MB boards
2020-03-03 10:13:53 +11:00
Andrew Tridgell
bc1de7a208
HAL_ChibiOS: support STM32F3xx MCUs
2019-11-01 10:53:53 +11:00
Andrew Tridgell
e6cb35090c
HAL_ChibiOS: fixed page size for STM31F105 flash
2019-10-21 19:12:01 +11:00
Andrew Tridgell
0ffe2e75be
HAL_ChibiOS: fixed warnings
2019-08-27 15:40:43 +10:00
Andrew Tridgell
d1565a96c5
HAL_ChibiOS: wrap cacheBuffer functions
...
needed to avoid problem with end() method in UARTDriver shadowing with
F7 implementation of cache macros
2019-08-27 15:40:43 +10:00
Andrew Tridgell
fb68fa8bc9
HAL_ChibiOS: fixed typo for 512k F4 parts
2019-08-27 10:29:56 +10:00
Andrew Tridgell
16bdaaa1af
HAL_ChibiOS: added support for STM31F10x for AP_Periph
2019-08-27 10:29:56 +10:00
Andrew Tridgell
26e76e51ed
HAL_ChibiOS: fixed H7 build with older compilers
2019-02-26 16:18:26 +11:00
Andrew Tridgell
5f88340919
HAL_ChibiOS: fixed flash build warning
2019-02-26 16:18:26 +11:00
Andrew Tridgell
8a40ee8132
HAL_ChibiOS: fixed idle wait on H7 flash program
2019-02-26 16:18:26 +11:00
Andrew Tridgell
3c9ba02ce9
HAL_ChibiOS: fixed H7 flash
2019-02-26 16:18:26 +11:00
Andrew Tridgell
565706cf7e
HAL_ChibiOS: fixed H7 flash handling
2019-02-26 16:18:26 +11:00
Andrew Tridgell
7aba99e229
HAL_ChibiOS: fixes for ChibiOS version update
2018-08-03 13:44:59 +10:00
Andrew Tridgell
946d0208e5
HAL_ChibiOS: fixed stm32f7 cache bug in erase flash page
2018-06-28 11:35:13 +10:00
Andrew Tridgell
bf6fb72904
HAL_ChibiOS: fixed 32 bit flash writes
2018-06-25 21:22:31 +10:00
Andrew Tridgell
e870b5f00a
HAL_ChibiOS: use 32 bit flash operations when possible
2018-06-25 21:22:31 +10:00
Andrew Tridgell
feefa05b41
HAL_ChibiOS: expose stm32_flash_ispageerased()
2018-06-25 21:22:31 +10:00
Andrew Tridgell
dd1bd43a2e
HAL_ChibiOS: added stm32_flash_keep_unlocked()
2018-06-25 21:22:31 +10:00
Andrew Tridgell
0cd46c063c
HAL_ChibiOS: fixed flash driver for F7
...
we need a data sync barrier due to the F7 cache
2018-06-22 08:00:31 +10:00
Andrew Tridgell
3ef88e1b8f
HAL_ChibiOS: allow flash support for bootloader
2018-06-22 08:00:31 +10:00
Andrew Tridgell
721f3cd5d1
HAL_ChibiOS: fixed flash layout for F7
...
thanks to @alielectric
2018-06-06 07:15:41 +10:00
Andrew Tridgell
1f6ffc48e5
HAL_ChibiOS: allow STM32F7 to build with flash driver
2018-06-06 07:15:41 +10:00
Andrew Tridgell
d1e4185817
HAL_ChibiOS: don't build flash.c if not needed
2018-04-12 11:50:44 +10:00
Andrew Tridgell
8b6bab7b17
HAL_Chibios: added ChibiOS HAL
...
this is based on initial work by Sid, reset here for easier merging
2018-01-15 11:46:02 +11:00