Hi everyone,
I wonder if there is a documentation that explain how to program efficiently on arm cortex-m and arm cortex-r platform?
I found "arm system developer's guide", but i worried it was too "old-fashion" because it only contained upto armv6...
So, anything else recommended?
And, i'm seeking an performance profiling tool for arm cortex-m program, anything recommended?
Thanks!
Hi there,
The programmer's model for Cortex-M and Cortex-R hasn't really changed a lot compared to classic Arm processors.
- still have r0 to r15 and the usage of r13 (stack point), r14 (link register) and r15 (program counter) are still the same.
- C programming interface (passing of parameters, results) hasn't changed.
The key changes are:
- Cortex-M supports only Thumb instructions and utilize Thumb-2 (there is a lot of new instructions in Thumb-2 compared to Armv6-A).
- Cortex-R also supports Thumb-2, but also support the legacy Arm instruction set.
- Cortex-M4, M7, M33, M35P and Cortex-R supports SIMD/DSP instructions (Armv5TE also have some of those)
- Cortex-R52 (Armv8-R) supports NEON advanced SIMD.
In addition to resources Bastian mentioned:
I have put a range of Cortex-M related links in this page: https://community.arm.com/processors/b/blog/posts/cortex-m-resources
There is also a paper from Chris Shore which might be useful although it is a few years old (https://m.eet.com/media/1157397/atc-152paper_shore_v4.pdf )
regards,
Joseph
Thanks a lot for your answer!