Re: Programování STM32

Miroslav Mraz mrazik na volny.cz
Neděle Září 29 20:19:19 CEST 2019


Ten řetězec Procesor -> SWD -> ST-Link -> OpenOCD -> gdb -> IDE není 
triviální na nastavení. Samo OpenOCD má celý systém konfiguračních 
souborů, které mu říkají jaký procesor má připojen, přes jaké rozhraní 
(SWD, JTAG) a jakým adaptérem (ST-Link). Na nastavení je jednodušší 
st-util, funguje stejně jako OpenOCD - je to vlastně gdb server, který 
poslouchá na definovaném portu a na ten se gdb připojuje.
GDB používá jen .elf soubor, umí si z něj vypreparovat co a jak má 
nahrát do procesoru (příkazem load).
Jedinou radu, za kterou mě asi nebudete mít rád, vám dát mohu - vyhoďte 
z řetězce to IDE a naučte se těch pár příkazů pro gdb jako je run, load, 
file, step, next atd. Ono když si to gdb spustíte z příkazové řádky, 
uvidíte chybová hlášení nebo naopak co se kam nahrálo, kde to zbuchlo 
nebo kudy to právě běží. A můžete se ptát dále právě na základě těch 
výpisů z gdb.

Mrazík

Dne 29. 09. 19 v 18:42 cizek.milan na seznam.cz napsal(a):
> Ahoj,
> 
> omlouvám se za nekompletní dotaz. Navíc ono těch pojmů, které se zde 
> zmiňují je docela dost a některé jsou mi zatím neznámé.
> 
> Prostředí: STM32CubeIde (Windows 10).
> 
> CPU: STM32F103CBT
> 
> A jsem rád, že se s dotazy připojil i někdo další.
> 
> Jinak pokud jde o mikroprocesory, mám zkušenost jen s picy a asm, což je 
> koníček. Pak jsem přeskočil a tvořím až na linuxu (RPI, wiringpi, gpio, 
> Perl, bash, Java, C#…). Toto je pro mne úplně nový mezistupeň.
> 
> A tak tápu třeba mezi tím GDB nebo OpenOCD… Většinu jedu podle tutoriálů 
> na netu nebo videí na YB. A pak ve chvilkách času dohledávám teprve detaily.
> 
> Třeba ten debugger mám nastavený takto (podle návodu): 
> https://snipboard.io/JPzfvY.jpg
> 
> Programátor mám tento: https://www.aliexpress.com/item/32792513237.html
> 
> Ono bylo očekávání, že to, jak jsem to naklikal mi alespoň nahodí na 
> GPIO 1, čímž mi přes transistory zapne napájení do modulů, v krajním 
> případě, že to vypíše něco na připojený OLED displej (SSD1306), na který 
> jsem vzal knihovny a jen upravil výstupní I2C dle tutorial.
> 
> Možná to byla naivní představa. :) Ale tak nějak si spíš myslím, že je 
> tam nějaký elementární zádrhel, třeba že nahráváme to elf místo hex nebo 
> to neumíme vůbec nahrát apod.
> 
> Pak mám ještě STM32 Discovery desku s jiným CPU, ale tu jsem nějak vůbec 
> zatím neuchodil do té miry, abych do ní dokázal nahrát program. (po 
> připojení se tváří jako flash a jsou tam datasheety).
> 
> Předpokládám, že na ten discovery bude to GDB a na přímé spojejí přes 
> STLINK ten openocd?
> 
> Je tedy jedno, jestli kompilovat do elf nebo hex, než se to pak nahrává?
> 
> Díky za trpělivost. :)
> 
> M.
> 


Další informace o konferenci Hw-list