Hallo, Programmiererkollegen, Hardware und alle, die mit ihnen sympathisieren. Ich möchte weiterhin die Fähigkeiten der Qt Creator IDE in Verbindung mit dem QBS-Build-System in Bezug auf die Mikrocontroller-Programmierung überprüfen.
Zuvor schrieb ich über Verbesserungen in früheren Versionen von
QtC 4.10 und QBS 1.14 .
Für wen dieses Thema interessant ist, herzlich willkommen bei cat.
Neulich wurde leise und unmerklich das Release
Qt Creator 4.11 veröffentlicht, das einige Verbesserungen für die Arbeit mit Mikrocontrollern (bei gewöhnlichen Leuten - "Baremetal" -Geräte) hinzufügte. Diese Version von Qt Creator integriert das
QBS 1.15-Build- System, das ebenfalls über neue Verbesserungen verfügt (es wurde noch nicht veröffentlicht).
Verbesserungen in Qt Creator
Alle diese Verbesserungen sind nur verfügbar, wenn das BareMetal-Plugin aktiviert ist, das über das Menü "Hilfe -> Über Plugins -> Geräteunterstützung -> BareMetal" aktiviert wird.
- Den GCC-, SDCC- und IAR EW-Compilern wurden neue Architekturen hinzugefügt, deren grundlegende Details in der folgenden Tabelle aufgeführt sind:
Diese neuen Compiler werden nun automatisch auf der Registerkarte "Extras -> Optionen -> Kits -> Compiler -> Automatisch erkannt" erkannt.
Für mich sieht es zum Beispiel so aus:

Unter Windows ist die automatische Erkennung des GCC-Compilers für die MSP430-Architektur nicht implementiert, da Dieses Set wird als einfaches Archiv und nicht als Installationsprogramm bereitgestellt.
Es stört jedoch niemanden, diesen GCC-Compiler (und jeden anderen unterstützten) manuell hinzuzufügen, während Qt Creator die ABI des Compilers korrekt ermittelt:

Hinweis: Selbstverständlich verfügen alle Compiler automatisch über Verzeichnisse mit Überschriften, vordefinierten Makros usw., um den Code korrekt hervorzuheben.
- Auf Wunsch der Mitarbeiter wurde die Unterstützung für SVD- Dateien zur Beschreibung der Register von Mikrocontroller-Peripheriegeräten hinzugefügt.
Hinweis: Wie ich weiß, steht diese Funktion nur für ARMs zur Verfügung (obwohl ich mich irren kann) und ist noch experimenteller Natur.
Um diese Funktion nutzen zu können, müssen Sie zunächst die gewünschte SVD-Datei im Feld „Peripheral Description File“ in den Geräteeinstellungen „Tools-> Options-> Devices-> YourDevice“ auswählen, die dem Ziel-Mikrocontroller entsprechen:

Hinweis: Diese Dateien können entweder von der ARM-Website heruntergeladen oder aus Verzeichnissen mit installierten Keil MDK- oder IAR EW-Produkten entnommen werden.
Wählen Sie nach dem Start des Debuggens im Menü „Fenster-> Ansichten“ die Option „Peripherieregister“. Danach öffnet sich das Panel „Peripheral Registers“ (ähnlich dem Panel „Registers“), in dem durch Rechtsklick ein Menü mit einer Liste der anzuzeigenden Registergruppen aufgerufen wird:

Wir wählen eine beliebige Gruppe aus (zum Beispiel RCC) und erhalten eine Liste aller Register dieser Gruppe mit ihrer detaillierten Beschreibung und den Werten, die gelesen / geschrieben werden können:

Hinweis: Derzeit ist die Anzeige von Registern nur einer der ausgewählten Gruppen implementiert.
Verbesserungen in QBS
QBS wird ein wesentlicher Bestandteil dieser Überprüfung sein, daher ist es sinnvoll, über die Verbesserungen zu sprechen:
- Unterstützung für diese neuen Compiler hinzugefügt und die Möglichkeit implementiert, installierte Compiler automatisch zu erkennen und Profile zu erstellen.
Die qbs.architecture- Eigenschaft weist die folgenden Werte auf:
- Keil MDK- und IAR EW-Projekten wurde die Unterstützung für Generatoren für die folgenden Architekturen und Versionen hinzugefügt:
Hinweis: Die obige Tabelle zeigt die Versionen der Produkte, mit denen die Entwicklung von Generatoren vorangetrieben und die Funktionsfähigkeit mehr oder weniger überprüft wurde.
Somit ist es jetzt mit diesen Generatoren möglich, ein natives Projekt für die gewünschte Ziel-IDE zu erstellen. Gleichzeitig setzt jeder Generator alle im QBS-Projekt angegebenen compilerspezifischen Flags, Pfade und Abhängigkeiten in die entsprechenden Einstellungen der Zielprojekt-IDE um.
Wenn das QBS-Quellprojekt mehrere Produkte enthielt (z. B. Anwendungen, Bibliotheken usw.), erstellt der Generator für jede Ziel-IDE einen Ziel-Arbeitsbereich mit verschachtelten Unterprojekten.
Hinweis: Ich sage sofort, dass die KEIL- oder IAR EW-IDEs, wie ich weiß, das Nachverfolgen von Abhängigkeiten nicht unterstützen (wenn ich falsch liege, korrigieren Sie es). Wenn das Projekt beispielsweise die Anwendung und die Abhängigkeit in Form einer Bibliothek enthält, muss der Benutzer zuerst die Bibliothek und dann die Anwendung selbst erstellen.
Um Projekte zu generieren, müssen Sie bereits QBS-Profile mit den entsprechenden Compilern konfiguriert haben.
Hinweis: Bisher können Sie nicht auf Profile verzichten, da Der Generator aus dem Profil erhält die Architektur selbst, den Pfad zum vorinstallierten Compiler (IDE) und vieles mehr. Diese Daten werden für die korrekte Suche nach Linkerskripten, Pfaden zu Laufzeitbibliotheken und anderen spezifischen Dingen benötigt (es gibt dort keine einfache Logik).
Um beispielsweise ein Zielprojekt für IAR EW und ARM-Mikrocontroller zu erstellen, reicht es aus, den folgenden Befehl auszuführen:
qbs generate -g iarew8 -d <path/to/build/directory> -f <path/to/qbs/project/file> profile:<your/qbs/profile/for/arm>
Profilnamen können beispielsweise mit dem GUI-Dienstprogramm qbs-config-ui (oder mit der Konsolenversion) abgerufen werden.
Hinweis: Generatoren haben derzeit experimentellen Status. In einigen Fällen (wenn das ursprüngliche Projekt komplex ist) werden möglicherweise falsche Zielprojektdateien generiert oder einige Flags und mehr übersprungen. Schimpfe nicht, sondern erstelle Fehlerberichte im QBS-Tracker.
Den aktuellen Status der Compiler-Unterstützung und den aktuellen Status der Generator-Integration finden Sie
hier .
Um zu sehen, wie alles funktioniert, bietet QBS eine Reihe einfacher
Beispiele .
Was weiter
In zukünftigen Versionen ist geplant,
Renesas- Architekturen und -Generatoren für diese Architekturen zum IAR EW hinzuzufügen (ich weiß nicht, ob dies erfolgreich sein wird). Und wenn Sie Glück haben, wird ein Debugger von Keil uVision in Qt Creator integriert.
In diesem Sinne beende ich meine Geschichte und bedanke mich bei allen, die dieser Rezension Aufmerksamkeit schenken werden.