You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm trying to make a shared flash based on these traits and to do that I have an async mutex that needs to be locked. But I can't do that in a sync function.
It would also be solved by having the capacity be a constant. But there may be a good reason why it's not a constant already
The text was updated successfully, but these errors were encountered:
I'm implementing ReadNorFlash for an SD card driver (I know it's weird) and I'm running into the same issue. Getting the SD card size is an async operation but I cannot await the future because capacity is not async.
I would be fine with making capacity async for situations like this, and also JEDEC like NorFlash implementations.
I do however think that if we make it async, it should also be fallible, as that would usually incur some kind of IO operations?
Another way of solving this would be to probe for the capacity at initialization of the module (Flash or SD card), and store the size as part of the driver struct in a simple usize.
The function
capacity
on the asyncReadNotFlash
trait is not async: https://github.com/rust-embedded-community/embedded-storage/blob/master/embedded-storage-async/src/nor_flash.rs#L18I'm trying to make a shared flash based on these traits and to do that I have an async mutex that needs to be locked. But I can't do that in a sync function.
It would also be solved by having the capacity be a constant. But there may be a good reason why it's not a constant already
The text was updated successfully, but these errors were encountered: