Hallo, ich habe mir UltraEdit-32 heruntergeladen und Installiert. Ich wollte ein kleinen Code compilern. Ich habe die Einstellungen wie sie auf dem Scrennshoot 1:1 übernommen. Was mache ich falsch es kommt folgende fehlermeldung: C:\AVRGCC\BIN\MAKE.EXE: *** No targets specified and no makefile found. Stop. Das make file ist dem verzeichnis wo auch das andere file liegt. Wäre für jede Hilfe dankbar. Peter
Hallo Peter, das Arbeitsverzeichnis scheint nicht richtig zu sein. Wenn Du den Parameter %P verwendest, wird in dem Verzeichnis der aktuellen Datei gesucht. Evtl. solltest Du den kompletten Pfad für deine makedatei im Arbeitsverzeichnis angeben. Hat deine makedatei den richtigen Namen. Er lautet "makefile", also ohne Dateierweiterung. Oryx
was heisst wo auch das andere liegt? das makefile gehört standardmässig in den ordner wo auch deine projektdateien liegen. der fehler liegt nach meiner einschätzung entweder am namen des makefiles oder es befindet sich im falschen ordner. für die konfiguration von UE schau mal hier: http://www.mikrocontroller.net/avr-gcc-installation.htm C:\AVRGCC <<- ich sehe gerade diesen ordner..hast du die aktuelle winavr version installiert oder eine alte von avrfreaks? gruss, BAB
Ich habe 10.0b installiert. bei mir geht es weiter C:\avrgcc\avrfreaks warum gibt es da eine neue? Am liebsten wäre es mir wenn ich einfach nur einen klick machen muss. DAnke schon mal für eure Hilfe. Ich habe mal einen Dirkten pfand zum makefile im avrfreaksorder gemacht. Ging aber trotzdem nicht. Peter
was du da hast ist uralt..:).. hier der link: https://sourceforge.net/projects/winavr/ winavr installiert auch automatisch alle umgebungsvariablen..du brauchst also nichts mehr einstellen und kannst sofort loslegen... du solltest aber vorher alle umgebungsvariablen von der avr-freaks variante löschen sonst könnte es probleme geben. gruss, BAB
Hallo, ich habe jetzt den WINAVR hoffentlich installiert. Und da habe ich jetzt ein Programmer Notepad. Jetzt blicke ich garnicht mehr durch. Ich finde da keine Option wo sich irgenwie nach compielern anhört. Was mache ich falsch? Ich habe da nach einem makefile gesucht das ich irgenwie in Ultraedit einbinden zu können das war aber fehlanzeige. Wie geht es jetzt weiter? Ich hoffe das ich euch nicht zu arg nerv. Peter
Hallo,
habe es so wie das obere eingestellt geht aber immer noch nicht. In der
Datei wo sich dei Cdatei drin ist ist auch das Makefile. Aber trotzdem
kommt folgende meldung:
make: *** No rule to make target `all'. Stop.
> Process Exit Code: 2
Wäre um jeden Tip dankbar.
Peter
Hallo Peter, das sieht doch gut aus. Deine makedatei wird wohl gefunden. Leg doch mal leine c-datei und die makedatei als Anhang bei. Oryx
Hallo, ich habe sie vom C-Kurs hier auf derSeite ist Übung 1 HAbe beide Dateien Runtergeladen. Peter
hallo peter, ich habe mit jetzt auch die schnelle deine files nicht angeschauen..zum starten nimm lieber das demo makefile von eric weddington und passe es auf deiner bedürfnisse an. liegt in: c:\winavr\sample gruss, BAB
Hallo Peter, ich habe mal eine ZIP-Datei angehangen. Entzippen mit Pfadangaben und Unterverzeichnissen beibehalten. Das Arbeizverzeichniss bei der Einstellung von UltraEdit setze auf c:\peter\prell Wenn du jetzt irgendwelche Änderungen an prell.c vornimmst, sollte neu compiliert werden. Benutze für die Dateinamen immer nur kleine Buchstaben. Unter UNIX ist Prell.c nicht prell.c !!! Der Compiler kommt aus der UNIX-Ecke. Hoffentlich erzähle ich hier keinen Blödsinn. Auf meinem Rechner muß die Groß- und Kleinschreibung passen. Make erzeugt eine Datei im Format elf. Jetzt muß mir noch irgentjemand sagen, was für ein Format an den AVR übertragen werden kann. Dann setze ich noch das objcopy in das makefile. Oryx
Groß-/Kleinschreibung: Ja, generell ist es eine gute Idee, diese einfach konsistent zu benutzen. Wenn man also ein Include.h angelegt hat, sollte man eben auch #include "Include.h" schreiben und nicht #include "include.h". Das erleichtert die Portierung des Jobs auf Dateisysteme, die zwischen beiden Fällen unterscheiden. Wenn mir irgendwo jemand eine Zip-Datei mit einem Job zur Begutachtung vorlegt und ich muß darin erstmal die Groß-/ Kleinschreibung reparieren, kann sich jeder vorstellen, wieviel Lust ich dann noch habe, nach dem eigentlichen Problem zu suchen... Wirklich wichtig wird das vor allem bei Dateiendungen. Wenn eine Assemblerdatei so geschrieben ist, daß sie erst noch durch den C-Präprozessor geschickt werden muß (weil sie #include, #define oder sowas nimmt), dann sollte sie .S als Suffix besitzen, und genau dies sollte dann auch so im Makefile stehen. Wenn der Compiler eine Datei sieht, die auf .S endet, wirft er den Präprozessor an und übergibt das Ergebnis dem Assembler. Wird die Datei ihm mit .s angegeben, so gibt er sie direkt dem Assembler. Der Unterschied ist dabei, wie es auf der Kommandozeile des Compilers (und damit im Makefile) steht. Dem Compiler ist in diesem Falle ziemlich egal, daß ein Windows unter beiden Namen die gleiche Datei suchen würde.
Hallo, Danke schon mal für deine mühe. Aber die elf datei kann ich nicht in den AVR übertragen. Ponyprog unterszüzt nur: e2p hex mot bin csm rom eep Hex geht auf jedem FAll die anderen konnte ich nicht probieren. Es kam auserdem folgende Meldung: make: *** Warning: File `c:/peter/obj/prell.o' has modification time in the future (2003-03-28 19:31:42 > 2003-01-10 20:22:45) avr-ld -Map c:/peter/obj/prell.map -o c:/peter/prell/prell.elf\ c:/peter/obj/prell.o make: *** Warning: Clock skew detected. Your build may be incomplete. Ich habe auch noch das makefile auf dem 4433 umgestellt. Inwiefern die Fehlermeldung eine bedeutung hat weiß ich nicht. Dort steht aber das es incomplete wäre. Das hat mich etwas iritiert. Eine elf datei hat er erzeugt. (die wo du mitgeliefert hast habe ich gelöscht und dann compielert und dann war sie wieder da). Peter PS. ich habe mal die erzeugte elf Datei als anhang beigelegt.
Hallo Peter, läuft doch super. Das mit dem incomplete ist nicht wichtig, Du muß nur den Inhalt von peter/obj löschen. Und deinen Wecker im Recher auch mal wieder stellen, ich warte schon auf das März-Gehalt und bei Dir ist wohl noch Januar. Ich ändere meine makedatei noch mal eben. Oryx
Hallo Peter, ich habe Dir nochmal das makefile gemacht. Bitte den Kommentar am Ende lesen. Deinen Controller habe ich auch eingetragen. Oryx
Hallo, Es geht jetzt alles soweit. Ich bekam jetzt eine Hex die ich auch gebrannt habe. Ich musste noch im Makefile 90s hinschreiben haben sie anscheinend vergessen. Jetzt ist aber die frage was muss ich machen wenn ich mal ein anderes Projekt anlegen will? Wie erstelle ich das file selber bzw was muss ich änderen? Peter Ich warte nicht auf mein gehalt sonderen auf die nächsten Schulferien. grins
Hallo Peter, was ist das mit den 90s? Mein Problem ist, das ich garkeine Ahnung von den AVRs habe, nur mit den makefiles will es einigermassen gehen. Auch die Compileroptionen sind mit Sicherheit noch nicht optimal. Die Optionen -Wstrict-prototypes -Wunused -Wshadow -Wswitch -Wparentheses -Wall -Werror behandeln Compilerwarnungen, es wird eigentlich alles gewarnt. -Werror behandelt Warnungen wie Fehler. -Wstrict-prototypes kann in C++ Code entfallen, weil es der Compiler eh macht. Speziell mit -g -Os solltest Du mal etwas experimentieren. Verwende mal statt -Os -O2 oder -O3. Und -g sollte doch nur für Debuginformationen sein, kann also auch mal entfallen. Für ein neues Projekt brauchst du nur ein Verzeichnis mit dem Projektnamen anlegen, das makefile kopieren und eine c oder cpp Datei mit dem Projektnamen erstellen. Und natürlich deinen Controller in das makefile eintragen. Wenn Du willst, gebe ich die in den nächsten Tagen eine Verzeichnisssammlung, die den Programcode aus mehreren Dateien und Verzeichnissen zusammensucht. Ich brauche halt jemanden, der es auf einem AVR laufen läßt. Mein Ziel ist eigentlich, mein makefile so hinzubekommen, das andere es verstehen, nutzen und ändern können. Es soll auch noch relativ unabhängig von der eingesetzten Controllerfamilie sein. War das Datum deines Rechners im Januar eingestellt? Für das make ist das Datum das entscheidene Kriterium. Schulferien sind ne schöne Sache. Dann haßte ja so richtig Zeit. Oryx
Hallo, MIt dem 90s vergessen meinte ich folgendes: Sie haben geschrieben: at4433 es gehört aber so: AT90s4433. DAtum habe ich jetzt richtig eingestellt. Vieleicht kann ich mir ja morgen die Strasenbahnkarte ergattern und dann nach Karlsruhe in die Stadtbibilothek fahren. Dann werde ich mich mal noch Büchern umschauen. Weil der anfang ist dort relativ schlecht beschrieben. Z.B. Was für includes man braucht (kann mir das jemand sagen?) Wie das mit den geschweiften klammern ist. Wie das mit dem Main ist. HAt vieleicht jemand gerade ein einfaches Beispiel da am besten nur das am einem Port die Lichter angehen. Ich finde das das im Touturial fehlt. Peter
-Os ist übrigens für den AVR meistens die beste Optimierung. -O2 und vor allem -O3 brauchen mehr Platz, ohne dabei wirklich nennenswert schneller zu werden (< 10 % habe ich mal getestet).
schau gleich mal in der Biblothek ob die ein "c" buch haben, weil folgende Sachen sind rein "c" nix avr-technisches. frag doch einfach mal google oder lese ... http://www.mypage.bluewin.ch/ch_schifferle/C-Kurs.zip
zwecks makefiles ... http://www.avrside.fr.pl/eng/ind_eng.html steht auf der seite: >> no trouble with makefiles edition - you can directly set options you need
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.