Výmena štruktúr v RTX51 simulovaná pomocou Keil uVision - Diversant Software

Logo DSW
Logo DSW
Logo DSW
Prejsť na obsah

Výmena štruktúr v RTX51 simulovaná pomocou Keil uVision

Projekty > 8051 > Návody
Komunikácia pomocou mailbox-u v RTX51
Komunikácia v prostredí operačného systému RTX51 je oproti klasickému prostrediu jazyka podstatne odlišnejšia. V operačnom systéme sú jednotlivé spustené úlohy od seba vzájomne izolované a všetky premenné ktoré používajú sú neviditeľné pre ostatných. Niekedy vzniká potreba vzájomnej komunikácie medzi jednotlivými taskami kde sú potrebné zložitejšie štruktúry. Tu už nie je možné vymeniť dáta medzi úlohami pomocou globálne deklarovaných premenných, ale musíme siahnúť na zložitejšie štruktúry ktoré v sebe zapuzdrujú rôzne typy premenných.
Odosielanie štruktúry je vykonané pomocou funkcie operačného systému RTX51 os_send_message (MBXS, (unsigned int) MessageToSend, WaitForEver);. Prijatie štruktúry je zabezpečené opäť pomocou funkcie RTX51 os_wait(K_TMO + K_SIG + K_MBX, WaitForEver, (unsigned int xdata*) &ReceivedMessage), ktorá čaká na príjem správy z príslušného mailboxu. Po prijatí správy máme k dispozícii už samotnú adresu príslušného objektu s ktorým chceme pracovať.
Na priloženom videu je vidieť časť štruktúry ktorá je deklarovaná ako globálna a jej obsah sa odosiela pomocou jednoduchého triku, ktorý spočíva v tom, že odosielame len adresu použitej štruktúry ktorú pošleme ako parameter funkcie inému tasku. Prijímateľ túto adresu zachytí a dokáže ju príslušným spôsobom spracovať.

Projekt si môžete bez súboru RTX51.LIB stiahnúť tu.
Aktualizácia údajov bola vykonaná dňa 22.10.2019.
Logo DSW
Logo DSW
Návrat na obsah