Hi Community,... bin seit ca. 4 Monaten stolzer Linuxanwender,... nun ja, kleine Einschränkungen hat es, ich bekomm AVR- studio einfach nich zum laufen,... aber das soll nicht Inhalt des Beitrags sein! Meine Frage(n): 1: Was für Programme brauch ich um einen Atmega 8 ohne AVR Studio und ohne Programmer zu Proggen (Frage 2),... Hatte schonmal einen selbstversuch gestartet, der aber mein System ziemlich zerhauen hat, deshalb frag ich jetzt nach. 2: Ich hab außerdem gehört, dass die Atmega Familie über ISP mit einer Seriellen Schnittstelle Programmiert werden können. Das wär echt toll, weil ich hab weder nen Programmer noch andere Ausrüstung außer ner Seriellen Schnittstelle... Wenn das geht, was muss ich beachten, wie ist das mit den Makefiles, die müsste ich da selber machen, oder?? Hat jemand schon Erfahrung mit ISP und evtl. auch Linux?? Version Linux Ubuntu 7.10 Gruß mx
Ungewöhnlich ist es AVRs unter windows zu programmieren, weil der GNU GCC (AVR-GCC ist nur ein leicht modifizierter GCC) eigentlich auf GNU/Linux Systemen heimisch ist. Unter Linux ist das also kalter Kaffee ;) Als Progger kannst du Ponyprog benutzen. PS: Deine Distribution heist Ubuntu. Linuxversion wird 2.6.irgendwas sein.
@i_h sehr hilfreich dein Posting ermutigt viele auf Linux umzusteigen bei so viel Unterstützung
Danke erstmal, aber ich muss gestehen, ich bin sowohl in linux und auch µCs nicht allzu fit. Ich hab bis jetzt nur unter Windows mit avrrisp und avr studio kurz mal gearbeitet und wie schon gesagt mit linux erst angefangen. Den thread hab ich in meinem selbstversuch auch durchgemacht, und nachdem ich die hälfte installiert hatte, war mein system im eimer, warum auch immer. Ich find dieser Artikel ist für nen anfänger auch ziemlich viel info auf einmal, also ich war da nich wirklich durchgestiegen und hab jetzt eigentlich nicht wirklich lust mein system nochmal neu aufzulegen... Hat nicht jemand schon erfahrung welche progs ich installieren sollte, damit ich mir das dann genau durchlesen kann?? Gruß mx
wenn Du unter KDE arbeitest, empfehle ich Dir kate als Editor und IDE. Programmieren mit avrdude und einem ordentlichen ISP Programmer. Alles andere ist IMHO Murks (auch unter Windows). Ansonsten gcc, avr-libc, gcc-avr, binutils-avr Gruß Andy PS: Dazu gibt es hier auch schon einige Threads. Bemühe mal die Suche.
@Tom In dem Wiki-Artikel steht nunmal schon fast alles, bis auf die Sache mit Ponyprog. Besteht dein Problem darin, dass ich die Informationen im Artikel nicht nochmal wiederkäue? Wie man den AVR GCC genau installiert hängt auch sehr von der Distribution ab, wenn man's nicht grad aus dem source neukompliert. Mit Ubuntu kenn ich mich nicht aus, unter gentoo reicht ein emerge avr-gcc. Pakete für Ubuntu sind ja aber im Wikiartikel verlinkt. Im Endeffekt ist es überall ähnlich, man muss halt einen Crosscompiler mit Toolchain einrichten. Der Weg dahin ist überall anders, das Resultat wiederrum das selbe. @mx Da musst du dich wohl schon erstmal etwas einarbeiten. Aber wenn du einmal weist wie du Programme unter Linux installierst, ist der Weg fast immer der selbe. Auf Ubuntu kann ich dir da nicht direkt weiterhelfen, benutze selber Gentoo - aber bitte komm desswegen nicht auf die Idee gleich die Distri wechseln zu wollen ;). In einem Ubuntu-Forum kann dir sicher weitergeholfen werden.
Danke für die Beiträge @Andreas... also ist ein Programmer notwendig?? Weil soweit ich das bisher gesehen hab, sollte es über RS232 und isp auch gehen, da kann ich mich aber auch täuschen?? Gruß
Du brauchst in jedem Fall einen Programmer, für RS232 besteht der aber nur aus ein paar Widerständen und einem Transistor, nix kompliziertes also. http://s-huehn.de/elektronik/avr-prog/avr-prog.htm
Es geht wohl auch ohne Programmer. Ich lese hier nur ständig von Leuten, die Probleme mit solchen direktem Anschließen an den parallel Port haben. Das leuchtet mir auch ein, weil moderne Betriebssysteme eben keine Echtzeitbetriebssysteme sind und exakte Timings, die zum Programmieren eingehalten werden müssen, so nicht garantiert sind. Einen Max232 zur Pegelanpassung brauchst Du sowieso, wenn Du über die serielle gehen willst. Die RS232 liefert +/- 10V, ist also zum direkten Anschließen an den AVR nicht geeignet. Der Parallelport geht da schon eher. Ein fertiger Programmer kostet <20€. Ich würde auch unbedingt einen nehmen, der einen kleinen AVR drauf hat. Dieser entspricht dann auch den Specs von Atmel. Es ist daher in meinen Augen nicht einzusehen, sich hier noch eine weitere Baustelle zu schaffen. Probleme wirst Du als Anfänger noch genug bekommen. Aber das ist eben nur meine Meinung. Gruß Andy
Also ich benutze unter Linux ( Kubuntu ) das Kontrollerlab und den AVR-Dude mit STK500 als Programmer, ist echt sehr gut aufgebaut, es fehlt zwar noch nen Simulator, aber OnChipDebug wird unterstützt das reicht eigentlich voll aus.
Das Wort Programmer hat in dem Kontext zwei Bedeutungen: 1) Ein Stück Hardware, welches den Computer mit dem zu programmierenden Baustein (MCU) auf die eine oder andere Weise verbindet. 2) Ein Stück Software auf dem Computer, welches wiederum mit der unter 1) erwähnten Hardware redet. Zu 1) STK500 oder AVR Dragon. Das STK500 wird über RS232 mit dem Computer verbunden. Der Dragon hingegen über USB. Beide wiederum unterstützen eine ganze Reihe von Methoden zur Verbindung mit und Programmieren eines AVR. Ob STK500 oder Dragon ist etwas Geschmackssache. Der Dragon soll leichter kaputt gehen. Beide werden unter Linux ausreichend unterstützt. Updates der Firmware in diesen Geräte geht offiziell nur unter Windows. Programmer-Hardware aus ein paar popeligen Widerstände und einen Buffer an der Drucker- oder seriellen Schnittstelle sind nicht empfehlenswert. Ja, ja, gleich kommt wieder die "aber bei mir geht das seit Trillionen Jahren 1!11!!!111elf"-Fraktion. Bei vielen Leuten gehen die eben nicht und machten Ärger. Zu 2) avrdude oder zur Not uisp avrdude kann mit einer Unmenge an Programmer-Hardware. Natürlich auch dem STK500 und dem Dragon. uisp's letzte Release ist schon ein paar Jahre her, während avrdude regelmäßig gewartet wird. Einen gewissen Zossen erwähne ich hier absichtlich nicht.
Alles klar, die 20-40€ investier ich dann noch... Danke euch allen!! Noch eine Sache zum Verständnis... Die Makefiles sind notwendig wenn ich mit avrdude arbeite?? Wenn ja, würde ich nähmlich, solange der Programmer unterwegs (post) ist, mich da mal reinlesen. Genügt da der Beitrag/Artikel aus µC.net oder sollte ich mir noch eine andere Quelle suchen?? Danke und Gruß mx
> Die Makefiles sind notwendig wenn ich mit avrdude arbeite?? Makefiles dienen eigentlich in erster Linie der Steuerung von Compiler, Linker usw. Meistens baut man aber der Bequemlichkeit halber gleich ein Target für den Aufruf der Programmiersoftware (Avrdude oder andere) ein. Man kann die AVR-Makefiles - selber schreiben - aus einem Mustermakefile aus dem Netz ableiten - mit dem Makefile-Generator Mfile erzeugen Bei letzterem brauchst du eigentlich kaum Kenntnisse von Make. Die von Mfile erzeugten Makefiles enthalten auch die o.g. Avrdude-Targets, so dass man auch hier nicht mehr viel nachdenken muss. Wenn man die Makefiles selber schreibt, hat man eben etwas mehr Eingriffsmöglichkeiten, wenn man zusätzliche Tools (z.B. zur Codegeneratoren, Dokumentationstools usw.) einsetzt, oder wenn man eine andere File-/Directory-Struktur für seine Projekte vorzieht. Es ist sicher kein Schaden, mal ins GNU-Make-Manual reinzuschauen. Man versteht dann im Problemfall auch die automatisch generierten Makefiles besser.
Die Makefiles sind nicht notwendig, aber bequem. Du könntest alle notwendigen Programme durch Eintippen des Programmnamens und aller notwendigen Parameter wie Programmoptionen und Dateinamen von der Konsole (Terminalfenster) aus bedienen. Aber wer will das? Der Rechner sollte doch wissen, was zu machen ist, wenn ich ein Projekt übersetzen und/oder auf den AVR übertragen will. Genau dieses Wissen steckt man in den Makefiles in Form sog. Regeln (Rules) rein. Erschreckend ist am Abfang der Blick in so ein Makefile, weil man kaum einen Sinn sieht bzw. meint man müsste alles Anpassen oder neuschreiben. Ist aner nicht nötig. Zum Glück haben nette Leute die Grundgerüste (Templates) für Makefiles bereits erstellt, so dass man nur noch eintragen muss, welchen AVR bei welcher Taktrate man hat und wie der ISP-Programmieradapter Hardwaretechnisch aussieht und wo er am Rechner angeschlossen ist. Insgesamt genau das gleiche Wissen ist notwendig, wenn man ohne Makefiles arbeiten wollte. Und zum Eintragen dieser Werte gibt es sogar Tools wie mfile. Und ein zweiter positiver Effekt von Makefiles: Man kann seine Projektparameter (AVR-Typ, Taktrate...) angeben und andere einfach über so ein Makefile drüberschauen lassen, ob's passt. Also: Keine Scheu vor Makefiles. Die gehören zu den Guten und erleichertn dir den Umgang mit dem AVR. EDIT: Hab wieder mal zu lange getippt, Yalu war schneller.
Mal ein Bsp. makefile angehängt. Hier siehst Du auch gut, wie in diesem Bsp. avrdude aufgerufen wird. Ich kümmere mich beim Entwickeln nicht mehr um die genauen Aufrufparameter von make, avrdude und das ganze tralala. Ist das makefile erst einmal erstellt, sieht die Entwicklung so aus: *.C und *.H files editieren dann Aufruf "make program". wenn es beim compilieren keine Fehler gab, ist damit das Programm auch schon im AVR drin. Oder ich setze eben nur ein "make" ab. Dann wird nur compiliert und gebaut. Dies mache ich manchmal, wenn ich vorher noch in die *.lss schauen will, was der Compiler daraus gemacht hat, bevor ich das *.hex auf den AVR loslasse. Anschließend dann mit "make program" rein in den AVR. AVRStudio und andere IDEs machen im Grunde genommen nichts anderes. Nur sind diese Aufrufe intern und lassen sich nicht so schön anpassen, als wenn man sein eigenes makefile erstellt. [/Werbung makefile off] ;-) Gruß Andy
Müste man nicht einfach das gewünschte File kompilieren, und das ganze dann mit sowas wie Ponyprog in den AVR laden? Ich versteh den aufgezählten Aufwand nicht.
@Mike: Wenn Du alles unübersichtlich in eine Datei quetschst und Dir jedesmal die Parameter zum Programmieren merken oder umständlich über irgendwelche Menüs (ich kenne Ponyprog nicht) einstellen willst, kannst Du das gerne machen. Einfacher geht es mit Makefiles... Gruß, Wolfgang
Ich glaube der Originalposter braucht erstmal ein grundlegendes Verständnis, wie er da möglichst einfach vorgehen könnte. Mit Makefiles und co sich auseinandersetzen zu müssen, nur weil man erstmal schnell was kompilieren und in den AVR schicken will ist doch Overkill. Mit den Feinheiten *nix-Welt kann er sich dann doch immer noch beschäftigen.
> Mit den Feinheiten *nix-Welt kann er sich dann doch immer noch > beschäftigen. Auch unter Windows gibt es make. Ausserdem kann er z.B. einfach oben gepostetes makefile verwenden, sein Projektnamen und sonstige *.C einfügen, den avrdue Aufruf anpassen und sich über den einfachen Aufruf von "make program" erfreuen. Wo ist das mehr Arbeit oder wo verlangt das mehr Wissen als ein Aufruf mit gcc. Die Parameter zu gcc zumcompilieren und linken muss er ja auch erst einmal irgendwoher bekommen. Im makefile oben stehen sie schon drin. Gruss Andy
Guten Tag Für den Anfang kann man einfach, wie weiter oben gesagt, Kontrollerlab gebrauchen. Kontrollerlab ist extra für AVRs gemacht und unterstützt neben dem integrierten Kompilier-System auch den Aufruf von Makefiles. Diese Lösung ist extrem flexibel, sodass Du, fallst Du es noch willst :), auch Makefiles gebrauchen kannst. Ich benutze jetzt seit etwa einem Jahr Kontrollerlab und bin sehr überzogen davon (ist mir leicht anzumerken, oder?). Wenn Du also ein Bisschen Speicherplatz auf der Platte hast, probier es einmal. Gerade eben kam ein neues Release heraus (2008-02-23). -- Gizmotron
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.