wiki:xilkernel_ref

Xilkernel Reference Designs

Note: Xilkernel is no longer used as the OS for the Wireless Reference Designs. However, these projects are great for getting started with using Xilkernel.

Xilkernel is a light-weight real time operating system (RTOS). For the PowerPC 405 architecture (which WARP uses), it has a memory footprint ranging from only 16 to 32 kilobytes depending on features implemented. Xilkernel can be set as the operating system for your WARP project in "software platform settings" under the "software" drop-down in Xilinx Platform Studio. An introduction to xilkernel use on WARP may be found here. The xilkernel API is located in "$EDK\doc\oslib_rm.pdf." The following are the currently available reference designs for xilkernel (and are built for WARP vers. 1.1):

  • Priority Scheduled pThreads: This demo serves a basic introduction for generating and running threads (processes) in a priority scheduling format. In priority scheduling, threads are given priority levels -- a lower priority threads always yields to a higher priority thread until it has finished its task.
  • Round Robin Scheduled pThreads: This demo also serves as a reference to generating and running threads. In Round Robin style scheduling, the threads are processed in small chunks at a time in a queue. The human real-time effect of this, is that the threads are running in parallel. This is also how threads of the same priority level in Priority scheduling mode act. This design also features use of the "kill" function.
  • Mutex-based Resource Sharing: This design demonstrates the use of a mutex to get a lock on a resource that both threads are trying to utilize simultaneously.
  • Semaphore Thread Control: Semaphores can also be used for resource sharing, but this reference design demontrates using semaphores for controlling thread interaction. The effect of this is a simple demo that uses simple order-of-operations to produce a numeric output.
  • Shared Memory Example: A design showing how shared memory (though still under development) is used.
  • Dynamic Memory Allocation Example: This is a simple demo that takes the user through setting up a buffer, writes a faux packet to it, reads the packet from it, and then destroys it.
  • Message Queue Design: This reference design shows how data in packet-structure can be easily passed from thread to thread by using the simple message queue API function calls.
  • Timer Interrupt Example: This example walks the user through creating a countdown-based timer-interrupt in xilkernel. When the timer hits zero, it causes an interrupt and resets the countdown.
  • Xilinx's Xilkernel Demo Ported for WARP v. 1.1: This is a reference design provided by Xilinx that has been ported to the WARP version 1.1. It showcases much of the same functionality as the other xilkernel demos here, but in more gorey detail and with a lot less commented code. It is worth checking out after looking into the basic xilkernel reference designs.
  • ALL of the Xilkernel Demos for WARP: If you're just too impatient to get through the demos one-by-one, this package contains all of the xilkernel demos.

Required Hardware:

  • WARP v. 1.1 (though the provided files can be easily ported to other platforms)
  • Null Modem Serial Cable

Required Software:

  • Xilinx tools for downloading/modifying the projects to the WARP
  • TeraTerm Pro -- for serial interaction/debug for the demos (Baud Rate should be: 57600)
Last modified 10 years ago Last modified on Jul 16, 2008, 3:38:06 PM