O
opentdoors
Guest
Dobrý den, everyones!
Jsem nový člen tohoto fóra.Jsem z Vietnamu jako elektrotechnický inženýr.
Snažil jsem se navrhnout RTOS jádro pro 89c52 s 8 KB RAM ext.Je přesně tak, jak se naučit Real-time Linux.
Moje zhodnocení palubě skládají 89c52 s 8K RAM (6264) na 0x8000.Tam je 16 úloh v mém návrhu, každý úkol má 256 bytů externí paměti.Příklad:
Úkol-0 s ext mem od 0x8000 až 0x80FF
-Úkol 1 ---------------------- 0x8100 až 0x81FF
...
-Úloha 15 ---------------------- 0x8F00 na 0x8FFF
Tak, že DPH = task_id nebo 80, přímá odpovědnost výrobců = 0x00 až 0xFF.
Každý úkol má byte pultu.Při přerušení časovače došlo, počítadlo úkolem je zmenší jeden, a je-li čelit úkolu dostat na nulu, pak se tento úkol je připraven stát.
Počítadlo pole je umístěn ve vnitřní RAM, ponted do R0.Když úkol je v provozu, bude volat Ondelay na reset jeho pultu.
Existují dva další pole ve vnitřní RAM, semafor (pouze binární semafor) pole a pole událost.Když úkol je ve stavu čekání semafor, 8051 CPU také v pohotovostním režimu až časovač přerušení došlo.A když úkol je ve stavu čekání událost, je to vždycky přešel na sheduler rutina.
Sheduler je rutinní založena na pult pole pro změnu úkolu id ve dvou proměnných: running_id a blocke_id, pak volat context_switching ušetřit vnitřní stoh blokován úkolu externí paměti, že úkol, a obnovit zásobník obsahu pro další úkol.Novým úkolem bude v provozním stavu po "reti".
Omlouváme se, v příště budu psát nějaké zdrojové kódy napsané v ASM 8051.
Díky
Naposledy upravil opentdoors dne 16 února 2005 8:24, editovaný 1 krát v celkové
Jsem nový člen tohoto fóra.Jsem z Vietnamu jako elektrotechnický inženýr.
Snažil jsem se navrhnout RTOS jádro pro 89c52 s 8 KB RAM ext.Je přesně tak, jak se naučit Real-time Linux.
Moje zhodnocení palubě skládají 89c52 s 8K RAM (6264) na 0x8000.Tam je 16 úloh v mém návrhu, každý úkol má 256 bytů externí paměti.Příklad:
Úkol-0 s ext mem od 0x8000 až 0x80FF
-Úkol 1 ---------------------- 0x8100 až 0x81FF
...
-Úloha 15 ---------------------- 0x8F00 na 0x8FFF
Tak, že DPH = task_id nebo 80, přímá odpovědnost výrobců = 0x00 až 0xFF.
Každý úkol má byte pultu.Při přerušení časovače došlo, počítadlo úkolem je zmenší jeden, a je-li čelit úkolu dostat na nulu, pak se tento úkol je připraven stát.
Počítadlo pole je umístěn ve vnitřní RAM, ponted do R0.Když úkol je v provozu, bude volat Ondelay na reset jeho pultu.
Existují dva další pole ve vnitřní RAM, semafor (pouze binární semafor) pole a pole událost.Když úkol je ve stavu čekání semafor, 8051 CPU také v pohotovostním režimu až časovač přerušení došlo.A když úkol je ve stavu čekání událost, je to vždycky přešel na sheduler rutina.
Sheduler je rutinní založena na pult pole pro změnu úkolu id ve dvou proměnných: running_id a blocke_id, pak volat context_switching ušetřit vnitřní stoh blokován úkolu externí paměti, že úkol, a obnovit zásobník obsahu pro další úkol.Novým úkolem bude v provozním stavu po "reti".
Omlouváme se, v příště budu psát nějaké zdrojové kódy napsané v ASM 8051.
Díky
Naposledy upravil opentdoors dne 16 února 2005 8:24, editovaný 1 krát v celkové