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.
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.)
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
>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.
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_und_avrdude_installieren 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
> 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.
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.