-
Notifications
You must be signed in to change notification settings - Fork 143
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[flash] Add simple STM32 Flash driver #417
Conversation
Speed is very interesting:
|
Is there a reason why this does not implement the |
Maybe later. I first want to gather support for a few more families to understand what the limitations are on this. |
My use-case it a IAP firmware update, and not a non-volatile data storage. I'm fairly certain a file system requires more a little more integration than this. |
The |
Why should this not work (and result in portable code) with the What is the difference between a non-volatile firmware storage and a non-volatile data storage? |
Maybe later. I'm not sure if implementing a block device for the internal Flash is that useful. There should be an adapter, that provides a linkerscript-assisted range, so that there's no chance to erase/overwrite your own firmware. There's also additional limitations on write-while-read (the flash bus stalls, so everything halts during erase/program, except for code/data placed in RAM hence It's also not clear how to do proper read-modify-write, without using an unreasonable amount of (temporary) RAM. Typically these are implemented as some form of write-only model, where new data is programmed into only erased data, which required non-steady data addresses, etc. |
This is a low-level driver that only implements the erasing and programming in RAM code.
TODO:
Implemented and tested on L0.We don't have L0 support yet, oops.