rtlinux rtfifo and tcl tk n.
Skip this Video
Loading SlideShow in 5 Seconds..
RTLINUX/RTFIFO and Tcl/Tk PowerPoint Presentation
Download Presentation


243 Vues Download Presentation
Télécharger la présentation


- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. RTLINUX/RTFIFO and Tcl/Tk Nishant Upadhyaya Maung Wynn Aung Han Professor Insup Lee CIS642: Seminar in Real-time Systems University of Pennsylvania

  2. Objectives • To develop a Real-Time Extensions for Tcl-Tk that interfaces with RT Tasks through RT-FIFO • To exploit the power of Tcl-Tk and X-Window for fast RT application development

  3. What is RT-FIFO? RT-Kernel RT-FIFO • RT-FIFO are located in kernel address space • RT-FIFO are character device interfaces acting as pipes between RT and non-RT tasks • Used for Inter-Process Communication (IPC) Software level Linux Process RT Processes Data X-Window Linux Kernel Hardware level Display Disk Devices

  4. RT-FIFO (contd.) RT Kernel Space Std Linux Space RT-FIFO RT Task non-RT Task • RT-FIFO is unidirectional by default • Number of FIFO is fixed and can only be changed in the RT Kernel source code RT Task non-RT Task

  5. RT-FIFO (contd.) • Data transfer rate is about 100MB/sec in a modern x86 • RT-FIFO functions are non-blocking and atomic on RT side (avoids priority inversion) • Standard Linux processes see it as standard character device • They are in /dev file system and named as /dev/rtfx where x is FIFO ID integer number.

  6. RT-FIFO Handling API • rtf_create: create a new RT-FIFO • rtf_create_handler: to attach a data handler • rtf_destroy: to destroy the RT-FIFO • rtf_get: to read data • rtf_put: to write data • rtf_resize: to change size of RT-FIFO

  7. Difficulties • To include RT-FIFO handling functions into a user space task is inflexible • User space tasks usually use Tcl/Tk for rapid UI development for X-Window • Mixing RT-FIFO implementations and Tcl/Tk functions can be counter productive due to changes in software versions, RT task implementation details, etc.

  8. Approach for Tcl/Tk-RT Extension • It consists of a small extension to Tcl-Tk • The Extension can be linked to Tcl-Tk libraries dynamically using load command • Extension acts as a virtual IPC layer for Tcl-Tk applications • Takes care of how data is passed between Tcl-Tk application and Real-Time task

  9. Extension Design RT-Kernel RT-FIFO • User space application only have to deal with Tcl/Tk Tcl/Tk-RT Ext. Tcl/Tk App RT Task X-Window Device Display

  10. Tcl/Tk-RT Extension API • Provides a simple API for testing • rtf_open: Open a new RT-FIFO • rtf_close: Close a RT-FIFO • rtf_read: Read data from RT-FIFO • rtf_write: Write data to RT-FIFO

  11. Advantages • Advantages of the approach are- • User space tasks are easier to develop using Tcl/Tk • Command Module can be loaded/unloaded dynamically • It allows flexibility in modification, testing, upgrading RT applications

  12. Implementation and Testing • Developed a small test program using Tcl/Tk that uses our extension to interface with RT Tasks • Test program includes a Tcl/Tk console it controls and monitors the RT Tasks • Two RT Tasks are created and send data, Alpha and Beta respectively, through the RT-FIFO pipes • The console can start, stop, monitor the RT modules and data received

  13. Program Structure RT-Kernel RT-FIFO Command Module Tcl/Tk-RT Ext. RT Task B Tcl/Tk App RT Task A Device X-Window Device

  14. User Console

  15. Data From RT Tasks

  16. Program Demonstration • Running the demonstration program under X windows

  17. Conclusions • RT application development can be greatly enhanced by introducing RT-extension to Tcl/Tk • It can be further improved by introducing more sophisticated real-time services • Scripts can be automatically generated by using Graphical UI tools

  18. References • • • • RTLinux Whitepaper (Victor Yodaiken) • RTLinux Manifesto (Yodaiken) • RTLinux FAQ (Barabanov, Yodaiken, Hilton) • RT Linux man pages: • Tcl/Tk Documentation: