Solar Log Forum
21.05.2012 01:26
Willkommen
Gast
. Bitte
einloggen
oder
registrieren
.
1 Stunde
1 Tag
1 Woche
1 Monat
Immer
Einloggen mit Benutzername, Passwort und Sitzungslänge
News
: Forum auf Grund des Spamaufkommens auf manuelle Aktivierung neuer Benutzeraccounts umgestellt.
Übersicht
Hilfe
Suche
Einloggen
Registrieren
Solar Log Forum
>
Allgemeines
>
Technisches zum Thema
>
yasdi cross compile mit -Os
Seiten: [
1
]
Nach unten
« vorheriges
nächstes »
Drucken
Autor
Thema: yasdi cross compile mit -Os (Gelesen 772 mal)
mbarchfe
Mitglieder
Neuling
Offline
Beiträge: 11
yasdi cross compile mit -Os
«
am:
12.12.2009 13:58 »
Hallo,
Ich habe eine Frage, die die yasdi Bibliothek betrifft. Ich hoffe mal, dass das hier im Forum OK ist. Auf der SMA Seite selbst habe ich keinen passenden Ort für meine Frage gefunden. Immerhin weiss ich hier, dass Heiko ggf antworten wird.
Also: ich hatte auf der FritzBox den Effekt, dass die mit GetChannelValue ermitteleten Kanalwerte immer 0.0 geliefert haben, obwohl im yasdi.log korrekte Werte geloggt wurden. Mit dem Simulator unter Linux (ubuntu hardy) war alles OK. Ich habe dann von yasdi 1.7.2 auf 1.8.0 umgestellt, aber der Fehler auf der Box blieb.
Mit ein bisschen Debugging habe ich herausgefunden, dass der Gain fälschlich als 0.0 bestimmt wurde. Letzlich bin ich dann in byteorder.c angelangt:
float le32fToHost( BYTE * src )
{
DWORD v = le32ToHost(src);
return *(float*)&v;
}
le32fToHost liefert immer 0.0, wenn mit Platzoptimierung (-Os) kompiliert wird. Mein compiler ist der mipsel-gcc wie er von freetz geholt wird:
$ /home/ubuntu/freetz/toolchain/target/bin/mipsel-linux-uclibc-gcc -v
Using built-in specs.
Target: mipsel-linux-uclibc
Configured with: /home/oliver/fritz/ds26-14/trunk/source/toolchain/target/gcc-4.2.1/configure --prefix=/home/oliver/fritz/ds26-14/trunk/toolchain/build/gcc-4.2.1-uClibc-0.9.28/mipsel-linux-uclibc --build=i386-pc-linux-gnu --host=i386-pc-linux-gnu --target=mipsel-linux-uclibc --enable-languages=c,c++ --disable-__cxa_atexit --enable-target-optspace --with-gnu-ld --disable-libmudflap --enable-shared --disable-nls --enable-sjlj-exceptions --with-float=soft --enable-cxx-flags=-msoft-float
Thread model: posix
gcc version 4.2.1
Ich habe yasdi nach Anleitung mit cmake installiert und für das cross-compile die Umgebungsvariablen gesetzt:
export CC=/home/ubuntu/freetz/toolchain/target/bin/mipsel-linux-uclibc-gcc
export CFLAGS="-Os -pipe -march=4kc -Wa,--trap -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
export LDFLAGS=""
Die CFLAGS habe ich dabei von freetz übernommen. Jetzt ist meine Frage, wo eigentlich das Problem ist:
* Ist es ein Bug im gcc?
* Sollte der Code an der Stelle umgeschrieben werden?
* Muss das "-Os" Flag unterdrückt werden?
Danke für Hinweise
Markus
Gespeichert
Klaus D.
Globaler Moderator
Sr. Mitglied
Offline
Beiträge: 305
Re:yasdi cross compile mit -Os
«
Antworten #1 am:
13.12.2009 06:37 »
Hallo Markus,
sogern ich dir helfen würde, nur leider geht das über mein Wissen hinaus.
Eventuell Heiko mal ne PM schicken. Denn er schaut denke ich nicht jeden Tag vorbei.
mfg
Klaus D.
Gespeichert
mfg
Klaus D.
http://virtuelleshaus.selfip.com
vigeland
Mitglieder
Neuling
Offline
Beiträge: 25
Re:yasdi cross compile mit -Os
«
Antworten #2 am:
14.12.2009 15:41 »
Hallo,
Versuche mal, oder ist v schon null, du hast kein 64 Bit System ?
float le32fToHost( BYTE * src )
{
DWORD v = le32ToHost(src);
float f=v;
// ggf. float f=(fload)v;
return f;
}
Gruß
Gespeichert
mbarchfe
Mitglieder
Neuling
Offline
Beiträge: 11
Re:yasdi cross compile mit -Os
«
Antworten #3 am:
16.12.2009 22:24 »
Danke für den Hinweis. Ich werde es am Wochenende mal ausprobieren.
Markus
Gespeichert
mbarchfe
Mitglieder
Neuling
Offline
Beiträge: 11
Re:yasdi cross compile mit -Os
«
Antworten #4 am:
01.01.2010 17:12 »
Hallo,
Ich bin bei der Sache nicht weitergekommen. Wenn ich jetzt den -Os Schalter setze, haben alle gebauten Bibliotheken die Länge 0.
Gruß
Markus
Gespeichert
Seiten: [
1
]
Nach oben
Drucken
« vorheriges
nächstes »
Gehe zu:
Bitte wählen Sie ein Ziel:
-----------------------------
Allgemeines
-----------------------------
=> News und Ankündigungen
=> Diskussionen
=> Technisches zum Thema
=> Spamecke
Lade...