Hi,
ich bin auf ein sehr seltsames Problem gestoßen: In einem Minimal-Test Programm ist der Rückgabewert von sqrtf() immer 1. Identisch mit sqrt(). Egal was ich der Funktion an Wert übergebe (Variable oder Festwert). Folgendes Setup: GCC 12.3.1, cmake 3.20.3.2, STM32F401CCU6
Projekt erstellt mit VisualGDB und STM32CubeMX
Da der Code der main.c sehr lang ist, nur das was ich hinzugefügt habe zu der generierten Datei:
1 |
|
2 |
|
3 |
|
4 |
|
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 |
|
20 |
|
21 |
|
22 |
|
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 |
|
29 |
|
Ich habe schon versucht die Math-Library manuell dem Linker mit zu geben über die cmake. Und auch explizit die FPU deaktiviert. Beides brachte keinen Erfolg.
1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
Ich komm hier nicht mehr weiter und hoffe auf eure Hilfe.

