Programmierplanung

Gast #45983
moin,
mich würde mal interssieren wir Ihr eure zu programmierenden Programme
plant, ich habe es ohne plan versucht aber nach 21 Seiten komentierten
assemblercode, stehe ich kurz davor die übersicht zu verlieren.
Gibt es irgendwie ein praxisnahes System nach dem man vorgehen kann?
ich habe es schon mit schaltbidern (ja/nein/verzweigungen) versucht,
aber das wird totales chaos. Würde mich über anregungen Tips etc. sehr
freuen.
Gast
Ich habe für meinen MP3-Player den Code auch komplett in Assembler
geschrieben (umfangreich kommentiert natürlich), das sind bis jetzt
etwa 130kB in .asm-Files bzw. 7000 Byte Maschinencode.

Ich würde behaupten, noch einen sehr guten Überblick zu haben (auch
über länger nicht benutzte Code-Teile), da ich für jede Aufgabe eine
eigene inlude-Datei verwende (z.B. lcd.asm, ide.asm, sram.asm...), und
die dort enthalten Routinen entsprechend benenne (lcd_init, fat32_init,
ide_readsector, sram_write etc.).
Ich weiß also, in welcher Datei ich was finde.

Und natürlich ist jede Routine "gekapselt", d.h. die verwendeten
Register werden gesichert, und mögliche Eingabe-/Rückgabewerte sind im
Header dokumentiert. Somit hat man dann eine Art Funktion, die man
separat betrachten kann.

Außerdem verwende ich sinnvolle Variablennamen und Sprungmarken, und
auch achte ich darauf, dass bei Hardwarezugriffen nur die Pins und
Ports geändert werden, die dieser Aufgabe zustehen.
Um weitere Seiteneffekte zu verhindern, kann man auch festlegen, dass
jede Routine am Anfang einen definierten Zustand herstellt, falls das
nicht immer gewährleitstet ist. Bei einem Bus mit Latches hat sich das
als sinnvoll erwiesen.

Meine main.asm fällt dann immer entsprechend kurz aus. Dort stehen nur
ein Header mit Projektstatus, ein paar Konstanten, Interruptverktoren,
Includes und die Initialisierung aller Programmteile.
Man muss halt ein kleines Maß an Disziplin mitbringen, um diesen Stil
beizubehalten. Ich plane für weitere Projekte, den einzelnen Routinen
Versionsnummern zu geben, um Kompatibilitätsprobleme zu vermeiden.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 23 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.