From 6b3191c11e0ec859e6d13f9c20a1463a1cbdc6d0 Mon Sep 17 00:00:00 2001 From: Christiaan Janssen Date: Tue, 7 Dec 2021 17:14:27 +0100 Subject: [PATCH] McuSupport: support for Renesas Flash Programmer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: UL-5082 Change-Id: I1eb4583fa2635adfc302f878301152c2358de446 Reviewed-by: Dawid Śliwa Reviewed-by: Alessandro Portale --- src/plugins/mcusupport/mcusupportsdk.cpp | 37 ++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/src/plugins/mcusupport/mcusupportsdk.cpp b/src/plugins/mcusupport/mcusupportsdk.cpp index fb353896b95..4e4ea722d2b 100644 --- a/src/plugins/mcusupport/mcusupportsdk.cpp +++ b/src/plugins/mcusupport/mcusupportsdk.cpp @@ -301,9 +301,13 @@ static McuPackage *createCypressProgrammerPackage() if (qEnvironmentVariableIsSet(envVar)) { defaultPath = FilePath::fromUserInput(qEnvironmentVariable(envVar)); } else if (HostOsInfo::isWindowsHost()) { - const FilePath candidate = findInProgramFiles("Cypress/Cypress Auto Flash Utility 1.0"); - if (candidate.exists()) - defaultPath = candidate; + const FilePath candidate = findInProgramFiles("Cypress"); + if (candidate.exists()) { + // "Cypress Auto Flash Utility 1.0" + const auto subDirs = candidate.dirEntries({"Cypress Auto Flash Utility*"}, QDir::Dirs, QDir::Unsorted); + if (!subDirs.empty()) + defaultPath = subDirs.first(); + } } auto result = new McuPackage( @@ -315,6 +319,32 @@ static McuPackage *createCypressProgrammerPackage() return result; } +static McuPackage *createRenesasProgrammerPackage() +{ + const char envVar[] = "RenesasFlashProgrammer_PATH"; + + FilePath defaultPath; + if (qEnvironmentVariableIsSet(envVar)) { + defaultPath = FilePath::fromUserInput(qEnvironmentVariable(envVar)); + } else if (HostOsInfo::isWindowsHost()) { + const FilePath candidate = findInProgramFiles("Renesas Electronics/Programming Tools"); + if (candidate.exists()) { + // "Renesas Flash Programmer V3.09" + const auto subDirs = candidate.dirEntries({"Renesas Flash Programmer*"}, QDir::Dirs, QDir::Unsorted); + if (!subDirs.empty()) + defaultPath = subDirs.first(); + } + } + + auto result = new McuPackage( + "Renesas Flash Programmer", + defaultPath, + Utils::HostOsInfo::withExecutableSuffix("rfp-cli"), + "RenesasFlashProgrammer"); + result->setEnvironmentVariableName(envVar); + return result; +} + struct McuTargetDescription { enum class TargetType { @@ -603,6 +633,7 @@ static QVector targetsFromDescriptions(const QList