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 


2 opmerkingen: