We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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!
Did you check your favorite (online) book-store? There are plenty of books.Profiling => Check your favorite debugger vendor. There are also plenty.
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!