# 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.
- 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:
rr timer5 0x10
nrm # čtení registrů NAU8814 přes I2C
Seznam diagnostických příkazů:
| Příkaz | Popis |
|---------|----------|
| 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
Zatím žádné komentáře.