9d388d357a
866: F4 flash fixes r=Dirbaio a=chemicstry This discontinuous flash sector layout is too cursed and I left some mistakes in last PR. Erasing last sector did not work and it wasn't possible to erase between memory banks for 1MB dual-bank devices. So I changed the erase function to iterate over memory addresses (which is continuous) instead of sector numbers. It should also be possible to implement erase across memory banks for H7, but it requires special handling for write too. I don't have an H7 to test now so left it as is. I wasn't sure how to add tests to `embassy-stm32` and it seems that there are none, except for `subghz`, but no test runner? Anyway, I tested the `get_sector` on playground: https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=13b59339fe6c70a3249e6183e81f869e Also fixed erase alignment requirements on `Flash::blocking_erase()`, as it previously only checked alignment on size, but not on offsets. P.S. the diff is a bit messed up, I recommend looking at files directly Co-authored-by: chemicstry <chemicstry@gmail.com> |
||
---|---|---|
.. | ||
adc | ||
can | ||
crc | ||
dac | ||
dma | ||
eth | ||
flash | ||
fmc | ||
i2c | ||
pwm | ||
rcc | ||
sdmmc | ||
spi | ||
subghz | ||
timer | ||
usart | ||
usb | ||
wdg | ||
dcmi.rs | ||
exti.rs | ||
fmt.rs | ||
gpio.rs | ||
interrupt.rs | ||
lib.rs | ||
rng.rs | ||
time.rs | ||
time_driver.rs | ||
traits.rs | ||
usb_otg.rs |