Beruflich Dokumente
Kultur Dokumente
Q. First of all, tell us a little bit about yourself and your responsibilities at
Micrium.
A. I am Jean Labrosse, Micrium's founder and president, and regular speaker at the
Embedded Systems Conferences. I hold a MSEE degree, and have been designing
embedded systems for over 25 years. I authored two books: MicroC/OS-II (or µC/OS-II),
the Real-Time Kernel and Embedded Systems Building Blocks, Complete and Ready-to-
Use Modules in C and have several articles published in a variety of technology
magazines. My MicroC/OS-II book has sold well over 100,000 copies worldwide.
According to TechInsights, this is the most popular book ever written in the embedded
space. You might say that I wrote the book on RTOSes.
Micrium was founded in 1999 with a mission to shorten the time-to-market for all
product development cycles by providing extremely high quality embedded software
components in source-code form.
Q. Elsewhere in the guide, we have a full product Q&A interview, but please tell
us just in a nutshell what Micrium offers in the RTOS space.
A. Let me start by saying that a Real-Time Kernel is a subset of an RTOS. An RTOS actually
means not just the real-time kernel but also other components to be able to claim it as an
RTOS. Micrium’s offering fills the definition of an RTOS quite by offering a full portfolio
of embedded software components including µC/TCP-IP (an embedded TCP/IP stack),
µC/FS (an embedded file system), µC/GUI (an embedded Graphical User Interface),
µC/USB (a bulk and mass-storage device stack), µC/CAN (a CAN-bus framework),
µC/Probe (a universal run-time data monitor), and the list continues to expand.
Micrium’s real time kernel, µC/OS-II, is provided in source form on a CD along with my
book. It is licensed for use in thousands of commercial applications worldwide. Unlike
most competitive products, µC/OS-II is certified for use in Avionics (DO178B Level A)
and complies with medical requirements (510(k), both used in safety-critical applications.
Q. Our focus in this keynote interview is on the very special ways that a
company like Micrium can leverage new technologies and the new processor
architectures to create some RTOS and application advantages. First of all,
Micrium has been a leader in support the ARM Cortex-M3 family. What do
you find so exciting about Cortex-M3 from a software point of view?
INSIDERS’ GUIDE EMBEDDED RTOS: KEYNOTE INTERVIEWS
A. Cortex-M3 is indeed a first-class architecture. We were actually involved with ARM in
the very early stages of the definition of the Cortex-M3. In fact, uC/OS-II was used to
validate several cool features of the chip and, thus was the very first RTOS ported to
Cortex. From a software point of view, the register model is simpler and cleaner than the
previous ARM architecture, especially when it comes to exception handling. A very neat
feature is tail-chaining which prevents the CPU from restoring and then re-saving CPU
registers when back-to-back exceptions occur. The Cortex-M3 auto saves certain
registers on the task’s stack during an exception. Saving all of the CPU registers upon
exception can be accomplished by adding a single instruction to save the remaining
registers. There is also the PendSV exception, which makes writing context switching
code fairly easy. ARM added a Count Leading Zero (CLZ) instruction that can be used by
the scheduler to very quickly find the highest priority task. Bit banding is another cool
feature which allows you to set/clear bits pretty much anywhere in memory and in fact,
can also be used in the scheduling algorithm. The Cortex implements the ‘Thumb 2’
instruction set and thus, does away with the ARM/Thumb mode switching which was
annoying on previous ARM parts.
Q. Take us for a minute into the esoterica about Cortex-M3. What are its unique
features? How does Micrium take advantage of those?
A. The Cortex-M3 also has a dedicated timer just for the tick interrupt as well as a common
interrupt controller (called the NVIC). These two hardware features makes it such that
once Micrium ported Cortex to one chip manufacturer, it’s the exact same port for all.
The Cortex is also good for debugging, especially when combined with Micrium’s award
winning uC/Probe. Specifically, using the SWD (Single Wire Debug) port, uC/Probe can
examine and change variables in the target at run-time without requiring any code in the
target and, without halting the CPU. The SWO (Single Wire Output) also allows for
printf() debug messages without halting the CPU.
Q. Some vendors tell us that all RTOSes are “pretty much all alike” from a
technical point of view. Do you agree or disagree with that statement? Or is
it a case in which Micrium has some unique advantages vis-à-vis the Cortex-
M3, for example, and the others might get them soon (but not yet)?
A. Indeed, we all do basically the same thing from a technical point of view. However, not
all RTOS companies, quality, and user-friendliness the same. We pride ourselves in
having the cleanest code in the industry and, more importantly deliver products that
specifically address the way engineers work. Micrium clearly has advantages recognized
by ARM given that our software was used to validate not only the Cortex-M3 but also the
Cortex-M1 and possibly others.
Q. What is your feeling about multicore and virtualization? Do you find these to
be really exciting technologies that can help you as an RTOS vendor
differentiate from the pack? Or not so much?
A. Both are interesting technologies.
INSIDERS’ GUIDE EMBEDDED RTOS: KEYNOTE INTERVIEWS
Multicore is promising but, as indicated, there are plenty of issues to resolve before it is
ready to be mainstream. As you know, there are two basic multicore architectures: AMP
(Asymmetric Multi Processing) and SMP (Symmetric Multi Processing). In some case,
it’s possible to use both at the same time. I believe we will see more bangs for the bucks
with AMP because it scales better than SMP. It’s well known that performance with SMP
actually decreases past 8 or so cores. The biggest problem with SMP is that you have very
fast cores but memory systems are orders of magnitude slower. In other words, it’s not
possible to keep feeding the cores as fast as they need to from the single common memory
bus. With AMP, each core has its own memory space and only communicates with other
cores when necessary. With AMP, each core can have its own OS or no OS at all. With
SMP, they all share the same OS and the OS potentially needs to interrupt cores to
provide them with the highest priority task.
There are also programming and debugging aspects which are already difficult with a
single core.
As for virtualization, it’s great for large systems on which to run multiple OSes under
protected time and memory spaces, however there is a heavy performance price. I
believe that it will take a while before virtualization migrates down to smaller systems, if
ever.
Q. Looking forward into 2009, what new technologies are you especially excited
about from an RTOS/software perspective? Why?
A. For me, it’s not so much a matter of new technologies, but getting back to basics and not
reinventing the proverbial wheel. Looking for the hottest technology may not be the right
vision in the near term. It’s more about hunkering down and making sure products under
development progress rapidly and at projected cost. It’s no secret that the economy will
be a difficult one in 2009. It is even more important that companies see real “value” in
the RTOS/software they use. When the market gets soft, even small failures or delays can
be devastating. Instead, designers must be up and running quickly and their product
delivered to market rapidly. Micrium’s RTOS helps them to hit that home run that’s so
necessary today.