Zpět na domů

UART CLI pro mikrokontroléry: příkazy ladění

Materiál popisuje implementaci UART CLI pro ladění firmware mikrokontrolérů. Pokryty příkazy diagnostiky hardwarových zdrojů, periferie, výkonu a vestavěné kalkulačky. Příklady pro middle/senior vývojáře.

CLI v MCU: od GPIO po CAN a PLL kalkulačky
Advertisement 728x90

# Implementace UART CLI pro ladění mikrokontrolerových firmware

UART CLI poskytuje rozhraní příkazového řádku přes UART pro ladění firmware mikrokontrolérů. Syntaxe je podobná assembleru: název příkazu následovaný pozičními argumenty oddělenými mezerami. Jeden příkaz — jedna řádka.

command_name arg1 arg2 arg3 ...

Pro připojení z PC použijte TeraTerm s nastavením pauzy mezi bajty, aby se zabránilo přetečení bufferu firmware. První, co se vypíše do konzole — log inicializace systému v zelené barvě, podobný pásu černé skatule. Po inicializaci se objeví prompt --> , někdy s up_time pro kontrolu taktování.

Struktura příkazů: gettery a settery

Příkazy se dělí na gettery (prohlížení stavů) a settery (změna parametrů). Gettery jsou bezpečné pro analýzu firmware.

Google AdInline article slot
  • h nebo help [podřetězec] — seznam příkazů, filtr podle podřetězce.
  • TAB — autodoplňování příkazů.
  • vi — verze firmware, kompilátoru, git SHA256.

Příkaz ll [module] zobrazuje úrovně logování pro moduly, podporuje printf-ladění.

h
h gpio

Diagnostika hardwarových zdrojů

CLI poskytuje přístup k stavům klíčových podsystémů:

  • freq — frekvence jádra.
  • clk — zapnuté taktové signály podsystémů.
  • gl — stav GPIO pinů.
  • rm [addr] [bytes] — čtení paměti podle adresy.
  • wm [addr] [data] — zápis do paměti.

Pro registry:

Google AdInline article slot
rr timer5 0x10
nrm  # čtení registrů NAU8814 přes I2C

Seznam diagnostických příkazů:

| Příkaz | Popis |

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

Google AdInline article slot

| fd | Diagnostika flash |

| pwd | PWM nastavení |

| lmd | Stav LED |

| intd | Přerušení |

| cdf | CAN filtry |

| trd | Timery |

| cd | Vyplnění stacků podle jader |

Síťové a periferiální rozhraní

  • i2cs — skenování I2C sběrnice, zobrazí adresy zařízení (DS3231, EEPROM).
  • cs [can_num] [id] [hex_data] — odeslání CAN paketu.
  • ll can debug — log přijatých CAN paketů.

Příkaz repeat [cmd] N P opakuje příkaz Nkrát s periodou P ms — užitečné pro stresové testy.

Monitorování výkonu a úloh

  • scd — diagnostika supercyklu: iterace while(1)/s, průměrná délka.
  • Plánovač úloh: prohlížení, vypnutí podle ID bez přeskupování.
  • nvram — čtení/zápis NVRAM pro rekonfiguraci.

Příklad supercyklu na MCU a PC:

![scd na MCU]

reboot — restart jádra.

Vestavěné kalkulačky a utilitky

CLI mění zařízení na výpočetní nástroj:

  • Base64, RLE, AES256 dekódování.
  • SHA256, CRC16 hašování.
  • GNSS vzdálenosti, úhly vektorů.
  • Lineární rovnice, PLL koeficienty (clock_pll_calc 220000000).
  • bd val1 val2 — diff bitů v 32bitových registrech.
  • Kondenzátor podle označení.
  • cfim — reálné CAN ID podle masky.

Příklad děliče napětí:

calc_vdiv R1=1000 R2=1000 Vin=3.3

Modulové testy se spouštějí podle podřetězce: test i2c.

Co je důležité

  • UART CLI je povinná v debug sestavách pro bring-up a ladění.
  • Nezasekává se při přepojení napájení, na rozdíl od SWD/JTAG.
  • Podpora přes UART, stdin/stdout, jiné protokoly.
  • Aktualizace firmware, kalibrace přes CLI.
  • Počet příkazů se přizpůsobuje flash.

Fakta implementace

CLI — hierarchická struktura modulů firmware. Parsuje příkazy, routuje k komponentám. V Windows — konzolová aplikace jako BusyBox pro ladění v rafinovaných podmínkách. Autovyřazení po timeoutu 60 s nebo Esc.

— Editorial Team

Advertisement 728x90

Číst dál