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?
Wozu soll diese Art der Programmierung denn gut sein, oder anders gefragt - was genau willst Du machen damit?!
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.
Dann kannste auch gleich Unterprogramme verwenden. Ob der Bootloader nun die verschiedenen Programme startet oder dein Main Unterprogramme aufruft ist doch gleich.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.