Skip to content
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

Cache maintenance operations require reference to self #304

Open
ryan-summers opened this issue Dec 7, 2020 · 1 comment
Open

Cache maintenance operations require reference to self #304

ryan-summers opened this issue Dec 7, 2020 · 1 comment

Comments

@ryan-summers
Copy link

Various cache maintenance-related operations require a self reference, which means that it is not possible for a HAL or other peripherals to clean/invalidate and/or perform other cache related operations without owning the SCB.

In the context of DMA, this can be a stumbling block, as DCACHE needs to be cleaned and invalidated before and after transfers (if it is enabled).

Is it possible to refactor the cache maintenance functions to not require a self reference so that they can be called statically as cortex_m::peripherals::scb::invalidate_dcache_by_address()?

@ryan-summers
Copy link
Author

Related to #238

bors bot added a commit that referenced this issue Jan 25, 2021
320: Prepare for v0.7.1 r=therealprof a=adamgreig

Includes:

* Deprecate msp::write #297
* New syscall and bootstrap ASM #299 
* More compiler fences #311 
* asm::delay timing fix #312 
* asm::delay clobber fix #317 
* LTO for ASM fix #318 

Doesn't include anything to help with #304 which might be nice to fix but can come in 0.7.2 and might need some time to think about.

Co-authored-by: Adam Greig <[email protected]>
adamgreig pushed a commit that referenced this issue Jan 12, 2022
304: Allow using the crate with custom target JSON specs r=adamgreig a=jonas-schievink

This should fix rust-embedded/cortex-m-rt#145 (cc @thejpster)

Co-authored-by: Jonas Schievink <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants