Sunteți pe pagina 1din 12

Questions You Should Ask Before Making an RTOS Decision

How differences between RTOSes can impact your project

Questions to ask when comparing RTOSes

INTRODUCTION
Many developers struggle when evaluating an RTOS decision. On the surface RTOSes can look very similar. But there are fundamental differences that you should know about before you make a decision.
If youve never worked with an RTOS before, the investigation process can be difficult. You dont know what questions to ask and, if you are like most engineers, you dont want to look foolish. It seems like everywhere you look there is another real-time operating system. In fact we even saw a microcontroller company encouraging their customers to use an RTOS developed by a student in only a few weeks. As an RTOS supplier we are somewhat biased, but we believe the best RTOSes are those that have years, even decades of ongoing development and customer use. In the end, you have to live with your decision. No one wants to tell his boss that he selected the wrong RTOS. You just have to suck it up and live with the problems. So do yourself a favor and take the time now to look at the critical factors that may have a significant impact on your project timeline and the amount of extra work you have to do to bring the project to completion, not to mention ongoing maintenance, once the product is shipped.

2008-2010 Quadros Systems, Inc. www.quadros.com

info@quadros.com +1 832-351-2830

Questions to ask when comparing RTOSes

Things to keep in mind as you look at various RTOS solutions:


1. RTOSes appear similar. Most are designed to accomplish multitasking. But how they are designed, what features they offer, and how they are implemented, can make a big difference to the success of your project. 2. Each project and development situation is different. (NOTE: Most RTOS suppliers offer only a one-size-fits-all model and expect you to adapt your application to the constraints of the RTOS.) 3. A matrix of features will not give you the right answer. It is not enough to rate and rank RTOS suppliers by their list of features and capabilities. You are making a platform decision that will affect not only this project but others to come. Get to know the RTOS supplier. What is their company culture like? What will their support be like after the sale? Do they care about the success of your project or are you just helping make the monthly sales quota? 4. Pay attention to the business model. Understand how the RTOS supplier makes money so they can stay in business and continue to support you. How will their business model affect you? Some charge less up front and then hit you with steep fees for addons and changes. Others support every processor known to man but with very thin support. Others give away basic products but charge big for add-ons.

2008-2010 Quadros Systems, Inc. www.quadros.com

info@quadros.com +1 832-351-2830

Questions to ask when comparing RTOSes

On the following pages you will find detailed questions to ask as you talk with various RTOS suppliers. Although we believe that the RTXC family of RTOSes is a superior choice, in the end we want you to make the decision that is right for your situation. We hope this information gives you better insight into the important factors. The following pages are designed to help you peel back the surface layers and start to understand some of the differences between RTOS implementations. If you have questions feel free to email us with questions (info@quadros.com). (We started with only 10 Questions but we ended up with a list that is a bit longer)

2008-2010 Quadros Systems, Inc. www.quadros.com

info@quadros.com +1 832-351-2830

Questions to ask when comparing RTOSes

RTOS ARCHITECTURE & FEATURES


Does the RTOS give you a flexible set of scheduling policies? A well-designed embedded system may need a combination of two or more of these: Preemptive, Round robin, Cooperative, Time-sliced, Slicing with a variable other than time (e.g. angular rotation, flow, aperiodic or periodic ticks).

All system objects (code entities, data passing, synchronizing, etc.) need to be established before the application can succeed. Most RTOSes can create static objects prior to runtime. Can the RTOS create dynamic objects at runtime? Just tasks or all objects?

Does the RTOS use the dynamic objects address as its identifier? This can lead to corruption of internal RTOS structures and possible failure. Are interrupts handled with a macro/function or do you have to write your own prologue (entry) and epilogue (exit)? The macro approach could save you a lot of development time coding and testing. How does the RTOS synchronize with events? Do your event synchronization objects automatically clear with a task release or can events be missed? Can multiple tasks wait on a single event? Can a single task wait on multiple events?
2008-2010 Quadros Systems, Inc. www.quadros.com 5 info@quadros.com +1 832-351-2830

Questions to ask when comparing RTOSes

Many RTOSes limit counting to ticks from a periodic interrupt to establish the system time. Any other form of counting is up to the user. Does the RTOS allow you to count both periodic or aperiodic ticks? Can the RTOS count ticks other than time? Time may not be the only independent variable in the application. Counting angular position or displacement is useful for systems that have physical elements that are rotating at variable speeds such as engine control, ABS systems, turbine meters, etc. Ticks could measure flow rate through a positive displacement meter. Dont force your system into a time-based structure if some other counting mechanism is a better fit.

Some RTOSes use Timers; some use Alarms. The purpose is to initiate an action in the future. Are Timers/Alarms globally available so that they can be used by multiple tasks or are they tied to a single task? Does the RTOS allow you to define future actions to be taken when any counter reaches a predefined value?

The best RTOS RAM management is usually done with pools/partitions in which each block is the same size. This prevents fragmentation and allows deterministic allocations. Does the RTOS manage RAM with a heap that can create non-deterministic response and fragmentation? This can also add extra housekeeping overhead.
2008-2010 Quadros Systems, Inc. www.quadros.com 6 info@quadros.com +1 832-351-2830

Questions to ask when comparing RTOSes

Can blocks from a memory pool/partition be used to create another partition dynamically? Applications need to pass data from one code entity to another. There are many different names for this: Queues, Mailboxes/Messages, Pipes. Most data passing is either fixedsize or variable-size blocks. Does the RTOS provide multiple data passing options? The more options, the better flexibility to meet your application requirements. Does the RTOS allow data to be passed between tasks and ISRs (or just between tasks)? This improves system efficiency. How does the RTOS provide exclusive access to resources? Does it use binary semaphores or mutexes? Mutexes are generally better because they know the identity of the owning task. Does the RTOS have a mechanism to prevent priority inversionwhen a low priority task has control of a resource that is required by a higher priority task? Just because an RTOS is real-time doesnt mean it is fast. Ask the RTOS supplier about how the RTOS is coded. Is it designed for deterministic operation? Does it ensure low system overhead? Low latency? Responsive services?
2008-2010 Quadros Systems, Inc. www.quadros.com 7 info@quadros.com +1 832-351-2830

Questions to ask when comparing RTOSes

Ask to see the RTOS API. Some RTOS products provide only a few primitive services while others incorporate a several hundred. The richer the API, the more likely it is that the RTOS can be easily configured to support your application.

COMMUNICATIONS STACKS & MIDDLEWARE


Most commercial RTOS offer communications protocol stacks and middleware. This gives you the distinct advantage of a single point of integration and support for these products. But there are important questions to ask: Some RTOS suppliers are resellers of third party software. What happens if there is a problem? Are they able to help you directly or will they just refer you to someone else. How tightly is the software integrated? Does the RTOS supplier provide sample applications that integrate the pieces? The RTOS supplier may have the basic communications stacks and middleware you need today, but what about the next project? Will they be able to support those requirements? Be careful not to strand yourself on a small island.

2008-2010 Quadros Systems, Inc. www.quadros.com

info@quadros.com +1 832-351-2830

Questions to ask when comparing RTOSes

GETTING STARTED & CONFIGURATION TOOLS


What does the RTOS supplier do to make it easy to begin development? What kind of getting started assistance is available? Does he supply sample projects tied to the development environment? Sample code? Examples of ISRs and drivers? One-on-one Getting Started calls?

Memory footprint is an important issue. Some RTOSes are very small because they are very basic. Others provide a rich environment that can be scaled to fit the requirements of the application. Can the RTOS be easily scaled down in size? Are there tools that automate this process?

Some RTOS products are fixed in size while others are scalable. Fine-grain scaling permits small adjustments to any included component such that the configuration will fit the applications needs. Most RTOSes needs some form of configuration before they can be used. How easy is it to set up and configure the RTOS? Are there tools that automate this process? There are many configuration approaches. Which is best for you? Which saves you the most time and effort? Do you have to edit a source file manually? This can be easy to do but is prone to errors.
2008-2010 Quadros Systems, Inc. www.quadros.com 9 info@quadros.com +1 832-351-2830

Questions to ask when comparing RTOSes

Does the RTOS use runtime code for creation of objects? This can involve a lot of tedious coding and is prone to errors and extra debug time. Does the RTOS include a host-based (off-line) GUI configuration tool? Ask to evaluate the tool. What options does it give you? Does it allow you to configure both RTOS and application objects?

What about user documentation? How complete is it? Does it include clear descriptions of how the RTOS and its various objects work? Are there reference pages for each kernel service, including its description, calling and return parameters, any error conditions, and an example of each service?

Does the RTOS offer an integrated application design tool? Such a tool can save weeks of development. Its organized structure can help you better manage, understand and communicate your design to others.

2008-2010 Quadros Systems, Inc. www.quadros.com

10

info@quadros.com +1 832-351-2830

Questions to ask when comparing RTOSes

OTHER FACTORS
An RTOS can be compared to a professional carpenters tools. An uninformed user could decide that a chisel could be used to tighten a screw not realizing that an electric screw gun with the proper tip was designed for just that purpose. What kind of training does the RTOS supplier make available? Ask the RTOS supplier who handles support calls? The actual developers of the RTOS code are the best support team (they know the code and are best qualified to track down a problem). Do you have the confidence that todays RTOS will satisfy your future needs? A wellsupported and maintained commercial RTOS can make future-proofing your application a reality.

2008-2010 Quadros Systems, Inc. www.quadros.com

11

info@quadros.com +1 832-351-2830

Questions to ask when comparing RTOSes

CONCLUSION
Selecting the right RTOS for your project can make a big difference in your success. Minor differences between operating systems can add up to days, or even weeks of extra work for your development team. Be sure you ask the right questions before making a decision.

Links to additional resources on RTOSes:


Introduction to Real-time Operating Systems Thinking Open Source? RTXC Quadros User Manuals RTXC Quadros RTOS RTXC Quadros Datasheet

2008-2010 Quadros Systems, Inc. www.quadros.com

12

info@quadros.com +1 832-351-2830

S-ar putea să vă placă și