Hallo, bis jetzt war ich immer der Meinung, und ich habe auch nochmal im AVR-Tut. nachgelesen, dass man für die AVRs einen Bootloader braucht. Heute lag die aktuelle Make im Briefkasten. Da wird der Bau eines USB-Programmers mit einem ATtiny85 beschrieben. Im Text steht: "Für die winzigen Mikrocontroller der ATTiny-Serie ist das Betreiben ohne Arduino-Bootloader aus Speicherplatzgründen oder um Pins zu sparen, besonders nützlich." Gibt es unterschiedliche Bootloader - Arduino und AVR, und kann man den tatsächlich weglassen? Ich bin jetzt etwas verwirrt.... Gruß Andreas
Klar kann man den weglassen. Er macht einem das Leben aber einfacher, wenn man das betreffende Teil über eine (fast) beliebige Datenverbindung neu flashen kann. Willst du das nicht, brauchst du keinen bootlader. Musst dann eben das komplette Programm entweder: -vor Einbau flashen -das IC steckbar machen -eine ISP-Schnittstelle in der Zielhardware vorsehen (das geht meist ohne tatsächlich Pins zu verlieren)
In welchem AVR-Tutorial willst du das denn bitte gelesen haben? In http://www.mikrocontroller.net/articles/AVR-Tutorial kommt das Wort Bootloader noch nicht einmal vor. Selbstverständlich braucht ein AVR keinen Bootloader. Und da die Arduino-Heinis kein Patent darauf haben, kann sich auch jeder seinen eigenen Bootloader schreiben, so er das für nötig hält.
Nur geht es dort nicht um AVRs. Moderne Controller haben tatsächlich oft einen Bootloader integriert. Der AVR eher nicht (außer Arduinos, weil die über die serielle Schnittstelle geflasht werden).
Wie sollte denn ein Bootloader integriert sein ? Es sind zumindest vorstellbar in einer Applikation zu booten von -SD Karte -Serielle Schnittstelle mit einem beliebigen Protokoll Das beliebige serielle Protokoll hat immer einen Hintergrund. zB - muss es moelicherweise verschluesselt kommunizieren - muss es mit einem proprietaeren Programm verbinden - muss es ueber Bluetooth mit einer App funktionieren, - muss es per http mit einem Internetserver kommunizieren, - muss es ueber eine Mobilfunkverbindung mit einer Infrastruktur kommunizieren.
Wenn ich den Controller eingelötet habe, und die ISP-Schnittstelle über eine Wannenbuchse auf dem Boad aufgelötet habe, bringt mir der Bootloader doch keinen Nutzen mehr? Zum Flashen brauche ich dann sowieso den ISP-Programmer. Oder bin ich da immernoch auf dem Holzweg? Andreas
Andreas M. schrieb: > Oder bin ich da immernoch auf dem Holzweg? Wenn du einen ISP-Programmer hast und auf dem Board einen entsprechenden Anschluß, brauchst du keinen Bootloader. Fabrikneue AVRs werden mit leerem Speicher ausgeliefert. Kein Bootloader, kein gar nichts, nur FFs. Um diese Controller zu programmieren, braucht man immer einen Programmer. Damit kann man jedes Programm auf den Controller flashen. Das kann die jeweilige Anwendung, aber auch ein Bootloader sein.
Thomas E. schrieb: > Fabrikneue AVRs werden mit leerem Speicher ausgeliefert. Ich glaube, mich zu erinnern, dass auf Atmega8/16/32U2/4 ab Werk immer ein USB Bootlader drauf ist. Das DB des ATmega16U4 / ATmega32U4 sagt auf Seite 1: – Optional Boot Code Section with Independent Lock Bits In-System Programming by On-chip Boot Program True Read-While-Write Operation All supplied parts are preprogramed with a default USB bootloader Beim Atmega*U2 habe ich es nicht gefunden. dfggffgjk
> Atmega8/16... ab Werk immer ein USB Bootlader drauf ist.
Zeig mal die USB-Pins im DB...
Har har haaarrrrr.
Dampf Stampf schrieb: > Es sind zumindest vorstellbar in einer Applikation zu booten von > -SD Karte > -Serielle Schnittstelle mit einem beliebigen Protokoll Ein AVR kann weder von SD-Karte noch von einer seriellen Schnittstelle "booten". Nur der Flashinhalt kann ausgeführt werden. Andreas M. schrieb: > Oder bin ich da immernoch auf dem Holzweg? Es gibt mehrere Möglichkeiten, ein Programm in einen AVR zu bekommen: - Bootloader (wenn vorhanden) - ISP (wenn /RESET-Pin nicht wegkonfiguriert) - HV-Programmierung (geht immer). Und ja, wenn du den /RESET-Pin per Fuse zu einem normalen I/O-Pin machst, dann geht auch ISP nicht mehr.
S. R. schrieb: > Ein AVR kann weder von SD-Karte noch von einer seriellen Schnittstelle > "booten". Nur der Flashinhalt kann ausgeführt werden. Nun ja, wenn dieser AVR ein OS besitzt, kann man das schon...
(º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb im Beitrag #4912386: >> Atmega8/16... ab Werk immer ein USB Bootlader drauf ist. > > Zeig mal die USB-Pins im DB... > > Har har haaarrrrr. Hier.
Marc V. schrieb: > Hier. Das ist für einen ATmega16U4, nicht für einen ATmega16. Marc V. schrieb: > Nun ja, wenn dieser AVR ein OS besitzt, kann man das schon... Zeige mir mal einen AVR, der Code von einer SD-Karte ausführen kann. Und damit meine ich keinen Bytecode-Interpreter.
Bezueglich der erwaehnten SD Karte... Es ging um einen Bootloader der die Applikation zB von einer SD Karte laden kann, oder von einem Webserver irgendwo. Der Bootloader laedt die Applikation, dazu muss er sich an die Randbedingungen halten, welche nicht universell sein koennen. Normales Produkte update eben. Ich hab mal einen Bootloader geschrieben, der konnte http Requests auswerten und per http die Applikation laden.
:
Bearbeitet durch User
Sapperlot W. schrieb: > Es ging um einen Bootloader der die Applikation zB von einer SD Karte > laden kann, oder von einem Webserver irgendwo. Das ist auf einem AVR nicht möglich, da Code nur vom Flash ausgeführt werden kann. Du kannst natürlich ein Firmware-Update laden, in den Flash schreiben und dann ausführen, aber das ist eben nicht die Applikation! (Auf anderen Architekturen gilt das nicht unbedingt.)
> > Zeig mal die USB-Pins im DB... > > > > Har har haaarrrrr. > Hier. Die Rede war von: > > Atmega8/16 Also mal kein U fuer ein " " vormachen... Wer lesen kann ist klar im Vorteil.
S. R. schrieb: > Das ist für einen ATmega16U4, nicht für einen ATmega16. (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸. schrieb: > Die Rede war von: > >> > Atmega8/16 > > Also mal kein U fuer ein " " vormachen... Zitiere: dfggffgjk schrieb: > Ich glaube, mich zu erinnern, dass auf Atmega8/16/32U2/4 ab Werk immer > ein USB Bootlader drauf ist. (º°)·´¯`·.¸¸.·´¯`·.¸¸.·´¯`·.¸¸.· schrieb: > Wer lesen kann ist klar im Vorteil. Ja.
:
Bearbeitet durch User
S. R. schrieb: > Zeige mir mal einen AVR, der Code von einer SD-Karte ausführen kann. Und > damit meine ich keinen Bytecode-Interpreter. Da kann man jetzt darüber streiten ob das unbedingt etwas mit booting zu tun hat. Streng genommen ist booting nur Initialisierung des Systems und nirgendwo ist vorgeschrieben, dass entsprechendes Program vom RAM ausgeführt werden muss. Und selbst ein AVR kann mehrere OS (im Flash allerdings) haben und je nach Inhalt der SD-Karte nur einen davon ausführen. Dementsprechend werden auch die ev. angeschlossenen Geräte erkannt und von uC initialisiert (oder eben nicht).
Marc V. schrieb: > Streng genommen ist booting nur Initialisierung des Systems und > nirgendwo ist vorgeschrieben, dass entsprechendes Program vom RAM > ausgeführt werden muss. Kann es auf einem AVR auch nicht, daher wäre die Aussage unsinnig. Marc V. schrieb: > Und selbst ein AVR kann mehrere OS (im Flash allerdings) haben > und je nach Inhalt der SD-Karte nur einen davon ausführen. Dann bootet er trotzdem aus dem Flash. Das Programm, was die Initialisierung vornimmt - um bei deiner Terminologie zu bleiben - ist bereits vorher im Flash vorhanden und vollkommen unabhängig vom Inhalt der SD-Karte. Und nun hör auf zu nerven und mach' jemanden anders an.
S. R. schrieb: > Und nun hör auf zu nerven und mach' jemanden anders an. Ok. Und du kannst mal nach der Definition von booten suchen, gleich danach nach boot loader und wenn du den Unterschied verstanden hast, kannst du zurückkommen, um mich weiter zu nerven.
:
Bearbeitet durch User
Thomas E. schrieb: > Der Obernervkotz in diesem Forum bist du. Du bist eine Null, sowohl vom Wissen als auch vom Charakter her. Suchst immer wieder nach Gelegenheiten, von hinten (wie alle Feiglinge) einen Stein zu werfen. Dass ich wesentlich mehr Ahnung als du habe, sollte doch kein Grund sein, sich so zu benehmen. Im Zusammenhang mit dir fällt mir nur Hyäne ein.
Marc V. schrieb: > Du bist eine Null, sowohl vom Wissen als auch vom Charakter her. > > Suchst immer wieder nach Gelegenheiten, von hinten (wie alle > Feiglinge) einen Stein zu werfen. > > Dass ich wesentlich mehr Ahnung als du habe, sollte doch kein > Grund sein, sich so zu benehmen. > > Im Zusammenhang mit dir fällt mir nur Hyäne ein. https://www.youtube.com/watch?v=7Sing06uO6M
Dampf Stampf schrieb: > Wie sollte denn ein Bootloader integriert sein Meist als ROM (LPC, STM32) oder in einem speziellen Flash-Block (8051, EFM8, EFM32, STM8) das hat auch den Vorteil dass das User-Programm wie gehabt an Adresse 0 anfangen kann. Da bei AVR beides nicht geht wird der Bootloader als normales Programm an Adresse 0 mit Programmer geflasht und das User-Programm muss dann für eine höhere Adresse nach dem Bootloader gelinkt werden. Andreas M. schrieb: > Wenn ich den Controller eingelötet habe, und die ISP-Schnittstelle über > eine Wannenbuchse auf dem Boad aufgelötet habe, bringt mir der > Bootloader doch keinen Nutzen mehr? In einem Produkt wird keine Programmier- oder Debug-Schnittstelle rausgeführt. Das User-Programm holt sich der Bootloader über vorhandene Schnittstellen z.B. UART, CAN, I2C Im übrigen ist das was bei AVR ISP heisst eigentlich gar kein echtes ISP weil ISP so definiert ist, das es dafür keine spezielle Hardware braucht und schon gar kein SPI
Lothar schrieb: > Im übrigen ist das was bei AVR ISP heisst eigentlich gar kein echtes ISP > weil ISP so definiert ist, das es dafür keine spezielle Hardware braucht > und schon gar kein SPI. Naja, du verwürfelst da gerade "ISP als Konzept" mit dem "ISP als Atmel-Protokoll für AVR". Das sind zwei verschiedene Dinge, die leider den gleichen Namen tragen.
S. R. schrieb: > Naja, du verwürfelst da gerade "ISP als Konzept" mit dem "ISP als > Atmel-Protokoll für AVR". Das sind zwei verschiedene Dinge, die leider > den gleichen Namen tragen. Schlimmer noch, er verwechselt sogar SPI mit ISP
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.