This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

efficient c programming

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!

Parents
  • 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 which might be useful although it is a few years old  (https://m.eet.com/media/1157397/atc-152paper_shore_v4.pdf )

    regards,

    Joseph

Reply
  • 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 which might be useful although it is a few years old  (https://m.eet.com/media/1157397/atc-152paper_shore_v4.pdf )

    regards,

    Joseph

Children