Neue Punkte-Regelung: Aufgabe 1+2 normale Punkte Aufgabe 3+4 doppelte Punkte Aufgabe 4-8 dreifache Punkte Aufgabe 1+2: Multiple Choice -Fault-Eintrag im TLB: -sollte Fault bei unbenutzen Addressen stehen? -Führt zu Data-Abort -L1-tabellen im TLB: -Größe: 4000/4096? -aligned? -Inhalt? -CPU inititialisiert mit Fault? -Arm Calling Conv.: -Übergabe-Regs R0-R5? -Restliche Regs aufm Stack? -Return R0? -LR aufn Stack? -Timer Interrupt: -wird mit "SWP IRQ, &irq-handler;" -S-Bit: -aktiviert CPU? -Moduswechsel? -Zugriff auf User-Register? - Aufgabe 3: TLB-Schreibzugriff TLB gegeben (A000 - 0C12), (B000 - 0B12), (C000 - 0012), (D000 - 0000) -Zugriff auf 0xn000 -nichts geht? -User kann schreiben -System kann schreiben -nur System kann schreiben Aufgabe 4: a) *(volatile unsigned int*) 0xFFFFFF00 = 1; Was tut das? (Addresse steht hinten im register drin, dass es der Remap ist) -Remap (kurz beschreiben) b) Bestimme das Statusregister der DBG-Unit. (DBGU ist komplett hinten abgebildet, Base und DBGU_SR register) c) Assembler Code: Ist das eine Exception-Routine oder nicht? STMFD SP!, {R0-R3, R12, LR} BL doSomeThing LDMFD SP!, {R0-R3, R12, LR} MOVS PC, LR <-- MOVS=Moduswechsel=Exception Aufgabe 5: a) Wie werden SWI, UNDEF und ABT ausgelöst? -swi mit SWI #foo befehl -undef mit unbekanntem ASM-Befehl? -abt mit Zugriff an verbotene Addresse b) Was muss gemacht werden, damit der Handler erreicht werden kann? -IVT setzen (wie?) Aufgabe 6: a) Welche Hardware braucht man für Timerirq und was muss man initialisieren? -timer an, irqs an und zeit setzen -AIC an (SMR), Handler setzen (SVR) und Irqs an b) Welche Schritte muss der Handler können? -STMFD, BL foo, EOICR, LDMFD, MOVS Aufgabe 7: a) Welche Schritte sind nötig, um virtuelle Addresse #foo nach physikalische Addresse #bar umgelenkt wird? -TLB füllen, mit addr, AP, Domain und Table-art. -Domains setzen -&TLB in MMU -MMU enable b) Wann macht der TLB, wann muss er geflushed werden? -der TLB wird angeguckt von der MMU, um eine virt. in eine phys. Addr umzusetzen. -wenn er sich ändert, bsw. bei Kontextwechsel Aufgabe 8: a) Kontextwechsel, welche Schritte muss der Handler machen? -Save alle Register, SP-usr und LR-usr und SPSR -Speicher Regs im PCB -Lade neue regs aus PCB -Lade alle Register, SP-usr und LR-usr und SPSR b) Welche Infos müssen im PCB stehen? -R0-R12, SP-usr, LR-usr, LR, SPSR (+next_process)