mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Programmierplanung


Autor: Denis Gérard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Jens Renner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.