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 - RedEagle

Seiten: 1 ... 6 7 [8] 9 10 ... 13
141
Lowlevel-Coding / Re: Problem mit Globaler Struktur
« am: 03. February 2007, 15:20 »
Beide Deklarationen finden in der *.cpp - Datei statt, so wie sich das gehört ;)

zum Linken:
OUTPUT_FORMAT("binary")
INPUT( x:\reos\_ckernel\kernelexe.obj
      x:\reos\_ckernel\kernelc.obj
 
      x:\reos\_ckernel\mem.obj
     )
ENTRY(start)
SECTIONS
{
  .text 0x11A00 :
  {
    code = .; _code = .; __code = .;
    *(.text)
    *(.rodata)
    . = ALIGN(1);
  }
  .data  :
  {
    __CTOR_LIST__ = .; LONG((__CTOR_END__ - __CTOR_LIST__) / 4 - 2) *(.ctors) LONG(0) __CTOR_END__ = .;
    __DTOR_LIST__ = .; LONG((__DTOR_END__ - __DTOR_LIST__) / 4 - 2) *(.dtors) LONG(0) __DTOR_END__ = .;
   
    data = .; _data = .; __data = .;
    *(.data)
    . = ALIGN(2048);
  }
  .bss  :
  {
    bss = .; _bss = .; __bss = .;
    *(.bss)
    . = ALIGN(2048);
  }
 
  ___KERNELEND__ = .;
  end = .; _end = .; __end = .;
}
ps.: es werden natürlich wesentlich mehr Dateien gelinkt... (in der INPUT liste stehen 33 Dateien)

zum Kompilieren:
gpp -c -Os -nostdlib -fno-builtin -fno-rtti -fno-exceptions -o x:\reos\_ckernel\mem.obj x:\reos\_ckernel\mem.cpp
142
Lowlevel-Coding / Problem mit Globaler Struktur
« am: 03. February 2007, 11:19 »
Ich habe eine Sturktur memlist. davon brauche ich 2 Globlame zeiger.
//...

namespace mem
{
 
 memlist *UsedMemory;
 memlist *UnusedMemory;

//...

Wenn ich jetzt in der Funktion SetupMM() den Zeigern eine Adresse zuweise, wird geht diese nach beendigung der Funktion wieder verloren, und UsedMemory & UnusedMemory zeigen auf 0x0

//...

 bool SetupMM()
 {
  UsedMemory   = (memlist*)MEM_USEDMEMLIST;
  UnusedMemory = (memlist*)MEM_UNUSEDMEMLIST;

//...

warum?? wie kann ich meinen Compiler dazu bringen, nicht immer so'n scheiß zu machen??

Verwende gpp 3.2.3
143
Lowlevel-Coding / C -> ASM -> C (argumente & return)
« am: 20. January 2007, 11:26 »
Hi

Ich möchte von C aus eine ASM-Funktion aufrufen, und dieser ein Argument mitgeben. Diese ASM-Funktion soll nun eine C-Funktion aufrufen, und an dieser das Arguiment weiterleiten.

1. C-Funktion
   reosappi = (int (*)(int))address;
   int retvalue = reosappi((int)&api);

Die Funktion "int reosappi(int argument);" wird aufgerufen
reosappi ist in ASM geschrieben:
start:

  pop eax  ; rücksprungadresse
  pop ebx  ; Argument 01
  push ebx ; Kopie von Argument 01 sichern
  push eax ; rücksprung-Adresse wieder zurück

  push ebx ;jetzt ist das argument für _main
  call _main
  add esp, 0x04 ;argument "löschen" (liegt noch auf'm stack)

  mov eax, 0x00FF00FF ;TEST
  ret

_main:
int main(int apiaddr)
{
 api = (int (*)(int,int)) apiaddr;
 int x = api(RAPI_TEST, 0);
 return x;
}

So nun zum Problem:
Die Funktion "int api(int,int) wird 2 mal aufgerufen!! (oder _main)
und der rückgabewert ist 0xFFFFFFFF anstatt des im ASM-teil festgekegten 0x00FF00FF...

Wo liegt der Fehler (vermutlich im ASM-Teil)
144
Offtopic / Re: D
« am: 03. January 2007, 23:29 »
Gibts auch in C und C++
145
Lowlevel-Coding / Re: Problem mit Globalem Objekt
« am: 30. December 2006, 16:12 »
Ja, der Constructor wird direkt beim Systemstart ausgeführt.
146
OS-Design / Re: "Kleine" Frage zu API
« am: 30. December 2006, 16:08 »
Ich habe mir mal über ein anderes Konzept gedanken gemacht.:
die main-Funktion einer "normalen" Anwendung:
DWORD main(DWORD interface, char* arg)

In "interface" steht dann eine adresse einer Funktionb drin, mit der man mit dem OS "Kommunizieren" kann
Prototyp:
DWORD os(DWORD command, DWORD argument);

Und über die os-Funktion kann man sich dann alle möglichen adressen von Variablen / Funktionen holen, die man braucht, oder auch andere informationen an das system geben, bzw vom system holen...
147
Offtopic / Re: Welches Betriebssystem verwendet ihr zum proggen?
« am: 30. December 2006, 16:03 »
@M.Nemo: Da hat man als Freak wie mir wieder einen Vorteil. Mit mir will da keiner was zu tun haben. Wenn es dann aber auf einmal um Computer geht dann soll ich auf einmal helfen. Aber die bekommen dann nur ein: tzzzzzzzz[...]

Ich werde gerade deswegen in meiner Klasse sehr respektiert. Wobei unsere Klassenhirachie generell nach "Wissen ist macht" aufgebaut ist...

[...] @RedEagle: Ich würde meinem Lehrer sagen das ich Linux habe. Das portieren wäre dann sein Problem. [...]

Es währe aber extrem ungünstig, wenn ich bei der Abschlussprüfung, eine SPS-Steuerung programmieren müsste, und von der Entsprechenden Software keine ahnung habe; oder wenn wir in Messtechnik etwas mithilfe von LabView messen; oder in VB verarbeiten müssen...
148
Lowlevel-Coding / Re: Problem mit Globalem Objekt
« am: 30. December 2006, 15:57 »
Das "C++ Kernel"-Tutorial auf LowLevel (von TeeJay glaub'ich)
Compiler: gpp
Ich habe mir die *.obj - Informationne wie im tutorial beschrieben ausgeben lassen (mit "objdump"), und dort waren, wie erwartet ctor und dtor vorhanden.
149
Offtopic / Re: Welches Betriebssystem verwendet ihr zum proggen?
« am: 30. December 2006, 13:19 »
Viele unserer Lehrer schicken direkt ne PDF...
Das problem liegt bei mir in den Programmen die wir nutzen. Bis auf "Simens Logo!Soft" (in Java) laufen alle Anwendungen nur unter Windows. maw.: kein Windows -> Keine Hausaufgaben -> schlechte Noten.
150
Offtopic / Re: Welches Betriebssystem verwendet ihr zum proggen?
« am: 29. December 2006, 22:12 »
Die Gesellschaft zwingt mich.
bsp.: Schule / Arbeitsplatz
151
Offtopic / Re: Welches Betriebssystem verwendet ihr zum proggen?
« am: 29. December 2006, 21:55 »
@ReadEagle

dann nimm lieber gleich VISTA. [...]


Mein IDE-Bus des Alten PCs ist kaputt gegangen, da musste so schnell wie möglich ein billiger PC her. Und da war nunma XP drauf...


[...] auserdem. den clasic style kann man auch unter xp wiederbeleben. dann sieht es fast wieder so aus wie w2k bzw 98. bis so kleinigkeiten [...]

Ich verwende den classic-style, aber eben diese fehlenden kleinigkeiten fehlen mir...

---
Es gibt zwar 1000 Punkte, die mir an VISTA nicht gefallen, aber ich schätze das es nicht schlechter sein wird als XP. MS hat jetzt genug zeit gehabt, was gescheites zu machen. Das GUI sieht zumindest recht brauchbar aus, habe aber selber noch nie mit dem System gearbeitet...
Unterstützt VISTA jetzt eigentlich OpenGL??

@taljeth: Geht es bei M$ nicht immer nur um Wirtschaft; :roll: und nicht um die user  :cry:
152
Lowlevel-Coding / Re: Problem mit Globalem Objekt
« am: 29. December 2006, 21:48 »
 :?

vereinfachter aufbau meiner Klasse: (Habe backbuffer, und zahlreiche I/O-Funktionne mal rausgelassen)
class klasse
{
 public:
  klasse(){init(0x07,0,0);}
  ~klasse(){;}
 
  void init(BYTE farbe, BYTE xposition, BYTE yposition);

 private:
  BYTE *frontbuffer;
  BYTE color;
  BYTE x;
  BYTE y;
};

void klasse::init(BYTE farbe, BYTE xposition, BYTE yposition)
{
 x = xposition;
 y = yposition
 color = farbe;
 frontbuffer = (BYTE*)0xB8000;
}
153
Lowlevel-Coding / Problem mit Globalem Objekt
« am: 29. December 2006, 19:14 »
Hi
Ich habe eine Klasse, um Debug-Informationen auszugeben.
Jetzt mochte ich ein Objekt dierser Klasse zum debuggen mehrer Funktionen nutzen. Deshalb muss das Objekt Global sein.

Aufgrund der im "C++ Kernel" - Tutorial beschrieben Probleme habe ich diese "__main" und "__atexit" funktion übernommen (und auch aufgerufen) und meinen Link-script dementsprechend erweitert.

Zum Problem:
Ich Initialisiere das Objekt, und benutze. Sobalt ich aber eine Funktion verlasse, sind alle Informationen verloren, sodas ich bei jedem Funktionsaufruf / Funktion das Onjekt neu initialisieren muss. (maw.: es ist mehr oder Weniger Lokal)

Habe ich irgendwas falsch gemacht / nicht beachtet??

Schema:
Klasse objekt;

void funktion1()
{
 objekt.init("Test",0,0,0x0C);
 objekt.print("test");
 return;
}

void funktion2()
{
  /*test2 wird nur ausgegeben, wenn ich objekt neu initialisieren (sonst test "test2" an der Adresse 0x00000000*/
 objekt.print("Test2");
 return;
}






154
Offtopic / Re: Welches Betriebssystem verwendet ihr zum proggen?
« am: 29. December 2006, 18:18 »
Ich musste vor ca 5 Monaten auf winXP umsteigen (vorher hatte ich win98) werde mir in einigen tagen noch SuSE Linux 10.1 installierne.

Erfahrungen habe ich mit win98, win2k, winXP, SuSE Linux 9.1 Pro, Fedora Code *irgendwas*, MenuetOS 32Bit (Habe unter MeOS Assembly gelernt)

win98 ist mein libliengs OS. Es stürtzt zwar häufig ab, aber durch solche Fehler (und davon gibts genug) hat das System so einen besonderen Charakter. Außerdem hat mir das GUI sehr gut gefallen.
winXP ist das schlimmste OS, das ich bisher benutzt habe. Es ist enorm unübersichtlich und unkonfortabel...
155
OS-Design / Re: "Kleine" Frage zu API
« am: 21. December 2006, 18:20 »
offensichtilich wurde mein anliegen falsch verstanden...

Fals ich des im Kernel mache:
void createlist()
{
 BYTE *liste;
 liste = 0x02000000;

 strcpy(liste,"funktion01");
 list+= sizeof("funktion01");

 *(DWORD*)liste = funktion01;
 return;
}

Das ganze drumrum (fnc_kbd_, _cv_a#) muss natürlich nicht sein, hätte ich aber gerne.

Interrupts möchte ich dafür nicht so gerne nutzen.

ps.: Fals es interessiert: Es ist ein singletasking system, wobei die Laufende Anwendung kernelrechte hat (und unbeding haben soll)
156
OS-Design / "Kleine" Frage zu API
« am: 20. December 2006, 18:01 »
Wie geht das mit der API genau??
Also ich möchte keine Interrupts benutzen, sonder Calltables (oder wie das heißt)

bsp.:
fnc_kbd_getlastkey_cv_a#AFFE707

fnc_kbd_getlastkey = Funktionsname
_cv = Rückgabewert / parameter
_a = Version (falls es irgendwann mal eine ähnliche mit gleichen namen geben sollte
# = signalisiert das ende des namens, und beging der Adresse
AFFE707 = Adresse der Funktion (natürlcih nicht ASCII-Codiert)

Kann man das so machen??
Wenn ja, wie sage ich meinem Kompiler, das er mir so eine Liste erstellt??
Oder soll ich es zur laufzeit machen??
157
Lowlevel-Coding / Re: Möglichkeiten des Textmodes??
« am: 20. December 2006, 14:03 »
Ich benutze GRUB überhaupt nicht.
Mein OS soll eh nur von Wechseldatenträger aus gebootet wirden. Da ist ein Multibootloader sowiso überflüssig....
158
Lowlevel-Coding / Re: Möglichkeiten des Textmodes??
« am: 19. December 2006, 13:05 »
m...
Da klingt dan VESA doch etwas interessanter...

Mal gucken, was der VESA standard so zu beietn hat  8-)
159
Lowlevel-Coding / Re: Möglichkeiten des Textmodes??
« am: 18. December 2006, 15:14 »
Habe bisher nur code gefunden...
Gib es keine Listen, in denen die Register aufgelistet sind, und welche funktion welche bits bzw die register selber haben??

500 Zeile unkommentierter Quellcode helfen mir nicht allzuviel
160
Lowlevel-Coding / Re: Möglichkeiten des Textmodes??
« am: 17. December 2006, 20:50 »
Ok, Danke

dann habe ich dich Falsch verstanden. Das hörte sich nach "nimm den Treiber, dann kannst du alles über diesen Treiber regeln" an.

werde mich dann mal auf die suche machen.
Seiten: 1 ... 6 7 [8] 9 10 ... 13

Einloggen