Jak zacit s STM32?

Pavel Kutina hw na prelude.cz
Pátek Listopad 20 22:16:02 CET 2015


Zdravím,

když už se tu rozebírají začátky s Freescale, měl bych podobný dotaz - jak 
začít s STM32?

<krátká verze>
Je někde návod, co na deset kliknutí stáhne nějaké předkonfigurované IDE 
tak, abych instalací nestrávil dva večery, ale po deseti minutách blikal 
LEDkou?
</krátká verze>

<dlouhá verze>
Potřeboval bych návod pro úplné blbce: mám na stole destičky s 
STM32F103C8T6, k němu připojený čínský ST-Link. Píšu do toho v MikroE 
Pascalu, funguje to. Ale protože jsem byl poslední dobou okolnostmi (a možná 
i pohodlností) donucen napsat si něco pro Arduino, zjistil jsem, že se mi C 
začíná možná i trochu zamlouvat (a speciálně pro kolegu Weka - ano, tuším 
cosi o tom, že Arduinovské C je takové "C pro lenochy", to splňuju - neživí 
mne to).

No a říkal jsem si, že by nebylo špatné zkusit si pro začátek s STM32 
alespoň zablikat diodou, ale v nějakém rozumném prostředí a právě v C. 
Existuje něco, co bude fungovat v podobném stylu, jako mé oblíbené nástroje, 
tedy stáhnu jeden balík, pak párkrát odkliknu Yes, spustím IDE, vytvořím 
projekt, vyberu procesor, otevřu main.c, napíšu šest řádků, odkliknu Build & 
Run - a zablikám diodou?

To, na čem jsem se "zmlsal", tedy MikroE kompilátory a Arduino (je si to 
trochu podobné přístupem), je jednak konfigurace (viz postup výše), jednak 
kupodivu dokumentace. MikroE má v podstatě ke všem (přeloženým a bohužel 
"zamčeným", tedy bez zdrojáku) knihovnám většinou celkem slušné příklady, u 
Arduina je to složitější jen v tom, že se při tom jen musím ptát googlu. U 
"dospělého" C vidím X set možností, jak dosahnout téhož cíle, ovšem s tím, 
že návody jsou vzájemně nekompatibilní, neaktuální, každý si přilinkuje X 
dalších různých knihoven a začátečník se v tom ztratí, když mu to začne 
vyhatovat chyby v překladu u knihovny, o které do té doby netušil ani to, že 
existujem natožpak, že jí mí v projektu.

Ted jsem si zkousel nainstalovat CooCox, našel jsem docela hezký návod pro 
blbce, přehledný step by step. Akorát tedy maličko neaktuální... Skončil 
jsem při vytváření projektu, jelikož jsem nepobral, co všechno (a hlavne 
proč) bych mel do projektu přidat, nakonec jsem vybral C library, cmsis core 
a STM32F10x_LD_STDLIB. Zkusil jsem Build prázdneho projektu, a protože si 
hraju v posteli na EEE901 (čas na hraní mám v posteli před spaním), trvalo 
to 32 vteřin (build nepříliš prázdného projektu u kompilátoru MikroE je v 
jednotkách vteřin na stejném železe, u Arduina je to kapku delší, ale 
snesitelné). V závěru jsem šel do preferences - a celý CooCox si bez 
varování ustlal... Fajn.

Existuje někde kuchařka pro jakékoliv použitelné IDE (pro danou HW 
konfiguraci a pro Windows), která bude alespoň relativně aktuální, budou tam 
examply od blikání diodou až po práci s periferiemí a nestávím zbytek 
víkendu konfigurací?

Možná mám špatný přístup, ale... začínal jsem na ZX-81. Začínal jsem tak, že 
jsem si vzal manuál a stránku po stránce přepisoval examply k jednotlivým 
příkazům a zkoumal, co který parametr mění a jak to využít. Pak jsem přešel 
ke Spectru, chvíli u Sharpu, potom k PC - a tam jsem zakotvil u Turbo 
Pascalu, který měl v helpu opět examply pro jednotlivé příkazy, tak jsem je 
bral jeden po druhém. Prakticky totéž jsem dělal v dalších jazycích (FoxPro, 
VisualBasic, Delphi a PHP) a podobně jsem se pak učil zacházet i s 
Mikropascalem nebo tím Arduinem.

Nějak tak to asi dělá každý. Rád bych nějak nějak podobně rozlousknul to 
zatracený C pro ARM, ale kudy a jak?

U mnou zmíněných jazyků mi to připadá, že dostanu krabici Lega a z ní si 
můžu složit, co potřebuju, bez ohledu na to, jestli aktuálně potřebuju 
složit tři kostičky, nebo tři tisíce.

U C mám dojem, že sice potřebuju složit dohromady tři kostičky Lega, ale 
dostanu k dispozici akademickou knihovnu, hromadu písku a návod na výrobu 
lopatičky z plechovky od sardinek - s tím, že si samozřejmě můžu ty tři 
kostičky postupně vyrobit a ještě obdržím informaci, jak je to super, 
protože si je můžu udělat tak, jak sám chci. Hmmm.
</dlouhá verze>

Asi jsem se potřeboval vykecat z určité frustrace, ale kdyby někdo měl 
nějaký rozumný postup, tak pěkně prosím...

Díky.

Pavel Kutina 



Další informace o konferenci Hw-list