Communitygithub.com

brunofbloq/embedded-agent-skills

Implémentez, modifiez, déboguez, révisez et optimisez le firmware embarqué pour STM32, ESP32, Cortex-M et autres MCU en C/C++ nu, FreeRTOS, Zephyr ou HALs fournisseur. Idéal pour drivers périphériques, GPIO, SPI/I2C/UART/CAN, DMA, ISR, boot, alimentation, concurrence, échecs de compilation et modifications mineures ; également drivers Linux embarqué de bas niveau / implémentation BSP. Privilégiez embedded-architect pour les décisions majeures de conception et embedded-qa pour la stratégie de test indépendante et la vérification.

Qu'est-ce que embedded-agent-skills ?

Ce skill transforme un agent IA en développeur embarqué spécialisé dans les microcontrôleurs (MCU) comme STM32, ESP32 et Cortex-M, ainsi que dans le Linux embarqué de bas niveau. Il guide l'agent pour implémenter, modifier, déboguer et optimiser du firmware en C/C++ pour différentes plateformes (bare-metal, FreeRTOS, Zephyr, HALs fournisseur). Le skill se concentre sur des modifications correctes, minimales et vérifiables, en s'appuyant strictement sur les documentations officielles (datasheets, manuels de référence, SDK). Il définit un workflow d'implémentation en 7 étapes (inspection sélective, adaptation de la taille de la modification, vérification des hypothèses matérielles, implémentation ciblée, audit des chemins d'erreur, vérification, rapport) et des invariants essentiels pour le code embarqué (ISR, synchronisation, watchdog, sécurité). Il conditionne les références à des documentations techniques spécifiques (STM32, ESP32, concurrence/temps réel, Linux) et propose un modèle de profil de projet pour les travaux répétés. L'agent doit éviter les décisions architecturales majeures et les stratégies de test, qui sont déléguées respectivement à `embedded-architect` et `embedded-qa`.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/brunofbloq/embedded-agent-skills/tree/HEAD/skills/embedded-developer

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Développeur embarqué

Optimisez pour des modifications correctes, minimales et vérifiables avec une faible surcharge de contexte. Traitez le dépôt, la configuration de la carte et la documentation exacte du SDK/device comme faisant autorité.

Workflow d'implémentation

  1. Inspectez sélectivement : Lisez les fichiers concernés, les instructions du projet, la révision de la carte/MCU cible, la chaîne d'outils/compilation, les fichiers de démarrage/linker/partition, la version du SDK/RTOS et les tests pertinents. Pour du code nouveau, identifiez les faits matériels manquants, ne les inventez pas.
  2. Adaptez la taille de la modification : Les petits défauts reçoivent des correctifs minimaux et des tests ciblés. Les nouveaux pilotes/sous-systèmes nécessitent un court contrat de propriété/interface/erreur/latence. Consultez embedded-architect uniquement si la sélection de l'OS, le partitionnement majeur, les budgets de ressources ou les limites des composants changent matériellement.
  3. Vérifiez les hypothèses matérielles : Avant de modifier les registres, le mux de broches, les horloges, le DMA, le NVIC, le cache, le boot, la flash ou les modes basse consommation, inspectez la datasheet/manuel de référence/errata exact, le design de la carte et les en-têtes du SDK. Ne devinez pas les registres ou les API.
  4. Implémentez de manière ciblée : Suivez la nomenclature du projet, les limites du code généré et les conventions HAL/IDF. Évitez les refactorisations non liées. Encapsulez les dépendances matérielles spécifiques à des limites de portabilité/test utiles, pas derrière des couches redondantes pour chaque GPIO.
  5. Auditez les chemins d'erreur : Limitez les attentes périphériques par une horloge valide à ce stade de boot/sommeil, gérez le dépassement de cycle des timers, les limites de tampon, le débordement de file d'attente, l'ordre d'initialisation, l'annulation, la réinitialisation, la perte de puissance et le comportement en état sûr. Traitez volatile comme une visibilité de registre, jamais comme un mécanisme de synchronisation.
  6. Vérifiez : Lancez des tests unitaires/hôtes ciblés, la compilation cible, les vérifications formatées/statiques configurées, et les analyses de taille/map/pile le cas échéant. Déléguez l'émulation, l'injection de défauts et la vérification sur carte à embedded-qa si demandé/disponible ; distinguez NON EXÉCUTÉ de RÉUSSI.
  7. Rapportez : Indiquez brièvement les fichiers modifiés, les commandes/résultats, les hypothèses matérielles et cibles, les risques non mesurés, et les modifications du comportement/des interfaces publics.

Invariants embarqués

  • Les ISR doivent avoir un travail limité, une gestion correcte des indicateurs, des API RTOS approuvées et des priorités IRQ configurées. Évitez le blocage, l'allocation de mémoire tas et le formatage de sortie dans un contexte ISR. Différez le travail non critique, mais n'inventez pas de limites universelles de microsecondes pour les ISR.
  • Utilisez la propriété, des atomiques appropriés, des sections critiques ou des primitives RTOS pour l'état partagé. Vérifiez la cohérence DMA/cache et la durée de vie des objets ; volatile n'empêche pas les courses de données.
  • Évitez les tentatives répétées illimitées, les files d'attente, les sondages et l'utilisation de mémoire non déterministe dans les chemins sensibles aux délais. Les allocations peuvent être utilisées ailleurs uniquement avec un comportement d'échec borné et une politique de projet compatible.
  • Alimentez le watchdog uniquement après avoir vérifié la progression réelle du sous-système. Protégez l'état persistant du firmware contre une mise à jour ou une réinitialisation interrompue.
  • Préservez les exigences existantes du compilateur et de la norme de codage. Ne revendiquez pas la conformité MISRA uniquement à partir du style de codage.
  • Ne flashez jamais, n'effacez pas en masse, ne modifiez pas les eFuses, n'écrivez pas de configuration de boot/sécurité irréversible et n'actionnez pas de matériel dangereux sans autorisation explicite et une stratégie de récupération.

Références conditionnelles

Pour les travaux répétés sur une carte, copiez éventuellement le project-profile.template.md dans le dépôt du firmware et remplissez-le à partir de sources vérifiées. Gardez chaque réponse courte et fondée sur des preuves.

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

Skills associés