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