hallo zusammen, programmiere auf einen cc2431 mit einem 8051 prozessor. habe mir einen scheduler geschrieben nach dem folgenden prinzip: 1. 4 prioritäten 2. jede prioritätsstufe arbeitet mit einem fifo 3. 4 ist die höchste priorität 4. es kommt immer der task mit der höchsten prioritätsstufe an die reihe und ist nicht preemtiv. jetzt möchte ich gerne noch ein zeitverhalten über timer einbauen. kann mir da jemand vielleicht einen ansatz dafür liefer, dh. ne idee welchen timer man dafür verwendet usw. vielen dank im voraus gruß jimbo
HI, das Thema interessiert mich auch ziemlich, kannst Du mir evtl. ein paar Links geben, oder entpsrechende Literatur ? Wieso lässt du nicht einfach einen der Timer laufen und generierst so einen konstanten Interruptinterval, bei dem jedesmal die Priorität der Prozesse und die Bearbeitung festgelegt werden ? mfg
hi, mh literatur hab ich keine dazu. hab mir das "selber" ausgedacht, bzw. das angewendet was ich noch aus dem studium weiß. wegen timer: ja einen timer möchte ich verwenden. weiß bloß noch nicht genau wie. ablauf meines schedulers. 1. starte tasks lege sie in ein task-pool ab. dieser besitzt vier prioritätsklassen. 1. T T T T (niedrig) 2. T T T 3. T T T T T 4. T T T T T (hoch) jeweils ein fifo. 2. überprüfe nun ob im fifo mit der höchsten priorität ein task vorhanden ist, wenn ja führe ihn aus (non-preemptiv) und wenn er fertig ist lege ihn in eine timer queue. wenn nicht suche in nächster stufe usw. 3. jeder task besitzt eine zeit-dauer, nun soll die timer queue einen interrupt generieren wenn eine zeit-dauer eines tasks abgelaufen ist und ihn wieder in den obigen fifo einhängen (je nach prioritätsstufe). ist nötig da manche tasks nur alle zwanzig minuten arbeiten müssen und deshalb nicht in den fifo gehören, sonst bekomme ich probleme mit meinem power management. hoffe das war verständlich. aber soweit die theorie. funktioniert auch so weit bis auf die timer-queue. finde keinen richtigen ansatz wie ich anfangen kann?!?!?! hoffe mir kann da jemand weiter helfen. gruß jimbo
hallo PeDa, vielen dank für den link. werd mir das mal anschauen. bin mit meinem ansatz auch schon weiter gekommen. hab mir jetzt eine callbackfunktion geschrieben die mir die daten aus dem fifo holt, und in eine struktur ablegt, und einen zeitstempel mit übergeben bekommt. ist dieser abgelaufen wird eine funktion aufgerufen (callback) die die daten der task wieder aus der struktur holt und wieder in den fifo einhängt. läuft aber noch nicht einwandfrei. gruß jimbo
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.