Jak zacit s STM32?

Jaroslav Buchta jaroslav.buchta na hascomp.cz
Neděle Listopad 22 18:44:14 CET 2015


TrueStudio neznam, co jste zkousel za eclipse? Cube nabizi tusim jedinou 
free platformu System Workbench, tj eclipse + GCC. Lze stahnout po 
registraci.
CubemMX vygeneruje nejen main, ale i nejake dalsi inicializacni soubory 
c,h a do projektu prida vsechny nebo potrebne knihovni zdrojaky (podle 
volby v nastaveni projektu)
Takze se v Cube vygenerujou zdrojaky i s nastavenim projetu a ld 
souborem, spusti se system workbench a do eclipse se ten projekt 
naimportuje. Pak to jde normalne prelozit a ladit skrz stlink. (ne ten 
Cinsky, aspon u mne)


Dne 22.11.2015 v 17:38 Jirka Mww napsal(a):
> Tak jsem tomu nakonec věnoval odpoledne a dosáhl jsem stavu, že mám
> vygenerovaný soubor main.c pro tu moji desku , otevřený v editoru
> TrueStudia,
> ale když chci dát Build v menu "Project" , tak jsou všechny položky
> šedivé.  Nevíte co dál ?
>
>
> Dne 22. listopadu 2015 12:01 Jirka Mww <jirka.mww na gmail.com> napsal(a):
>> Díky za rady,  teď stahuji TrueStudio, které po mě chce to CubeMX. Tu
>> svoji desku jsem tam opravdu našel.  Měl jsem nainstalované jen
>> Eclipse, tohle ne. Pomalu se v tom začnu orientovat.
>>
>> Dne 22. listopadu 2015 11:58 Jaroslav Buchta
>> <jaroslav.buchta na hascomp.cz> napsal(a):
>>> 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
>>>>>
>>>>
>>> _______________________________________________
>>> 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