verschiedene programme im avr

Gast #402387
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?
Gast
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.
Gast
Dann kannste auch gleich Unterprogramme verwenden.

Ob der Bootloader nun die verschiedenen Programme startet oder dein
Main
Unterprogramme aufruft ist doch gleich.
Gast
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.
Gast
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.