McuSupport: Use MCUXpresso IDE instead of SEGGER JLink for NXP kits

Qt for MCUs for NXP, now requires MCUXpresso in order to flash and run,
instead of SEGGER JLink. This change adjusts the kit creation
accordingly.

Task-number: QTCREATORBUG-23821
Change-Id: I0f5e375d052246ba033f0f2f81a7bad1805df02e
Reviewed-by: Yoann Lopes <yoann.lopes@qt.io>
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Alessandro Portale
2020-04-08 23:59:52 +02:00
parent f0f12fabd6
commit 7b188a6fff

View File

@@ -145,21 +145,34 @@ static McuPackage *createEvkbImxrt1050SdkPackage()
return result;
}
static McuPackage *createSeggerJLinkPackage()
static McuPackage *createMcuXpressoIdePackage()
{
QString defaultPath = QString("%{Env:SEGGER_JLINK_SOFTWARE_AND_DOCUMENTATION_PATH}");
if (Utils::HostOsInfo::isWindowsHost()) {
const QString programPath = findInProgramFiles("/SEGGER/JLink");
if (!programPath.isEmpty())
defaultPath = programPath;
const char envVar[] = "MCUXpressoIDE_PATH";
QString defaultPath;
if (qEnvironmentVariableIsSet(envVar)) {
defaultPath = qEnvironmentVariable(envVar);
} else if (Utils::HostOsInfo::isWindowsHost()) {
defaultPath = QDir::rootPath() + "nxp";
if (QFileInfo::exists(defaultPath)) {
// If default dir has exactly one sub dir that could be the IDE path, pre-select that.
const QFileInfoList subDirs =
QDir(defaultPath).entryInfoList({QLatin1String("MCUXpressoIDE*")},
QDir::Dirs | QDir::NoDotAndDotDot);
if (subDirs.count() == 1)
defaultPath = subDirs.first().filePath() + '/';
}
} else {
defaultPath = "/usr/local/mcuxpressoide/";
}
auto result = new McuPackage(
McuPackage::tr("SEGGER JLink"),
"MCUXpresso IDE",
defaultPath,
Utils::HostOsInfo::withExecutableSuffix("JLink"),
"SeggerJLink");
result->setDownloadUrl("https://www.segger.com/downloads/jlink");
result->setEnvironmentVariableName("SEGGER_JLINK_SOFTWARE_AND_DOCUMENTATION_PATH");
Utils::HostOsInfo::withExecutableSuffix("ide/binaries/crt_emu_cm_redlink"),
"MCUXpressoIDE");
result->setDownloadUrl("https://www.nxp.com/mcuxpresso/ide");
result->setEnvironmentVariableName(envVar);
return result;
}
@@ -171,18 +184,18 @@ void hardcodedTargetsAndPackages(const Utils::FilePath &dir, QVector<McuPackage
McuPackage* stm32CubeFwF7SdkPackage = Sdk::createStm32CubeFwF7SdkPackage();
McuPackage* stm32CubeProgrammerPackage = Sdk::createStm32CubeProgrammerPackage();
McuPackage* evkbImxrt1050SdkPackage = Sdk::createEvkbImxrt1050SdkPackage();
McuPackage* seggerJLinkPackage = Sdk::createSeggerJLinkPackage();
McuPackage *mcuXpressoIdePackage = createMcuXpressoIdePackage();
QVector<McuPackage*> stmEvalPackages = {
armGccPackage, stm32CubeProgrammerPackage};
QVector<McuPackage*> nxpEvalPackages = {
armGccPackage, seggerJLinkPackage};
armGccPackage, mcuXpressoIdePackage};
QVector<McuPackage*> renesasEvalPackages = {
armGccPackage, seggerJLinkPackage};
armGccPackage, mcuXpressoIdePackage};
QVector<McuPackage*> desktopPackages = {};
*packages = {
armGccPackage, desktopToolChainPackage, stm32CubeFwF7SdkPackage, stm32CubeProgrammerPackage,
evkbImxrt1050SdkPackage, seggerJLinkPackage};
evkbImxrt1050SdkPackage, mcuXpressoIdePackage};
const QString vendorStm = "STM";
const QString vendorNxp = "NXP";