probe-rs: probe-rs run fails on nrf9160
Describe the bug
When I run probe-rs run for the nrf9160, it erases and flashes just fine. But after that finishes it should start the RTT output, however, I get the following error:
Error: This capability has not yet been implemented for this architecture: vector catch
This is both on 0.20 and the master version (as of writing).
It seems this has to do with the new vector catching feature. I took a look at it and this error message should only be printed when the default function of the CoreInterface trait is hit.
The nrf9160 does have a custom sequence, but it doesn’t look like that would be the problem…
Desktop (please complete the following information):
- Linux (Ubuntu 22 LTS)
About this issue
- Original URL
- State: closed
- Created a year ago
- Comments: 20 (20 by maintainers)
I have a spare Nuvoton Cortex-M23 board and I can hand it to someone at EuroRust. It cost me £100 with all the import fees and shipping from China, but then I never used it 😦 Free to a good home!
I can maybe justify it enough to spend a bit of time on it this friday
Thanks a lot! I think you should just PR this and we can discuss on the PR 😃 We generally rather merge a new feature that is not 100% complete but adds value nonetheless and iterate later 😃 I don’t see a lot of folks using TrustZone, so I doubt it’s a requirement to have it supported properly for now 😃
Perfect … looking forward to the PR. PS. I’m getting my own (first for me) Armv8-m board later this week, so have a personal gratitude for your work here.
I tried to look up what these extensions are.
Main: A chip can be baseline or mainline. Baseline has compatibility with armv6m and mainline has compatibility with armv7m. I think all m23 chips are baseline and all m33 chips are mainline.
In my experience, the m33 seems more common. However, the m23 is definitely out there. Seemingly the only difference for vector catch seems to be that the DEMCR register is slightly different.
Security: This is just another word for Trustzone according to the reference manual. I’ve yet to come across an armv8m chip without Trustzone. If we want to KISS it, we should make sure this is supported. However, since most people don’t seem to be using many features of it, we could easily get away with not tracing across secure-nonsecure bounds.
In any case, with the security extension it looks like the chip is a bit more strict in when it actually catches a vector. But nothing seems overly strict to me with my limited view, so supporting with and without extension should be doable. The not tracing across secure bounds is up to the tracing code.
Debug: It’s only mentioned once in the reference manual, only stating its existance. I have no idea what this is and what it does.
TLDR: KISS seems good to me, but most realistic gains are in not having to implement trustzone for tracing