Cross-Compiler-Tests

Embedded-Tools von KMC jetzt mit SuperTest validiert

21. Juli 2025, 11:20 Uhr | Marcel Beemster, CTO von Solid Sands
© Kyoto Microcomputer

Kyoto Microcomputer (KMC) setzt für seine LLVM/Clang-basierten Embedded-Compiler auf die Test-Suite SuperTest von Solid Sands, um Qualität und plattformübergreifende Kompatibilität sicherzustellen.

Diesen Artikel anhören

Von der Automobilindustrie über industrielle Steuerungen bis hin zur Consumer-Elektronik verlassen sich Software-Entwickler auf Compiler, Debugger und Echtzeitbetriebssysteme, um robuste Anwendungen zu entwickeln. Mit zunehmend komplexeren embedded Systemen werden jedoch auch die Herausforderungen immer größer, eine konsistente Compiler-Performance über verschiedene Architekturen hinweg aufrechtzuerhalten. Die Validierung von Compilern und strenge Tests sind unerlässlich, um Software zu entwickeln, die den hohen Anforderungen der embedded Anwendungen gerecht wird.

Kyoto Microcomputer (KMC), ein japanischer Anbieter von Entwicklungstools für Embedded-Software, verfügt über mehr als 20 Jahre Erfahrung in der Entwicklung und Lieferung von Entwicklungswerkzeugen für embedded Mikrocontroller in den Bereichen Automotive, industrielle Steuerung, Kommunikation, Computer und Unterhaltungselektronik. KMC ist besonders bekannt für seine innovativen Debugging-Tools und Echtzeitbetriebssysteme. Um die Integration dieser Tools zu erleichtern und die plattformübergreifende Kompatibilität zu verbessern, hat KMC auch GCC-basierte Produkte entwickelt – diesmal jedoch mithilfe der LLVM-Compiler-Infrastruktur und -Toolchain mit Clang als C/C++-Frontend. Dies erfordert das Testen des LLVM/Clang-Compilers, der NetBSD-basierten C-Bibliothek (libc) und der mit LLVM/Clang gelieferten C++-Bibliotheken (libc++, libc++abi, libunwind). Diese Entwicklungsumgebung bringt jedoch mehrere Herausforderungen beim Testen des Compilers und der Bibliotheken mit sich. KMC entschied sich für die Compiler-Test-/Validierungssuite »SuperTest« von Solid Sands, um diese Herausforderungen zu bewältigen.

Die erste Herausforderung besteht darin, dass die Cross-Compiler-Konfiguration von KMC den Einsatz der Standard-Testsuite von LLVM/Clang verhindert. Da der Compiler auf Ubuntu basiert, aber ausführbare Dateien generiert, die nur unter Windows laufen (ein kanadischer Cross-Build), können die Standardtests von LLVM/Clang in dieser Umgebung nicht ausgeführt werden. Die zweite Herausforderung besteht darin, dass die NetBSD-basierte C-Bibliothek (libc) ein Test-Framework verwendet, das von NetBSD abhängig ist. Tests lassen sich daher nicht auf den Bare-Metal-Zielumgebungen (AArch64, ARM, RISC-V32/64) ausführen, auf die sich KMC konzentriert. Darüber hinaus können die mit LLVM/Clang gebündelten C++-Bibliotheken (libc++, libc++abi) und libunwind nicht getestet werden, wenn der Compiler-Host und das Ziel unterschiedlich sind. KMC benötigte daher eine große, zuverlässige Standard-C/C++-Testsuite für Bare-Metal-Cross-Compiler, die unter Windows compilerunabhängig ausgeführt werden kann.

SuperTest war in weniger als zwei Wochen einsatzbereit, aber das Entwicklungsteam von KMC verbrachte über ein Jahr damit, Fehlerursachen in der Testumgebung, dem Compiler, libc/libc++, dem Test-I/O-Stub-Code und der Ausführungsumgebung (Simulator) zu isolieren. Als Ergebnis dieses umfangreichen Prozesses sind derzeit noch etwa zehn Verbesserungen in C und 50 in C++ in Arbeit. SuperTest ist zu einem integralen Bestandteil des Qualitätskontrollprozesses von KMC geworden. Das Entwicklungsteam führt ihn nicht nur nach jedem Release-Build aus, sondern auch nach jeder größeren Änderung oder wenn sich eine Reihe kleinerer Updates angesammelt haben, um eine kontinuierliche Validierung während des gesamten Entwicklungszyklus sicherzustellen. Die LLVM/Clang-basierten Compiler-Lösungen von KMC werden bereits von vielen Kunden des Unternehmens eingesetzt, und SuperTest hilft ihnen, die erforderliche kontinuierliche Qualitätskontrolle durchzuführen.

Toshihiro Wakatsuki, Toolchain Development Leader bei KMC: »Qualitätskontrolle ist bei der Entwicklung von Embedded-Software entscheidend, da die meisten Kunden einen garantierten Support für mehrere Jahre bis zu 10 Jahre benötigen und Compiler-Binärdateien in der Regel während der gesamten Projektlaufzeit nicht geändert werden können. Hier kommt SuperTest wirklich zum Tragen.«

Die Funktionen von SuperTest wurden genutzt, um das Qualitätssicherungsprogramm des Unternehmens weiter zu stärken. Die Integration von SuperTest in die Test-/Validierungs-Toolchain von KMC wurde vom Solid-Sands-Vertriebspartner in Japan (Fujisetsubi) und dem Kundensupportteam von Solid Sands in Amsterdam unterstützt.

passend zum Thema


Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu elektroniknet

Weitere Artikel zu Software/Entwicklung

Weitere Artikel zu Entwicklungswerkzeuge