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