Tics Realtime -----


 
Home Services Products Tutorials Contact Us
- - - - -

How to Choose a Real-time Kernel

A real-time kernel should have at least the features outlined in the articles The Distinction Between Conventional and Real-time Multi-tasking, and Essential Features of a Real-time Kernel. In addition, the following features are worthy of consideration also.

Technical Support

You should be able to call and speak with a technical person on demand. Any other means of technical support is not acceptable.

Source Code

Source code should be available at a reasonable price. Having the source will allow you to at least have the option of solving a problem if technical support is lacking.

Documentation

The package should include clear, concise documentation with sample applications that show how the product is used.

Ease of Use

The product should be easy to use and understand. A complex, difficult to use product can cause more problems than it solves.

Royalties

Some kernels require royalties, meaning that the kernel vendor must be paid an agreed upon amount for each product sold that contains the kernel. If this is something that you want to avoid, then try to find a suitable royalty-free kernel.

Per Project Fees

A "per project fee" requires you to pay a fee for each new project that you create. For example, if the kernel is initially purchased to be embedded in a telephone, then six months later you embed the kernel in a robotics system, you must pay a fee. Again, if this is something that you want to avoid, try to find a suitable kernel without a per project fee. It should be noted that some vendors may offer a buyout price which releases the purchaser from per project and royalty fees.

Speed

If you are very much concerned about speed, then do not use a real-time kernel; instead consider using the cyclical exec with time critical events handled inside isr's. We would assume that all real-time kernels have to be fairly responsive to stay on the market, and the variations between each may not be as important as you think for non time critical applications.

Code Size

If you have memory constraints make sure that the kernel is small enough.

Host

The kernel should be hosted on a machine that you have available. It is also useful if the kernel can run on the host as well as the target system. This allows you to debug a portion of the code on the host, which is generally faster than debugging on the target system.

Additional Libraries

Sometimes additional libraries are required like graphics, windows, TCP/IP, and the like, and some kernel vendors have this additional functionality integrated into the kernel as an option. This can be quite an advantage because you are only dealing with one source and since the software is integrated and ready to go there are no concerns about whether all the software will work together.

Language

Make sure the kernel supports the language and compiler that you use.

Concluding Remarks

There may be other concerns in addition to those mentioned above. For example, price, size of the company, number of years in business, existing customers, references, return policy, and so forth.


We welcome comments. Let us know what subjects you would like written up. Send comments to mike@Ticsrealtime.com

Copyright © 1992-2004, Tics Realtime