Nur 'ne kurze Verständnisfrage... Was bewirken bei der Mikrocontrollerprogrammierung in Assembler die Include-Dateien? Sind die wichtig für den Programmer, damit der weiß, wie er den Controller programmieren muss oder wird da noch was definiert, wie in höheren Sprachen? Kann mir eigentlich nicht vorstellen, was da noch definiert sein soll, Assembler ist doch schon fast niedrigste Stufe.
Warum machst du nicht einfach mal mit deinem Texteditor so eine Datei auf und schaust hinein? Dann weist du was da drinnen ist und was da drinnen definiert wird. Nur als kleiner Hinweis: Es gibt viele verschiedene AVR-Controller deren Hardware sich von anderen AVR Controllern unterschiedet. Wie denkst du, berücksichtigt das der Assembler?
Das war mal 'ne schnelle Antwort... Hätte ich ja auch mal selbst drauf kommen können. Dachte aber das wären Binärdateien, da hätte es halt wenig Sinn die mim Editor zu öffnen. Dass der Assembler Informationen über den Controller braucht ist klar, wusste aber nicht, ob der die aus den Include-Dateien erhält.
Man kann auch Funktionalitaet auslagern, sodass die Hauptdatei nicht zu gross wird. Am Besten Dinge, die unabhaengig von einem Projekt sind. zB mathe, makros, ADC, UART, usw.
Es gibt in ASM aber auch Include-Dateien, die Programmcode enthalten. Z.B. wird man den Code für die Ansteuerung eines LCDs nicht in jedes Programm einkopieren sondern als separate Datei einbinden. So verfährt man auch mit anderen Routinensammlungen für spezielle Hardware (bei Hochsprachen Bibliotheken bzw. Libraries genannt). ...
@hannes Find ich gut, das du das hier mal so erwähnt hast. Ich versuche meine ASM-Routinen auch so zu programmieren (und dokumentieren), das ich sie immer wieder einsetzen kann. Vor ein paar Tagen hat mich gerade jemand gefragt: "Gibt es in Assembler eigentlich auch Libraries??" ;-)
Jörn Paschedag wrote: > @hannes > Find ich gut, das du das hier mal so erwähnt hast. Ich versuche meine > ASM-Routinen auch so zu programmieren (und dokumentieren), das ich sie > immer wieder einsetzen kann. Vor ein paar Tagen hat mich gerade jemand > gefragt: > "Gibt es in Assembler eigentlich auch Libraries??" ;-) Include bedeutet ja nicht mehr als einbinden. Hat also nicht speziell mit der Registerdefinition zu tun. Stell Dir vor, Du schreibst ein Programm. Um es übersichtlich zu halten oder z.B. je nach Anwendung versch. Programmteile mit einzubinden. Man hat dann meistens eine Haupt-ASM Datei, von der aus alle anderen Programmteile, Definitionen, Datensegmente mit einbezogen werden.
Wobei es einen erheblichen Unterschied macht, ob man lediglich Code in Include-Dateien auslagert oder tatsächlich Libraries verwendet. Eine Library ist auch bei Assemblerprogrammierung keine Include-Datei, sondern eine Sammlung mehrerer bereits vom Assembler in Objectcode übersetzter Programmteile, die je nach Bedarf vom Linker zum Programm dazugelinkt werden. Das erfordert natürlich einen Assembler, der linkbare Objektdateien erzeugt und einen Linker, aber hier lassen sich die in gcc enthaltenen Werkzeuge nutzen.
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.