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 was toying with the RP2350 PIOs and looking into "abusing" the mov _, STATUS instruction to transfer data between PIOs. This requires setting the two execctrl registers STATUS_N and STATUS_SEL both of which are configurable using the Config struct.
The StatusN struct has a variant for representing an IRQ index. However, I could not find a way to switch the select register. The StatusSource struct is missing a variant to represent the IRQ source and in the code which translates it into register writes I could not spot anything which sets the pac::pio::vals::ExecctrlStatusSel::IRQ value.
Is there another way to do this or is it indeed a missing feature? If so, I would be happy to create a PR for it 🙂
In my local version, I simply added a variant to the StatusSource struct and extended the match statement in ~L736. Based on my testing, this seems to work just fine.
P.S.: If desired, I could add a minimal example of sending data between PIOs using just IRQs to the repo as well. See the not-yet-cleaned-up main.rs.txt.
The text was updated successfully, but these errors were encountered:
Hey there!
I was toying with the RP2350 PIOs and looking into "abusing" the
mov _, STATUS
instruction to transfer data between PIOs. This requires setting the two execctrl registersSTATUS_N
andSTATUS_SEL
both of which are configurable using the Config struct.The
StatusN
struct has a variant for representing an IRQ index. However, I could not find a way to switch the select register. TheStatusSource
struct is missing a variant to represent the IRQ source and in the code which translates it into register writes I could not spot anything which sets thepac::pio::vals::ExecctrlStatusSel::IRQ
value.Is there another way to do this or is it indeed a missing feature? If so, I would be happy to create a PR for it 🙂
In my local version, I simply added a variant to the
StatusSource
struct and extended the match statement in ~L736. Based on my testing, this seems to work just fine.P.S.: If desired, I could add a minimal example of sending data between PIOs using just IRQs to the repo as well. See the not-yet-cleaned-up main.rs.txt.
The text was updated successfully, but these errors were encountered: