Jak zacit s STM32?

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Neděle Listopad 22 11:58:08 CET 2015


No tak ty 4 radky na to blikani se musi dopsat (mozna staci 2 jestli jde 
i toggle pin...)
To, ze nejde preklad je divne, me to slo vzdy na 1. pokus.
V Cube konfiguratoru se daji krome holych procesoru vybrat i ty 
standardni ST kity, maji uz nakonfigurovane nektere periferie (bohuzel 
ne vsechny a ty demo aplikace a priklady taky nevychazeji z CUBE, snazim 
se to vzdycky syntetizovat a prizpusobit tak, aby vse bylo 
nakonfigurovano v cubeMX a z prikladu separuji funkcni kod uz bez 
inicializaci. Ale o se tyka az slozitejsich veci jako SDRAM, LCD, 
ETHERNET, SD...)
Dne 22.11.2015 v 11:09 Jirka Mww napsal(a):
> Hloupě jsem  podlehl euforii "nainstaluj, naklikej , blikej".  Po
> hledání na netu vidím, že to bude vyžadovat studium
> desítek stran dokumentace, abych vůbec pochopil, co vlastně dělám.
> Asi to odložím až na Vánoce, pokud nebude na horách sníh, budu mít
> alespoň nějakou zábavu.
>
>
>
> Dne 21. listopadu 2015 22:21 Pavel KREJCI <krepa76 na gmail.com> napsal(a):
>> Kdyz se v CubeMX u noveho projektu zvoli ten nucleo board (nasel jsem ho pod
>> nucleo 64), tak tam je videt na obrazku, ze to je PA5 a jmenuje se LD2.
>> PK
>>
>> Dne 21. listopadu 2015 22:00 Jirka Mww <jirka.mww na gmail.com> napsal(a):
>>
>>> Dobrý večer,
>>>
>>> povzbuzen touto diskuzí jsem vyhrabal Nucleo demo kit s STM32L476RG,
>>> který jsem dostal jako suvenýr někde na výstavě,
>>> nainstaloval CUBE a GCC a teď jsem v koncích. Blikací rutinu zde
>>> popsanou sice přeložím ( viz dole ) , ale nemůžu nikde najít ,
>>> kde má tato deska tu zelenou LED, se kterou bych chtěl blikat. Ani
>>> nevím, co napsat za číslo za GPIO.
>>> jsem odchován 8 bitovými procesory s programy v EPROM a pak Arduinem,
>>> takže se omlouvám za naprosto banální dotaz.
>>>
>>> Jinak výpis po překladu je snad dobře :
>>>
>>> make all
>>> 'Building target: PokusSTM32.elf'
>>> 'Invoking: MCU GCC Linker'
>>> arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard
>>> -mfpu=fpv4-sp-d16 -T"C:\STM32\workspace\PokusSTM32\LinkerScript.ld"
>>> -Wl,-Map=output.map -Wl,--gc-sections -lm -o "PokusSTM32.elf"
>>> @"objects.list"
>>> startup/startup_stm32.o: In function `LoopFillZerobss':
>>> C:\STM32\workspace\PokusSTM32\Debug/../startup/startup_stm32.s:78:
>>> undefined reference to `main'
>>> collect2.exe: error: ld returned 1 exit status
>>> make: *** [PokusSTM32.elf] Error 1
>>>
>>> 21:42:07 Build Finished (took 672ms)
>>>
>>>
>>> Poradíte mi prosím někdo, jak dál ?
>>>
>>>
>>>
>>>
>>>
>>>
>>> Dne 21. listopadu 2015 1:48 Pavel Kutina <hw na prelude.cz> napsal(a):
>>>> Koukam, co vsechno jsem delal blbe...
>>>>
>>>> O Cube jsem cosi tusil - teda ze existuje. Nekolikrat jsem sel na web
>>>> ST, do
>>>> vyhledavani zadal Cube - a cosi jak Cube stahnul. Vzdycky to byl nejaky
>>>> pomerne nepochopitelny strom zdrojaku, ale nic, co by se dalo spustit
>>>> (naposledy stm32cubef1.zip). Az po Vasem mailu jsem pochopil, ze
>>>> evidentne
>>>> hledam blbe. No a bylo to tam... Slo nainstalovat, neco i naklikat,
>>>> projekt
>>>> pro Workbench jsem vygeneroval, nasledne naimportoval, pridal Vas
>>>> "blikaci"
>>>> kod (a doplnil o jmeno portu a cislo pinu, samozrejme))  a bez chyb
>>>> prelozil.
>>>>
>>>> Neco podobneho je Workbench - tam byl spis problem vybrat na webu ST z
>>>> hromady moznosti neco, co budu schopny ovladat. Eclipse zrovna nemiluju,
>>>> ale
>>>> treba si zvyknu.
>>>>
>>>> Zatim se mi nejak nepodarilo .elf nahrat, ale to uz se mi v minulosti
>>>> nejak
>>>> darilo, jen si vzpomenout...
>>>>
>>>> Jinak diky, k tomu, abych pochopil, co delam blbe, Vas mail naprosto
>>>> postacoval.
>>>>
>>>> Rano to tam nekudy nahraju a zacnu si hrat s necim slozitejsim.
>>>>
>>>> Diky moc.
>>>>
>>>> Pavel Kutina
>>>>
>>>>
>>>> ----- Original Message ----- From: "Jaroslav Buchta"
>>>> <jaroslav.buchta na hascomp.cz>
>>>> To: "HW-news" <hw-list na list.hw.cz>
>>>> Sent: Friday, November 20, 2015 11:03 PM
>>>> Subject: Re: Jak zacit s STM32?
>>>>
>>>>
>>>>
>>>> Stahnete si Cube, IDE System Workbench (eclipse no, ale je to funkcni
>>>> kdyz se nespecha...), nainstalujte, vyberte v CUBE procesor, kliknete na
>>>> pin, kde je ledka, nastavte jako vystup, nastavte hodiny na 2. zalozce
>>>> nebo nechte byt na inteni oscilator, nastavte projekt pro toolchain
>>>> SW4STM32 a vygenerujte kod.
>>>> Spustte IDE, importujte tam projekt (to jsem v eclipse moc nepochopil
>>>> ale vzdycky se mi to nejak povede nebo nekdo poradi...) do cyklu v main
>>>> napiste (mezi user code begin a end - jinak vam to cube premazne)
>>>>
>>>> HAL_GPIO_WritePin(GPIOx, GPIO_PIN_x, GPIO_PIN_SET);
>>>> HAL_Delay(500);
>>>> HAL_GPIO_WritePin(GPIOx, GPIO_PIN_x, GPIO_PIN_RESET);
>>>> HAL_Delay(500);
>>>>
>>>> spustit debug a mate blikani. Vlastne asi nemate, s cinskym bazmekem mi
>>>> ten eclipse nefungoval. Ja projekt prevedu do Em::Blocks a tam je to OK.
>>>> Jestli chcete, muzu vam to rano pripravit, kdyz napisete, na kterem pinu
>>>> je LED. Zalezitost cca 10 min.
>>>> Vyhodou cube je, ze vam pripravi vychozi kod vcetne vsech nutnych
>>>> knihovnich souboru, nakonfiguruje pouzite periferie a hodiny (vse ve
>>>> zdrojaku), samozrejme se da i bez toho.
>>>>
>>>> Dne 20.11.2015 v 22:16 Pavel Kutina napsal(a):
>>>>> 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
>>>>> _______________________________________________
>>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>>> Hw-list na list.hw.cz
>>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>>
>>>> _______________________________________________
>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>> Hw-list na list.hw.cz
>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>> _______________________________________________
>>>> HW-list mailing list  -  sponsored by www.HW.cz
>>>> Hw-list na list.hw.cz
>>>> http://list.hw.cz/mailman/listinfo/hw-list
>>>
>>>
>>> --
>>> Zdravi
>>> Jirka OK1MWW
>>> _______________________________________________
>>> HW-list mailing list  -  sponsored by www.HW.cz
>>> Hw-list na list.hw.cz
>>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>>
>> _______________________________________________
>> HW-list mailing list  -  sponsored by www.HW.cz
>> Hw-list na list.hw.cz
>> http://list.hw.cz/mailman/listinfo/hw-list
>>
>
>



Další informace o konferenci Hw-list