Please note: We are aware of an issue affecting replies on the Arm Community forums, which may not be loading as expected.

We apologize for any inconvenience and appreciate your patience while we investigate and work to resolve the issue.

Thank you for your understanding.


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

Fatal error: C3903U: Argument 'neon' not permitted for option 'fpu'.

Hi

Im using cycloneVsoc (cortex-A9 duel core) with armcc v5.06.

I used to do --fpu = vfpv3 --cpu = cortex-a9 on makefile

Now I want to use neon instead.

Yet I can't use --fpu option to open neon.

Ive confurmed that this port does support the neon.

According to ARMCC v5.06 UG for uVision, --fpu don't have neon option.

Could you please tell me how to start/open it by makefile?

Thank you very much

Reguards

Alex

Parents
  • Hi Alex

    I can reproduce what you see, but only when compiling for --c99 AND --strict.

    Do you really need to use --strict?  If so, you will need to rewrite the "embedded assembler" functions in cmsis_armcc.h as "inline assembler" instead.

    For example, replace

    __attribute__((section(".rev16_text"))) __STATIC_INLINE __ASM uint32_t __REV16(uint32_t value)
    {
      rev16 r0, r0
      bx lr
    }

    with, for example,

    __attribute__((section(".rev16_text"))) __STATIC_INLINE uint32_t __REV16(uint32_t value)
    {
      uint32_t result;
      __asm("rev16 result, value");
      return result;
    }

    For more information on "embedded assembler" and "inline assembler" in Arm Compiler 5, see:
    developer.arm.com/.../Using-the-Inline-and-Embedded-Assemblers-of-the-ARM-Compiler

    Is there a particular reason why you are using the old Arm Compiler 5?
    The latest version of CMSIS (CMSIS 6.0.0) no longer supports Arm Compiler 5.
    I strongly recommend that you update from Arm Compiler 5 to Arm Compiler for Embedded 6.

    Hope this helps

    Stephen

Reply
  • Hi Alex

    I can reproduce what you see, but only when compiling for --c99 AND --strict.

    Do you really need to use --strict?  If so, you will need to rewrite the "embedded assembler" functions in cmsis_armcc.h as "inline assembler" instead.

    For example, replace

    __attribute__((section(".rev16_text"))) __STATIC_INLINE __ASM uint32_t __REV16(uint32_t value)
    {
      rev16 r0, r0
      bx lr
    }

    with, for example,

    __attribute__((section(".rev16_text"))) __STATIC_INLINE uint32_t __REV16(uint32_t value)
    {
      uint32_t result;
      __asm("rev16 result, value");
      return result;
    }

    For more information on "embedded assembler" and "inline assembler" in Arm Compiler 5, see:
    developer.arm.com/.../Using-the-Inline-and-Embedded-Assemblers-of-the-ARM-Compiler

    Is there a particular reason why you are using the old Arm Compiler 5?
    The latest version of CMSIS (CMSIS 6.0.0) no longer supports Arm Compiler 5.
    I strongly recommend that you update from Arm Compiler 5 to Arm Compiler for Embedded 6.

    Hope this helps

    Stephen

Children