Re: freier RAM bei CC2 Kategorie: Progr. Assembler, TaskingTools, OS (von Cris, http://www.crisullmann.de - 8.03.2004 7:10) | ||
Als Antwort auf freier RAM bei CC2 von Stephan - 7.03.2004 16:01 | ||
| ||
Hallo Stephan, Hallo Dominik, warum wollt Ihr unbedingt die Variablen im Assembler bzw. C vereinbaren? Wenn nichts dagegen spricht, dann könnt Ihr doch Eure Variablen im CC2-Programm vereinbaren und nur die Adresse an das Assembler-Programm übergeben. Diese eine Adresse müsst Ihr natürlich im Segment 0 an einem sicheren Platz abspeichern. Hier hilft das dissassemblierte OS von E.Hospel. Am Ende des Listings ist die Belegung des internen RAM's so weit wie bekannt beschrieben. Eure Variablen solltet Ihr in Form einer Datenstruktur (type, array oder string) vereinbaren. Dies hat den Vorteil, da� das CC2 Programm an Funktionen die Speicheradresse übergibt. Auf diese könnt Ihr im Assemblerprogramm zugreifen. 1. �bergabe an Assembler: schaut Euch die Module zur Steuerung der PS2-Tastatur an. Dort habe ich das so gemacht. 2. Lesen vom Assembler aus: hier ein Auszug aus meinem Asm-Listing ; Definition OS-Routinen OS_PUSH_R12 EQU 075D6H ;speichert R12 auf dem Thread-Stack OS_POP_R4 EQU 0765AH ;liest Thread-Stack in R4 Data_init Proc far CALLS OS_POP_R4 MOV R2,#Speicherplatz EXTS #0,#1 MOV [R2],R4 POP R1 POP R1 RETS Beachtet bitte auch die Speicherstruktur der CC2. Alle Varaiblen werden immer im Segment 8 abgelegt. Das solltet Ihr auch bei den Speicherzugriffen aus Assembler heraus beachten. Im Segment 3 könnt habt Ihr nur einen Konstantenspeicher - da FLASH-Speicher. Ich hoffe ein wenig geholfen zu haben. Cris Meine Seite: http://www.crisullmann.de | ||
Antwort schreiben Antworten: |