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

Compiler 5.06: CPU-Option Cortex-R4F vs Cortex-R5F

Hello,

with our ARM-Compiler-license (ARM-Compiler 5.06 Update 6, Build 750) we are not able the use the option Cortex-R5F (our MCU has this core inside, it's a TI Hercules TMS570LC4357 MCU).

So far, we use the option Cortex-R4F (license available for this).

Do we have any disadvantages when using Cortex-R4F instead of Cortex-R5F for the TMS570LC4357 Hercules MCU?

Thanks in advance,

Jens

  • Hi Jens, why are you unable to use the Cortex-R5F option? From the output of --cpu list there are a number of options (sorry, I don't know which rev is in the TI silicon)

    $ armcc --cpu list
    
    ...
     --cpu=Cortex-R5
     --cpu=Cortex-R5F
     --cpu=Cortex-R5-rev1
     --cpu=Cortex-R5F-rev1
     --cpu=Cortex-R5F-rev1.sp

    Compiling for Cortex-R4F should also work fine, but you would be missing any CPU specific optimization there may be for the Cortex-R5F.

    By the way, Arm Compiler 5 (armcc) has long been superseded by Arm Compiler for Embedded (armclang). If you are starting a new project, I would recommend you use that instead.

  • Hello Ronan,

    thank you for answering.

    The reason why we use the version 5 of armcc is a requirement of the RTOS we use (it's a RTOS for functional safety and the certification will be lost if we use another compiler).

    The reason why we cannot use the Cortex-R5F option is the missing license. We have a license for "mdk_pro_flex" (ARM_TOOL_VARIANT=mdk_pro_flex) and when using "Cortex-R5F" we get the following message:

    Information about this error is available at: ds.arm.com/.../lic81
    General licensing information is available at: ds.arm.com/.../
    If you need further help, provide this complete error report to your supplier or license.support@arm.com.
    - ARMLMD_LICENSE_FILE: '.....'
    - LM_LICENSE_FILE: unset
    - ARM_TOOL_VARIANT: 'mdk_pro_flex'
    - ARM_PRODUCT_PATH: unset
    - Product location: c:\.....\Tools\ARM-Compiler\sw\mappings
    - Toolchain location: c:\.....\Tools\ARM-Compiler\bin64
    - Selected tool variant: mdk_pro_flex
    Product: MDK Professional 5.28 (Flex)
    Component: ARM Compiler 5.06 update 6 for Certification (build 750)
    Tool: armcc [4d3637]
    For support see http://silver.arm.com/support
    Software supplied by: ARM Limited
    Fatal error: C3903U: Argument 'Cortex-R5F' not permitted for option 'cpu'.

    But your answer let me think that we could use the Cortex-R5F option. Do we made something wrong regarding the license-management?

  • Thanks for confirming, I understand your situation now!

    MDK only has limited support for certain Cortex-R4 devices, you should really be using Arm Development Studio.
    https://developer.arm.com/documentation/ka003842/latest

    However for this instance, compiling for Cortex-R4 should work OK... the pipelines are I believe identical. I doubt the RTOS makes use of SMP capabilities of the Cortex-R5.

    You may have issues when it comes to debug though... which debug solution are you using?

  • Thank you for the confirmation that Cortex-R4 is a valid option for us.

    Multi-Processing is not a functionality of the RTOS we use.

    My colleagues are using iSYSTEM’s winIDEA and TI's Code Composer Studio.