diff --git a/doc/softwareSetup/stmSetup.txt b/doc/softwareSetup/stmSetup.txt index d756f25f2e3d0b54aae2569941aa60553e9f6a09..3d1f5401fa3dad894b8096f6dc9aca062246407b 100644 --- a/doc/softwareSetup/stmSetup.txt +++ b/doc/softwareSetup/stmSetup.txt @@ -1,13 +1,21 @@ -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 - Dateien herunterladen von - https://www.dropbox.com/l/scl/AABtsAyzx1MIZBJeAg0Nz5LGSd3bH9qCfmM + Dateien herunterladen aus der Dropbox von Oliver Kreuzmann Dann speichern und entpacken unter z.B. ~/Documents - Im Repo sind bereits alle Änderungen gemacht - 2. Einrichten der ARM-Toolchain (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 $ mkdir -p ~/opt $ cd ~/opt $ 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: @@ -31,11 +39,16 @@ Dieses Dokument dient als Anleitung für die Kompilierung des Codes auf dem STM Erwartete Ausgabe: 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/ - Ä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: /home/jenkins/ARM_GCC/2014q2/bin @@ -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 - 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 @@ -157,6 +170,8 @@ Dieses Dokument dient als Anleitung für die Kompilierung des Codes auf dem STM #include "rtwtypes.h" + Die Änderungen in cpx sind nicht notwendig, da im makefile alle Dateien aus cpx entfernt wurden + cpx/foccomplex/foccomplex.h:52 #include "curmon.h" #include "angmon.h" @@ -188,16 +203,60 @@ Dieses Dokument dient als Anleitung für die Kompilierung des Codes auf dem STM #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 - Lösung: Instllation der ARM_Toolchain + Lösung: Installation der ARM_Toolchain - 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