Forum: Mikrocontroller und Digitale Elektronik Arduino via ISP flashen


von Spannungsteiler (Gast)


Lesenswert?

Hallo uC-Forum!

Hat jemand schon mit AVR-Studio4 über SPI Schnittstelle einen
Arduino mini oder pro mini geflascht/programmiert.

Funktioniert es einfach?

Meine Überlegung ist, statt ATMega328P Prozessor einen arduino-mini
zu nehmen. Vorteil wäre,dass der uC sich schon auf eine mini Platine
befindet. Somit hätte ich schon Lötanschlüsse für Anschlussdrähte.
Ausserdem ist der Taktgeber auch vorhanden. also eine komplette
Minimalbeschaltung wäre gegeben.
Fernost Preise wären etwa gleich wie hier der ATMega328 Prozessorpreis.

Danke für euere Infos!

von Arduinoquäler (Gast)


Lesenswert?

Spannungsteiler schrieb:
> Funktioniert es einfach?

Warum sollte es nicht?

Die SPI Leitungen sind ja 1:1 vom Prozessor herausgeführt.

Und irgendwann hat ja ein Arduino Hersteller auch mal einen
Bootloader draufspielen müssen .....  wie hätte er das ohne
SPI machen sollen?

von Joachim B. (jar)


Lesenswert?

habe ich noch nicht gemacht, aber wo soll das Problem sein?
ATmega328p habe ich nur als DIL über ISP und Studio4 programmiert, 
genauso muss es auf dem miniPRO gehen.

von Draco (Gast)


Angehängte Dateien:

Lesenswert?

Na klar, so wirds gemacht. So handhabe ich das auch seit einiger Zeit 
schon... mit dem Atmega32u4. Billiger kommt man an fertige Hardware 
nicht ran. Ich hatte bis dato auch noch nie ein Hardwareproblem wegen 
der Module aus Fernost gehabt.Ich nutze immer ein Leonardo Micro Clone

von Stefan F. (Gast)


Lesenswert?

Ja das geht ohne Probleme. Du kannst en Bootloader sogar drauf lassen, 
falls dich dessen Speicherbedarf nicht stört.

von Alex D. (allu)


Lesenswert?

Spannungsteiler schrieb:
> Hat jemand schon mit AVR-Studio4 über SPI Schnittstelle einen
> Arduino mini oder pro mini geflascht/programmiert.

Ja, Pro Mini mit AVR-Studio 6.2 (AVR-ISP-MK2). Funktionierte ohne 
Probleme.

von Spannungsteiler (Gast)


Lesenswert?

Super, vielen Dank an euch Alle!

Die Frage stellte sich mir, weil ich im web kaum Beispiele finde,
wie man arduino-mini über ISP programmiert.

Überwiegend sind serielle Verbindungen beschrieben.
Ich habe angefangen mich mit AVR-Studio4 zu beschäftigen und habe
mir einen USB-ISP Light Adapter fürs Flashen dazugekauft.

Damit hatte ichden Arduino-UNO über ISP bereits erfolgreich geflasht.
Nun bin ich auf der suche nach preiswerte "all-in-one-miniplatine".

So kam ich zum arduini-mini Board, und zur Frage an euch, welche
Erfahrungen ihr damit schon gemacht habt?

Ich weiß, es ist eine Anfänger-Frage, aber durch euere Erfahrungen
fühlt man sich gleich unterstüzt!

von Wolfgang (Gast)


Lesenswert?

Spannungsteiler schrieb:
> Meine Überlegung ist, statt ATMega328P Prozessor einen arduino-mini
> zu nehmen.

Auf einem Arduino Mini Board wirst du einen ATmega328 finden, es sei 
denn, der Mini ist schon sehr betagt (dann ATmega168).

Warum willst du einen Arduino Mini per ISP flashen. Der Bootloader ist 
doch drauf.

von Spannungsteiler (Gast)


Lesenswert?

Wolfgang schrieb:
> Warum willst du einen Arduino Mini per ISP flashen. Der Bootloader ist
> doch drauf.

Oh, die Frage ist gut!  Ich will einfach lernen. Habe kaum andere
praktische Ziele, ausser, zu lernen den Umgang mit Atmega und
AVR-Studio4.
Auch gezielt nehme ich kein Atmel-studio 5,6,7 usw!

Bisher hatte ich mir die C-Grundlagen mit dem Arduinoplattform 
angeeignet
und ein-paar Projekt auf die Beine gestellt.
Nun wage ich den Schritt zumm AVR-Studio und Bootloadloses flashen..

von Stefan F. (Gast)


Lesenswert?

> Die Frage stellte sich mir, weil ich im web kaum Beispiele finde,
> wie man arduino-mini über ISP programmiert.

Weil man dazu kein Beispiel braucht. Der Mikrocontroller wird auf diesem 
Board genau so programmiert, wie auf jedem anderen Board oder gar auf 
den Steckbrett. ISP ist ISP.

von Einer K. (Gast)


Lesenswert?

Stefan U. schrieb:
> Ja das geht ohne Probleme. Du kannst en Bootloader sogar drauf lassen,
> falls dich dessen Speicherbedarf nicht stört.

Naja.....
Ohne besondere Vorkehrungen drohen Probleme.

Vermeidung:
1: Anwendung und Bootloader in eine Hex packen und gemeinsam brennen.
2: Fuses auf "ohne Bootloader" umstellen

von Stefan F. (Gast)


Lesenswert?

> Ohne besondere Vorkehrungen drohen Probleme.

Vermutlich würde dein Beitrag mit konkreter Angabe (welche Probleme) 
hilfreicher sein. Ich habe mit dem Bootloader jedenfalls kein Problem, 
wenn ich meine Anwendungen über ISP flashe.

von Cyblord -. (cyblord)


Lesenswert?

Spannungsteiler schrieb:
> Die Frage stellte sich mir, weil ich im web kaum Beispiele finde,
> wie man arduino-mini über ISP programmiert.

Weil das kaum ein hirntoter Arduino Nutzer auf die Kette bekommt. Und 
warum soll er auch? Das Ding per USB einstöpseln und nach kurzer Suche 
und ein paar Threads in Foren den DOWNLOAD Button finden reicht doch. 
Das geht auch noch mit dem Gehirn im Einmachglas nebendran.

von Einer K. (Gast)


Lesenswert?

Stefan U. schrieb:
> Ich habe mit dem Bootloader jedenfalls kein Problem,
> wenn ich meine Anwendungen über ISP flashe.
Der wird nicht überschrieben?

Stefan U. schrieb:
> Vermutlich würde dein Beitrag mit konkreter Angabe (welche Probleme)
> hilfreicher sein.
Ok...
Dann eben etwas ausführlicher....
Einer große Anwendung kann in den Bootloader Bereich herein ragen.
Wenn dann doch noch der Bootloader Resetvektor per Fuse aktiviert ist, 
wird deine Anwendung versagen, denn da wird einfach blind ins Ende rein 
gesprungen.

Milder fällt das Problem aus, wenn der obere Speicher ungenutzt bleibt. 
Dann stehen da nur 0xFF, also NOPs. Die werden abgeklappert, bis der 
Programmzeiger den WrapAround macht. Ab da gehts wie erwartet weiter.

von Einer K. (Gast)


Lesenswert?

Cyblord -. schrieb:
> Spannungsteiler schrieb:
>> Die Frage stellte sich mir, weil ich im web kaum Beispiele finde,
>> wie man arduino-mini über ISP programmiert.
>
> Weil das kaum ein hirntoter Arduino Nutzer auf die Kette bekommt. Und
> warum soll er auch? Das Ding per USB einstöpseln und nach kurzer Suche
> und ein paar Threads in Foren den DOWNLOAD Button finden reicht doch.
> Das geht auch noch mit dem Gehirn im Einmachglas nebendran.

  ><((((*>

von Spannungsteiler (Gast)


Lesenswert?

Nach meinem Verständnis bedeutet das ISP-Flashen, dass
ich kein Bootloader mehr bräuchte.

Zwar würden 1K Flasch mehr zu Verfügung stehen, hätte ich aber
den Nachteil, nur über ISP eine Programmänderung vornehmen zu können.

Ist es so korrekt?

Wie gesagt, es dient mir als Lernaufgabe! Bin trozdem über verschiedene
sogar widersprüchliche Antworten dankbar, da ich so euere
Erfahrungen und Einstellungen für mein Vorankommen verwenden kann.

von Einer K. (Gast)


Lesenswert?

Spannungsteiler schrieb:
> Bin trozdem über verschiedene
> sogar widersprüchliche Antworten dankbar,
Sehr weise!

Und, jetzt kommts:
Du kannst sie sogar anhand des Datenblattes überprüfen!
Auch im Versuch.

Und damit, mit Fug und Recht, den Unsinn aussortieren und das Richtige 
zu deinem eigenem Wissen machen.

von Stefan F. (Gast)


Lesenswert?

>> Ich habe mit dem Bootloader jedenfalls kein Problem,
>> wenn ich meine Anwendungen über ISP flashe.

> Der wird nicht überschrieben?

Wird er nicht, sofern die Anwendung in den noch freien Speicherbereich 
passt. Der Bootloader liegt ja am oberen Ende des Flash Speichers. Das 
Anwendungsprogramm beginnt unten und wächst nach oben hin.

Darauf muss man natürlich selbst achten. Ich glaube, avrdude (und co) 
sind in dieser Hinsicht leider nicht Deppensicher.

> Nach meinem Verständnis bedeutet das ISP-Flashen, dass
> ich kein Bootloader mehr bräuchte.

Ja

> Zwar würden 1K Flasch mehr zu Verfügung stehen, hätte ich aber
> den Nachteil, nur über ISP eine Programmänderung vornehmen zu können.

Ja

Wenn du allerdings einen ISP Anschluss und einen ISP Programmieradapter 
hast, kannst du den Bootloader jederzeit wieder neu installieren, wenn 
du meinst, ihn zu brauchen.

von Einer K. (Gast)


Lesenswert?

Stefan U. schrieb:
> Wird er nicht, sofern die Anwendung in den noch freien Speicherbereich
> passt. Der Bootloader liegt ja am oberen Ende des Flash Speichers. Das
> Anwendungsprogramm beginnt unten und wächst nach oben hin.

Soweit mir bekannt kann man per ICSP keine einzelnen Pages löschen.
Einzig ein Chip Erase ist möglich.
Und damit ist der Bootloader im Nirvana.

Wenn es da Möglichkeiten gibt, sind sie mir nicht bekannt.
Und ich würde mich über einen Link zur betreffenden Doku sehr freuen.

Ich kann dir z.B. diesen bieten: http://www.atmel.com/images/doc0943.pdf

von Spannungsteiler (Gast)


Lesenswert?

Arduino F. schrieb:
> Wenn es da Möglichkeiten gibt, sind sie mir nicht bekannt.
> Und ich würde mich über einen Link zur betreffenden Doku sehr freuen.

Das wäre auch meine nächste Frage gewesen :-)

Ich habe dieses Zitat gefunden;

>> Beim Programmieren über ISP kann man nur den gesamten Flash löschen
(system erase). Andererseits kann man den Teil des Flash der die
Applikation hält, nicht beschreiben ohne ihn vorher zu löschen.
Ergo muß man den Bootloader beim Programmieren über ISP jedesmal
neu mit aufspielen. <<

von Axel S. (a-za-z0-9)


Lesenswert?

Spannungsteiler schrieb:
> Ich habe dieses Zitat gefunden;
>
>>> Beim Programmieren über ISP kann man nur den gesamten Flash löschen
> (system erase). Andererseits kann man den Teil des Flash der die
> Applikation hält, nicht beschreiben ohne ihn vorher zu löschen.
> Ergo muß man den Bootloader beim Programmieren über ISP jedesmal
> neu mit aufspielen. <<

Es wäre besser gewesen, wenn du den dazugehörigen Thread verlinkt 
hättest.

Ansonsten stehe ich nach wie vor zu dieser Aussage. Einen ATmega, der 
bis auf den Bootloader leer ist, kann man genau einmal per ISP 
programmieren ohne ihn vorher zu löschen. Die Wahrscheinlichkeit, daß 
Programm und Bootloder sich überschneiden besteht zwar. Aber man kann 
das unmöglich übersehen, wenn der Flash-Inhalt verifiziert wird.

Vor jedem weiteren Neubeschreiben des Flash muß man ihn erstmal löschen. 
Und dabei löscht man den Bootloader zwangsweise mit. Man muß einen 
Bootloader natürlich nicht zwangsweise wieder aufspielen, sondern nur 
dann, wenn man später einen braucht (das war im o.g. Thread ausdrücklich 
verlangt). Andererseits:

Spannungsteiler schrieb:
> Zwar würden 1K Flasch mehr zu Verfügung stehen, hätte ich aber
> den Nachteil, nur über ISP eine Programmänderung vornehmen zu können.

Ich halte das für gar keinen Nachteil. Wenn ich entweder mit dem Auto 
oder mit den Fahrrad zum Bäcker fahren kann und mich für das Fahrrad 
entscheide und das Auto meiner Frau zum Einkaufen überlasse, dann ist es 
doch kein Nachteil daß das Auto nicht vor dem Haus steht.

: Bearbeitet durch User
von Einer K. (Gast)


Lesenswert?

Axel S. schrieb:
> Man muß einen
> Bootloader natürlich nicht zwangsweise wieder aufspielen, sondern nur
> dann, wenn man später einen braucht
Meiner bescheidenen Ansicht nach, ist es völlig OK den Bootloader zu 
entfernen. Aber dann sollte man auch konsequenter weise die betreffenden 
Fuses richtig setzen.

Vergisst man das, hat man schlampig gearbeitet.
.. und das wollen wir doch nicht ...

von Draco (Gast)


Lesenswert?

Arduino F. schrieb:
> Meiner bescheidenen Ansicht nach, ist es völlig OK den Bootloader zu
> entfernen. Aber dann sollte man auch konsequenter weise die betreffenden
> Fuses richtig setzen.

Wer sagt denn das er das nicht will?! Bzw. das er die Fuses nicht 
umstellen will?! o.O

Arduino F. schrieb:
> ...hat man schlampig gearbeitet.
> .. und das wollen wir doch nicht ...

Sagt einer, der Arduino in seinem Namen hat! :-D YMMD!

von Einer K. (Gast)


Lesenswert?

Draco schrieb:
> Wer sagt denn das er das nicht will?! Bzw. das er die Fuses nicht
> umstellen will?! o.O

Die mehrfache Empfehlung hier im Thread war:
"Bootloader kannste einfach platt machen!"
"Alles gut, passiert sonst nix."
Oder so ähnlich.
Aber das ist in letzter Konsequenz falsch, weil unzureichend.
Und sowas einem, möglicher Weise, Anfänger zu raten, naja...



Draco schrieb:
> Sagt einer, der Arduino in seinem Namen hat! :-D YMMD!
Ist doch schön, wenn ich dir eine Freude machen konnte!
Gerne geschehen.

von Chris F. (chfreund) Benutzerseite


Lesenswert?

Ich glaube der TE versteht nicht, dass es zwei paar Schuhe sind ob man 
standardisierte Binaries (Sketches) von einer Art Betriebssystem 
(Arduino) starten lässt oder ob man direkt den gesamten Code für die 
Anwendung auf den MC lädt.

Das man den ATMega mit Arduino "über usb" programmiert klappt, weil die 
USB-Unterstützung schon im Arduino-OS-Binary enthalten ist und die 
Boards dafür passend aufgebaut sind. Du kannst auch mit einem 
AVR-Programmierer irgendeinen AVR mit dem Arduino-Bootloader bespielen 
und danach die Arduino-Sketches draufladen.

von Manfred (Gast)


Lesenswert?

Cyblord -. schrieb:
> Weil das kaum ein hirntoter Arduino Nutzer auf die Kette bekommt. Und
> warum soll er auch? Das Ding per USB einstöpseln und nach kurzer Suche
> und ein paar Threads in Foren den DOWNLOAD Button finden reicht doch.
> Das geht auch noch mit dem Gehirn im Einmachglas nebendran.

Deines liegt wohl gerade im Schnapsglas, anders ist der Kommentar nicht 
erklärbar.

Chris F. schrieb:
> Ich glaube der TE versteht nicht, dass es zwei paar Schuhe sind ob man
> standardisierte Binaries (Sketches) von einer Art Betriebssystem
> (Arduino) starten lässt oder ob man direkt den gesamten Code für die
> Anwendung auf den MC lädt.
>
> Das man den ATMega mit Arduino "über usb" programmiert klappt, weil die
> USB-Unterstützung schon im Arduino-OS-Binary enthalten ist und die
> Boards dafür passend aufgebaut sind.

"Arduino-OS" - darf ich mir das wie ein embedded Linux oder einen 
Basic-Interpreter vorstellen?

von Draco (Gast)


Lesenswert?

Manfred schrieb:
> Chris F. schrieb:
>> Ich glaube der TE versteht nicht, dass es zwei paar Schuhe sind ob man
>> standardisierte Binaries (Sketches) von einer Art Betriebssystem
>> (Arduino) starten lässt oder ob man direkt den gesamten Code für die
>> Anwendung auf den MC lädt.
>>
>> Das man den ATMega mit Arduino "über usb" programmiert klappt, weil die
>> USB-Unterstützung schon im Arduino-OS-Binary enthalten ist und die
>> Boards dafür passend aufgebaut sind.
>
> "Arduino-OS" - darf ich mir das wie ein embedded Linux oder einen
> Basic-Interpreter vorstellen?

So nen Quark.

Das was Chris F. geschrieben hat ist völliger Schwachsinn.

Arduino ist weder nen OS, die "USB-Unterstützung" ist nur ein Bootloader 
und Arduino ist ausschließlich eine IDE, genauso wie AVR Studio, MicroE 
oder Keil oder whatever.

Die dazugehörige Hardware besteht aus einem normalen µC mit entweder 
nativen USB (z.b. die Mega32u4) oder aber mit einem USB-Seriell-Adapter 
(z.b. der Mega328). Man schreibt seinen Code dort in C - wobei dort die 
Projekte als "Sketches" bezeichnet werden (Warum auch immer!!!) - 
Arduino bringt eigene Bibliotheken mit, welche aber über das gesamte 
Spektrum der µCs gespannt ist, und genau hier liegt der eigentlich 
Knackpunkt - das macht den produzierten Code, langsam, aufgebläht etc... 
aber das ist ne andere Diskussionsebene.

von Manfred (Gast)


Lesenswert?

Draco schrieb:
>> "Arduino-OS" - darf ich mir das wie ein embedded Linux oder einen
>> Basic-Interpreter vorstellen?
> So nen Quark.
> Das was Chris F. geschrieben hat ist völliger Schwachsinn.

Danke für Deine Mühe, ich dachte, meine Frage wird als Ironie erkannt 
:-)

> Arduino bringt eigene Bibliotheken mit, welche aber über das gesamte
> Spektrum der µCs gespannt ist, und genau hier liegt der eigentlich
> Knackpunkt - das macht den produzierten Code, langsam, aufgebläht etc...
> aber das ist ne andere Diskussionsebene.

Richtig, ich kenne diese Kritik. Da die Cina-Nanos billig sind, meine 
Anwendungen nicht wirklich zeitkritisch und ich in der Arduino-Umgebung 
Zeiten um 1 ms ordentlich einhalten kann, werde ich diese weiterhin 
einsetzen.

Was ich noch nicht gefunden habe, weshalb die Chinesen immer "ISCP" oder 
"ICSP" neben den Programmieranschluß drucken, der doch eigentlich "ISP" 
heißen sollte. Und ja, mein ISP-China-Clone funktioniert, aber USB und 
Bootloader sind so schön bequem.

von Draco (Gast)


Lesenswert?

Manfred schrieb:
> Was ich noch nicht gefunden habe, weshalb die Chinesen immer "ISCP" oder
> "ICSP" neben den Programmieranschluß drucken, der doch eigentlich "ISP"
> heißen sollte. Und ja, mein ISP-China-Clone funktioniert, aber USB und
> Bootloader sind so schön bequem.


Keine Frage, ich nutze diese China-Clone auch, aber halt nicht in der 
Ardunio Umgebung. Ich nutze sie über AVR / Atmel Studio und programmiere 
sie über ISP.

Das USB Bootloader so schön bequem sind, ist richtig - gibts aber 
natürlich von Atmel auch: einfach mal nach DFU googlen (Haben die 
AT90USB und die Atmega16/32U schon von Haus aus drauf). Oder auch Flip, 
für die nicht USB-Devices.

@ISP vs. ICSP

Naja, ist bloß ne andere Schreibweise, bedeutet aber das gleiche.

ISP  = In-System-Programming
ICSP = In-Circuit-Serial-Programming

von Chris F. (chfreund) Benutzerseite


Lesenswert?

Manfred schrieb:
> "Arduino-OS" - darf ich mir das wie ein embedded Linux oder einen
> Basic-Interpreter vorstellen?

Nein, das ist ein Bootloader-BIOS das auch die serielle Kommunikation 
zum Aufspielen von Programmen regelt. Auf den aktuellen Boards ist ein 
usb-seriell-umsetzer.

von Chris F. (chfreund) Benutzerseite


Lesenswert?

Draco schrieb:
> So nen Quark.
>
> Das was Chris F. geschrieben hat ist völliger Schwachsinn.
>
> Arduino ist weder nen OS, die "USB-Unterstützung" ist nur ein Bootloader
> und Arduino ist ausschließlich eine IDE, genauso wie AVR Studio, MicroE
> oder Keil oder whatever.

Auch dieser "Bootloader" ist ein OS und Arduino besteht nicht 
ausschließlich aus der Entwicklungsumgebung. Bitte nicht ausfallend und 
frech werden, wenn man keine Ahnung hat.

Der Bootloader hat keine USB-Unterstützung, die wird durch externe 
usb-seriell-konverter realisiert, mittlerweile gibt es dafür auch 
selbstgestrickte Varianten die auf einem avr laufen, sonst kommt das in 
einem ch340, ft232 oder anderen Bauteilen.

von Cyblord -. (cyblord)


Lesenswert?

Chris F. schrieb:
> Draco schrieb:
>> So nen Quark.
>>
>> Das was Chris F. geschrieben hat ist völliger Schwachsinn.
>>
> Auch dieser "Bootloader" ist ein OS
Seit wann ist ein Bootloader ein OS?

> und Arduino besteht nicht
> ausschließlich aus der Entwicklungsumgebung. Bitte nicht ausfallend und
> frech werden, wenn man keine Ahnung hat.

Nein es besteht auch aus einem SW Framework mit HW Abstraktion.
Trotzdem noch kein OS.

Wikipedia sagt z.B.:

>Ein Betriebssystem ist eine Zusammenstellung von Computerprogrammen, die
> die Systemressourcen eines Computers wie Arbeitsspeicher, Festplatten,
> Ein- und Ausgabegeräte verwaltet und diese Anwendungsprogrammen zur
> Verfügung stellt.

Das Arduino Framework verteilt aber nun keine Systemressourcen und es 
gibt auch keine Anwendungen, die davon losgekoppelt laufen und solche 
Ressourcen zugeteilt bekommen würden. Weder Speicher noch Prozessorzeit 
noch sonst irgendwas.

Es gibt nur eine einzige Anwendung und die linkt statisch ein paar Libs 
dazu welche vorfegertige Funktionalitäten bereitstellen und etwas 
Abstraktion betreiben. Was libs eben so tun.

: Bearbeitet durch User
von Chris F. (chfreund) Benutzerseite


Lesenswert?

Ich habe nie geschrieben, dass das ganze Framework ein OS ist.

Cyblord -. schrieb:
> Seit wann ist ein Bootloader ein OS?

Der Arduino-Bootloader ist auch kein Bootloader, sondern ein 
Chainloader, da er bereits die Firmware für die I/O lädt um Programme in 
den Festspeicher zu laden und die Ressourcen des MC verwaltet und 
vorbereitet. Ein reiner Bootloader enthält keine Anwendungen.

von Cyblord -. (cyblord)


Lesenswert?

Chris F. schrieb:
> Ich habe nie geschrieben, dass das ganze Framework ein OS ist.
Sondern nur der Bootloader? Wird ja immer schräger.

>
> Cyblord -. schrieb:
>> Seit wann ist ein Bootloader ein OS?
>
> Der Arduino-Bootloader ist auch kein Bootloader, sondern ein
> Chainloader, da er bereits die Firmware für die I/O lädt um Programme in
> den Festspeicher zu laden und die Ressourcen des MC verwaltet und
> vorbereitet. Ein reiner Bootloader enthält keine Anwendungen.

Aber jeder Bootloader muss die IOs und andere Ressourcen aktivieren um 
zu arbeiten und ein Bootloader ist nun mal dafür da um Programme in den 
"Festspeicher" zu schreiben. Was genau ist da nun bei Arduino Bootloader 
so besonders warum sollte der nun als OS klassifiziert werden.
Entscheidend für ein OS ist nicht, ob es Ressourcen NUTZT, sondern 
anderen Anwendungen zur Verfügung stellt und einteilt.

Und selbst wenn es sich um einen Chainloader handeln würde (wie kommst 
du darauf, welche anderen Bootloader werden vorher oder nachher 
aufgerufen?) was änder sich dadurch in der Betrachtung OS oder nicht OS?

> Ein reiner Bootloader enthält keine Anwendungen.
Sondern?
Ein Bootloader ist auch nur ein Anwendungsprogramm.

: Bearbeitet durch User
von Draco (Gast)


Lesenswert?

Chris F. schrieb:
> Ich habe nie geschrieben, dass das ganze Framework ein OS ist.
>
> Cyblord -. schrieb:
>> Seit wann ist ein Bootloader ein OS?
>
> Der Arduino-Bootloader ist auch kein Bootloader, sondern ein
> Chainloader, da er bereits die Firmware für die I/O lädt um Programme in
> den Festspeicher zu laden und die Ressourcen des MC verwaltet und
> vorbereitet. Ein reiner Bootloader enthält keine Anwendungen.

Was redest du da für einen Quark?!

Das ist ein ganz normaler Bootloader. Der Vector wird ausschließlich bei 
Reset angesprungen. Ich weiß nicht wo du das her hast, aber es wird 
weder eine Resourcen verwaltet noch vorbereitet für den eigentlich 
Programmablauf, noch lädt er während der Laufzeit irgendwelche 
"Programme" in den "Festspeicher". Er arbeitet ausschließlich für sich: 
Setzt seine Variablen, leidet seine Interruptvectoren auf seinen 
Resetvector um und zurück, und das ausschließlich beim Programmieren / 
Sprung in Vector.

Der AVR (halt der Arduino) läuft in seinem Programmcode, kommt der 
Resetvector, springt er in den Bootloader, dieser lädt das kompilierte 
HEX dann in Flash des µCs. Das wars, mehr macht der nicht... und das 
auch nur beim Programmieren.

Du solltest dich ganz dringend mit dem Thema, Bootloader und die 
allgemeine Funktionsweise eines Programmablaufes innerhalb eines µCs 
auseinandersetzen! Da hilft dir vielleicht auch mal ein Blick in eine 
ASM eines einfachen LED-Blinkers, einmal über AVR-GCC und einmal in der 
Arduino-IDE kompiliert.



Chris F. schrieb:
> Der Bootloader hat keine USB-Unterstützung, die wird durch externe
> usb-seriell-konverter realisiert, mittlerweile gibt es dafür auch
> selbstgestrickte Varianten die auf einem avr laufen, sonst kommt das in
> einem ch340, ft232 oder anderen Bauteilen.

Ebenfalls falsch.

Die "Arduinos" welche einen USB AVR AT90USB oder Mega32u4 an Board 
haben, haben natürlich keinen USB-Seriellwandler. Diese nutzen die 
HW-USB der µCs aus... schau da mal nach Arduino Leonardo z.b.


Wie gesagt Chris: belese dich bitte zu dem Thema! Du hast da 
grundsätzliche Defizite, die man eigentlich wissen muss!

von BlaBla (Gast)


Lesenswert?

Ich hab' recht.... ich hab' recht.... ich hab' recht.... bla bla

von Manfred (Gast)


Lesenswert?

Chris F. schrieb:
> Der Bootloader hat keine USB-Unterstützung, die wird durch externe
> usb-seriell-konverter realisiert,

Richtig, z.B. durch ein Stück Hardware CH340 oder einen FT232. Der 
Bootloader nimmt seriell die Daten entgegen und schreibt sie in den 
Speicher, kein Stück mehr.

Beim Aurduino von einem Betriebssystem zu sprechen, ist Unfug der groben 
Art.

von Einer K. (Gast)


Lesenswert?

Manfred schrieb:
> Beim Aurduino von einem Betriebssystem zu sprechen, ist Unfug der groben
> Art.

Beim Arduino von einem Betriebssystem zu sprechen, ist Unfug der groben
Art!

von Draco (Gast)


Lesenswert?

BlaBla schrieb:
> Ich hab' recht.... ich hab' recht.... ich hab' recht.... bla bla

Darum geht es nicht, denn falsche Behauptungen braucht man halt auch 
nicht unbedingt stehen lassen - und Chris wird ja sicherlich was dabei 
gelernt haben, und wird nun demnächst wahrscheinlich die Arbeitsweise 
eines µC mit Bootloader richtig verstehen und einsetzen können. ;-)

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
Noch kein Account? Hier anmelden.