zondag 10 mei 2020

STM32 [ 5: Blink en het einde ]

Wat het obligate startpunt bij een Single Board Computer ( SBC , zoals de Raspberry Pi)  , nl " Hello World" is,   is bij een µC het blink programma.
Dit laat op een eenvoudig manier zien dat het programma en het spul werkt.
Blink  laat een ledje in een bepaald ritlme pinken.
Veelal is zo'n ledje reeds standaard op het printje aanwezig , zohier ook op de stm32.

Wat moeten we daarvoor doen ?

Eerst en vooral moet het STM32 printje met de STLink verbonden worden en dan aangesloten worden op een USB poort .

Ik ga dit hier niet uitgebreid beschrijven maar dit is overal te vinden op internet en is afhankelijk of je een  cloon te pakken hebt of het ware spul.

In   STM32 [ 1 : de start ] zie je een foto hoe het kan .


Open je terminal en check of je verbinding hebt met de STM

st-info --probe


Zoiets als dit moet je krijgen . Als er niets ingevuld is ( of een 0) in flash en verder , dan is het niet goed. kijk dan je verbinding na.

Verder kun je kijken of er in de STM32 al data aanwezig is in de vorm van hexadecimale waarden .

Maak eerst dat je in de volgende directory staat:

home/"uwnaam"/stm32/stlink

vanuit uw homedirectory is dat met :

cd stm32/stlink

Dan het volgende commando , dit schrijft de inhoud van uw stm32 in een bestand  dat saved.img wordt genoemd .


st-flash read ./saved.img 0x8000000 0x1000 


resultaat is  





Om dit te kunnen bekijken heb je een hexeditor nodig , gelukkig heeft Linux dat in zijn repository

Installeren  onder de  homedirectory met :

sudo apt install hexedit



Bij mij was dit al geïnstalleerd.


eerst terug naar het juiste pad

cd stm32/stlink

en dan hexedit gebruiken met

hexedit saved.img


U krijgt zoiets te zien :




Dit is een extract .
Linkse kolom  zijn de geheugenplaatsen , de middelste 4 groepen zijn de hexwaarden en de rechtse kolom zijn de eventuele ASCII tekens die daar mee overeenkomen .
Dit is een extract en de laatste FF -en zijn in feite lege geheugenplaatsen.
Als alle hexwaarden FF vertonen zit er geen programma in de STM32
Dit kan natuurlijk als je nog geen programma " geflasht" hebt . Hier zie je een deel van het Blink programma.

Hexedit verlaten met

<CTRL> C 

 We kunnen ook natuurlijk een bestaand programma wissen en dit doen we op de volgende manier:


Kijk na of je in de juiste directory staat: /home/"uwnaam"/stm32/stlink.

en dan :

st-flash erase



Alle inhoud is nu weg , te controleren met st-flash read en  hexedit ( zie hierboven)





Allemaal FF -en !

Blink !

Onder de map ~/stm32f103c8t6/miniblink zit er een blinkprogrammaatje 

dit moet nog eerst " gebuild" worden .

Ga naar de map met :

cd ~/stm32f103c8t6/miniblink 


Kijk de inhoud van de map na met

ls -al 


Er staan al twee miniblink bestanden in het groen , dat zijn al gecompileerde bestanden die ik vroeger reeds gemaakt heb. Maar er staat ook  miniblink.c en die moeten we hebben.

We kunnen die verwijderen met

make clobber  



De gebuilde bestanden zijn nu weg.

Opnieuw builden met

make





Na een ls -al zien we de nieuwe gemaakte bestanden .

Nu nog in de stm32 flashen .

make flash 




Ik heb geen jumpers moeten verplaatsen en het rode ledje begint direkt te pinken .--> Succes

Indien het niet uitzichzelf start , er is een reset knopje net naast de gele jumpers.

Dit sluit het hoofdstuk stm32 af voor mij .
Mijn collega heeft ook alles werkend en kan zich nu toespitsen op zijn project.







Geen opmerkingen:

Een reactie posten