diff options
-rw-r--r-- | doc/reference/modules/qbs-module.qdoc | 3 | ||||
-rw-r--r-- | share/qbs/modules/cpp/iar.js | 22 | ||||
-rw-r--r-- | src/app/qbs-setup-toolchains/iarewprobe.cpp | 8 |
3 files changed, 26 insertions, 7 deletions
diff --git a/doc/reference/modules/qbs-module.qdoc b/doc/reference/modules/qbs-module.qdoc index 9f8db9f33..3cea35217 100644 --- a/doc/reference/modules/qbs-module.qdoc +++ b/doc/reference/modules/qbs-module.qdoc @@ -335,6 +335,9 @@ \li 16-bit compact RISC architecture microcontroller family developed by National Semiconductor \row + \li \c{"hcs8"} + \li 8-bit HC08 and S08 microcontroller family from Freescale Semiconductor + \row \li \c{"hcs12"} \li 16-bit HC12 and S12 microcontroller family from Freescale Semiconductor \row diff --git a/share/qbs/modules/cpp/iar.js b/share/qbs/modules/cpp/iar.js index 2928aa2f8..2e44a2514 100644 --- a/share/qbs/modules/cpp/iar.js +++ b/share/qbs/modules/cpp/iar.js @@ -43,7 +43,8 @@ function supportXLinker(architecture) { || architecture === "msp430" || architecture === "v850" || architecture === "m68k" || architecture === "m32c" || architecture === "r32c" || architecture === "m16c" - || architecture === "cr16" || architecture === "hcs12"; + || architecture === "cr16" || architecture === "hcs12" + || architecture === "hcs8"; } function supportILinker(architecture) { @@ -59,7 +60,8 @@ function supportXArchiver(architecture) { || architecture === "78k" || architecture === "avr32" || architecture === "m68k" || architecture === "m32c" || architecture === "r32c" || architecture === "m16c" - || architecture === "cr16" || architecture === "hcs12"; + || architecture === "cr16" || architecture === "hcs12" + || architecture === "hcs8"; } function supportIArchiver(architecture) { @@ -96,6 +98,8 @@ function architectureCode(architecture) { return "45"; case "hcs12": return "12"; + case "hcs8": + return "78"; case "rh850": case "rl78": case "rx": case "stm8": case "sh": case "riscv": return ""; default: @@ -145,6 +149,8 @@ function compilerName(qbs) { return "icccr16c"; else if (architecture === "hcs12") return "icchcs12"; + else if (architecture === "hcs8") + return "iccs08"; throw "Unable to deduce compiler name for unsupported architecture: '" + architecture + "'"; } @@ -189,6 +195,8 @@ function assemblerName(qbs) { return "acr16c"; else if (architecture === "hcs12") return "ahcs12"; + else if (architecture === "hcs8") + return "as08"; throw "Unable to deduce assembler name for unsupported architecture: '" + architecture + "'"; } @@ -315,6 +323,8 @@ function guessArchitecture(macros) { return "cr16"; else if (macros["__ICCHCS12__"] === "1") return "hcs12"; + else if (macros["__ICCS08__"] === "1") + return "hcs8"; } function guessEndianness(macros) { @@ -335,7 +345,8 @@ function guessVersion(macros, architecture) || architecture === "rh850" || architecture === "v850" || architecture === "78k" || architecture === "avr32" || architecture === "sh" || architecture === "riscv" || architecture === "m68k" || architecture === "m32c" || architecture === "r32c" - || architecture === "m16c" || architecture === "cr16" || architecture === "hcs12") { + || architecture === "m16c" || architecture === "cr16" || architecture === "hcs12" + || architecture === "hcs8") { return { major: parseInt(version / 100), minor: parseInt(version % 100), patch: 0 } @@ -596,7 +607,7 @@ function compilerFlags(project, product, input, outputs, explicitlyDependsOn) { args.push("--no_warnings"); break; case "all": - if (architecture !== "78k" && architecture !== "hcs12") { + if (architecture !== "78k" && architecture !== "hcs12" && architecture !== "hcs8") { if (architecture !== "avr32" && architecture !== "r32c" && architecture !== "sh" && architecture !== "m16c") { args.push("--deprecated_feature_warnings=" @@ -704,7 +715,8 @@ function assemblerFlags(project, product, input, outputs, explicitlyDependsOn) { || architecture === "rx" || architecture === "rh850" || architecture === "avr32" || architecture === "sh" || architecture === "riscv" || architecture === "m68k" - || architecture === "r32c" || architecture === "cr16") { + || architecture === "r32c" || architecture === "cr16" + || architecture === "hcs8") { // Silent output generation flag. args.push("--silent"); // Warning level flags. diff --git a/src/app/qbs-setup-toolchains/iarewprobe.cpp b/src/app/qbs-setup-toolchains/iarewprobe.cpp index 8614f4818..63d32bfc3 100644 --- a/src/app/qbs-setup-toolchains/iarewprobe.cpp +++ b/src/app/qbs-setup-toolchains/iarewprobe.cpp @@ -66,7 +66,7 @@ static QStringList knownIarCompilerNames() QStringLiteral("iccriscv"), QStringLiteral("icccf"), QStringLiteral("iccm32c"), QStringLiteral("iccr32c"), QStringLiteral("iccm16c"), QStringLiteral("icccr16c"), - QStringLiteral("icchcs12")}; + QStringLiteral("icchcs12"), QStringLiteral("iccs08")}; } static QString guessIarArchitecture(const QFileInfo &compiler) @@ -110,6 +110,8 @@ static QString guessIarArchitecture(const QFileInfo &compiler) return QStringLiteral("cr16"); if (baseName == QLatin1String("icchcs12")) return QStringLiteral("hcs12"); + if (baseName == QLatin1String("iccs08")) + return QStringLiteral("hcs8"); return {}; } @@ -194,7 +196,8 @@ static Version dumpIarCompilerVersion(const QFileInfo &compiler) || arch == QLatin1String("r32c") || arch == QLatin1String("m16c") || arch == QLatin1String("rc16") - || arch == QLatin1String("hcs12")) { + || arch == QLatin1String("hcs12") + || arch == QLatin1String("hcs8")) { return Version{verCode / 100, verCode % 100}; } @@ -254,6 +257,7 @@ static std::vector<ToolchainInstallInfo> installedIarsFromRegistry() {QStringLiteral("EWM16C"), QStringLiteral("/m16c/bin/iccm16c.exe")}, {QStringLiteral("EWCR16C"), QStringLiteral("/cr16c/bin/icccr16c.exe")}, {QStringLiteral("EWHCS12"), QStringLiteral("/hcs12/bin/icchcs12.exe")}, + {QStringLiteral("EWS08"), QStringLiteral("/s08/bin/iccs08.exe")}, }; QSettings registry(QLatin1String(kRegistryNode), QSettings::NativeFormat); |