Introkurssi: C/C++ kehitys soveltaen ST:n ARM-lautaa ja reaaliaikakäyttistä

Ajankohta: 2 kurssikertaa, torstait 12.3 ja 19.3. klo 18-21.

Lähiaikoina näyttää riistäytyvän käyntiin Arduino-kurssi jäsen lapm:n vetämänä. Se on omiaan lähtötason tutustumiskeinona ohjelmointiin ja digitaalitekniikkaan. Lukekaa siitä tarkemmin toisaalla täällä Discoursessa.

Monilla kokeneilla Arduino-käyttäjillä ja muillakin tuntuu olevan kiinnostusta edetä altaan syvään päähän ja ekana askeleena siihen suuntaan olisi nyt tämä introkurssi. Eli kuinka polkaistaan pystyyn softaprojekti käyttäen ST:n Nucleo-kehityslautaa, STMCubeIDE-kehitystyökalua ja FreeRTOS-käyttöjärjestelmää. Nämä opit on periaatteessa sovellettavissa mihin tahansa vastaavan kaltaiseen ARM-ympäristöön.

Pidetään siis pari istuntoa joiden aikana käydään läpi juttuja:

  • kuinka (ilmainen, ei crippleware) STMCubeIDE-kehitysympäristö asennetaan ja kuinka perustetaan softaprojekti halutulle ST:n prosessorille tai valmiille kehityslaudalle,
  • Tutustutaan konfiguraattori/koodigeneraattoriin joka tuottaa kaikki prosessorin tarvitsemat alustukset ja käyttäjän sovelluksen tarvitsemat kytkennät prosessorin rautaan (HAL eli hw abstraction layer),
  • Kirjoitetaan jotain pienimuotoisia ledivätkyttimiä ensin pelkän raudan päälle ja sen jälkeen käyttäen FreeRTOS-käyttistä. Mietitään kummalla tavalla tuli helpommin lopputulosta.
  • Otetaan debuggeri hanskaan ja katsotaan, miten softalle voi tehdä ruumiinavauksen ja tutkia sen toimintaa sisältä käsin.
  • Ajan puitteissa voidaan tehdä jotain haastavampaakin, ja ainakin koittaa googlettaa millaisia esimerkkiprojekteja Nucleo-maailmaan löytyy (ja niitähän löytyy).

Ketä tämmöinen kiinnostaa niin paljastakaa itsenne vastaamalla tähän viestiin.
Mä voin toimia bulvaanina ja hommata halukkaille kurssilla käytettävän Nucleo-F303K8 -kehityslaudan 10€ hintaan. (Tarviin tiedon viimeistään 5.3. mennessä että kusti ehtii polkea laudat kotiin).
Ulkoisesti lauta on saman kokoinen kuin Arduino Nano, mutta sisältää siis 32-bittisen ARM-prosessorin ja integroidun ST_Link2 -debuggerin mikä mahdollistaa ohjelman debuggaamisen ihan oikeasti isojen poikien tyyliin. Ja siis suorituskyky jättää kaikki 8-bittiset AVR-prosessorit pölyyn makaamaan. Niille jotka haluavat tietää: https://www.mouser.fi/datasheet/2/389/stm32f303c6-956234.pdf

Mukana, mutta pääsen vain tokaan settiin. Lauta olisi kiva, kiitos vaivannäöstä!

1 Like

Mukana näillä näkymin ainakin ensimmäisessä setissä ja otan laudan kyllä mielelläni.

Tulossa mukaan. Varaan myös tuon F303:n. Minulla on kyllä varalle kaksi F446:sta Nucleo:ta.

matti: mä otan tuon sulle, joskin toki toi toinenkin nucleo on täysin toimiva vaihtoehto. Ehkä kumminkin helpointa kun kaikilla on identtinen lauta niin samat selitykset toimii jokaiselle.

Mukana, voisin ottaa laudan.

Mukana ja osallistun lauta tilaukseen

Mukana myös, osallistuen lautatilaukseen. Linkki softien asennusohjeisiin tällaiselle Linux-muumiolle olisi kewl, niin voisi koittaa heittää etukäteen koneelle.

1 Like

Moi - Osallistun ja tilaan laudan.

Tullaan kurssille ja lunastetaan lauta

Alkaa näyttämään siltä, että kurssilla joudutaan käyttämään yhtä pykälää isompaa F303-lautaa kun kun tuon nano-kokoisen suosio on ollut niin suurta, ettei jakelijoilla ole myydä mitään ennen huhtikuuta.

Hyvä uutinen kuitenkin on se, että isompi lauta ei maksa yhtään enempää, saadaanpahan muutama pinni ja liitin enemmän. Ei toki ole ihan yhtä kompakti kuin tuo K8, mutta eipä haittaa kurssin tarpeita.
Lisäbonarina tässä laudassa on Arduino Uno-yhteensopivat headerit, jolloin voi käyttää Arduino-shieldejä jos semmoinen sattuu huvittamaan.

Joo, mukana, joskin jälkimmäisen session kohdalla voi olla pieni aikatauluhaaste. F303:ta ei taida löytyä hyllystä vielä normiardukoossa, joten voisin ottaa kortinkin.

ExTEchOpin pyynnöstä ja muutenkin; tässä linkki CubeIDEn lataussivulle: https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tools/stm32-ides/stm32cubeide.html

Valitkaa omaan käyttikseenne istuva vaihtoehto ja tiputtakaa asennustiedosto omalle koneelle. Vaatii lisenssiehtojen hyväksymisen sekä kirjautumisen ST:n sivustoon, mutta ei kuitenkaan maksa mitään. Tunnarit kannattaa tehdä niin pääsee jatkossa helposti sisään jos/kun tulee muutakin asiaa.

Itse asennus on triviaali, oletusarvot toimivat hyvin. Asennus kysyy mitä hakemistoa käytetään työhakemistona ja sen voi jättää oletukseksi. Jokaisen projektin voi myöhemmin perustaa ihan mihin huvittaa tuosta riippumatta.
Varautukaa siihen, että myöhemmin joudutte lataamaan jopa gigan verran konfiskirjastoa kun päästään itse asiaan. Viitseliäimmät voisi koettaa tehdä jonkun huuhaasovelluksen käyttäen Nucleo-F303RE -lautaa (Valikosta New - STM32 project). Avautuvasta ikkunasta aktivoidaan ylhäältä vasemmalta Board Selector ja kenttään Part Number Search voi kirjoittaa Nucleo-F303RE. Laudan pitäisi nyt olla valittavissa alaoikealla näkyvässä listassa. Sitä klikkaamalla ihan alhaalla oleva nappi Next aktivoituu ja päästään eteenpäin.
Projektin perustietoikkunaan voi syöttää jonkun huuhaanimen projektille ja jättää muut valinnat oletuksiin. IDE kyselee juttuja joihin voi vastailla jees jees. Kun mylly on jauhanut niin IDE näyttää prosessoripiirin pinout-kuvaa. Ei tarvitse nyt tehdä muuta kuin päävalikosta Project - Generate Code. ja IDE luo projektin boilerplate-koodin. Samalla se lataa prosessorin kirjastopaketin joka voi olla melkoisen kokoinen. Näin toimimalla säästetään aikaa itse koulutustilaisuudessa.

Osallistun. Myös lankkutilaukseen.

Kiitos hyvästä asennusohjeesta. Itse ainakin yritän saada kaiken valmiiksi ettei koulutuksessa tarvitse odotella.

Kiinnostaa kyllä. Pitääpä asentaa myös kannettavaan tuo ympäristö.
Nucleo F303RE on jo.

Osallistun mielelläni kurssille ja myös laudan tilaukseen.

Niin ja semmoisesta tuli mieleeni mainita, että keskikokoiset Nucleot kahlitaan ATK:hon _mini_USB-johdolla. Jota ei tietenkään tule laudan mukana. Eli kaivakaa siis miljoonalaatikosta esiin joku käpristynyt minipäinen USBipiuha ettei mene heti alussa äitiinsä koko homma.

Pitääpä muistaa tuo piuha.

Muille huomioksi että tuo ohjelmiston asennus vie aikaa. Ainakin minulla meni 20+ minuuttia, joten ei kannata jättää ihan viime hetkeen ennen kurssia.

Kovasti on huolissaan toolchainista.

Pitääkö se asentaa erikseen vai onko kysymys projektin konfiguroinnista?