rp/pio: make free_instr unsafe
we can't prove that some instruction memory is not used as long as state machines are alive, and we can pass instance memory handles between instances as well. mark free_instr unsafe, with documentation for this caveat.
This commit is contained in:
parent
2afa08c923
commit
1e8da91def
1 changed files with 4 additions and 2 deletions
|
@ -827,8 +827,10 @@ impl<'d, PIO: PioInstance> PioCommon<'d, PIO> {
|
|||
}
|
||||
}
|
||||
|
||||
// TODO make instruction memory that is currently in use unfreeable
|
||||
pub fn free_instr(&mut self, instrs: PioInstanceMemory<PIO>) {
|
||||
/// Free instruction memory previously allocated with [`PioCommon::write_instr`].
|
||||
/// This is always possible but unsafe if any state machine is still using this
|
||||
/// bit of memory.
|
||||
pub unsafe fn free_instr(&mut self, instrs: PioInstanceMemory<PIO>) {
|
||||
self.instructions_used &= !instrs.used_mask;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue