Per Infrarot kannst du ihn nur flashen wenn er den/seinen Bootloader drauf hat.
Hallo,
Ich baue für die Schule einen Asuro.
Da ich schon Erfahrung (Eieruhr,Binäruhr,unvollständiger Linienfolger) mit Atmegas habe werde ich ihn nicht mit Hilfe der Asuro Bibliotheken Programmieren.
Aber wie stelle ich es an, dass ich ihn nach dem ersten flashen noch flashen kann?
Der Infrarot Reciver ist ja an dem Rxd Pin des Atmegas angeschlossen.
Darübe rkann man ja soweit ich weiß keinen Atmega flashen.
Zugegeben, ich eknne auch nur ISP und JTAG (oder wie es geschrieben wird)
Also entweder ist es so, dass der Atmega tatsächlich einfach so über Rxd geflasht werden kann.
Oder im Programm des Asuros ist etwas enthalten, was dafür sorgt, dass der Asuro nur mit Rxd geflasht werden kann.
Nun, würde ich dieses etwas damit überschrieben wenn ich den Asuro flashe oder ist es z.b. im EEPROM enthalten?
Ich hoffe ihr versteht mein Problem und könnt mir weiterhelfen.
Per Infrarot kannst du ihn nur flashen wenn er den/seinen Bootloader drauf hat.
Hallo,
ich ahbe jetzt ein wenig über den Asuro bootloader gelesen.
Er befindet sich also am ende des Programms und ist 1kb groß.
Wenn ich nun ein 6 kb großes programm auf den Asuro flashe, dann bleibt der bootloader doch erhalten oder?
Wenn ich versuche ein 8kb großes Programm zu flashen, geht dann der bootloader verloren oder gibt es dann fehler beim flashen und ich kann anschließend wieder ein 6kb großes Programm über infrarot übertragen?
Muss mein Programm etws bestimmtes enthalten, damit der bootloader erhalten bleibt oder geht auch einfach:
#include <avr/io.h>
int main (void) {
DDRB = 0xFF;
PORTB = 0x03;
DDRB = (1 << DDB1)
}
Wenn du den Bootloader überschrieben hast, kannst du ihn über IR nciht wieder drauf flashen!
Und er sitzt am Ende deines Programms?! Nee er sitzt im Controller, oder wie hast du das gemeint?
Nein, ich meine, dass er die letzten 1kb des speichers im Controller belegt.
Also wenn ich 6kb drauf flashe müsste er erhalten bleiben.
Hallo
Nicht das Programm sondern die Flashmethode entscheidet, ob der Bootloader gelöscht wird oder erhalten bleibt. Beim Flashen per Bootloader über TX/RX bleibt der Bootlader immer erhalten, weil er sich selbst vor dem Überschreiben schützt. Beim Flashen per ISP wird er gnadenlos überschrieben.
Das Flashen per IR beim asuro ist zwar zäh, dafür aber völlig risikolos. Ich würde es beibehalten solange die Programme die Speichergrenze nicht überschreiten. Dann würde ich einen nackten Mega8 einsetzen und auf ISP umsteigen.
Der Mega8 mit orginalem Bootloader kostet inzwischen fast 10€. Alternativ kann man auch einen Freeware-Bootloader bei arexx runterladen (Das Orginal ist nicht erhältlich!) und in einen jungfräulichen Mega8 brennen.
Gruß
mic
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Vielen Dank.
Hat einen guten Selbsterhaltungsinstinkt der bootloader.
Dann kann ich hin ja mal dazu bringen einer Linie zu folgen.
Gruß
Olaf
Per ISP kann man ihn nicht flashen, da bei dem Prozessor die Lockbits gesetzt sind. Der Prozessor ist praktisch kopier- und überschreibgeschützt. Dies lässt sich zwar mit einem 12V-HighVoltage-Programmer aushebeln, aber den hat nicht jeder zuhause.
Also nur zu, flash was immer du magst - per Infrarot. Dann brauchst du dir nichtmal einen ISP-Adapter da dranfrickeln, es ist ohnehin sehr wenig Platz.
Ich dachte, mit einem "erase" per ISP kann man den Bootloader entfernen und die Lockbits zurücksetzen. Aber wirklich genaues weiß ich nicht, da sollte man besser das Datenblatt zu Rate ziehen.Der Prozessor ist praktisch kopier- und überschreibgeschützt.
Bild hier
Atmel’s products are not intended, authorized, or warranted for use
as components in applications intended to support or sustain life!
Oha, und ich war mir recht sicher. Aber jetzt wo du das so sagst... Ja, da sollte man nochmal naschlagen. Ich weiss aber auch nicht, ob beim Asuro-Atmega nicht sogar ISPDSBL gesetzt ist, dann hätte man mit ISP gar keine Chance mehr. Ich muss den mal rauskramen und in den HV-Programmer stecken...
Lesezeichen