Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Nachrichten - Martin Erhardt

Seiten: 1 ... 4 5 [6] 7 8 9
101
Offtopic / Re: Logisim CPU
« am: 05. January 2013, 18:43 »
Ich weiß aber garnicht ob RISC CPUs überhaupt explizite Stackpointerregister haben. Bei 28 Registern ist das im Normalfall wohl gar nicht notwendig. Und wenn doch kann man dafür wohl einfach ein Allzweckregister benutzen.
Instruktionen wie push und pop,welche explizite Stackpointerregister vorraussetzen, sind ja Memory/register mixed Instruktionen,die komplex sind und in einem RISC garnicht vorkommen dürfen. <- keine Garantie,dass meine These stimmt.
102
Offtopic / Re: Logisim CPU
« am: 05. January 2013, 18:21 »
Endlich mal'n klar struktierirtes Schaubild das ich verstehe :-D
Also die Allzweckregister liegen in nem Datenbuffer.
Stackpointer entspricht esp.
framepointer -> ebp
Addresspointer -> ?
P.counter -> eip zeigt aber nicht auf eine SpeicherAdresse in der RAM sondern in der ROM, weil die Firmware dort fest eingedrahtet ist.
Der Instruction Decoder sucht sich jetzt den Befehl auf der addresse vom P.Counter decoded et und leitet den Strom weiter zu den ALU die Instruktion ausführen.

103
OS-Design / Parameter pushen im Longmode
« am: 04. January 2013, 23:24 »
Guten Abend,
In den Tuts wird gerne mal ein Paramater auf den gepusht wenn eine Funktion von Assembler ausgerufen wird.
Geht das im Long Mode auch? Ich habe gehört da übergibt man Parameter gerne über Register.
104
Du musst nicht die ganze Zeile neuschreiben:
SRCS = $(shell find -name '*.[cS]')
OBJS = $(addsuffix .o,$(basename $(SRCS)))

CC = gcc
LD = ld

ASFLAGS = -m32
CFLAGS = -m32 -Wall -Werror -g -fno-stack-protector -nostdinc -I Ordnername -I Ordnername2
LDFLAGS = -melf_i386 -Tkernel.ld

kernel: $(OBJS)
$(LD) $(LDFLAGS) -o $@ $^

%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $^

%.o: %.S
$(CC) $(ASFLAGS) -c -o $@ $^

clean:
rm $(OBJS)

.PHONY: clean
105
HIER:
SRCS = $(shell find -name '*.[cS]')
OBJS = $(addsuffix .o,$(basename $(SRCS)))

CC = gcc
LD = ld

ASFLAGS = -m32
CFLAGS = -m32 -Wall -Werror -g -fno-stack-protector -nostdinc -I Ordnername
LDFLAGS = -melf_i386 -Tkernel.ld

kernel: $(OBJS)
$(LD) $(LDFLAGS) -o $@ $^

%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $^

%.o: %.S
$(CC) $(ASFLAGS) -c -o $@ $^

clean:
rm $(OBJS)

.PHONY: clean
Tipp: Lese mal ein C Buch oder längeres Tutorial.
106
Lowlevel-Coding / Re: Probleme mit der IDT
« am: 04. January 2013, 20:53 »
Hä, hast du das Makro IDT_ENTRIES eig definiert mit #define IDT_ENTRIES irgndeinint?
Was habe ich falsch gemacht?
Du hast Code kopiert ohne ihn zu verstehen.
Das wohl auch
107
In der Makefile kannst du CFLAGS = ... - I deinOrdnermitdenHeaderDateien eingeben.

Du kannst aber in #include auch einen Pfad angeben (zb.#include "../inc")
108
Softwareentwicklung / Re: Batch - Dateiverwaltung
« am: 03. January 2013, 22:27 »
Lerne C.
Ich kann das nur bestätigen.
Zitat von: Linus Torvalds(Linux Erfinder)
Ein Problem lässt sich in C 100 mal schneller lösen als in Assembler
(oder so was ähnliches ^^)
Mehr muss ich dazu nicht sagen.

Oder vllt, dass man C auch 100mal schneller erlernen kann wie ASM. Die Syntax ähnelt teilweise sehr anderen High-Level Sprache(z.B Python, Java).

ASM Kenntnisse können trotzdem sehr hilfreich sein.
109
Softwareentwicklung / Re: Batch - Dateiverwaltung
« am: 03. January 2013, 21:29 »
geht auch mit:
objdump -d XYZ.o :-D
110
Lowlevel-Coding / Re: Qemu stürtzt ab bei Multitasking
« am: 30. December 2012, 19:51 »
Vielen Dank für alles.
Wieso dürfen die Tasks in meinem Kernel eig nicht returnen?.
111
Lowlevel-Coding / Re: Qemu stürtzt ab bei Multitasking
« am: 30. December 2012, 19:35 »
Ja es geht jetzt. :-D

Abschließend wollte ich noch fragen was bringt der Sprung an 1b genau und was soll das 1: davor.
112
Lowlevel-Coding / Re: Qemu stürtzt ab bei Multitasking
« am: 30. December 2012, 00:37 »
- schedule() sollte nur dann zurückkehren, wenn num_tasks == 0:
Ich habe ja schon dieses else nach if (current_task >= 0). current_task ist zu Anfang ja noch null
Das ist nicht dasselbe. current_task ist anfangs -1. current_task ist größergleich 0, nachdem zu einem Task gewechselt wurde. num_tasks ist ungleich 0, wenn ein Task erstellt wurde.
OK das else hb ich dann durch das num_task if ersetzt, aber es ist wie vehext ich kann machen was ich will es erscheinen kein  A und Bs.
Vlllt kann man da mit GDB noch was zurückverfolgen
113
Lowlevel-Coding / Re: Qemu stürtzt ab bei Multitasking
« am: 30. December 2012, 00:06 »
Ähm Ich habe jetzt alle Warnings gefixt und asm("1: jmp 1b"); aber es tut sich immer noch nichts.
MNemo hast du vllt sonst noch was gemacht?


Code(asm("1: jmp 1b"); hab ich rausgelassen weils eben nicht ging):
http://uploadingit.com/file/wxog60n1yhzblo6x/el_toro_repo_5.zip
Sonstiges
Stack als lokale Variable? Du meinst, du legst den Stack auf den Stack?

Rekursion, die: siehe Rekursion.
Nicht mehr.
- schedule() sollte nur dann zurückkehren, wenn num_tasks == 0:
Ich habe ja schon dieses else nach if (current_task >= 0). current_task ist zu Anfang ja noch null
114
Lowlevel-Coding / Re: Qemu stürtzt ab bei Multitasking
« am: 28. December 2012, 22:18 »
das kanns nicht gewesen sein :x
es passiert weiter nichts obwohl multitasking eigentlich eingeschaltet ist .
Wenn ihr wegen der Geschichte "keinen bock habt mir zu helfen"- no problem, falls doch:

http://uploadingit.com/file/hxhu7n8o1d3whcvx/el_toro_repo.zip
115
Lowlevel-Coding / Re: Qemu stürtzt ab bei Multitasking
« am: 24. December 2012, 04:38 »
Idee Ich habe den Stack als Lokale Variable definiert. Das heißt aber der wird wieder gepopt was schlecht ist.
116
Lowlevel-Coding / Re: Qemu stürtzt ab bei Multitasking
« am: 24. December 2012, 04:29 »
Achso *push the head against the wall* :-o
das hab ich ja als Notlösung geändert weil sich anders gar NICHTS getan hat. Da hab ich dann den Fehler bekommen und gedacht näher dran zu sein. Den Check hat ich da schon vergessen.
117
Lowlevel-Coding / Re: Qemu stürtzt ab bei Multitasking
« am: 24. December 2012, 04:08 »
Ja also das habe ich miteinkalkuliert. Dazu gibt es nämlich den boolean mtenabled der auf True gesetzt wird beim ersten init_task . Der Scheduler wird nur ausgeführt wenn mtenabled = true.Ok ist wahrscheinlich viel zu kompliziert aber der Grund für den Fehler kann das nicht sein.
118
Lowlevel-Coding / Re: Qemu stürtzt ab bei Multitasking
« am: 24. December 2012, 03:49 »
Ja also Ich schau in den naächsten Tagen noch mal drüber. Ich seh grad nix aber ich post mal meinen Quelltext:
http://uploadingit.com/file/4lsfedzw2blyzvvu/el_toro_repo.zip
119
Lowlevel-Coding / Re: Qemu stürtzt ab bei Multitasking
« am: 24. December 2012, 03:33 »
Ja also im Terminal kam das, ist irgendwie auch bisschen seltsam, dass Qemu abstürtzt. An der GDT kanns nicht liegen z.zT ist alles KernelMode
SMM: enter
EAX=00000001 EBX=17fe1f30 ECX=02000000 EDX=00000cfc
ESI=000f28dd EDI=0003802d EBP=17fe1d50 ESP=00006eb0
EIP=000f2c4a EFL=00000002 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
CS =0008 00000000 ffffffff 00cf9b00 DPL=0 CS32 [-RA]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
FS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
GS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     000fd3a8 00000037
IDT=     000fd3e6 00000000
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000
DR6=00000000ffff0ff0 DR7=0000000000000400
CCS=000f28b0 CCD=00000001 CCO=LOGICB 
EFER=0000000000000000
SMM: after RSM
EAX=00000001 EBX=17fe1f30 ECX=02000000 EDX=00000cfc
ESI=000f28dd EDI=0003802d EBP=17fe1d50 ESP=00006eb0
EIP=000f2c4a EFL=00000002 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 ffffffff 00c09300 DPL=0 DS   [-WA]
CS =0008 00000000 ffffffff 00c09b00 DPL=0 CS32 [-RA]
SS =0010 00000000 ffffffff 00c09300 DPL=0 DS   [-WA]
DS =0010 00000000 ffffffff 00c09300 DPL=0 DS   [-WA]
FS =0010 00000000 ffffffff 00c09300 DPL=0 DS   [-WA]
GS =0010 00000000 ffffffff 00c09300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     000fd3a8 00000037
IDT=     000fd3e6 00000000
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000
DR6=00000000ffff0ff0 DR7=0000000000000400
CCS=00000000 CCD=00000000 CCO=EFLAGS 
EFER=0000000000000000
     0: v=20 e=0000 i=0 cpl=0 IP=0008:0000000000100466 pc=0000000000100466 SP=0010:000000000010600c EAX=0000000000103f84
EAX=00103f84 EBX=00036d04 ECX=00000000 EDX=00108050
ESI=0005d980 EDI=0005d976 EBP=00067e5c ESP=0010600c
EIP=00100466 EFL=00000202 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
CS =0008 00000000 ffffffff 00cf9a00 DPL=0 CS32 [-R-]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
FS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
GS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     00126960 00000027
IDT=     00126160 000007ff
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000
DR6=00000000ffff0ff0 DR7=0000000000000400
CCS=00000000 CCD=00105fc8 CCO=EFLAGS 
EFER=0000000000000000
check_exception old: 0xffffffff new 0xd
     1: v=0d e=c894 i=0 cpl=0 IP=0008:0000000000100868 pc=0000000000100868 SP=0010:0000000000000024 EAX=00000000f000ff53
EAX=f000ff53 EBX=f000ff53 ECX=f000e2c3 EDX=f000ff53
ESI=f000ff53 EDI=f000ff53 EBP=f000ff53 ESP=00000024
EIP=00100868 EFL=00000002 [-------] CPL=0 II=0 A20=1 SMM=0 HLT=0
ES =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
CS =0008 00000000 ffffffff 00cf9a00 DPL=0 CS32 [-R-]
SS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
DS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
FS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
GS =0010 00000000 ffffffff 00cf9300 DPL=0 DS   [-WA]
LDT=0000 00000000 0000ffff 00008200 DPL=0 LDT
TR =0000 00000000 0000ffff 00008b00 DPL=0 TSS32-busy
GDT=     00126960 00000027
IDT=     00126160 000007ff
CR0=00000011 CR2=00000000 CR3=00000000 CR4=00000000
DR0=0000000000000000 DR1=0000000000000000 DR2=0000000000000000 DR3=0000000000000000
DR6=00000000ffff0ff0 DR7=0000000000000400
CCS=00000008 CCD=00000024 CCO=ADDL   
EFER=0000000000000000
120
Lowlevel-Coding / Re: Qemu stürtzt ab bei Multitasking
« am: 24. December 2012, 03:24 »
Klar ich post auch noch den Quellcode auf soner FileHostingPlattform. aber wo ist noch mal qemu.log.
Seiten: 1 ... 4 5 [6] 7 8 9

Einloggen