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