BareMetal: Auto-detect IAR toolchain for Renesas V850 architecture

This patch implements auto-detection for the V850 toolchain,
provided by IAR Systems:

 * https://www.iar.com/iar-embedded-workbench/#!?architecture=V850

Change-Id: I89c2b2ab87f0b32af4e25e77b8a3b6381481c4cc
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Denis Shienkov
2020-04-28 14:37:40 +03:00
parent e9661e43cb
commit 96934b9eeb
3 changed files with 12 additions and 2 deletions

View File

@@ -72,7 +72,8 @@ static QString cppLanguageOption(const FilePath &compiler)
if (baseName == "iccarm" || baseName == "iccrl78")
return QString("--c++");
if (baseName == "icc8051" || baseName == "iccavr"
|| baseName == "iccstm8" || baseName == "icc430") {
|| baseName == "iccstm8" || baseName == "icc430"
|| baseName == "iccv850") {
return QString("--ec++");
}
return {};
@@ -197,6 +198,8 @@ static Abi::Architecture guessArchitecture(const Macros &macros)
return Abi::Architecture::Msp430Architecture;
if (macro.key == "__ICCRL78__")
return Abi::Architecture::Rl78Architecture;
if (macro.key == "__ICCV850__")
return Abi::Architecture::V850Architecture;
}
return Abi::Architecture::UnknownArchitecture;
}
@@ -220,7 +223,8 @@ static Abi::BinaryFormat guessFormat(Abi::Architecture arch)
}
if (arch == Abi::Architecture::Mcs51Architecture
|| arch == Abi::Architecture::AvrArchitecture
|| arch == Abi::Architecture::Msp430Architecture) {
|| arch == Abi::Architecture::Msp430Architecture
|| arch == Abi::Architecture::V850Architecture) {
return Abi::BinaryFormat::UbrofFormat;
}
return Abi::BinaryFormat::UnknownFormat;
@@ -446,6 +450,7 @@ QList<ToolChain *> IarToolChainFactory::autoDetect(const QList<ToolChain *> &alr
{{"EWSTM8"}, {"\\stm8\\bin\\iccstm8.exe"}},
{{"EW430"}, {"\\430\\bin\\icc430.exe"}},
{{"EWRL78"}, {"\\rl78\\bin\\iccrl78.exe"}},
{{"EWV850"}, {"\\v850\\bin\\iccv850.exe"}},
};
QSettings registry(kRegistryNode, QSettings::NativeFormat);

View File

@@ -725,6 +725,8 @@ QString Abi::toString(const Architecture &a)
return QLatin1String("rl78");
case C166Architecture:
return QLatin1String("c166");
case V850Architecture:
return QLatin1String("v850");
case UnknownArchitecture:
Q_FALLTHROUGH();
default:
@@ -871,6 +873,8 @@ Abi::Architecture Abi::architectureFromString(const QStringRef &a)
return Rl78Architecture;
if (a == "c166")
return C166Architecture;
if (a == "v850")
return V850Architecture;
else if (a == "xtensa")
return XtensaArchitecture;
if (a == "asmjs")

View File

@@ -64,6 +64,7 @@ public:
Msp430Architecture,
Rl78Architecture,
C166Architecture,
V850Architecture,
UnknownArchitecture
};