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.
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.
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.