Moin,
ich hab ein kleines problem, dass mein OS sehr schnell abstürtzt, weil es auf physiche adressen schreibt, die wahrscheinlich garnicht beschreibbar sind. Egal, was ich in solche pages schreibe, es steht immer 0xfffff… drin.
ich hab dazu mal einen test gemacht.
nach der initalisierung des kernels wird dieser code ausgeführt:
Das ergebnis:
Er bleibt beim 254 mal pmm_alloc() hängen. Die erste adresse, bei der -1 statt 10 (die ich dort hingeschrieben habe) steht ist 0xA0000.
Ich bin mir eigentlich ziemlich sicher, dass ich den pmm richtig initalisiere. (aber wahrscheinlich doch nicht
)
Hier der code: https://github.com/michamimosa/FruityOrange/blob/master/kernel/mm/pmm.c
ich hoffe jemand kann mir helfen!
LG, micha
ich hab ein kleines problem, dass mein OS sehr schnell abstürtzt, weil es auf physiche adressen schreibt, die wahrscheinlich garnicht beschreibbar sind. Egal, was ich in solche pages schreibe, es steht immer 0xfffff… drin.
ich hab dazu mal einen test gemacht.
nach der initalisierung des kernels wird dieser code ausgeführt:
Code: [Auswählen]
while(1) {
int *a = vmm_find(current_context, 1, VADDR_KERNEL_HEAP_START, VADDR_KERNEL_HEAP_END);
vmm_map_page(current_context, a, pmm_alloc(), VMM_KERNEL_FLAGS);
*a = 10;
printf("a = 0x%x, %d\n", a, *a);
}Das ergebnis:
Er bleibt beim 254 mal pmm_alloc() hängen. Die erste adresse, bei der -1 statt 10 (die ich dort hingeschrieben habe) steht ist 0xA0000.
Ich bin mir eigentlich ziemlich sicher, dass ich den pmm richtig initalisiere. (aber wahrscheinlich doch nicht
)Hier der code: https://github.com/michamimosa/FruityOrange/blob/master/kernel/mm/pmm.c
ich hoffe jemand kann mir helfen!
LG, micha

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken

Gespeichert