Deze Product ID's en Vendor ID's zijn op de volgende link te vinden :
http://www.linux-usb.org/usb.ids
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.
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.
Labels:
ARM crosscompiler,
blink,
blue pill,
crosscompiler,
freertos,
git,
lbopencm3,
stflash,
stlink,
stm32
donderdag 7 mei 2020
STM32 [ 4: verdere install ]
Nu gaan we verder doen . Nog enkele testen ,ST-Link installeren en alle software builden
Voor alle zekerheid testen we ons PATH nog eens vanop de commandolijn:
echo $PATH
U ziet op het einde ons nieuw path naar de gcc-arm binary staan.
Nog een check te doen :
ga naar uw map
cd ~/stm32f103c8t6
en dan
nano Makefile.incl
Kijk na of volgende regel zich in dit bestand bevindt ( bovenaan)
PREFIX ?= arm-none-eabi
Opslaan en saven ( dat weet je ondertussen al wel hoe)
Test met volgend commando :
type arm-none-eabi-gcc
dit moet je zien :
Dit volstaat voorlopig wat testen betreft , hoe het afloopt ondervinden we laters wel.
Builden van de stm32 software
Dit is een belangrijk gedeelte. Builden betekent dat we alle geïnstalleerde software gaan " samensteken" , dit houdt onder andere in , het compileren ervan.
cd ~/stm32f103c8t6
en nu het belangrijkste commando
make
een stukje van make
Laat alles maar lopen en let of er geen fouten optreden , een " warning" kan niet zoveel kwaad , maar een rode melding , dat duidt op een serieus probleem.
Ik kan alleen maar zeggen , als je dit voorhebt, dat je kunt proberen om met het commando
make clean
de boel op te kuisen en opnieuw met make te proberen .
een stukje van make clean in onderstaande foto
Builden van de ST-Link software
Hiervoor heb ik volgende link gevolgd.
https://freeelectron.ro/installing-st-link-v2-to-flash-stm32-targets-on-linux/
Eerst enkele afhankelijkheden installeren met git
sudo apt-get install gcc build-essential
Normaal zijn er al enkele van deze afhankelijkheden geïnstalleerd ,maar dat geeft niets , Linux erkent dat en gaat gewoon verder.
Dan de soft zelf:
Maak dat je op de homedirectory staat.
cd /home/"uwnaam" of cd ~
nieuwe map aanmaken
mkdir stm32
( of elke ander naam die je wilt maar niet naar de stm32f103c8t6 map gaan )
cd stm32
soft clonen
git clone https://github.com/texane/stlink
Er is nu een map stlink aangemaakt, ga ernaar toe met
cd stlink
En nu gaan we builden .
cmake . Vergeet het punt niet erachter !
daarna nog
make
Sommige Linux releases vragen nog het volgend commando uit te voeren na een make commando
sudo ldconfig
Dit is wat bovenstaand commando doet volgens de man-page ( man = manual)
Wat hieronder volgt wijkt af van hetgeen op de website staat. De st-* files staan niet onder de map stlink maar onder de map bin , dus eerst naar bin met
!!! 9 mei 2020 Correctie
Na contacname met de author , is dit zijn antwoord. hij heeft het pad aan gepast , dus cd bin staat nu ook op de website
cd bin
De gebuilde binaries worden naar hun plaats gekopieerd met :
sudo cp st-* /usr/local/bin
*******************************************************************************
Dit hieronder hoeft niet , zie " Comments" hierboven
ik heb ook de andere files daarnaar toe gekopieerd , weet echter niet of dit moet .
sudo cp test-* /usr/local/bin --> hoeft dus niet !
********************************************************************************
Dan nog een belangrijk deel , het kopieren van de udev rules naar hun plaats:
eerst terug naar de map stlink vanuit de bin map, dit kan met
cd ..
en dan
sudo cp etc/udev/rules.d/49-stlinkv* /etc/udev/rules.d/
Ik denk dat het een goed idee is om te rebooten , zodat de udev rules gelezen kunnen worden
Na reboot :
Testen !
Steek de ST-Link in een usb poort , maar zonder dat de STM32 verbonden is
Eerste commando:
lsusb
Op de eerste lijn ziet ge de ST_LINK /V2 zitten .
Dan de volgende test.
st-info --probe
Dit geeft hetvolgend resultaat:
U ziet dat " unknown devide " maar dat is logisch , er hangt nog geen stm32 aan ! Het voornaamste is : "Found 1 stlink programmers"
Volgende test.
st-flash --debug read dummy.file 0 256
Als je dit krijgt is er zekers communicatie met de STLINK
Dat is het voor vandaag .
Voor alle zekerheid testen we ons PATH nog eens vanop de commandolijn:
echo $PATH
U ziet op het einde ons nieuw path naar de gcc-arm binary staan.
Nog een check te doen :
ga naar uw map
cd ~/stm32f103c8t6
en dan
nano Makefile.incl
Kijk na of volgende regel zich in dit bestand bevindt ( bovenaan)
PREFIX ?= arm-none-eabi
Opslaan en saven ( dat weet je ondertussen al wel hoe)
Test met volgend commando :
type arm-none-eabi-gcc
dit moet je zien :
Dit volstaat voorlopig wat testen betreft , hoe het afloopt ondervinden we laters wel.
Builden van de stm32 software
Dit is een belangrijk gedeelte. Builden betekent dat we alle geïnstalleerde software gaan " samensteken" , dit houdt onder andere in , het compileren ervan.
cd ~/stm32f103c8t6
en nu het belangrijkste commando
make
een stukje van make
Laat alles maar lopen en let of er geen fouten optreden , een " warning" kan niet zoveel kwaad , maar een rode melding , dat duidt op een serieus probleem.
Ik kan alleen maar zeggen , als je dit voorhebt, dat je kunt proberen om met het commando
make clean
de boel op te kuisen en opnieuw met make te proberen .
een stukje van make clean in onderstaande foto
Builden van de ST-Link software
Hiervoor heb ik volgende link gevolgd.
https://freeelectron.ro/installing-st-link-v2-to-flash-stm32-targets-on-linux/
Eerst enkele afhankelijkheden installeren met git
sudo apt-get install git make cmake libusb-1.0-0-dev
en daarnasudo apt-get install gcc build-essential
Normaal zijn er al enkele van deze afhankelijkheden geïnstalleerd ,maar dat geeft niets , Linux erkent dat en gaat gewoon verder.
Dan de soft zelf:
Maak dat je op de homedirectory staat.
cd /home/"uwnaam" of cd ~
nieuwe map aanmaken
mkdir stm32
( of elke ander naam die je wilt maar niet naar de stm32f103c8t6 map gaan )
cd stm32
soft clonen
git clone https://github.com/texane/stlink
Er is nu een map stlink aangemaakt, ga ernaar toe met
cd stlink
En nu gaan we builden .
cmake . Vergeet het punt niet erachter !
daarna nog
make
Sommige Linux releases vragen nog het volgend commando uit te voeren na een make commando
sudo ldconfig
Dit is wat bovenstaand commando doet volgens de man-page ( man = manual)
configure dynamic linker run-time bindings
Wat hieronder volgt wijkt af van hetgeen op de website staat. De st-* files staan niet onder de map stlink maar onder de map bin , dus eerst naar bin met
!!! 9 mei 2020 Correctie
Na contacname met de author , is dit zijn antwoord. hij heeft het pad aan gepast , dus cd bin staat nu ook op de website
cd bin
De gebuilde binaries worden naar hun plaats gekopieerd met :
sudo cp st-* /usr/local/bin
*******************************************************************************
Dit hieronder hoeft niet , zie " Comments" hierboven
ik heb ook de andere files daarnaar toe gekopieerd , weet echter niet of dit moet .
sudo cp test-* /usr/local/bin --> hoeft dus niet !
********************************************************************************
Dan nog een belangrijk deel , het kopieren van de udev rules naar hun plaats:
eerst terug naar de map stlink vanuit de bin map, dit kan met
cd ..
en dan
sudo cp etc/udev/rules.d/49-stlinkv* /etc/udev/rules.d/
Ik denk dat het een goed idee is om te rebooten , zodat de udev rules gelezen kunnen worden
Na reboot :
Testen !
Steek de ST-Link in een usb poort , maar zonder dat de STM32 verbonden is
Eerste commando:
lsusb
Op de eerste lijn ziet ge de ST_LINK /V2 zitten .
Dan de volgende test.
st-info --probe
Dit geeft hetvolgend resultaat:
U ziet dat " unknown devide " maar dat is logisch , er hangt nog geen stm32 aan ! Het voornaamste is : "Found 1 stlink programmers"
Volgende test.
st-flash --debug read dummy.file 0 256
Als je dit krijgt is er zekers communicatie met de STLINK
Dat is het voor vandaag .
Labels:
ARM crosscompiler,
blue pill,
crosscompiler,
freertos,
git,
lbopencm3,
stlink,
stm32
woensdag 6 mei 2020
STM32 [ 3: de software voor stm32]
Te installeren :
De in te geven commando's staan in het blauw
1. stm32 soft
Deze soft komt van VE3WWG en daarover is een zeer goed boek verschenen .
Zie http://www.allitebooks.org/?s=stm32
2. libopencm3
3. FreeRTOS
4. ARM Crosscompiler
5. STlinkV2 , dit is voor een latere post
1. stm32soft.
Komt van Github en wordt dus "gecloond".
Verzeker er u van dat ge op /home/"usernaam" staat , zie deel 1
Met volgend commando
git clone https://github.com/ve3wwg/stm32f103c8t6.git
haalt ge de nodige soft over .
Ga eens kijken naar github en lees de README.md onderaan het blad voor meer info.
https://github.com/ve3wwg/stm32f103c8t6
Het resultaat is een nieuwe map : stm32f103c8t6
Nu kunt ge dit laten of zelf hernoemen . Dit is inderdaad een lange naam , maar als je enkel stm32 intypt en dan op je TAB toets drukt , zal Linux dit zelf voor je aanvullen .Ik behoud de lange naam.
bv cd stm32 <TAB> wordt cd stm32f103c8t6
Als er meerdere mappen beginnen met stm32 zal Linux u een keuze geven.
Typ dan de eerstvolgende ontbrekend letter in ( hier een f ) en Linux doet de rest .
2. libopencm3
Ongeveer hetzelfde stramien.
zorg dat je in de juiste directory staat !
cd ~/stm32f103f8t6
en dan :
git clone https://github.com/libopencm3/libopencm3.git
U ziet een map libopencm3 bijgemaakt.
Dit is de inhoud van de map stm32f103f8t6 na installatie van libopencm3
Let ook op de eigenaar van de mappen , dit moet uw usernaam zijn en niet root !
3. FreeRTOS
Ga naar https://www.freertos.org/a00104.html
Dit was het adres op 6 mei , mss verandert dit met de tijd
En dit is het bestand, versie v10.3.1 op dit moment.
Ga in Linux naar de juiste map met
cd ~/stm32f103c8t6/rtos
Hier gaan we het bestand uitpakken met :
unzip ~/Downloads/FreeRTOSv10.3.1.zip
dit is de mapinhoud van rtos na uitpakken
Let wederom dat uw username er is en niet root
en dit onder FreeRTOS
Hier moeten we eerst al iets doen vóór we het vergeten :
De versie aanpassen in het Projekt.mk bestand onder de map ~/stm32f103c8t6/rtos
Met onderstaand commando
nano Project.mk
nano is de editor , zie eventueel Youtube voor gebruik ervan
In de bovenste lijnen moet je kijken of de juiste versienummer erin staat , zoniet aanpassen zoals op de foto hieronder .
Ik begrens altijd mijn wijzigingen met commentaar , in dit geval mijn call on4aol
bewaren met <CTRL> O < ENTER > en afsluiten met <CTRL> X
Klaar !
4. ARM Crosscompiler
Omdat een pc op een andere architectuur ( x86_64) draait dan onze ARM Cortex moeten we een compiler hebben die onze architectuur omzet naar die ARM.
Dit wordt een crosscompiler genoemd en deze gaan we nu installeren.
Ik vond de mijne op deze link
https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads/9-2019-q4-major
en kies de juiste versie , namelijk voor een Linux in dit geval
Dit is een zogenaamde tarball en ingepakt in een bz2 compressiemode.
Dit moeten we eerst uitpakken en dit kan in Linux op de volgende manier.
Hiervoor gaan we wel als superuser moeten fungeren ( cfr Windows met administrator)
Vanuit de homedirectory
sudo -i
het kan zijn dat uw paswoord gevraagd wordt , geef dit dan in
en dan krijgen we
en zien we een andere prompt
maak een nieuwe map aan als deze nog niet bestaat met
mkdir /opt
en ga naar die map met :
cd /opt
U krijgt deze prompt te zien
Uitpakken van de tarball
tar xjf /home/luc/Downloads/gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2
Let goed op de naam van de tarball , het pad en van de usernaam , die kan verschillend zijn bij U
Er zal een nieuwe map aangemaakt zijn , iets in de trend van
gcc-arm-none-eabi-9-2019-q4-major
deze is toch wel wat lang en we korten deze in naar gcc-arm met het commando
mv gcc-arm-none-eabi-9-2019-q4-major gcc-arm
Zo ziet de inhoud van de map eruit , let niet op de map "test" , dit was inderdaad een test , bij U zal daar "opt" staan
U ziet doordat we als superuser ( root) geïnstalleerd hebben dit dan ook voorkomt in de lijst in tegenstelling met onze vorige installaties
Dit moment is een goed moment om het PATH aan te passen zodat Linux weet als je een commando uitvoert dat met deze install te maken heeft , waar de nodige bestanden zich bevinden .
We kunnen dit rechtstreeks doen op de commandolijn en het zal werken , echter bij heropstart van uw PC , zal dit PATH niet meer herkent worden .
Daarom moeten we dit in een bestand zetten , dat bij opstart doorlopen wordt . Hierdoor is het PATH dan verankerd.
Vanuit uw homedirectory /home/"uwnaam"
nano .bashrc Let op vergeet het punt niet voor bashrc
en voeg de volgende lijn er vanboven bij
export PATH=$PATH:/opt/gcc-arm/bin
Opslaan en bewaren met
<CTRL> O en <CTRL> X
Herstart uw PC !
Pas dan kan het pad opnieuw ingelezen worden !
Nu kunnen we ook al eens testen of de crosscompiler gevonden wordt.
Geef volgend commando in
arm-none-eabi-gcc --version
Ik heb daarna enkele testen gedaan .
U ziet dat de crosscompiler gevonden wordt vanuit de homedirectory
luc ~
en vanuit de root van luc
luc /
maar niet als root user
Usersroot (blauwe prompt) en root als user ( rode prompt) zijn eigenlijk twee verschillende begrippen.
Nochtans is alles geÏnstalleerd als root maar toch toegankelijk vanuit onze homedirectory.
We kunnen de bestanden laten zien met het volgend commando:
ls -l /opt/gcc-arm/bin
Hiermee beëindigen we de soft install.
We moeten nog het één en ander uitvoeren , maar dat is voor de volgende aflevering
De in te geven commando's staan in het blauw
1. stm32 soft
Deze soft komt van VE3WWG en daarover is een zeer goed boek verschenen .
Zie http://www.allitebooks.org/?s=stm32
2. libopencm3
3. FreeRTOS
4. ARM Crosscompiler
5. STlinkV2 , dit is voor een latere post
1. stm32soft.
Komt van Github en wordt dus "gecloond".
Verzeker er u van dat ge op /home/"usernaam" staat , zie deel 1
Met volgend commando
git clone https://github.com/ve3wwg/stm32f103c8t6.git
haalt ge de nodige soft over .
Ga eens kijken naar github en lees de README.md onderaan het blad voor meer info.
https://github.com/ve3wwg/stm32f103c8t6
Het resultaat is een nieuwe map : stm32f103c8t6
Nu kunt ge dit laten of zelf hernoemen . Dit is inderdaad een lange naam , maar als je enkel stm32 intypt en dan op je TAB toets drukt , zal Linux dit zelf voor je aanvullen .Ik behoud de lange naam.
bv cd stm32 <TAB> wordt cd stm32f103c8t6
Als er meerdere mappen beginnen met stm32 zal Linux u een keuze geven.
Typ dan de eerstvolgende ontbrekend letter in ( hier een f ) en Linux doet de rest .
2. libopencm3
Ongeveer hetzelfde stramien.
zorg dat je in de juiste directory staat !
cd ~/stm32f103f8t6
en dan :
git clone https://github.com/libopencm3/libopencm3.git
U ziet een map libopencm3 bijgemaakt.
Dit is de inhoud van de map stm32f103f8t6 na installatie van libopencm3
Let ook op de eigenaar van de mappen , dit moet uw usernaam zijn en niet root !
3. FreeRTOS
Ga naar https://www.freertos.org/a00104.html
Dit was het adres op 6 mei , mss verandert dit met de tijd
En dit is het bestand, versie v10.3.1 op dit moment.
Ga in Linux naar de juiste map met
cd ~/stm32f103c8t6/rtos
Hier gaan we het bestand uitpakken met :
unzip ~/Downloads/FreeRTOSv10.3.1.zip
dit is de mapinhoud van rtos na uitpakken
Let wederom dat uw username er is en niet root
en dit onder FreeRTOS
Hier moeten we eerst al iets doen vóór we het vergeten :
De versie aanpassen in het Projekt.mk bestand onder de map ~/stm32f103c8t6/rtos
Met onderstaand commando
nano Project.mk
nano is de editor , zie eventueel Youtube voor gebruik ervan
In de bovenste lijnen moet je kijken of de juiste versienummer erin staat , zoniet aanpassen zoals op de foto hieronder .
Ik begrens altijd mijn wijzigingen met commentaar , in dit geval mijn call on4aol
bewaren met <CTRL> O < ENTER > en afsluiten met <CTRL> X
Klaar !
4. ARM Crosscompiler
Omdat een pc op een andere architectuur ( x86_64) draait dan onze ARM Cortex moeten we een compiler hebben die onze architectuur omzet naar die ARM.
Dit wordt een crosscompiler genoemd en deze gaan we nu installeren.
Ik vond de mijne op deze link
https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads/9-2019-q4-major
en kies de juiste versie , namelijk voor een Linux in dit geval
Dit is een zogenaamde tarball en ingepakt in een bz2 compressiemode.
Dit moeten we eerst uitpakken en dit kan in Linux op de volgende manier.
Hiervoor gaan we wel als superuser moeten fungeren ( cfr Windows met administrator)
Vanuit de homedirectory
sudo -i
het kan zijn dat uw paswoord gevraagd wordt , geef dit dan in
en dan krijgen we
en zien we een andere prompt
maak een nieuwe map aan als deze nog niet bestaat met
mkdir /opt
en ga naar die map met :
cd /opt
U krijgt deze prompt te zien
Uitpakken van de tarball
tar xjf /home/luc/Downloads/gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2
Let goed op de naam van de tarball , het pad en van de usernaam , die kan verschillend zijn bij U
Er zal een nieuwe map aangemaakt zijn , iets in de trend van
gcc-arm-none-eabi-9-2019-q4-major
deze is toch wel wat lang en we korten deze in naar gcc-arm met het commando
mv gcc-arm-none-eabi-9-2019-q4-major gcc-arm
Zo ziet de inhoud van de map eruit , let niet op de map "test" , dit was inderdaad een test , bij U zal daar "opt" staan
U ziet doordat we als superuser ( root) geïnstalleerd hebben dit dan ook voorkomt in de lijst in tegenstelling met onze vorige installaties
Dit moment is een goed moment om het PATH aan te passen zodat Linux weet als je een commando uitvoert dat met deze install te maken heeft , waar de nodige bestanden zich bevinden .
We kunnen dit rechtstreeks doen op de commandolijn en het zal werken , echter bij heropstart van uw PC , zal dit PATH niet meer herkent worden .
Daarom moeten we dit in een bestand zetten , dat bij opstart doorlopen wordt . Hierdoor is het PATH dan verankerd.
Vanuit uw homedirectory /home/"uwnaam"
nano .bashrc Let op vergeet het punt niet voor bashrc
en voeg de volgende lijn er vanboven bij
export PATH=$PATH:/opt/gcc-arm/bin
Opslaan en bewaren met
<CTRL> O en <CTRL> X
Herstart uw PC !
Pas dan kan het pad opnieuw ingelezen worden !
Nu kunnen we ook al eens testen of de crosscompiler gevonden wordt.
Geef volgend commando in
arm-none-eabi-gcc --version
Ik heb daarna enkele testen gedaan .
U ziet dat de crosscompiler gevonden wordt vanuit de homedirectory
luc ~
en vanuit de root van luc
luc /
maar niet als root user
Usersroot (blauwe prompt) en root als user ( rode prompt) zijn eigenlijk twee verschillende begrippen.
Nochtans is alles geÏnstalleerd als root maar toch toegankelijk vanuit onze homedirectory.
We kunnen de bestanden laten zien met het volgend commando:
ls -l /opt/gcc-arm/bin
Hiermee beëindigen we de soft install.
We moeten nog het één en ander uitvoeren , maar dat is voor de volgende aflevering
Labels:
ARM crosscompiler,
blue pill,
crosscompiler,
freertos,
git,
lbopencm3,
stlink,
stm32
STM32 [ 2: Linux en voorinstellingen]
Nu komt de software installatie onder Linux.
Ik gebruik al jaren Linux Lite , onbekend voor velen , maar deze ubuntu afgeleide bevalt mij prima . ziet er wat oudbollig uit , maar werkt voor mij snel.
Voordeel is dat de pakketten voor Ubuntu dus ook allemaal op deze distro draait.
Linux home directory.
Voor linuxgebruikers is dit gesneden koek maar voor beginners ( zoals mijn collega) moet dit toch vermeld worden .
We installeren alles onder onze " homedirectory" en dit ziet er ongeveer zo uit .
Ongeveer , omdat de usernaam ( dat is hier luc ) bij u zal verschillen afhankelijk van uw Linux installatie.
pwd is een linux commando en geeft uw huidige directory weer ,zoals ge ziet is dit /home/luc. Bij u zal dit dan /home/"uw naam" vermoedelijk zijn .
Het tilde teken ~ in de prompt is ook een teken dat je in je homedirectory zit.
Om de software te kunnen installeren moet je al aan enkele voorwaarden voldoen . Ik verwijs hier naar een link in deze blog waar je al punt 1 tem 3 mag uitvoeren van het 10 stappenplan aldaar. Dit was voor een raspberry pi maar dit geldt voor alle Linux . U hoeft dus niet alles vanuit " Putty" te doen zoals daar beschreven maar gewoon vanuit de home directory , hier dus /home/luc
voorinstellingen
Eenmaal dit uitgevoerd kunnen we starten met de toepassingssoftware voor de stm32
Ik gebruik al jaren Linux Lite , onbekend voor velen , maar deze ubuntu afgeleide bevalt mij prima . ziet er wat oudbollig uit , maar werkt voor mij snel.
Voordeel is dat de pakketten voor Ubuntu dus ook allemaal op deze distro draait.
Linux home directory.
Voor linuxgebruikers is dit gesneden koek maar voor beginners ( zoals mijn collega) moet dit toch vermeld worden .
We installeren alles onder onze " homedirectory" en dit ziet er ongeveer zo uit .
Ongeveer , omdat de usernaam ( dat is hier luc ) bij u zal verschillen afhankelijk van uw Linux installatie.
pwd is een linux commando en geeft uw huidige directory weer ,zoals ge ziet is dit /home/luc. Bij u zal dit dan /home/"uw naam" vermoedelijk zijn .
Het tilde teken ~ in de prompt is ook een teken dat je in je homedirectory zit.
Om de software te kunnen installeren moet je al aan enkele voorwaarden voldoen . Ik verwijs hier naar een link in deze blog waar je al punt 1 tem 3 mag uitvoeren van het 10 stappenplan aldaar. Dit was voor een raspberry pi maar dit geldt voor alle Linux . U hoeft dus niet alles vanuit " Putty" te doen zoals daar beschreven maar gewoon vanuit de home directory , hier dus /home/luc
voorinstellingen
Eenmaal dit uitgevoerd kunnen we starten met de toepassingssoftware voor de stm32
STM32 [ 1: de start ]
Een collega zendamateur die graag met stm32 zou willen starten maar nog geen kaas heeft gegeten van Linux heeft mij gevraagd om dit synchroon met hem te doen zodat hij " kan vertrekken".
De hardware heeft hij mij bezorgd en bestaat uit :
1.Een STM32f103c8t6 microcontroller van het type ARM Cortex M3
ook bekend onder zijn koosnaampje " Blue Pill"
Voor de prijs hoeft je dit niet te laten , slechts enkele euro's ben je kwijt.
2.Een USB "Programming Unit" , zijnde de STlinkV2 , ook van STM.
De bedoeling van mijn collega is dat hij kan programmeren in een real time omgeving , daarvoor moet er ook een RTOS op komen
Kortom , dit zijn de startende software pakketten/Libaries die er op komen .
STM32f103c8t6
FreeRTOS
libopencm3
en ook nog StLinkV2 natuurlijk
De hardware heeft hij mij bezorgd en bestaat uit :
1.Een STM32f103c8t6 microcontroller van het type ARM Cortex M3
ook bekend onder zijn koosnaampje " Blue Pill"
Voor de prijs hoeft je dit niet te laten , slechts enkele euro's ben je kwijt.
2.Een USB "Programming Unit" , zijnde de STlinkV2 , ook van STM.
De bedoeling van mijn collega is dat hij kan programmeren in een real time omgeving , daarvoor moet er ook een RTOS op komen
Kortom , dit zijn de startende software pakketten/Libaries die er op komen .
STM32f103c8t6
FreeRTOS
libopencm3
en ook nog StLinkV2 natuurlijk
Abonneren op:
Posts (Atom)