STM32 - Float Konvertierung - Führt nicht zum Compilerfehler, aber zum Abbruch zur Laufzeit

Gast #1352781
Lesenswert?
• ▲
▼
Hallo Zusammen,

es scheint, ich kann nicht mir Float Zahlen arbeiten.

Diese Beispiel versuche ich gerade auszuführen.

So funktioniert es noch (kein Compilerfehler wird angezeigt)
1
      s32 TestLong = 0;
2
      float TestD;
3

4
      TestD = 123 / 100.0;

So funktioniert es nicht mehr (kein Compilerfehler wird angezeigt)
STM32 bleibt einfach an der betreffende Stelle stehen
1
      s32 TestLong = 0;
2
      float TestD;
3

4
      TestD = 123 / 100.0;
5
      TestLong = TestD * 100.0;

Auch das hier funktionierte nicht
1
TestLong = (long)(TestD * 100.0);
2
TestLong = (s32)(TestD * 1000);

Ich nutze Codesourcery C++ lite, Compiler wird so gestartet
1
C:\Dokumente und Einstellungen\BB\Desktop\Projekt33>cs-make
2
arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Wall -Wextra -g -Os -ffunction-sectio
3
ns -std=gnu99 -I . -I libstm32/inc -I include -DMCK_STM32_32MHZ    -c -o source/
4
main.o source/main.c
5
arm-none-eabi-gcc libstm32/src/stm32f10x_vector.o stm32f10x_it.o source/main.o s
6
ource/stm32_init.o source/adc.o source/gpio_config.o source/timer.o source/i2c.o
7
 source/uart.o source/rprintf.o libstm32/libstm32.a --output projekt33.elf
8
 -nostartfiles -Wl,--gc-sections,-Map=projekt33.elf.map,-cref -I . -I
9
 libstm32/inc -I include -L libstm32 -lc -lm -lgcc -lc -T stm32.ld
10
arm-none-eabi-objcopy -O binary projekt33.elf projekt33.bin
11
arm-none-eabi-objcopy -O ihex projekt33.elf projekt33.hex
12
arm-none-eabi-objdump -h -S -C -D projekt33.elf > projekt33.lss

Über Hilfe würde ich mich sehr freuen.

Vielen Dank & Viele Grüße
Bernd
Gast #1353164
Lesenswert?
• ▲
▼
Keiner eine Idee ? Kann doch nicht sein, das man mit dem STM32 keine
Floats in Interger bekommt.

Hier nochmal das Problem in aller Kürze
1
   s32 zahl= 0;
2
   float kommazahl = 0.0;
3
   zahl = 2070;
4
   kommazahl = ((float)zahl) / 2500.0;

gibt einen Programmabbruch zur Laufzeit. Compiler sagt nichts dazu.

Hatte schon irgendjemand mal das Problem?

Danke & Viele Grüße
Bernd
Gast #1353190
Lesenswert?
• ▲
▼
Hallo,

nein STM32 hat wohl keine FPU (Herstellerinfo hab ich nicht gefunden,
aber in einem anderen Thread stand etwas diesbezüglich).
(Ich hoffe mal das ist kein K.O. Argument)

Hat irgendjemand eine Idee?
(brauch ich dringend....)

Danke & Viele Grüße
Bernd
Gast #1353376
Lesenswert?
• ▲
▼
Hallo Zusammen,

vielen Dank.
1
C:\Dokumente und Einstellungen\BB\Desktop\Projekt33>cs-make
2
arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Wall -Wextra -g -Os
-msoft-float
1
 -ffunction-sectio
2
ns -std=gnu99 -I . -I libstm32/inc -I include -DMCK_STM32_32MHZ    -c -o source/
3
main.o source/main.c
4
arm-none-eabi-gcc libstm32/src/stm32f10x_vector.o stm32f10x_it.o source/main.o s
5
ource/stm32_init.o source/adc.o source/gpio_config.o source/timer.o source/i2c.o
6
 source/uart.o source/rprintf.o libstm32/libstm32.a --output projekt33.elf
7
 -nostartfiles -Wl,--gc-sections,-Map=projekt33.elf.map,-cref -I . -I
8
 libstm32/inc -I include -L libstm32 -lc -lm -lgcc -lc -T stm32.ld
9
arm-none-eabi-objcopy -O binary projekt33.elf projekt33.bin
10
arm-none-eabi-objcopy -O ihex projekt33.elf projekt33.hex
11
arm-none-eabi-objdump -h -S -C -D projekt33.elf > projekt33.lss

Hat leider auch keinen Erfolg gebracht, (inkl. -msoft-float hatte ich
auch mal bei den Linker Flag gesetzt gehabt).

Akutell hab ich diese im Projekt
1
#include <stdio.h>
2
#include <string.h>
3
#include <math.h>

Wenn die Libarys nicht stimmen, kann ich irgendwo nachschauen,
welche Libarys für die Floatumrechnung eingebunden werden?

Danke & Viele Grüße
Bernd

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.