AdobeStock_314928196_1540-800.jpeg
Accueil » Actualités » 5 outils que les développeurs embarqués devraient utiliser quotidiennement

5 outils que les développeurs embarqués devraient utiliser quotidiennement



Combien de ces outils intégrés utilisez-vous ?

Les outils que nous utilisons en tant que développeurs peuvent faire une différence considérable dans la vitesse, la qualité et le coût global du logiciel que nous développons. Voici cinq outils que j’ai trouvés très utiles. Certains de ces outils que j’ai découverts récemment tandis que d’autres sont utilisés depuis plus d’une décennie. Quoi qu’il en soit, j’utilise ces outils quotidiennement et je suis sûr que d’autres développeurs les trouveront – ou des outils similaires – d’une grande valeur.

Outil n°1 – Analyseur logique Saleae

Être capable de voir et d’enregistrer un signal est crucial pour les développeurs de logiciels embarqués. Il y a eu de nombreuses fois où j’ai dû contrôler un bus SPI pour surveiller les signaux afin de m’assurer que la couche physique faisait ce que je pensais qu’elle devrait être. Au début de ma carrière, je comptais sur un oscilloscope, mais les développeurs de logiciels d’aujourd’hui peuvent généralement s’en tirer avec un bon analyseur logique à grande vitesse.

J’utilise généralement un Saleae Logic Pro 8, qui est un peu cher, mais le nouveau Logic Pro 8 fonctionne si bien que je ne peux pas me plaindre. Il peut même effectuer un échantillonnage analogique sur le signal, ce qui permet de garantir que le signal analogique ainsi que la logique numérique se présentent comme ils le devraient.

Beningo Embedded Group, utilisé avec autorisationFig1- SPI-Bus.png

Une capture d’écran du bus SPI montrant la logique numérique analysée dans les quatre canaux supérieurs avec des mesures de tension analogiques dans la moitié inférieure.

Outil #2 – Traceur Percepio

Les outils de traçage RTOS sont un moyen fantastique de visualiser et de voir comment le logiciel se comporte et fonctionne. Un de mes collègues les décrit assez justement comme des « oscilloscopes pour ingénieurs en logiciel ». Un outil de traçage permet aux développeurs de voir les transitions vers et hors des tâches, de surveiller l’utilisation de la pile et du tas, de surveiller les machines d’état ainsi que des dizaines d’autres activités qui se produisent dans le logiciel chaque milliseconde.

L’outil de trace que j’utilise est le Percepio Tracealyzer, qui fonctionne bien pour les RTOS comme FreeRTOS, ThreadX et quelques autres. Des outils tels que Tracealyzer fournissent aux développeurs des informations sur les performances de leur logiciel qui, autrement, prendraient du temps et seraient difficiles à localiser. L’idée est qu’ils enregistrent les événements qui se produisent dans le logiciel, puis les transmettent à un hôte pour afficher les événements et effectuer diverses analyses sur les données. J’ai découvert que des outils comme celui-ci peuvent aider à accélérer le débogage et également aider les développeurs à vérifier que le logiciel fait ce qu’ils attendent de lui.

Beningo Embedded Group, utilisé avec autorisationFig2-trace.png

Exemple de trace montrant la chronologie des événements, l’utilisation du processeur et le journal des événements.

Outil #3 – Comprendre

Comprendre, développé par Scitools, offre aux développeurs un excellent environnement pour analyser et comprendre leurs logiciels. J’utilise Comprendre lors de la réalisation d’audits logiciels pour m’aider à comprendre rapidement l’état de la base de code. L’outil fournit des capacités pour effectuer des complexités cyclomatiques, effectuer une analyse métrique logicielle et une analyse statique, entre autres. J’ai trouvé cet outil si utile qu’il est passé de mon ensemble d’outils d’audit et d’analyse à mon ensemble d’outils de développement logiciel quotidien. Si vous voulez vous assurer que votre logiciel respecte vos normes de codage ou voir où il pourrait s’égarer, alors vous avez besoin de cet outil.

Outil n°4 – Atlassian et Gitlab

La gestion efficace des processus d’un projet de logiciel embarqué est encore une fois essentielle à la réussite d’un projet. Je suis généralement un utilisateur Atlassian, mais je vois de plus en plus de collègues et de clients utiliser Gitlab. Les deux sociétés semblent offrir des capacités similaires, bien que de différentes manières. Pour moi, il ne s’agit pas tant de décider lequel est le meilleur que de s’assurer que votre équipe de développement utilise efficacement les outils fournis par ce type d’entreprises.

L’intégration continue et les tests sont un domaine dans lequel j’ai vu une grande poussée et que j’ai poussé moi-même. Les équipes de logiciels embarqués travaillant dans des projets de petite à moyenne taille ont tendance à ne pas avoir de processus de test et d’intégration continue bien définis. J’ai découvert que ces processus améliorent non seulement la qualité, mais peuvent également faire gagner un temps et des efforts considérables. Personnellement, j’aime les capacités Gitlab CI/CD, mais encore une fois, chaque équipe de développement devrait trouver ce qui lui convient et utiliser un outil doté de ces capacités pour le référentiel, les revues de code, CI/CD et la gestion de la qualité logicielle.

Outil #5 – SEGGER J-Trace

Au cours des dernières années, j’ai fait de gros efforts pour améliorer les tests et la gestion des logiciels embarqués. (Ce qui ressort probablement des outils que j’utilise tous les jours). Je sais que de nombreuses entreprises essaient de tirer parti des débogueurs intégrés et évitent d’avoir à payer pour des sondes de débogage professionnelles. Il y a des années, je faisais la même chose jusqu’à ce que je me lasse de la collection géante de programmeurs et de cartes de développement à bas prix que j’avais au bureau.

J’ai plusieurs sondes de débogage différentes dans le bureau, mais celle que j’utilise le plus est mon J-Trace. La capacité que j’aime le plus dans cette sonde est qu’elle prend en charge la microcellule à trace étendue (ETM) d’Arm, qui permet à un développeur d’effectuer un traçage d’instructions sur les microcontrôleurs qui la prennent en charge. Cela permet à un développeur d’utiliser Ozone pour effectuer le traçage des instructions et, lorsqu’il est associé à des cas de test pour les tests sur cible, de comprendre la couverture du code, l’utilisation de la mémoire et plusieurs autres paramètres.

Conclusion

Les outils que les développeurs utilisent quotidiennement peuvent faire la différence entre respecter une échéance ou non ; créer ou non des logiciels de qualité ; respecter les budgets logiciels ou non. Quand j’avais 17 ans et que j’achetais mes premiers outils multimètres et électroniques, un ami avisé m’a convaincu de ne pas acheter les outils bon marché mais de payer plus pour ceux qui dureraient. Plus de 20 ans plus tard, j’ai toujours et j’utilise ces mêmes outils. C’est l’une des principales raisons pour lesquelles je n’ai pas peur d’acheter des outils de qualité, sachant qu’ils dureront et offriront le meilleur retour sur investissement.

Nous venons d’examiner les outils que j’utilise généralement quotidiennement, mais il y en a sans aucun doute beaucoup d’autres que les développeurs peuvent et doivent ajouter à leur boîte à outils. Quels outils avez-vous trouvés qui facilitent le développement de logiciels ? Si vous avez un moment libre, partagez vos outils préférés dans les commentaires.

Publications similaires