Skip to content
Snippets Groups Projects
Commit ac3ba621 authored by Franz Bethke's avatar Franz Bethke
Browse files

Merge branch 'master' of gitlab.informatik.hu-berlin.de:badenhop/Hochautomatisiertes-Fahren

* 'master' of gitlab.informatik.hu-berlin.de:badenhop/Hochautomatisiertes-Fahren:
  Updated stmSetup.txt
parents 8a00a454 72fb0048
No related merge requests found
Dieses Dokument dient als Anleitung für die Kompilierung des Codes auf dem STM Dieses Dokument dient als Anleitung für Kompilieren und Flashen von Code aufs STM
Schritte:
1. Ort der Dateien
2. Voraussetzungen für Kompilation
3. Notwendige Korrekturen für Kompilation
4. Kompilation
5. Mögliche Fehler
6. Installation der Tools fürs Flashen
7. Flashen mit GUI (optional)
8. Flashen mit CLI (mit Skript)
1. STM-Files 1. STM-Files
Dateien herunterladen von Dateien herunterladen aus der Dropbox von Oliver Kreuzmann
https://www.dropbox.com/l/scl/AABtsAyzx1MIZBJeAg0Nz5LGSd3bH9qCfmM
Dann speichern und entpacken unter z.B. ~/Documents Dann speichern und entpacken unter z.B. ~/Documents
Im Repo sind bereits alle Änderungen gemacht
2. Einrichten der ARM-Toolchain 2. Einrichten der ARM-Toolchain
(Zusatzinformationen: https://gnu-mcu-eclipse.github.io/toolchain/arm/install/) (Zusatzinformationen: https://gnu-mcu-eclipse.github.io/toolchain/arm/install/)
...@@ -22,7 +30,7 @@ Dieses Dokument dient als Anleitung für die Kompilierung des Codes auf dem STM ...@@ -22,7 +30,7 @@ Dieses Dokument dient als Anleitung für die Kompilierung des Codes auf dem STM
$ mkdir -p ~/opt $ mkdir -p ~/opt
$ cd ~/opt $ cd ~/opt
$ tar xjf ~/Downloads/gcc-arm-none-eabi-4_8-2014q2-20140609-linux.tar.bz2 $ tar xjf ~/Downloads/gcc-arm-none-eabi-4_8-2014q2-20140609-linux.tar.bz2
$ chmod -R -w ~/opt/gcc-arm-none-eabi-4_8-2014q2-20140609 $ chmod -R -w ~/opt/gcc-arm-none-eabi-4_8-2014q2
Testen ob die Toolchain läuft: Testen ob die Toolchain läuft:
...@@ -31,11 +39,16 @@ Dieses Dokument dient als Anleitung für die Kompilierung des Codes auf dem STM ...@@ -31,11 +39,16 @@ Dieses Dokument dient als Anleitung für die Kompilierung des Codes auf dem STM
Erwartete Ausgabe: Erwartete Ausgabe:
arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.8.4 20140526 (release) [ARM/embedded-4_8-branch revision 211358] ... arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.8.4 20140526 (release) [ARM/embedded-4_8-branch revision 211358] ...
3. Ändern der STM-Files
3. Korrigieren der STM-Files
Im Repo sind bereits alle Änderungen gemacht
$ cd ~/Documents/Austausch\ Assystem\ -\ HU/02_lieferung/vehicle_ecu_sw/quellcode/ $ cd ~/Documents/Austausch\ Assystem\ -\ HU/02_lieferung/vehicle_ecu_sw/quellcode/
Ändern der jeweiligen Dateien Es wird die Datei nano.specs benötigt
$ cp ~/opt/gcc-arm-none-eabi-4_8-2014q2/arm-none-eabi/lib/nano.specs .
Änderungen sind in den folgenden Dateien notwendig, suchen der entsprechenden Zeile und ersetzen
makefile: makefile:
/home/jenkins/ARM_GCC/2014q2/bin /home/jenkins/ARM_GCC/2014q2/bin
...@@ -136,7 +149,7 @@ Dieses Dokument dient als Anleitung für die Kompilierung des Codes auf dem STM ...@@ -136,7 +149,7 @@ Dieses Dokument dient als Anleitung für die Kompilierung des Codes auf dem STM
Gehe zu http://ecmc.rochester.edu/ecmc/docs/supercollider/scbook/Ch23_Dialects/extensions_c23_dialects/ENIAC/Eniac_Cycling%20Source%20Code/rtwtypes.h Gehe zu http://ecmc.rochester.edu/ecmc/docs/supercollider/scbook/Ch23_Dialects/extensions_c23_dialects/ENIAC/Eniac_Cycling%20Source%20Code/rtwtypes.h
Speichern unter ~/Documents/Austausch\ Assystem\ -\ HU/02_lieferung/vehicle_ecu_sw/quellcode/sys Speichere Datei in sys, z.B. unter ~/Documents/Austausch\ Assystem\ -\ HU/02_lieferung/vehicle_ecu_sw/quellcode/sys
sys/matlab/rtGetNaN.h:34 sys/matlab/rtGetNaN.h:34
...@@ -157,6 +170,8 @@ Dieses Dokument dient als Anleitung für die Kompilierung des Codes auf dem STM ...@@ -157,6 +170,8 @@ Dieses Dokument dient als Anleitung für die Kompilierung des Codes auf dem STM
#include "rtwtypes.h" #include "rtwtypes.h"
Die Änderungen in cpx sind nicht notwendig, da im makefile alle Dateien aus cpx entfernt wurden
cpx/foccomplex/foccomplex.h:52 cpx/foccomplex/foccomplex.h:52
#include "curmon.h" #include "curmon.h"
#include "angmon.h" #include "angmon.h"
...@@ -188,16 +203,60 @@ Dieses Dokument dient als Anleitung für die Kompilierung des Codes auf dem STM ...@@ -188,16 +203,60 @@ Dieses Dokument dient als Anleitung für die Kompilierung des Codes auf dem STM
#include "brd/startup/stm32f4xx.h" #include "brd/startup/stm32f4xx.h"
Umbennen von cpx zu cpx2 4. Kompilation
$ cd ~/Documents/Austausch\ Assystem\ -\ HU/02_lieferung/vehicle_ecu_sw/quellcode/
$ make
Bei Erfolg:
~/opt/gcc-arm-none-eabi-4_8-2014q2/bin/arm-none-eabi-gcc obj/app/rx24fctrl/src/rx24fctrl.o obj/app/main.o ...
...
~/opt/gcc-arm-none-eabi-4_8-2014q2/bin/arm-none-eabi-objcopy -O binary vlx.elf vlx.bin
-e \x1b[32;01mFinished Compiling and Linking\x1b[0m
4. Mögliche Kompilationsfehler:
5. Mögliche Kompilationsfehler:
- /home/opt/gcc-arm-none-eabi-4_8-2014q2/bin/arm-none-eabi-gcc: Command not found - /home/opt/gcc-arm-none-eabi-4_8-2014q2/bin/arm-none-eabi-gcc: Command not found
Lösung: Instllation der ARM_Toolchain Lösung: Installation der ARM_Toolchain
- In file included from ... No such file or directory - In file included from ... No such file or directory
Lösung: #includes fehlerhaft Lösung: #includes korrigieren, siehe 3.
6. Installation stlink-gui, st-flash
https://startingelectronics.org/tutorials/STM32-microcontrollers/programming-STM32-flash-in-Linux/
$ sudo apt-get install libusb-1.0-0-dev git
$ sudo apt-get install libgtk-3-dev
$ cd ~/Git
$ git clone https://github.com/texane/stlink
$ cd stlink
$ make
$ cd build/Release
$ sudo make install
$ sudo ldconfig
7. Benutzen von stlink-gui
Verbinde Rechner und STM mit USB-to-miniUSB
$ stlink-gui
Schreibe in Goto address den Wert
0x08000000
Klicke connect
... (Klicke Flash, Disconnect, unklar da nur st-flash von uns benutzt wird)
8. Benutzen von st-flash
Erstelle Skript, z.B. run.sh, mit Inhalt:
#use in quellcode
make && st-flash erase && st-flash write vlx.bin 0x0800000 && st-flash reset
Folgendermaßen können Änderungen vorgenommen werden:
1. Ändern des Codes
2. Ausführen des Skriptes
5. TODO:
- in cpx/foccomplex/foccomplex.h stehen Dateien, welche nicht vorhanden sind
- in cpx/foccomplex/src/foccomplex stehen Dateien, welche nicht vorhanden sind
- es kompiliert nur bei Umbenennung von cpx zu cpx2
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment