Jak zacit s STM32?

Jirka Mww jirka.mww na gmail.com
Neděle Listopad 22 11:09:47 CET 2015


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
>



-- 
Zdravi
Jirka OK1MWW


Další informace o konferenci Hw-list