Vue d'ensemble des possibilités de Qt Creator 4.11 et QBS 1.15 pour la programmation de microcontrôleurs

Bonjour, chers programmeurs, matériel et tous ceux qui sympathisent avec eux. Je voudrais continuer à passer en revue les capacités de l'IDE Qt Creator en conjonction avec le système de construction QBS concernant la programmation des microcontrôleurs.

Plus tôt, j'ai écrit sur les améliorations des versions précédentes de QtC 4.10 et QBS 1.14 .

Pour qui ce sujet est intéressant, bienvenue au chat.

L'autre jour, discrètement et imperceptiblement, la version Qt Creator 4.11 a été publiée, qui a ajouté quelques améliorations pour travailler avec les microcontrôleurs (chez les gens ordinaires - les appareils «baremetal»). Cette version de Qt Creator intègre le système de construction QBS 1.15 , qui a également de nouvelles améliorations (il n'a pas encore été publié).

Améliorations de Qt Creator


Toutes ces améliorations ne sont disponibles que lorsque le plugin BareMetal est activé, ce qui est activé via le menu "Aide -> À propos des plugins -> Support des périphériques -> BareMetal".

  1. De nouvelles architectures ont été ajoutées aux compilateurs GCC, SDCC et IAR EW, dont les détails de base sont donnés dans le tableau ci-dessous:
    CompilateurArchitectures prises en charge
    IAR EWSTM8, MSP430
    GccMSP430
    SDCCSTM8

    Désormais, ces nouveaux compilateurs sont automatiquement détectés dans l'onglet "Outils -> Options -> Kits -> Compilateurs -> Auto-détectés".

    Par exemple, pour moi, cela ressemble à ceci:



    Sous Windows, la détection automatique du compilateur GCC pour l'architecture MSP430 n'est pas implémentée, car Cet ensemble est fourni comme une archive simple et non comme un programme d'installation.

    Mais personne ne prend la peine d'ajouter manuellement ce compilateur GCC (et tout autre supporté), tandis que Qt Creator déterminera correctement le compilateur ABI:



    Remarque: Et bien sûr, tous les compilateurs auront automatiquement des répertoires avec des en-têtes, des macros prédéfinies, etc. pour la mise en évidence correcte du code.

  2. À la demande des travailleurs , un support a été ajouté pour les fichiers SVD pour décrire les registres des périphériques du microcontrôleur.

    Remarque: Comme je le sais, cette fonctionnalité est disponible uniquement pour les ARM (bien que je puisse me tromper) et est toujours de nature expérimentale.

    Pour utiliser cette fonction, vous devez d'abord sélectionner le fichier SVD souhaité dans le champ «Fichier de description périphérique» dans les paramètres de l'appareil «Outils-> Options-> Périphériques-> Votre appareil», correspondant au microcontrôleur cible:



    Remarque: Ces fichiers peuvent être téléchargés à partir du site Web d'ARM ou extraits de répertoires avec les produits Keil MDK ou IAR EW installés.

    De plus, après avoir commencé le débogage, sélectionnez «Registres périphériques» dans le menu «Fenêtre-> Vues». Après cela, le panneau «Registres périphériques» s'ouvrira (similaire au panneau «Registres») dans lequel, par un clic droit, un menu avec une liste des groupes de registres à afficher est appelé:



    Nous sélectionnons n'importe quel groupe (par exemple, RCC) et obtenons une liste de tous les registres de ce groupe avec leur description détaillée et leurs valeurs qui peuvent être lues / écrites:



    Remarque: Pour le moment, l'affichage des registres d'un seul des groupes sélectionnés est implémenté.

Améliorations dans QBS


QBS fera partie intégrante de cette revue, il est donc logique de parler de ses améliorations:

  1. Ajout de la prise en charge de ces nouveaux compilateurs et implémentation de la capacité de détecter automatiquement les compilateurs installés et de créer des profils.

    La propriété qbs.architecture a les valeurs suivantes:

    Nom de l'architectureValeur de la propriété
    STM8stm8
    MSP430msp430

  2. La prise en charge du générateur a été ajoutée aux projets Keil MDK et IAR EW pour les architectures et versions suivantes:

    IDEL'architectureGénérateur
    KEIL uVision 5.23BRASkeiluv5
    KEIL uVision 5.23MCS51keiluv5
    IAR EW 8.40.1BRASiarew8
    IAR EW 3.11.1STM8iarew3
    IAR EW 10.10.1MCS51iarew10
    IAR EW 7.12.4MSP430iarew7
    IAR EW 7.20.1AVRiarew7

    Remarque: Le tableau ci-dessus montre les versions des produits avec lesquels le développement des générateurs allait et dont le fonctionnement était plus ou moins vérifié.

    Ainsi, il est désormais possible avec ces générateurs de créer un projet natif pour l'IDE cible souhaité. Dans le même temps, chaque générateur convertira tous les indicateurs, chemins et dépendances spécifiques au compilateur spécifiés dans le projet QBS aux paramètres correspondants de l'IDE du projet cible.

    Si le projet QBS source contenait plusieurs produits (par exemple, applications, bibliothèques, etc.), le générateur créera un «espace de travail» cible avec des sous-projets imbriqués «projet» pour chaque IDE cible.

    Remarque: Je dirai tout de suite que, comme je le sais, les IDE KEIL ou IAR EW ne prennent pas en charge le suivi des dépendances (si je me trompe, corrigez-le). Par conséquent, par exemple, si le projet contient l'application et la dépendance sous la forme d'une bibliothèque, l'utilisateur devra d'abord créer la bibliothèque, puis l'application elle-même.

    Pour générer des projets, vous devez avoir déjà configuré des profils QBS avec les compilateurs appropriés.

    Remarque: jusqu'à présent, vous ne pouvez pas vous passer de profils, car le générateur du profil reçoit l'architecture elle-même, le chemin vers le compilateur préinstallé (IDE), et plus encore. Ces données sont nécessaires pour la recherche correcte des scripts de l'éditeur de liens, des chemins d'accès aux bibliothèques d'exécution et d'autres choses spécifiques (il n'y a pas de logique simple là-bas).

    Par exemple, pour créer un projet cible pour le microcontrôleur IAR EW et ARM, il suffit d'exécuter la commande suivante:

    qbs generate -g iarew8 -d <path/to/build/directory> -f <path/to/qbs/project/file> profile:<your/qbs/profile/for/arm> 

    Les noms de profil peuvent être obtenus à l'aide, par exemple, de l'utilitaire GUI qbs-config-ui (ou utilisez la version console).

    Remarque: Pour le moment, les générateurs ont un statut expérimental. Dans certains cas (si le projet d'origine est complexe), ils généreront peut-être des fichiers de projet cible incorrects, ou ignoreront certains indicateurs et plus encore. Ne grondez pas fortement, mais créez des rapports de bogues dans le tracker QBS.

Vous pouvez voir l'état actuel de la prise en charge du compilateur ici , et l'état actuel de l'intégration du générateur ici .

Pour voir comment tout cela fonctionne, QBS fournit un ensemble d' exemples simples.

Et ensuite


Dans les versions futures, il est prévu d'ajouter des architectures et des générateurs Renesas à l'IAR EW pour ces architectures (je ne sais pas si cela réussira). Et aussi, si vous êtes très chanceux, un débogueur de Keil uVision sera intégré dans Qt Creator.

Sur cette note, je termine mon histoire, merci à tous ceux qui feront attention à cette critique.

Source: https://habr.com/ru/post/fr480132/


All Articles