Retour à l'accueil

UART CLI pour microcontrôleurs : commandes de débogage

Ce document décrit la mise en œuvre de UART CLI pour déboguer le firmware des microcontrôleurs. Couvre les commandes pour diagnostiquer les ressources matérielles, périphériques, performances et calculateurs intégrés. Exemples pour développeurs middle/senior.

CLI dans MCU : des GPIO aux CAN et calculateurs PLL
Advertisement 728x90

# Implémentation d'une CLI UART pour le débogage du firmware de microcontrôleur

La CLI UART fournit une interface en ligne de commande via UART pour le débogage du firmware de microcontrôleur. La syntaxe est similaire à celle de l'assembleur : nom de la commande suivi d'arguments positionnels séparés par des espaces. Une commande — une ligne.

command_name arg1 arg2 arg3 ...

Pour se connecter depuis un PC, utilisez TeraTerm avec des réglages de délai inter-octet afin d'éviter de déborder le tampon du firmware. La première chose qui apparaît dans la console est le journal d'initialisation du système en vert, semblable à un enregistreur de vol de type boîte noire. Après l'initialisation, l'invite --> apparaît, parfois accompagnée du temps de fonctionnement pour vérifier l'horlogerie.

Structure des commandes : getters et setters

Les commandes sont divisées en getters (visualisation des états) et setters (modification des paramètres). Les getters sont sans risque pour l'analyse du firmware.

Google AdInline article slot
  • h ou help [substring] — liste des commandes, filtrée par sous-chaîne.
  • TAB — autocomplétion des commandes.
  • vi — version du firmware, compilateur, git SHA256.

La commande ll [module] affiche les niveaux de journalisation pour les modules et prend en charge le débogage de style printf.

h
gpio

Diagnostics des ressources matérielles

La CLI donne accès à l'état des sous-systèmes clés :

  • freq — fréquence du cœur.
  • clk — horloges activées pour les sous-systèmes.
  • gl — états des broches GPIO.
  • rm [addr] [bytes] — lecture mémoire par adresse.
  • wm [addr] [data] — écriture en mémoire.

Pour les registres :

Google AdInline article slot
rr timer5 0x10
nrm  # lecture des registres NAU8814 via I2C

Liste des commandes de diagnostic :

| Command | Description |

|---------|-------------|

Google AdInline article slot

| fd | Diagnostics flash |

| pwd | Paramètres PWM |

| lmd | État LED |

| intd | Interrupts |

| cdf | Filtres CAN |

| trd | Timers |

| cd | Niveaux de remplissage pile par cœur |

Interfaces réseau et périphériques

  • i2cs — scan du bus I2C, affiche les adresses des périphériques (DS3231, EEPROM).
  • cs [can_num] [id] [hex_data] — envoi de paquet CAN.
  • ll can debug — journal des paquets CAN reçus.

La commande repeat [cmd] N P répète une commande N fois avec une période P ms — utile pour les tests de stress.

Surveillance des performances et des tâches

  • scd — diagnostics de la super-boucle : itérations/sec de while(1), durée moyenne.
  • Planificateur de tâches : visualisation et désactivation par ID sans recompilation.
  • nvram — lecture/écriture NVRAM pour reconfiguration.

Exemple de super-boucle sur MCU et PC :

![scd on MCU]

reboot — redémarrage du cœur.

Calculateurs et utilitaires intégrés

La CLI transforme l'appareil en outil de calcul :

  • Décodage Base64, RLE, AES256.
  • Hachage SHA256, CRC16.
  • Distances GNSS, angles vectoriels.
  • Équations linéaires, coefficients PLL (clock_pll_calc 220000000).
  • bd val1 val2 — différence de bits dans les registres 32 bits.
  • Valeur de condensateur par marquage.
  • cfim — ID CAN réels par masque.

Exemple de diviseur de tension :

calc_vdiv R1=1000 R2=1000 Vin=3.3

Tests unitaires lancés par sous-chaîne : test i2c.

Points clés

  • La CLI UART est essentielle dans les builds de débogage pour la mise en route et le débogage.
  • Ne se bloque pas lors d'une reconnexion d'alimentation, contrairement à SWD/JTAG.
  • Prend en charge UART, stdin/stdout, autres protocoles.
  • Mises à jour du firmware et calibration via CLI.
  • Nombre de commandes adapté à la taille de la flash.

Faits d'implémentation

La CLI est une structure hiérarchique de modules firmware. Elle analyse les commandes et les route vers les composants. Sur Windows, c'est une application console semblable à BusyBox pour le débogage en conditions contrôlées. Sortie automatique après 60 s de délai d'attente ou Échap.

— Editorial Team

Advertisement 728x90

Lire ensuite