Hello I am using MCUXpresso IDE, version v10.1.0 [Build 589] [2017-11-14] with an MIMXRT1050-EVK SDK, version 2.3.0 (2017-11-16). I am attempting to run the IDE in headless mode via a Gitlab CI job but I am encountering the following error (!MESSAGE Unable to find part support for NXP MIMXRT1052xxxxx in project fennec_meterboard Resetting to generic part for core cm7):
!SESSION 2017-12-18 10:17:47.016 ----------------------------------------------- eclipse.buildId=unknown java.version=1.8.0_141 java.vendor=Oracle Corporation BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_CA Framework arguments: -application org.eclipse.cdt.managedbuilder.core.headlessbuild -import /home/gitlab-runner/builds/4c8286cc/0/firmware//fennec-meterboard -build fennec_meterboard Command-line arguments: -os linux -ws gtk -arch x86_64 -application org.eclipse.cdt.managedbuilder.core.headlessbuild -import /home/gitlab-runner/builds/4c8286cc/0/firmware//fennec-meterboard -data /tmp/mcuxpresso-ci-workspace -build fennec_meterboard !ENTRY com.nxp.mcuxpresso.core.datamodels 1 0 2017-12-18 10:17:49.550 !MESSAGE Recreating part support. No part support available. !ENTRY com.crt.log 1 0 2017-12-18 10:17:49.593 !MESSAGE Unable to find part support for NXP MIMXRT1052xxxxx in project fennec_meterboard Resetting to generic part for core cm7 !ENTRY com.crt.log 4 -1 2017-12-18 10:17:50.682 !MESSAGE Unable to find part support for NXP MIMXRT1052xxxxx in project fennec_meterboard Resetting to generic part for core cm7 !STACK 0 java.lang.Exception: java.lang.Exception: Unable to find part support for NXP MIMXRT1052xxxxx in project fennec_meterboard Resetting to generic part for core cm7 at com.crt.utils.general.Reporter.log(Reporter.java:603) at com.nxp.mcuxpresso.core.datamodels.providers.SDKManifestProvider$4.run(SDKManifestProvider.java:721) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55) Caused by: java.lang.Exception: Unable to find part support for NXP MIMXRT1052xxxxx in project fennec_meterboard Resetting to generic part for core cm7 at com.crt.config.database.TargetConfig.initFromString(TargetConfig.java:1351) at com.crt.config.database.TargetConfig.init(TargetConfig.java:1240) at com.crt.config.database.TargetConfig.<init>(TargetConfig.java:679) at com.crt.config.database.TargetConfig.loadTargetConfig(TargetConfig.java:365) at com.crt.config.database.TargetConfigDatabase.load(TargetConfigDatabase.java:73) at com.crt.config.database.TargetConfigDatabase.findTargetConfig(TargetConfigDatabase.java:136) at com.nxp.mcuxpresso.core.datamodels.providers.SDKManifestProvider$4.run(SDKManifestProvider.java:690) ... 1 more
It appears that when run in headless mode that the IDE is not able to determine the processor type and I assume this is because it can't find the appropriate SDK. There is a CLI option for the config tools called '-SDKpath' but it is not accepted by MCUXpresso.
I am using the following build script, similar to that suggested in Building Projects From The Command Line
#!/bin/bash TOOLCHAIN_PATH=/usr/local/mcuxpressoide-10.1.0_589/ide/bin/ IDE=/usr/local/mcuxpressoide-10.1.0_589/ide/mcuxpressoide MCUXPRESSO_WORKSPACE=/home/USER_NAME/Documents/MCUXpresso_10.1.0_589/workspace-nxp/ SDK_PATH=/home/USER_NAME/mcuxpresso/01/SDKPackages/SDK_2.3.0_EVK-MIMXRT1050.zip WORKER_BUILD_DIR=/home/gitlab-runner/builds/4c8286cc/0/firmware/ REPO_NAME=MY_PROJECT_NAME PROJECT_NAME=MY_PROJECT_NAME PATH=$PATH:$TOOLCHAIN_PATH echo Launching Eclipse IDE "$IDE" -nosplash --launcher.suppressErrors -application org.eclipse.cdt.managedbuilder.core.headlessbuild -import "$WORKER_BUILD_DIR/$REPO_NAME" -data "$MCUXPRESSO_WORKSPACE" -cleanBuild "all" -build "$PROJECT_NAME"
Just a note, when building outside of the Gitlab CI process, i.e. as the user that installed MCUXpresso I can run the headless build process successfully. I have dumped the default user environment in hopes the SDK path might be injected as an environment variable but I see no such variable.
My questions are:
How does one communicate the location of the SDK to MCUXpresso in headless mode? I see no CLI options for this.
Has anyone had success running MCUXpresso in a similar CI environment? If so please post your build script and any suggestions.
There is information on SDK handling in the MCUXpresso IDE v10.1 User Guide you might like to look at (chapter 4,"SDKs and Preinstalled Part Support Overview") - though nothing explicitly about handling when carrying out headless builds like this I'm afraid.
I suspect that you simply need to ensure that the SDK ZIP file is available in the part support folder for the user carrying out the build. This will allow the IDE to find it and install the part support knowledge into the ".mcuxpressoide_packages_support" directory as it starts up.
Can you successfully build your projects from the IDE in GUI mode when logged in as this same build user?
MCUXpresso IDE Support