mikrocontroller.net

Forum: Compiler & IDEs Atmega168 + Eclipse + gcc Linker = Probleme mit "Strings"


Autor: N. K. (bennjo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also nachdem mich dieses Problem jetzt 2 Tage meines Lebens gekostet,
und fast um den Verstand gebracht hat, will ich es anderen ersparen:

Wenn man für den Atmega168 compiliert MUSS man undbedingt dem Linker
mit dem Parameter "-mmcu=atmega168" mitteilen, dass man selbiges
tut.

Ansonsten laufen kleine Test-Programme...sobald es etwas komplizierter
wird oder sobald man char* Konstanten also Strings verwendet bekommt
man ein absolut nicht-deterministisches Verhalten...nach jedem flashen
verhält es sich anders!


Ich hoffe man wird diesen Eintrag mit der Suche finden.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man muss dem Link-Kommando des GCC immer das passende
-mmcu übergeben, das man auch zum Compilieren benutzt hat --
nicht nur beim ATmega168, sondern einfach immer.

(Also, man muss natürlich nicht, aber wenn man das nicht tut,
müsste man anderweitig sicherstellen, dass der Linker auch die
richtigen Bibliotheken, die richtige crtXXX.o usw. benutzt.
Die Angabe von -mmcu vereinfacht dieses Vorgehen eben nur.)

Autor: Arwed Reichel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Nikias,

ich moechte wegen Speichermangels von einem ATMega8 auf den ATMega168
umsteigen; beim compilieren meckert der GCC (unter Linux) allerdings,
dass er den 168er nicht kennt:
#avr-gcc -g -mmcu=atmega168 -Wall -Wstrict-prototypes -Os
-mcall-prologues -Os -c i2ctemp_avr_main.c
>unknown MCU `atmega168' specified
>Known MCU names: ... (alle moeglichen, aber eben dieser nicht)

Der GCC ist
# avr-gcc --version
>avr-gcc (GCC) 3.3 20030512 (prerelease)
>Copyright (C) 2003 Free Software Foundation, Inc.

Wo kann ich denn die EInstellungen dazu aendern?
DAnke und viele Gruesse von Arwed

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>avr-gcc (GCC) 3.3 20030512 (prerelease)

                   ****
Der ist von 2003, wir schreiben aber schon 2006

> Wo kann ich denn die EInstellungen dazu aendern?

Mit einer 'Einstellung ändern' alleine wird das wohl nichts.
Was der Compiler nicht kennt, kennt er nicht. Noch nicht
mal wenn du mit dem Fuss aufstampfst und zornig 'Ich will
aber' schreist.

Wie wäre es ganz einfach mit: eine neuere Version downloaden.

Autor: Arwed Reichel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Nikias,

dass Schreien nicht hilft, ist schon klar ;-)
Ich hatte mal gehoert, dass die GCC sowas wie ein ProzessorConfig-File
haetten ...

Habe jetzt hier im Forum den Link auf
http://www.roboternetz.de/wissen/index.php/Avr-gcc...
gefunden und compiliere gerade alles; binutils und avr-gcc sind schon
fertig ...

Haettest Du noch einen Tip wegen der Fusebits? Sind die anders als beim
ATMega8? Ich habe einen externen Quarz und verwende avrdude.

Danke und viele Gruesse
Arwed

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich hatte mal gehoert, dass die GCC sowas wie ein
> ProzessorConfig-File haetten ...

Da willst du nicht wirklich hineinschauen :-)

> Haettest Du noch einen Tip wegen der Fusebits? Sind die anders als
> beim ATMega8?

Keinen blassen Schimmer. Aber ich weiss jemanden der das weiss :-)
Atmel. Datenblatt downloaden, nachschauen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.