Bootloader für AT90S2313

M

Michael

Guest
Hi NG,

ich suche seit einer Weile nach eienr Antwort auf die Frage, ob es möglich
ist, einen AT90S 2313 mit einem Bootloader zu versehen. Ich finde
Quelltexte dafür immer nur für die Megas, so dass ich zu der Befürchtung
komme, dass der 2313 das gar nicht kann...
Ebenso ist es doch so, dass ein Mega mit einem Bootloader das Programm in
seinen Flash schreibt, oder?

Daher meine Frage: Ist es möglich, mit einem AT90S2313 Programmcode im RAM
auszuführen?

Viele Grüße,
Michael
 
Michael wrote:

Hi NG,

ich suche seit einer Weile nach eienr Antwort auf die Frage, ob
es mĂśglich ist, einen AT90S 2313 mit einem Bootloader zu
Was verstehst Du unter einem Bootloader?

versehen. Ich finde Quelltexte dafĂźr immer nur fĂźr die Megas,
Ebenso ist es doch so, dass ein Mega mit einem
Bootloader das Programm in seinen Flash schreibt, oder?
Nicht dass ich wĂźsste, die Megas die ich hier liegen habe
programmiere ich entweder per PPI oder ISPSPI und da muss ich
keinen Bootloader vorneanstellen. Was die AVRs haben ist ein
kleines ROM Programm, das fĂźr die Kommunikation per ISPSPI
zuständig ist, aber als Bootloader wßrde ich das das wirklich
nicht bezeichnen.

KĂśnnte es sein, dass Du die AVRs mit den Infinion C16x
verwechselst? Die haben brauchen einen Bootloader mit dem man
das Zeug in's Flash schreibt.

Wolfgang
 
Wolfgang Draxinger schrieb:

Was verstehst Du unter einem Bootloader?
Die AVR-Megas haben eine "Self-Programming"-MĂśglichkeit, das heisst das
FLASH kann zum Beispiel mittels eines geeigneten Bootloaders via
Serielle Schnittstelle, CF-Karte, USB etc. geupdatet werden. Ziemlich
praktisch. Leider nur fĂźr die MEGA's verfĂźgbar...

AusfĂźhren von Programmcode aus dem RAM: NIET!

Gruss, Edi
 
Eduard Iten wrote:

Wolfgang Draxinger schrieb:

Was verstehst Du unter einem Bootloader?
Die AVR-Megas haben eine "Self-Programming"-Möglichkeit, das heisst das
FLASH kann zum Beispiel mittels eines geeigneten Bootloaders via
Serielle Schnittstelle, CF-Karte, USB etc. geupdatet werden.
Genau das habe ich gemeint!

Ziemlich
praktisch.
Jawohl!

Leider nur für die MEGA's verfügbar...
Nicht wirklich, oder?

Ausführen von Programmcode aus dem RAM: NIET!
Ach Mist.

Gruss, Edi
Danke für die traurige Antwort,
Michael
 
Eduard Iten wrote:

Wolfgang Draxinger schrieb:

Was verstehst Du unter einem Bootloader?
Die AVR-Megas haben eine "Self-Programming"-MĂśglichkeit, das
heisst das FLASH kann zum Beispiel mittels eines geeigneten
Bootloaders.
Ah ja, habe grad noch mal die Doku gewälzt, da steht tatsächlich
boot loader. Der Begriff ist IMHO etwas ungßnstig gewählt, da
ein boot loader eigentlich ein Programm ist, dass den
Programmcode der zum Start des Systems notwendig ist erst in den
Speicher lädt. Das was die AVRs dagegen haben ist darauf
angewiesen dass ein schon im Flash vorhandenes Programm während
seiner AusfĂźhrung in diesen speziellen Speicherbereich springt,
in dem dann wieder ein Programm residiert, dass den vorherigen
Inhalt des Flash aktualisieren kann, also soz. ein "Update
Loader".

AusfĂźhren von Programmcode aus dem RAM: NIET!
Das hätte ich unter einem Bootloader verstanden...

Wolfgang
 
Wolfgang Draxinger wrote:

Der Begriff ist IMHO etwas ungünstig gewählt, da
ein boot loader eigentlich ein Programm ist, dass den
Programmcode der zum Start des Systems notwendig ist erst in den
Speicher lädt.
Davon bin ich ja leider auch ausgegangen, also hast Du vollkommen recht!

Das was die AVRs dagegen haben ist darauf
angewiesen dass ein schon im Flash vorhandenes Programm während
seiner Ausführung in diesen speziellen Speicherbereich springt,
in dem dann wieder ein Programm residiert, dass den vorherigen
Inhalt des Flash aktualisieren kann, also soz. ein "Update
Loader".
Stimmt leider.

Ausführen von Programmcode aus dem RAM: NIET!

Das hätte ich unter einem Bootloader verstanden...
s.o.

Wolfgang
Michael
 
Michael wrote:

AusfĂźhren von Programmcode aus dem RAM: NIET!

Ach Mist.

Gruss, Edi

Danke fĂźr die traurige Antwort,
Michael
So traurig wäre ich da an deiner Stelle nicht: Einen uC setzt man
ßblicherweise fßr Dinge ein, die Laufzeitkritisch o.ä. sind. Da
man zudem mit wenig Speicher auskommen muss und Speicher fast
nur auf dem Stack alloziiert, handelt man sich leicht buffer
overflows ein. Die die sind aber zum GlĂźck bei einem AVR eher
unkritisch, da Code und Daten in getrennten Speichern liegen,
also kann ein fehlerhafter Dateninput (oder ein gewiefter Hacker
mit einem AVR-Exploit) keine Code-Payload hinzufĂźgen. Er bringt
hĂśchstens den AVR zu stehen und da steht schon der Watchdog
bereit. Bei anderen Architekturen soll es schon vorgekommen
sein, dass Leute von ihren Freunden erfahren haben sollen, dass
Bekannte jemanden gekannt haben, dem es passiert ist, dass ein
unvorhergesehener Dateninput Programmcode im RAM abgelegt hat
und dieser dann abgelaufen ist ;-)

Und wenn Du wirklich selbstmodifizierenden Code in einem uC haben
willst, empfehle ich dringenst, einen kleinen Interpreter zu
basteln, der dann die Code-Tokens im RAM ausfĂźhrt.

Wolfgang
 
Am Mon, 26 Jul 2004 12:29:33 +0200 schrieb Michael:

ich suche seit einer Weile nach eienr Antwort auf die Frage, ob es möglich
ist, einen AT90S 2313 mit einem Bootloader zu versehen.
Klar kannst du einen Bootloader reinschreiben. Er wird aber nicht
funktionieren, weil diesem Chip die Moeglichkeit fehlt, sein eigenes
Flash-ROM zu beschreiben.

Ich finde
Quelltexte dafür immer nur für die Megas, so dass ich zu der Befürchtung
komme, dass der 2313 das gar nicht kann...
Richtig. Die Megas kennen die entsprechenden Kommandos.

Ebenso ist es doch so, dass ein Mega mit einem Bootloader das Programm in
seinen Flash schreibt, oder?
Das ist das Prinzip eines Bootloaders (in diesem Zusammenhang).

Daher meine Frage: Ist es möglich, mit einem AT90S2313 Programmcode im RAM
auszuführen?
Nein. Weder kann er Kommandos aus den paar Byte internen RAMs
ausfuehren, noch kann man externen Programmspeicher anschliessen.

Gruss
Michael
 
empfehle ich dringenst, einen kleinen Interpreter zu
basteln, der dann die Code-Tokens im RAM ausführt.
Daran habe ich auch schon gedacht, nur widerspricht das dem Prinzip der AVRs
in 1 MHz Taktfrequenz auch 1 MIPS durchzuführen...

Danke nochmal,
Michael
 
Michael wrote:

Daran habe ich auch schon gedacht, nur widerspricht das dem
Prinzip der AVRs in 1 MHz Taktfrequenz auch 1 MIPS
durchzufĂźhren...
Na' dann mach doch einen 10:1 Interpreter, das kann man schaffen.

Wolfgang
 
Na' dann mach doch einen 10:1 Interpreter, das kann man schaffen.
Na gut, ich versuchs mal.
Danke für den Tipp.

Bye und viele Grüße,
Michael
 

Welcome to EDABoard.com

Sponsor

Back
Top