Ich glaub ich hab die lösung schon.
ich hatte in dem "Task" ungefähr sowas(ich hab ja nen timer implementiert, und er sollte was ausgaben, wenn er auf 1 steht, Bsp:
while(*timerptr)
{
print("foobar", DSP_COLOR_GREEN);
}
naja, jetzt wurde in dem multitasking tutorial beschrieben wie das funktioniert, aber es wurde nicht erwähnt das man eine funktion haben sollte, die dem scheduler meldet, wenn ein task beendet ist. Nun ist *timerptr ja gleich 0.
also raus aus der schleife und verlässt die funktion. nun stellt der scheduler eip auf einen wert, der außerhalb vom code liegt. versucht theoretisch am ende der funktion weiterzumachen. Das wäre meine theorie, und daher kommt das.
Naja, falls das jetzt richtig sein sollte
, ich habe die taskliste mal in eine richtige struktur gepackt mit pid usw. Jetzt hab ich den scheduler angepasst. aber jetzt kommt er garnicht zu den tasks erst hin, ich vermute das scheduler immer die selben werte (also die vor dem auftreten des timerinterupts) ausgibt. Naja mal schaun, da ich nich so erfahren bin im debugging wird das noch lustig. Ich würd mir ja gern die befehle die die CPU bekommt ausgeben lassen, aber dann sitzt ich noch bis morgen in bochs, bis ich an die stelle komme, wo das anfängt.
mfg Sebi