http://www.heise.de/ct/projekte/machmit/ctbot/wiki/AVRToolchain#Toolchainselberbauen welchen Sinn machen mpc und mpfr bei AVR-GCC, welche Vorteile bringt das konkret?
Diese Pakete werden zum Erzeugen von GCC benötigt, siehe http://gcc.gnu.org/install/prerequisites.html Beispiel: In einer Quelle wie
1 | float x = 1.0f + 2.0f; |
muss für x ein Initializer berechnet werden; diese Berechnung kann nur auf dem Host geschehen. Um auf dem Host unabhängig von der vorliegenden float/double-Harware zu sein, wird das alles in Software nachgebildet.
gut zu wissen, Danke. Wenn der Host, also der Arbeitsrechner auf dem AVR Quellen compiliert werden, Hardwareunterstützung für solche compile-time Berechnungen besitzt, wäre dieser Schritt (mpc, mpfr) nicht notwendig? Die meisten Seiten die auf die Toolchain-Installation eingehen, bauen nur binutils, gcc und libc. Noch eine kurze Frage: wie geht man am besten beim Bauen vor. Holt man sich besser grundsätzlich die neuesten Quellen oder Quellen aus der selben Zeit? Beispielsweise gcc3.4.6 mit binutils 2.18 und libc 1.6.8? Gibt es stabile Kombinationen und nicht empfehlenswerte?
Martin schrieb: > gut zu wissen, Danke. > Wenn der Host, also der Arbeitsrechner auf dem AVR Quellen compiliert > werden, Hardwareunterstützung für solche compile-time Berechnungen > besitzt, wäre dieser Schritt (mpc, mpfr) nicht notwendig? Nein, diese Pakete sind immer notwendig, unabhängig von den Fähigkeiten der Host/Build-Plattform. Abhängig sind sie lediglich von der GCC-Version. mpc ist AFAIK seit 4.5 erforderlich, gmp und mpfr auch für ältere 4-er Versionen. Selbt wenn der Host double-Berechnungen nativ unterstützt, ist nicht sichergestellt, daß diese genauso geschehen wie Target-Code es machen würde. Überigens ist es wie bei heise angegeben nicht notwendig, die Pakete gmp/mpfr/mpc ins GCC-Root-Directory zu kopieren. Ein Soft-Link ist völlig ausreichend und beim Build mehrerer Toolchain-Varianten Platzsparender. > Die meisten Seiten die auf die Toolchain-Installation eingehen, > bauen nur binutils, gcc und libc. Für ältere GCC wie 3.x war das auch ausreichend. > Noch eine kurze Frage: wie geht man am besten beim Bauen vor. > Holt man sich besser grundsätzlich die neuesten Quellen oder > Quellen aus der selben Zeit? Beispielsweise gcc3.4.6 mit binutils 2.18 > und libc 1.6.8? Gibt es stabile Kombinationen und nicht empfehlenswerte? Bei avrfreaks.net gibt's ein paar sticky-threads, wo's um avr-Tools generierung und Build-Scripte geht, die auch automatisch Patches runterladen und anwenden. Für eingehendere Info, welche Versionen zusammenpassen/empfehlenswert sind, ist das dortige avr-gcc-Forum ein Anlaufpunkt, dito die Mainingliste avr-gcc-list von http://avr-libc.nongnu.org Von avr-(gcc/binutils/libc) gibt es so viele Kombinationen/Releases/Distributionen/Patches; ich weiß nicht ob da noch irgendjemand ausser Eric oder Jörg durchblickt. Meine Interesse an avr-gcc geht in Richtung Entwicklung, nicht dessen Verwendung. Und da interessieren mich nur ungepatchte Versionen von avr-gcc. In http://winavr.cvs.sourceforge.net/viewvc/winavr/ gibt es ein Verzeichnis "patches", wo man die Patches für unterschiedliche Versionen der Tools finden kann. Die Patches sind auch bei den WinAVR-Distributionen anbei. Die Patches sind jedoch nicht protierbar, d.h. ein Patch gegen 4.3.3 passt ziemlich sicher nicht auf 4.4.2. Zudem müssen die Patches in einer bestimmten Reihenfolge angewandt werden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.