Dieses Dokument dient als Anleitung für die Kompilierung des Codes auf dem STM 1. STM-Files Dateien herunterladen von https://www.dropbox.com/l/scl/AABtsAyzx1MIZBJeAg0Nz5LGSd3bH9qCfmM 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/) Gehe auf https://launchpad.net/gcc-arm-embedded/4.8/4.8-2014-q2-update Herunterladen von gcc-arm-none-eabi-4_8-2014q2-20140609-linux.tar.bz2 Öffne Konsole: $ sudo apt-get -y install lib32ncurses5 $ 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 Testen ob die Toolchain läuft: $ ~/opt/gcc-arm-none-eabi-4_8-2014q2/bin/arm-none-eabi-gcc --version 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 $ cd ~/Documents/Austausch\ Assystem\ -\ HU/02_lieferung/vehicle_ecu_sw/quellcode/ Ändern der jeweiligen Dateien makefile: /home/jenkins/ARM_GCC/2014q2/bin -> ~/opt/gcc-arm-none-eabi-4_8-2014q2/bin app/rx24fctrl/rx24fctrl.h:21 #include "stm32f4xx.h" -> #include "brd/startup/stm32f4xx.h" app/mavlink/mavlink.h:14 #include "../protocol/velox/mavlink.h" -> #include "protocol/velox/mavlink.h" sys/errorhandler/errorhandler.h:24 #include "stm32f4xx.h" -> #include "brd/startup/stm32f4xx.h" app/latctrl/latctrl.h:21 #include "stm32f4xx.h" -> #include "brd/startup/stm32f4xx.h" per/clocksync.h:23 #include "stm32f4xx.h" #include "stm32f4xx_exti.h" #include "stm32f4xx_syscfg.h" -> #include "brd/startup/stm32f4xx.h" #include "brd/stm32f4xx_exti.h" #include "brd/stm32f4xx_syscfg.h" app/odom/src/odom.c:21 #include "config.h" -> #include "app/config.h" app/vehspdctrl/src/vehspdctrl.c:19 #include "vehspdctrl.h" #include "stm.h" -> #include "../vehspdctrl.h" #include "app/stm/stm.h" app/latctrl/src/latctrl.c:19 #include "latctrl.h" -> #include "../latctrl.h" dev/mpu9150/src/mpu9150.c:30 #include "mpu9150.h" -> #include "../mpu9150.h" dev/hcsr04/hcsr04.h:26 #include "stm32f4xx.h" #include "stm32f4xx_i2c.h" -> #include "brd/startup/stm32f4xx.h" #include "brd/stm32f4xx_i2c.h" per/i2c2.h:23 #include "stm32f4xx.h" -> #include "brd/startup/stm32f4xx.h" dev/eeprom_25lc080a/src/eeprom_25LC080A.c:19 #include <stm32f4xx.h> -> #include "brd/startup/stm32f4xx.h" dev/eeprom_25lc080a/eeprom_25LC080A.h:24 #include <stm32f4xx.h> -> #include "brd/startup/stm32f4xx.h" sys/matlab/rt_nonfinite.h:34 #include "app/foc/rtwtypes.h" -> #include "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 sys/matlab/rtGetNaN.h:34 #include "app/foc/rtwtypes.h" -> #include "rtwtypes.h" sys/matlab/rtGetInf.h:34 #include "app/foc/rtwtypes.h" -> #include "rtwtypes.h" sys/matlab/rt_look.h:33 #include "app/foc/rtwtypes.h" -> #include "rtwtypes.h" cpx/foccomplex/foccomplex.h:52 #include "curmon.h" #include "angmon.h" #include "pemon.h" -> /*#include "curmon.h" #include "angmon.h" #include "pemon.h"*/ cpx/foccomplex/src/foccomplex.c:21 #include "app/foc/foc.h" #include "per/gpio.h" -> /*#include "app/foc/foc.h"*/ #include "per/gpio.h" #include "per/pwm.h" per/src/i2c2.c:20 #include "i2c2.h" -> #include "../i2c2.h" per/src/spi.c:20 #include <stm32f4xx.h> -> #include "brd/startup/stm32f4xx.h" Umbennen von cpx zu cpx2 4. 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 - In file included from ... No such file or directory Lösung: #includes fehlerhaft 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