-
Notifications
You must be signed in to change notification settings - Fork 104
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
Expose QSPI control register to switch used bank #449
Merged
richardeoin
merged 5 commits into
stm32-rs:master
from
ElouanPetereau:feature/expose_control_register
Nov 16, 2023
Merged
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
028112e
Expose QSPI control register for the QSPI struct
ElouanPetereau 157d028
Add enums and traits for Bank switch
ElouanPetereau de11d53
Expose BankSelect and related error
ElouanPetereau 575a435
Rename QUADSPI change_bank and check for business
ElouanPetereau ba5e6de
Add documentation for Quad-SPI
ElouanPetereau File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bits
FSEL
andDFM
can only be modified when the peripheral is not busy. The following check should be used to protect against thatIt's already used several times in
mod.rs
. Instead of blocking you could also return an error from this function. Then the user would need to handle the case that a transaction is ongoing whenchange_bank
is called.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for your review.
I decided to return an error and let the user handle potential retry as I don't want to block the running code.
Let me know if the documentation comment that I added are enough or not.
I did that but since it's not a good thing to have the
change_bank_unchecked
for the struct generated by the other functions (bank1
,bank2
andqspi_unchecked
) do you think it would be worth it to return an other type that have an innerQspi<stm32::QUADSPI>
or something like that?I still think that it is better to consume the pins in this case no? Like it is done for the
bank1
andbank2
functions.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The documentation is good and it's enough.
The
change_bank_unchecked
can only be restricted by adding a second generic type parameter to theQspi
type. That would then be a breaking change and perhaps too much complexity for solving this problem.It's not ideal that the
change_back_unchecked
method is always available, but it's not a major problem either. Overall I'd be happy to accept the PR in the current state if you are also?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A change that would not be API breaking would be to return a new Qspi type (
QspiSwitchable
for example) frombank_switch
. This new type would have an innerQspi
exposed for any operation on classic Qspi and the functionchange_bank_unchecked
so the normalQspi
won't have it.However creating a type just for that might not be optimal.
If you are happy with the MR, and if you think that it is not mandatory to do any change to make the
change_back_unchecked
usable only when it actually does something , please do!