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 believe that #8 missed adding the corresponding aliases for the SW0_IRQ - SW5_IRQ interrupt handlers into device.x so causing undefined symbols unless the user of the HAL+PAC provides real/dummy interrupt handlers for the six software interrupts.
I am experimenting with an RTIC application on an RP2350 board using the RP235x HAL & PAC. RTIC uses interrupt vectors for its "dispatchers" for software tasks (i.e. async fns that are spawned and not associated with real hardware interrupt handlers). Having got it working using hardware interrupts that I didn't need for their intended harware peripherals, it seemed sensible to use some of the software IRQs so I didn't constrain what hardware interrupts I can use in the future in my application.
As soon as I started using the version of the rp235x-pac from GitHub that actually has the software IRQs defined, rather than V0.1.0 on crates.io, I immediately got undefined symbols for the SWx_IRQ symbols. From reading up on the cortex_m_rt docs this sounds like it's to be expected (unless I provide real or dummy interrupt handlers in my application).
I've patched a local copy of device.x to alias the relevant symbols and everything then works as expected.
Hope that's useful - if it would help I'm happy to create a PR...
The text was updated successfully, but these errors were encountered:
I've read up a bit more about how svd2rust is used to automate parts of creating the PAC. The root-cause of the missing interrupt aliases seems to be that update.sh fails to do anything with the device.x file that's generated. I'll look at fixing that too in a PR...
I believe that #8 missed adding the corresponding aliases for the
SW0_IRQ
-SW5_IRQ
interrupt handlers into device.x so causing undefined symbols unless the user of the HAL+PAC provides real/dummy interrupt handlers for the six software interrupts.I am experimenting with an RTIC application on an RP2350 board using the RP235x HAL & PAC. RTIC uses interrupt vectors for its "dispatchers" for software tasks (i.e. async fns that are spawned and not associated with real hardware interrupt handlers). Having got it working using hardware interrupts that I didn't need for their intended harware peripherals, it seemed sensible to use some of the software IRQs so I didn't constrain what hardware interrupts I can use in the future in my application.
As soon as I started using the version of the rp235x-pac from GitHub that actually has the software IRQs defined, rather than V0.1.0 on crates.io, I immediately got undefined symbols for the
SWx_IRQ
symbols. From reading up on the cortex_m_rt docs this sounds like it's to be expected (unless I provide real or dummy interrupt handlers in my application).I've patched a local copy of device.x to alias the relevant symbols and everything then works as expected.
Hope that's useful - if it would help I'm happy to create a PR...
The text was updated successfully, but these errors were encountered: