Operačný systém RTX51 - Diversant Software

Logo DSW
Logo DSW
Logo DSW
Prejsť na obsah
RTX51
Oproti operačnému systému RTX51 Tiny 2.02 je posledná verzia RTX51 Full 7.0 podstatne komplexnejším operačným systémom. Jadro operačného systému je napísané tak aby umožňovalo programátorovi definovať samostatne fungujúce úlohy s presne definovanou časovou odozvou na požadovaný typ udalosti t.j. so zaručeným časom reakcie t.j. odpovede.

Operačný systém RTX51 Full je súčasne schopný riadiť a spracovať až 19 úloh, kde 16 úloh môže pracovať s nižšou úrovňou priority a tri úlohy je možno deklarovať ako fast-tasks s presne definovaným časom reakcie cca. do 50 cyklov mikroprocesora. Prepnutie štandardnej úlohy je závislé na polohe a veľkosti zásobníka a môže sa pohybovať v rozsahu 180 až 700 cyklov mikroprocesora. Naproti tomu prepnutie úlohy s úrovňou priority 3 (fast task) sa pohybuje v rozsahu 70 až 100 cyklov. Operačný systém RTX51 Full používa pre svoju činnosť len externú pamäť dát v ktorej si uchováva väčšinu informácií o task-och, informáciu o polohe a veľkosti zásobníka. Väčšina dostuppných operačných systémov sú na báze "kooperatívneho" multitaskingu čo v praxi neumožňuje pri zacyklení jedného tasku prepnúť na ďalší. V RTX51 je možnosť použiť "preemptívny" multitasking, ktorý pri zacyklení pomocou plánovača odovzdá riadenie ďalšiemu tasku.

Operačnému systému RTX51 Full verzie 7.0 firma KEIL ukončila podporu a nie je ďalej vyvíjaný a podporovaný. Štandardne sa poskytuje k PK51 len RTX51 Tiny verzie 2.02 s licenciou "Royalty Free".
Bloková schéma RTX51
Manuál k operačnému systému RTX51 Full si môžete stiahnúť tu.

Obmedzenia RTX51
Jedným funkčným obmedzením operačného systému RTX51 Full 5.0 oproti poslednej verzii 7.0 z hľadiska programátora je to, že oblasť pamäti programu v rozsahu 0003H až 0080H kde sa štandardne umiestňujú obslužné programy vektorov prerušení využíva RTX51 pre svoje potreby. Programátor je úplne odkázaný na obsluhu prerušenia pomocou štandardných funkcií operačného systému os_attach_interrupt() a os_detach_interrupt(). Až od verzie 7.0 je možné vytvárať vlastné obslužné rutiny prerušenia z ktorých je možno pomocou isr_send_signal() odosielať signály jednotlivým taskom. Tieto rutiny prerušenia sa nesmú prekrývať a kolidovať so štandardnými prerušovacími (interrupt) funkciami uloženými na absolútnej adrese. Lepšiu predstavu o adresách vektorov prerušení nám poskytne súbor RTXCONF.A51 spolu s RTXSETUP.INC. Súbor obsahujúci operačný systém RTX51.LIB by mal byť linkerom pripojený ako posledný. Pri tomto postupe zakladania projektu sa vyhneme zbytočným chybovým hláseniam o neexistujúcej kolízii jednotlivých oddelených pamäťových priestorov ktoré sú zdieľané samotnými vektormi prerušenia.

Vyššie verzie prostredia PK51 KEIL verzie 9.54a už tento postup pri tvorbe projektu nevyžadujú.
Logo DSW
Logo DSW
Návrat na obsah