Using ARMC6 License from Mbed Studio with cli

I’m currently attempting to move a program from the online IDE to mbed cli to use with a custom target (Using QSPIF on a NUCLEO-F746ZG derived custom board). After following the installation instructions for Mbed Studio and mbed CLI it appears that ARM6 can’t locate the Mbed Studio license file.
Config:

mbed config --list
[mbed] Working path "E:\Mbed Dev\A4461_DEV" (program)
[mbed] Global config:
ARMLMD_LICENSE_FILE=C:\Users\thomas\AppData\Local\Programs\Mbed Studio\tools-config\ac6-license.dat
CACHE=on
TOOLCHAIN=GCC_ARM
ARMC6_PATH=C:\Users\thomas\AppData\Local\Mbed Studio\mbed-studio-tools\ac6\bin

[mbed] Local config (E:\Mbed Dev\A4461_DEV):
ARMLMD_LICENSE_FILE=C:\Users\thomas\AppData\Local\Programs\Mbed Studio\tools-config\ac6-license.dat
ARMC6_PATH=C:\Users\thomas\AppData\Local\Mbed Studio\mbed-studio-tools\ac6\bin

Compiling with:

mbed compiler -v -m A4461 -t ARMC6

fails, including the following in the output:

ToolException: armclang: error: Failed to check out a license.
The license file could not be found. Check that ARMLMD_LICENSE_FILE is set correctly.
armclang: note:
ARMLMD_LICENSE_FILE is not set. You must set this to the path to your license.
armclang: note:
Information about this error is available at: http://ds.arm.com/support/lic87/m1
 General licensing information is available at: http://ds.arm.com/support/licensing/
 If you need further help, provide this complete error report to your supplier or license.support@arm.com.
 - ARMLMD_LICENSE_FILE: unset
 - LM_LICENSE_FILE: unset
 - ARM_TOOL_VARIANT: unset
 - ARM_PRODUCT_PATH: unset
 - Product location: C:\Users\thomas\AppData\Local\Mbed Studio\mbed-studio-tools\ac6\sw\mappings
 - Toolchain location: C:\Users\thomas\AppData\Local\Mbed Studio\mbed-studio-tools\ac6\bin
 - Selected tool variant: product
armclang: note:
 - Checkout feature: mbed_armcompiler
 - Feature version: 5.0201810
 - Flex error code: -1
Product: ARM Compiler 6.11 for Mbed Studio
Component: ARM Compiler 6.11
Tool: armclang [5d3b3c00]

I can’t find a record of someone else running into this specific error, which leads me to believe I’ve missed something obvious. If it’s obvious to someone what’s going on here I’d appreciate it.

As an aside, is it possible to add QSPIF functionality to a board (NUCLEO-F746ZG) using the online compiler purely through mbed_app.json? The DISCO-F746NG supports QSPIF and uses the same HAL package, so everything is implemented and you just need to add the pin defines to PinName.h. However from what I’ve seen, while it’s possible to modify entries which have configurable values (eg STDIO_UART_TX), it’s not possible to add new entries, and there’s no alternative way to do it.

Regards,
Tom

I’m pretty sure I tried this also and posted a question about it, back when the support option was to “Ask a Question” before this new forum was up and running.

There doesn’t seem to be a way of accessing those old posts and all I can remember is that the the MBed Studio ARMC6 license was somehow bound to MBed Studio exclusively - so not usable with the CLI.

1 Like

Hi Tom, Chris,

Yes, Arm Compiler 6 license in Mbed Studio is bound to the IDE. It can’t be used outside of Mbed Studio. The good news is that in upcoming release 0.9.0 Mbed Studio will expose all tools shipped with the IDE in the built-in terminal. That includes Arm Compiler 6, Mbed CLI, pyOCD, git, mercurial and more.

Please expect that release soon.

Thanks,
Arek - Mbed Studio team

4 Likes

Hi Arek,

Thank you for the reply.
I saw Chris’ question on the previous forums as part of my initial search. However on re-reading a lot of the info, I was looking at issues regarding Studio’s version of cli, which I’ve then assumed applicable to the standalone.

My fault. Thank you both for the time to answer.

Looking forward to the next Studio release. For me it currently seems to sit in a funny place between the convenience of the online IDE and power of cli, but inferior to both for most projects. Exposing more of the internals should definitely be a good improvement in versatility.

Regards,
Tom

I too am attempting to get ARMC6 to work with CLI. After seeing the above discussion, I downloaded the ARMC6 toolchain directly from ARM and requested an eval license. I set all the environmental variables and attempted a compile with the following output.

[CODE]
C:\Users\jeff\mbed\HUMPRC_NEW-6>mbed compile -m KL25Z -t ARMC6
[mbed] Working path “C:\Users\jeff\mbed\HUMPRC_NEW-6” (program)
Building project HUMPRC_NEW-6 (KL25Z, ARMC6)
Scan: HUMPRC_NEW-6
Compile [ 0.1%]: Hotboards_switches.cpp
[ERROR] armclang: warning: Your license for feature ds_suite_eval will expire in 30 days [-Wlicense-management]
armclang: error: CT.Compiler6 is not available with the current toolkit edition and license. Check that your licensing and toolkit configuration is set up correctly,
using the information available at: Documentation – Arm Developer
armclang: note:
Information about this error is available at: Documentation – Arm Developer
General licensing information is available at: Software Licensing – Arm Developer
If you need further help, provide this complete error report to your supplier or license.support@arm.com.

  • ARMLMD_LICENSE_FILE: ‘c:\Program Files\ARMCompiler6.14.1\bin\license.dat’
  • LM_LICENSE_FILE: unset
  • ARM_PRODUCT_DEF: ‘c:\Program Files\Arm\Development Studio 2020.0\sw\mappings\eval.elmap’
  • ARM_PRODUCT_PATH: unset
  • ARM_TOOL_VARIANT: unset
  • Product location: c:\Program Files\Arm\Development Studio 2020.0\sw\mappings
  • Toolchain location: C:\Program Files\ARMCompiler6.14.1\bin
  • Selected tool variant: product
    Product: Arm Development Studio Evaluation 2020.0
    Component: ARM Compiler 6.14.1
    Tool: armclang [5db08000]

{/CODE]

I sent an email to license support at ARM asking if maybe my eval license was not provisioned correctly to be used outside of ARM DS 5.0 and received this response.

From ARM License Support:


Why are you trying to do this, and what, exactly are you trying to do?

The evaluation license that you have is designed to enable the compilers delivered with Arm Development Studio either from within the Arm DS environment or stand-alone (called from the command line or via a makefile).

The mbed development environment uses a different toolchain and they are not designed with inter-operability in mind.

I’m sure it would be possible to take a project from the mbed development environment and port or recreate it with Arm DS tools but I’m not sure why you would want to do this.

If you can tell us a bit more about what you are trying to do then we might be able to help.


So at this point I am trying to determine my next move. Is this an MBED CLI issue or an ARM toolchain/license provision issue. Any guidance or recommendation is appreciated.