Every once in a while, I get the opportunity to introduce my colleagues to the world of blogging. This time, it is the turn of Rich Rejmaniak, Technical Marketing Engineer in the Mentor Embedded division.
Rich has extensive experience and insight into the rapidly evolving embedded system space. Here is his take on the emerging role of RTOS in the rapidly evolving embedded space.
When computers first emerged, their software environment was simple: Manually load a program into memory and run it. The concept of an operating system didn’t exist, and its implementation would have been considered ridiculous if it had. However, as processing resources (CPU power, memory, etc.) increased, so did the demands for organizing the operation of a computing device. Eventually, the idea that a computer would not have an operating system be came as unfathomable as the inverse once was.
Microprocessors followed the identical trend. In the 70’s, 80’s, and well into the 90’s, virtually all microprocessor systems ran their code in a bare metal environment. Developers wrote their code to take control at the hardware reset vector, and went on from there. Even on the desktop, with the 6502 based Apple computers, and the DOS based IBM PC and clones, the environment really wasn’t an operating system. DOS was simply a utility that obediently handed total control of the machine to the application, providing only a suite of utility subroutines and a place to return after completion. Just as has happened to their large mainframe predecessors, microprocessor based systems on both the desktop and in the embedded environment has transitioned to almost universally run an operating system of some type.
The final frontier for operating systems has been the Microcontroller market. Until recently MCU designs lacked both the computing resources as well as the application complexity to support or require an operating environment. In fact, virtually all programming was done in assembly language. In the early 90’s I remember sitting through a sales presentation by a compiler/assembler vendor who confidently proclaimed that a microcontroller will never run “C”. Computing folklore is full of such predictions, and they never seem to stop. In 1995 I found myself in the room with the Vice President of World Wide Sales of a major processor vendor. He then proceeded to proclaimed that microprocessors had reached their limit because there was no foreseeable need to any additional processing power.
Well, the current offering of ARM based MCUs once again proves that what has gone before is exactly what will happen in the future. Today it’s possible to purchase for less than fifty cents an MCU that runs at 48MHz, has 32K of Flash and 4K of RAM, contains DMA, and a myriad of communication and I/O ports. If one is willing to climb up the scale to a couple of dollars, the memory increases dramatically and full network connectivity appears. The first two of three stages has occurred that will drive the MCU market fully into the world of operating systems: The devices now have enough power to support an RTOS, and enough complexity to make use of an RTOS. (TCP/IP and USB protocol stacks are a big driver for an RTOS environment.)
The final frontier for these devices is the eventual realization of the design community that this market has come of age. Just like their predecessors, software engineers writing applications for the newest MCUs will appear to move toward a structured environment slowly. That will change suddenly when those familiar with an RTOS prove their ability to outflank their bare metal brethren in the race to deliver their products to market
To learn more about Nucleus RTOS, please visit http://www.mentor.com/embedded-software/nucleus/
Do you use a RTOS in your designs? We'd love to hear your thoughts on how you use current generation MCUs in your embedded applications. Talk to us at http://communities.mentor.com/mgcx/community/embedded_software/nucleus_rtos
More about Rich
Rich Rejmaniak is a Senior Technical Marketing Engineer in the Mentor Embedded division. Rich has been an engineer for over 30 years, with the last 20 as a Field Applications Engineer for various semiconductor and software companies. He specializes in the hardware/software boundary issues in embedded systems.