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

RVDS version for Cortex A5

Note: This was originally posted on 13th September 2011 at http://forums.arm.com

Dear All,

I have observed that RVDS4.1 supports cortex a5 compilation. In RVDS3.1, I could only see A8.
Can't we compile for A8 using RVDS3.1 and execute it for A5? Do you see any issues in this method?

Regards
Parents
  • Note: This was originally posted on 13th September 2011 at http://forums.arm.com

    Thanks for your detailed reply.


    Both the A8 and A5 are ARMv7-A, so code for one will be compatible (*) with the other.

    When you compile for --cpu=7-A you are saying that the target is an ARM7-A compatible processor.  When you compile with --cpu=Cortex-A5 you are saying that the target is a Cortex-A5, which is an ARMv7-A processor.  The difference is in the second case the compiler will make optimization decisions based specifically on the A5.  In some cases an optimization which is good on an A5 may not be so good on an A8 (and vice verse).

    So yes - you can build code compatible with an A5 using RVDS 3.1.  But as the A5 wasn't around when 3.1 was released - don't expect the 3.1 compiler to perform any A5 specific optimizations.

    * Ok, so compatible needs a little more explanation.  When you compile/assemble for a specific CPU, the tools pre-select different options.  So with "--cpu=Cortex-A8" the compiler assumes that the FPU/NEON is present and available.  But with "--cpu=Cortex-A5" the compiler assumes that the FPU/NEON is _not_ present/enabled.  The A5 and A8 also implement different versions of the VFP specs.
Reply
  • Note: This was originally posted on 13th September 2011 at http://forums.arm.com

    Thanks for your detailed reply.


    Both the A8 and A5 are ARMv7-A, so code for one will be compatible (*) with the other.

    When you compile for --cpu=7-A you are saying that the target is an ARM7-A compatible processor.  When you compile with --cpu=Cortex-A5 you are saying that the target is a Cortex-A5, which is an ARMv7-A processor.  The difference is in the second case the compiler will make optimization decisions based specifically on the A5.  In some cases an optimization which is good on an A5 may not be so good on an A8 (and vice verse).

    So yes - you can build code compatible with an A5 using RVDS 3.1.  But as the A5 wasn't around when 3.1 was released - don't expect the 3.1 compiler to perform any A5 specific optimizations.

    * Ok, so compatible needs a little more explanation.  When you compile/assemble for a specific CPU, the tools pre-select different options.  So with "--cpu=Cortex-A8" the compiler assumes that the FPU/NEON is present and available.  But with "--cpu=Cortex-A5" the compiler assumes that the FPU/NEON is _not_ present/enabled.  The A5 and A8 also implement different versions of the VFP specs.
Children
No data