Forum: Mikrocontroller und Digitale Elektronik verschiedene programme im avr


von peter bb (Gast)


Lesenswert?

hallo, ich möchte ein grundprogramm in den avr laden und von da aus
verschiedenene andere routinen ausführen lassen. die routinen sollen
alles einzelprogramme sein, die nacheinander geladen werden sollen in
den avr.

das grundprogramm soll dann zb zur flashadresse 6500 springen und nach
ausführung wieder zurueck. ist so etwas durchführbar? und wo legt man
die ladeadressen fest.

wenn ich jetzt oben ein programm reinlade, wird das unterer immer
gelöscht, auch wenn es adressmäßig nicht in konflikt kommt?

von TravelRec. (Gast)


Lesenswert?

Wozu soll diese Art der Programmierung denn gut sein, oder anders
gefragt - was genau willst Du machen damit?!

von SuperUser (Gast)


Lesenswert?

Das gleiche habe ich mir auch schon einmal überlegt, aber nicht
durchgeführt.

Anwendung bei mir: Ich habe ein Gerät (eine Hardware) die ich mit
verschiedenen Softwaren für verschiedene Zwecke gebrauchen kann. Jede
Software ist dabei völlig eigenständig entwickelt, d.h. jede hat ein
main().

Praktisch ist das eigentlich recht einfach zu lösen. Man muss die
jeweiligen Programme in verschiedene nichtüberlappende Speicherbereiche
compilieren. Dann eine Art Bootloader Program schreiben, dass das
jeweilige Hauptprogramm startet.

Nachteil ist, dass man bei jedem Flashen alle Programme neu schreiben
muss. Sinnnvollerweise baut man sich also aus den einzelnen hex-files
ein grosses hex-file zusammen.

von Wankman (Gast)


Lesenswert?

Dann kannste auch gleich Unterprogramme verwenden.

Ob der Bootloader nun die verschiedenen Programme startet oder dein
Main
Unterprogramme aufruft ist doch gleich.

von TravelRec. (Gast)


Lesenswert?

Ich halte das aber für nicht so praktikabel, weil bei jedem
"Ladevorgang" das Flash beansprucht wird und somit bald verbraucht
ist. Was ist denn gegen einen Controller mit viel Flash (Mega 128 oder
größer) einzuwenden, der alle benötigten Programmteile beherbergt, die
dann von einer Art Menü aus gestartet werden. Da muß dann nichts
umgeladen werden und alle "Programme" sind sofort verfügbar. Ich
denke, daß 1 Hauptprogramm mit entprechend vielen Unterprogrammen den
Zweck besser erfüllt - aber muß jeder selber wissen.

von TravelRec. (Gast)


Lesenswert?

Ich bezog mich auf Beitrag 2 ;-) Wankman war schneller...

von peter bb (Gast)


Lesenswert?

ich habe einen roboter mit einem avr32 mmc-karte 128mb und einer
gameboycam dran. die routine für die mmc-karte(schreiben /lesen) kriege
ich nur mit winavr-c zum laufen (klappt wunderbar).

den anderen rest progge ich mit fasvar-basic.

oder!!!! gibt es irgendwo eine mmc-routine für einen avr in asm, das
würde mir auch helfen, weil ich den originalen asm-code dann mit
fastavr-basic einlesen kann.

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.