This series has been extremely helpful at understanding exactly what the ide / code generators have been setting up for me, thank you!
After reading through them I’ve decided to also follow along the examples, but I’m hitting some snags.
I have a Nuvoton M2351 that I’d like to experiment this with. It’s an M23 (arm8vm - baseline?).
There’s two places you mention documentation that I can’t find arm8vm versions of:
t turns out that the lowest bit of the PC is used to indicate thumb2 instructions, which is one of the two instruction sets supported by ARM processors, so Reset_Handler is what we’re looking for (for more details check out section A4.1.1 in the ARMv6-M manual).
There’s no mention of thumb2, an existence of an A4.1.1 section, or really even
interworking in the ARMv8-M technical reference manual
Separately, I haven’t found any startup instructions in the M23 technical reference manual, similar to what you had in the m3 documentation:
Here again, ARM’s Technical Reference Manuals are useful. Section 5.9.2 of the Cortex-M3 TRM contains the following table: Reset boot-up behavior
I know the M23 is “relatively new” (last 3 years?). Is that why the documentation is sparse? Is it just not fully up-to-date yet? Or are embedded engineers to assume that if documentation doesn’t exist in the Armv8m section they should assume the information in Armv6m is still correct?
It’s probably pretty safe to assume the
Reset boot-up behavior chart is probably the same between architecture versions, but I’d like to learn how others would learn/deal with/investigate this situation :).
Thanks for your time,
 I should mention, I was very excited that I did find the pseudocode for
TakeReset() in the v8 manual :). It’s a bit different but mostly due to trustzone.