Hallo, Ich überarbeite gerade meine libs die ich geschrieben habe. Jetzt möchte ich zu den einzelnen files (z.B. MAX7219) eine Header-datei schreiben, so daß ich nicht immer den Header vom Programm ändern muss. Das dort dann die Portdefinition stehen ist klar. Aber ich würde auch gerne die Speicher definitionen reinschreiben. also ; Port_config .equ MAX_Port = PortD .equ MAX_CS = 6 ; Konfigurationswerte .equ MAX_cascade = 0x01 ;Anzahl der kascadierten ICs .equ MAX_codeB = 0x0F ;welcher DIGIT ist 7seg .equ MAX_digit = 0x03 ;(scan-limit) fängt bei 0 an .equ MAX_bright = 0x0F ;Maximal (nur für init) .equ MAX_Shutdown = 0x01 ;normal operation .equ MAX_test = 0x01 ;alle LEDs an .dseg MAX_Copy: .byte = 8 .eseg MAX_config: .db 0x09, MAX_codeB, 0x0A, MAX_bright, 0x0B, MAX_digit, 0x0C, MAX_Shutdown, 0x0F, MAX_test, 0 _ somit habe ich allerdings, wenn ich mehrere header-dateien einfüge mehrere stellen von .dseg, .eseg und natürlich die ganzen .equ.... Geht das überhaupt? Ich würde es gerne vorher wissen, bevor ich meine ganzen libs umschreibe und teste. Andre
Gast
#4632982
Hi >somit habe ich allerdings, wenn ich mehrere header-dateien einfüge >mehrere stellen von .dseg, .eseg und natürlich die ganzen .equ.... Solange nicht noch ein .cseg auftaucht, kein Problem. MfG spess
Gast
#4633091
André M. schrieb: > somit habe ich allerdings, wenn ich mehrere header-dateien einfüge > mehrere stellen von .dseg, .eseg und natürlich die ganzen .equ.... Das braucht man garnicht unbedingt, es genügt die Definitionen als global, export oder wie immer das im jeweiligen Assembler heisst zu deklarieren und in Modulen die sich drauf beziehen als External oder so. Dann löst das der Linker auf. z.B.:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
Dann setzt der Linker JMP 0 ein. Ganze Blöcke wie Port-Adressen bindet man als Header ein, aber für Labels ist das fehleranfällig: wenn du z.B. den Teil bei Start rausschmeisst, bekommst du Fehlermeldungen, wenn du aber Start in einem Header definiert hast nicht. Georg
Gast
#4633106
Hi >Das braucht man garnicht unbedingt, es genügt die Definitionen als >global, export oder wie immer das im jeweiligen Assembler heisst zu >deklarieren und in Modulen die sich drauf beziehen als External oder so. Es geht um AVR-Assembler. Der kennt so etwas wie 'global',' export' nicht. MfG spess
André M. schrieb: > somit habe ich allerdings, wenn ich mehrere header-dateien einfüge > mehrere stellen von .dseg, .eseg und natürlich die ganzen .equ.... > > Geht das überhaupt? Selbstverstandlich.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
Die Startadresse fur CSEG natürlich nur einmal. Alles andere packt der Compiler schön hintereinander.
Ich danke euch allen für die Hilfe und Erklärungen. .... Andre
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.