Menübibliothek in ASM

Gast #1474719
Lesenswert?

Hallo zusammen,
ich muss eine größere Menüstruktur auf einen Atmega in
Assembler abbilden.
Habe dabei statische Menüeinträge, teilweise aber auch
dynamische Einträge ( weitere Punkte können angefügt oder
gelöscht werden ). Dummerweise haben genau diese dynamischen
Einträge auch nochmal 2 Ebenen Untermenüs...

Mein erster Gedanke war eine "Case"-Lösung. Da tippe ich mir
aber die Finger wund bei der vorgegebenen Struktur.

Habe schon einiges durchsucht. Bin aber bisher noch nicht
auf eine "universelle Bibliothek" gestossen.

Kann mir hier vielleicht jemand helfen ?

Danke,
Pepe.
Gast #1474808
Lesenswert?

mein Problem ist, dass wir mittlerweile
ca. 30 verschiedene Schaltungen mit den unterschiedlichsten
Anwendung auf Atmega's haben.
Wir haben mittlerweile richtig viele einzelne "Teillösungen"
für unsere täglichen Programmieraufgaben, aber alles in Assembler.

Somit kann ich aus der Ecke nicht wirklich raus...
#1474833
Lesenswert?

Pepe schrieb:
> Wir haben mittlerweile richtig viele einzelne "Teillösungen"
> für unsere täglichen Programmieraufgaben, aber alles in Assembler.

Es ist gar nicht sooo unüblich, Teile des Codes in Assembler zu haben 
und andere Teile in C. Gerade wenn C für den entsprechenden Zweck besser 
geeignet ist, sehe ich eher wenig Sinn darin, hart auf Assembler zu 
bestehen?

Siehe auch: Tinykon
Gast #1474891
Lesenswert?

Geb ich Dir vollkommen recht. Da wäre C sicherlich der bessere
Ansatz.
Nur haben wir in dem aktuellen Projekt knappe
17000 Zeilen in Assembler.

Wie kann ich eigentlich außer als inline ASM Assembler in ein
C Projekt einbinden ?
#1474910
Lesenswert?

In C ganz einfach. Du lässt die Assembler-Dateien ganz normal in 
Objektcode übersetzen, erzeugst eine Headerdatei mit den 
Funktionsdeklarationen und gibst die Objektdatei als Quelle beim Linken 
mit an.

Bei C++ packst du den Header in ein 'extern "C" {}' ein.
(Damit der Linker die Funktionen findet und nicht nach den verkleideten 
C++ Namen sucht)


So kannst du aber auch andersherum C Code in ein Object-File compilieren 
und anschliessend in ein Assemblerprojekt beim Linken als weiteres 
Objekt angeben um die darin enthaltenen Funktionen aus dem Assemblercode 
nutzen zu können.
Gast #1475245
Lesenswert?

Hi!
>Habe dabei statische Menüeinträge, teilweise aber auch
>dynamische Einträge ( weitere Punkte können angefügt oder
>gelöscht werden ). Dummerweise haben genau diese dynamischen
>Einträge auch nochmal 2 Ebenen Untermenüs...
Ich denke das ist kein Problem der Prog.sprache sondern ein 
Konzeptproblem.
Statische Menüs sind ja kein Probl., dynamische schon. Wenn die max. 
Anzahl
dyn. feststeht geht das Ganze auch noch über einfache Statusbits und 
Adresszeiger(Menueintrag) die zum jeweiligen Menue gehören.
Wenn aber absolut dynamisch, dann ist richtig Hirnschmalz gefragt, weil 
du
ja alle möglichen Grenzen austesten musst. Ich will jetzt nicht 
ketzerisch
sein, aber es könnte durchaus sein das das in C sogar sehr
speicherfressend wird. Du kommst aber aus der ASM-Ecke und kannst
vermutlich gut beurteilen wie das von dir gewollte umgesetzt wird.

Viel Erfolg, Uwe

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren