Hallo, bin ATMEL Neuling und will mit dem ATMega328 anfangen. Es gibt sie mit und ohne Bootloader. Kann mir jemand die Zusammenhänge erklären ? Meine Konfiguration soll sein: BASCOM über USB ISP-Programmierer auf ATMEGA328 im Experimentierboard oder Arduino-IDE über USB zum ARDUINO UNO R3 MEGA328P. Danke schon mal vorab für eure Mithilfe Rudi
Hi. Ein Bootloader erlaubt dir mehr Freiheiten, wie du den IC programmierst. Ohne Bootloader steht dir praktisch nur ISP oder HVPP (high voltage parallel programming ). In bestimmten Faellen sogar nur HVPP - und dafuer brauchst du ein extra Programmiergeraet. Mit Bootloader kann dein IC quasi jede Moeglivhkeit Daten in den IC zu schieben zur Programmierung nutzen. Nachteil ist, das man den Bootloader ersteinmal mit einer der o.g. Methoden in den IC schreiben muss. Beispielsweise ist USBaspLoader (https://github.com/baerwolf/USBaspLoader) ein Bootloader um per USB einen ATmega wie z.B. im tinyUSBboard (matrixstorm.com/avr/tinyusbboard/) zu programmieren. MfG
Du darfst auch nicht vergessen, dass der Bootloader Speicherplatz im Flash benötigt.
Ja, richtig. marixstorm schrieb: > Nachteil ist, das man den Bootloader > ersteinmal mit einer der o.g. Methoden in den IC schreiben muss. Ich ging aber davon aus, das die obige Aussage das impliziert. Aber gute Idee nocheinmal explizit darauf hinzuweisen. MfG
Erst mal DANKE an alle, die mir um Mitternacht noch antworteten. Wenn ich es richtig verstehe, werde ich mir für alle Fälle solche Chips anschaffen, welche einen Bootloader bereits enthalten. Gut ist der Tip von marixstorm, den USBaspLoader runter zu laden und bereit zu halten. Bestimmt gibt es noch etliche Fragen im weiteren Verlauf, gerne werde ich die in diesem Forum einstellen. Schönes WE an alle Beteiligten.
Rudi Einstein schrieb: > Wenn ich es richtig verstehe, werde ich mir für alle Fälle solche Chips > anschaffen, welche einen Bootloader bereits enthalten. Warum? Wenn du sowieso einen ISP-Programmierer hast, kannst du dir den Bootloader einfach selber draufflashen.
Rudi Einstein schrieb: > Hallo, > > bin ATMEL Neuling und will mit dem ATMega328 anfangen. > > Es gibt sie mit und ohne Bootloader. > Kann mir jemand die Zusammenhänge erklären ? > > Meine Konfiguration soll sein: > BASCOM über USB ISP-Programmierer auf ATMEGA328 im Experimentierboard > Hierfür brauchst du keinen Bootloader. Wenn einer drauf ist, wird er beim Programmieren über ISP gelöscht und ist erstmal Geschichte. Also spar dir die 50 ct, die der Chip mit Bootloader mehr kostet. Wenn du den Aruino-Bootloader irgendwann mal draufhaben möchtest, lädts du dir den runter und brennst ihn drauf. Einen ISP-Programmer hast du ja. > > Arduino-IDE über USB zum ARDUINO UNO R3 MEGA328P. > Genau für diese Umgebung sind die Bootloader auf den Chips drauf. Dann bindest du dich aber an das Arduino-System und dessen Programmierumgebung. Kannst den natürlich jederzeit auch mit ISP-Programmer flashen. Wenn du also auf die Bascom-Schiene gehen willst, nimmst du Chips ohne Bootloader, wählst du Arduino brauchst du Controller mit dem speziellen Arduino-Bootloader. Das sind aber so ziemlich die einzigen Controller, die mit Bootloader angeboten werden. Also Bootloader = Arduino. Das Bootloader-Programmieren hat aber auch noch den Nachteil, daß du an die Hardware-Konfiguration des Arduino gebunden bist. Üblicherweise laufen die Controller dabei mit 16MHz und externem Quarz. Jeder AVR kann aber auch mit internem Oszillator betrieben werden. Also ohne Quarz. Die Möglichkeit hast du in dem Arduino-System nicht. Auch gibt es jede Menge kleine Controller(Attiny), die du damit nicht verwenden kannst. Flexibel bist du nur mit deiner Bascom/ISP-Lösung. Bootloader sind gerade, insbesondere durch die Arduinos, groß in Mode. Nice to have. Mehr aber auch nicht. Zu einer richtigen Entwicklungsumgebung gehört ein ISP-Programmer. Auch wenn es nur ums Hobbybasteln geht. mfg.
marixstorm schrieb: > Ein Bootloader erlaubt dir mehr Freiheiten, wie du den IC programmierst. Quatsch. Richtig ist: Bootloader ermöglichen es, den Controller über andere Medien zu programmieren als über physische Verbindungen zum ISP-Port bzw. zum HV-Port. Dafür schränken Sie aber die Freiheit massiv ein. Man kann die Fuses nicht mehr programmmieren und man man kann den Bootloader-Bereich nicht mehr uneingeschränkt nach eigenem Gusto benutzen. Dies sind die minimalen Einschränkungen der Freiheit, die man hinnehmen muß. Allerdings ist das sicher oft akzeptabel, wenn man die Vorteile eines Bootloaders dafür bekommt. Insbesondere dann, wenn der Protokollstack des Bootloaders für das gewählte Medium dann auch von der Anwendung benutzt werden kann. Das ließe zumindest den Verlust an Flash-Space verschmerzbar werden, weil eben große Teile des vom Bootloader benutzten Bereiches dann überhaupt nicht verloren wären. Allerdings habe die C-only-Nasen offensichtlich ein Problem damit, das zu ermöglichen, warum auch immer, es wäre auch in C trivial, eine sinnvolle Schnittstelle zu designen, ein stabiles ABI dafür in den Bootloader zu integrieren und dies in Form eines C-Headers für Anwendungen bereitzustellen. Scheinbar sind das aber alles Leute, die das Design des Linux-Kernels derart verinnerlicht haben, daß ihnen sowas wie ein stabiles ABI förmlich als Sakrileg vorkommt... > Ohne Bootloader steht dir praktisch nur ISP oder HVPP (high voltage > parallel programming ). In bestimmten Faellen sogar nur HVPP - und > dafuer brauchst du ein extra Programmiergeraet. Ja, aber nur über diese Wege hat man wirklich völlige Freiheit.
Thomas Eckmann schrieb: > Flexibel bist du nur mit deiner Bascom/ISP-Lösung. > > Bootloader sind gerade, insbesondere durch die Arduinos, groß in Mode. > Nice to have. Mehr aber auch nicht. Zu einer richtigen > Entwicklungsumgebung gehört ein ISP-Programmer. Auch wenn es nur ums > Hobbybasteln geht Hallo Thomas, diese Antwort bringt mich schon mal viel weiter und in der Betrachtung meines Anliegens ist das sehr verständlich dargestellt. Ich bin schon 67 und bin nun mal mit BASIC "alt" geworden. Die Entwicklungsumgebung von BASCOM ist auch deshalb interessant, da die Demo- Version voll umfänglich zur Verfügung steht. Im Fokus bei mir steht die Vorstellung, Abläufe im Haus zu steuern und Messgrößen zu erfassen um sie statistisch zu verwerten. Gruß Rudi
c-hater schrieb: > Allerdings habe die C-only-Nasen offensichtlich ein Problem damit, das > zu ermöglichen, warum auch immer, es wäre auch in C trivial, eine > sinnvolle Schnittstelle zu designen, ein stabiles ABI dafür in den > Bootloader zu integrieren und dies in Form eines C-Headers für > Anwendungen bereitzustellen. > > Scheinbar sind das aber alles Leute, die das Design des Linux-Kernels > derart verinnerlicht haben, daß ihnen sowas wie ein stabiles ABI > förmlich als Sakrileg vorkommt... Kannst du das bitte weiter Ausfuehren. Ich bin derzeit krank und brauche dringend was zum Lachen. MfG
Stephan B. schrieb: > c-hater schrieb: >> Allerdings habe die C-only-Nasen offensichtlich ein Problem damit, das >> zu ermöglichen, warum auch immer, es wäre auch in C trivial, eine >> sinnvolle Schnittstelle zu designen, ein stabiles ABI dafür in den >> Bootloader zu integrieren und dies in Form eines C-Headers für >> Anwendungen bereitzustellen. >> >> Scheinbar sind das aber alles Leute, die das Design des Linux-Kernels >> derart verinnerlicht haben, daß ihnen sowas wie ein stabiles ABI >> förmlich als Sakrileg vorkommt... > > Kannst du das bitte weiter Ausfuehren. > > Ich bin derzeit krank und brauche dringend was zum Lachen. > > MfG Hör nicht auf sein Getöse. Bei dem sind alle C-Programmierer Idioten und nur er hat es verstanden. mfg.
Stephan B. schrieb: > Kannst du das bitte weiter Ausfuehren. Wenn du erklärst, was genau du davon nicht verstanden hast, führe ich das gern weiter aus. > Ich bin derzeit krank und brauche dringend was zum Lachen. Alles klar, das erklärt alles. Du bist krank. Schön, daß du das selber zugibst, sonst würde ich mich bei den Moderatoren gleich wieder der Beleidigung verdächtig machen, wenn ich es einfach nur behaupten würde...
Rudi Einstein schrieb: > Ich bin schon 67 und bin nun mal mit BASIC "alt" geworden. Die > Entwicklungsumgebung von BASCOM ist auch deshalb interessant, da die > Demo- Version voll umfänglich zur Verfügung steht. > Dann bleib einfach dabei. Nicht wegen Hans und Hänschen, sondern weil es ziemlich egal ist, in welcher Sprache man auf dem Controller entwickelt. Auch wenn über die Bascommer öfter mal hergezogen wird. Dazu gehöre ich manchmal auch. Aber das muß man nicht Ernst nehmen. Bei Problemen wird dir hier auch mit Bascom kompetent geholfen. Bei Arduino ist das ein bisschen spärlicher. > Im Fokus bei mir steht die Vorstellung, Abläufe im Haus zu steuern und > Messgrößen zu erfassen um sie statistisch zu verwerten. > Das sollte kein Problem sein. mfg.
Thomas Eckmann schrieb: > Hör nicht auf sein Getöse. Getöse? Fakten. Zeig' mir doch z.B. einfach einen in C geschrieben Ethernet-Bootloader, der es Anwendungen ermöglicht, den notwendigerweise ja bereits im Bootloader integrierten Gerätetreiber und den IP-Stack zu sharen. Wie schon gesagt: mir ist völlig bewußt, daß das kein Problem der Sprache C an sich ist, es wäre definitiv auch in C realisierbar. Bloß macht es scheinbar keiner ihrer Apologeten...
c-hater (Hofnarr) schrieb: > Alles klar, das erklärt alles. Du bist krank. Schön, daß du das selber > zugibst, sonst würde ich mich bei den Moderatoren gleich wieder der > Beleidigung verdächtig machen, wenn ich es einfach nur behaupten > würde... Wie kommst du denn darauf? Das würde ja bedeuten, daß man dich Ernst nimmt. mfg.
Thomas Eckmann schrieb: > Dann bindest du dich aber an das Arduino-System und dessen > Programmierumgebung. Was meinst du damit? Die Arduino Boards und die zugehörigen Libraries lassen sich doch unter Verwendung von "Arduino for Visual Studio and Atmel Studio" genauso in Atmel Studio verwenden (http://visualmicro.codeplex.com/)
Thomas Eckmann schrieb: > Wie kommst du denn darauf? Das würde ja bedeuten, daß man dich Ernst > nimmt. Nun, ich lege keinen besonderen Wert darauf, von C-Apologeten ernst genommen zu werden. Diese Typen sind wie Mitglieder irgendwelcher Sekten. Völlig gehirngewaschen. Mit denen ist eine faktenbasierte Diskussion meistens unmöglich. Selbst dieser (vergleichsweise kurze) Thread zeigt das sehr deutlich. Auf die konkrete Kritik geht keiner der C-Jubelperser ein (natürlich auch du nicht). Statt dassen: Herabsetzung und Verächtlichmachung der "Andersgläubigen". Armselig, aber durchaus passend in's Schema gehirngewaschener Sektenmitglieder.
Naja, c-hater: Mir ist eigentlich die Zeit zu Schade deine Psychosen zu füttern. (Ja, ich ahne schon, auch fuer diesen Satz wirst du dich wieder herablassend aeussern.) Aber viellicht ein paar Denkansaetze fuer dich: 1) Uebe dich doch bitte in Diplomatie - auch wenn du es nicht fuer noetig haelst und dich als staendig angegriffen fuehlst. (Du strahlst eine Aura der Feindseeligkeit aus, wie es nur kaum zu ertragen ist.) 2) Kennst du denn ueberhaupt einen Bootloader, der einen Codereuse praktiziert so wie du ihn ertraeumst? 3) Das spminterface (https://github.com/baerwolf/USBaspLoader/blob/master/firmware/spminterface.h) vom USBaspLoader implemtiert eine feste ABI. Zwar nur fuer eine Schreibfunktion aus normalen Regionen des Flashs - aber immerhin. Wenn fuer Entwickler sich der Bedarf ergeben sollte, das sie den USB-Stack reusen wollen, koennen Sie es nachpatchen. Auch du wirst sicherlich einsehen, alles auf einmal ist ein wenig viel fuer einen Entwickler... MfG
Rudi Einstein schrieb: > Hallo, > > bin ATMEL Neuling und will mit dem ATMega328 anfangen. Hallo, nochmal zum eigentlichen Kern des Threads - naemlich dir - Rudi: Ausschlieslich ISP zu verwenden birgt gerade als Anfaenger die Gefahr, das du dir den Chip in einen Zustand versetzt aus dem du ihn nicht weiter benutzen kannst. (Stichwort: "Verfusen") Dadurch das du eben immer in der Lage bist, Lock- und Fusebits zu setzen, kannst du theoretisch bei jeder Programmierung den Chip "umkonfigurieren". Leider auch in Konfigurationen, in denen ISP nicht mehr funktioniert. Speziell beim ATmega328 koenntest du versehentlich den RESET-PIN deaktivieren, externe Clocks (die du nicht vorraetig hast) konfigurieren oder einfach "serielles Programmieren" ausschalten. Ein Bootloader konfiguriert den IC beim Zeitpunkt seiner Programmierung und verhindert spaeteres Aendern durch sich selbst. Ein installierter Bootloader schliest ausserdem zunaechst nicht die weitere Verwendung von ISP aus, erlaubt aber z.B. ueber die Deaktivierung von ISP hinaus eine weitere Programmierung (z.B. wenn man den Reset-PIN doch lieber anderweitig benutzen will). Ich hoffe das dir das weiter hilft - weitere Fragen beantworte ich dir gern so gut ich kann. MfG Nachtrag: Mit Bootloader programmieren ist meist auch schneller und schont den Flash - da u.a. kein Chip-erase (der den ganzen Flash loescht) notwendig ist. Ein Mensch deiner Erfahrung duerfte zudem mit Steckmontage loeten vertraut sein. Vielleicht moechtest du dir ja mal http://matrixstorm.com/avr/tinyusbboard/ genauer ansehen...
Matthias schrieb: > Thomas Eckmann schrieb: >> Dann bindest du dich aber an das Arduino-System und dessen >> Programmierumgebung. > > Was meinst du damit? > Die Arduino Boards und die zugehörigen Libraries lassen sich doch unter > Verwendung von "Arduino for Visual Studio and Atmel Studio" genauso in > Atmel Studio verwenden (http://visualmicro.codeplex.com/) Natürlich ist man nicht in der Arduinowelt gefangen. Aber zu Anfang und darum geht es in diesem Thread, macht man nur Arduino. Das Verwenden der Arduino-Libs in der "normalen" Umgebung kommt auch eher von der anderen Seite. Nämlich daß der "normale" Programmierer, Arduinoteile in seine Programme einbaut. mfg.
c-hater (Hofnarr) schrieb: > Statt dassen: Herabsetzung und Verächtlichmachung der "Andersgläubigen". > Armselig, aber durchaus passend in's Schema gehirngewaschener > Sektenmitglieder. Immer wieder erheiternd deine Beiträge. Danke. Weiter so. mfg.
Thomas Eckmann schrieb: > Natürlich ist man nicht in der Arduinowelt gefangen. Aber zu Anfang und > darum geht es in diesem Thread, macht man nur Arduino. Meinst du mit "Arduino" die Hardware, die Code-Plattform oder die IDE (wenn man dies Ding mit sein rudimentären Grundfunktionen so nennen darf)? Arduino als Code-Plattform hat den Vorteil, dass die meisten Details erstmal unter einer glatten Oberfläche verborgen sind und viel Funktionalität in besseren "Dreizeilern" umsetzbar ist. Das vermeidet viel Anfängerfrust. Wenn man dann aus dem Anfängerstadium raus ist, hat man die Möglichkeit, bei Bedarf in C bis auf Registerebene an den Prozessor ranzukommen.
Matthias schrieb: > Meinst du mit "Arduino" die Hardware, die Code-Plattform oder die IDE > (wenn man dies Ding mit sein rudimentären Grundfunktionen so nennen > darf)? Das gesamte System. > Arduino als Code-Plattform hat den Vorteil, dass die meisten Details > erstmal unter einer glatten Oberfläche verborgen sind und viel > Funktionalität in besseren "Dreizeilern" umsetzbar ist. Das vermeidet > viel Anfängerfrust. Wenn man dann aus dem Anfängerstadium raus ist, hat > man die Möglichkeit, bei Bedarf in C bis auf Registerebene an den > Prozessor ranzukommen. Bis man dann da sitzt wie der Ochs vorm Berg: Beitrag "bootloader per arduinoUno auf atmega168PV-10AU" mfg.
Thomas Eckmann schrieb: >> >> Arduino-IDE über USB zum ARDUINO UNO R3 MEGA328P. >> > Genau für diese Umgebung sind die Bootloader auf den Chips drauf. Dann > bindest du dich aber an das Arduino-System und dessen > Programmierumgebung. Ist blödsinn. Der Bootloader der Arduinos dient nur dazu das Programm mittels AVRDUDE in den Flash zu laden, und ist von der Programmierumgebung der Arduinos völlig unabhängig. Wenn eine Entwicklungsumgebung AVRDUDE zum hochladen nutzt, kann auch der Bootloader genutzt werden. Da Du dich anscheinend noch nicht für eine Entwicklungsumgebung entschieden hast , schau dir doch mal LunaAVR an: http://avr.myluna.de Und ja, die kann auch den Arduino Bootloader nutzen.
Rudi Einstein schrieb: > Ich bin schon 67 und bin nun mal mit BASIC "alt" geworden. Die Echt? Nicht Fortran oder Algol? fchk
Frank K. schrieb: > Echt? Nicht Fortran oder Algol? > > fchk Hallo fchk, du hast GCOS6 etc. nicht genannt. Aber ehrlich,Hochsprachen wie diese deckten doch ganz andere Bereiche ab. Dein Beitrag hat mich jetzt auch nicht besonders weiter gebracht. Trotzdem Danke für Nichts. Gruß Rudi
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.