Today’s consumer electronics are dynamic and multi-functional, providing rich and intuitive features that transcend products from just ten years ago.
Today we can control the security and lighting systems in our home from a mobile handset when we’re overseas on vacation, or deposit a check into our bank account with a simple “pic and click” from a smartphone. Embedded software has been a driving factor behind many of these innovations.
The Apple iPhone, for example, has revolutionized how consumers interact with devices, from the user interface (brilliant displays, touch screen technology, and wireless connectivity) to applications that can turn a handset into a bank card reader, digital multimedia player, health monitoring system, or video conferencing tool.
Looking at the recent explosion of embedded software development, today’s premium car contains over 100 million lines of software code, according to a study in IEEE Spectrum. Compare that to a Boeing 787 with a “mere” 6.5 million lines of code.
For a high-end luxury automobile, software development begins at the earliest stage of hardware; from the IP that goes into the SoCs, which are assembled onto printed circuit boards, which are then placed throughout the chassis. Embedded software is designed into each embedded device providing instructions to inform these chips and processors what to do and when to do it.
The Convergence of Hardware and Software
With increasing memory size and complexity of advanced microprocessors, embedded developers must have a strong grasp of both software and hardware technologies. To create innovative electronic products, developers need to design for fast operating performance, low-power, connectivity, and applications that the consumer expects and demands.
In fact, software developers now surpass the number of hardware engineers according to survey results from IEEE Spectrum. Further, a 2013 study by IBS shows a 17x increase in software development for complex 16/14nm designs compared to 90nm. Thus, as design complexity increases, additional software development is required, which increases the number of embedded software designers needed to create an advanced embedded system.
Nowadays, there are a variety of 32-bit embedded silicon options available, from microcontrollers (MCUs) to central processor units (CPUs). Microcontrollers are designed for embedded applications, used in automatically controlled devices such as medical devices, remote controls, office equipment, consumer appliances, and automotive systems.
Containing a processor core, memory, and programmable input/output peripherals, MCUs can be selected by size and cost to fit the most appropriate business and application requirement. CPUs are the hardware processors from vendors such as Intel, designed to carry out the instructions of a computer program by performing the operations (mathematical, logical, or input/output) of the embedded system.
With access to low-cost, yet sophisticated hardware, and a broad range of embedded software, electronics manufacturers are faced with several choices for product development. MCU development environments such as evaluation hardware, chip performance, IDE tools, and probes, are more advanced and less expensive than the high-performance processors in the past.
Today, semiconductor vendors like Freescale, NXP, Texas Instruments and STMicroelectronics are delivering powerful MCU evaluation boards that can support high speed, MHz power, and rich connectivity features at affordable costs. Low-cost evaluation boards now provide interfaces for LCD, I2C, SPY< UART, 10/100 Ethernet, ZigBee, Wi-Fi, USB Host/Function, and Mirco SD along with a broad range of power-management features.
With high-end CPUs, on-chip cache and graphics hardware acceleration with Nand/Nor/SRMA flash are readily available. These MCU evaluation boards range from $10 to $200, which allows embedded developers to validate their conceptual prototypes.
Complete Evaluation Boards
Most semiconductor evaluation boards lack a full-featured operating system (OS). If included on a board, a semi’s OS is usually limited in scope and in performance. In other situations, an OS may have been developed in-house and is more proprietary in nature. Some engineering teams may have used only bare metal.
There are so many options for an OS, including a commercial real-time operating system (RTOS). For MCUs, as developers upgrade their bare metal applications using an RTOS, they will be able to meet increased software requirements because 32-bit applications require multi-tasking functions, power management features, middleware components (TCP/IP, USB, Wi-Fi, etc.) on a single device.
With multicore/multi-OS development requirements today, embedded developers might be considering Android or Linux. Over half of embedded developers now use a third-party operating system with many trying some version of Linux for the first time. Using embedded Linux provides the freedom of development with no-royalty fees, but Linux was never intended for embedded systems or real-time use.
For specific embedded applications, the Linux kernel requires a lot of engineering effort and expertise since there could be issues with kernel stability, lack of device support, and the broad range of versions in use. All of these factors can make technical support a little dicey. Embedded developers working in open source may face high maintenance costs and a limited selection of device drivers making Linux a challenge, especially among new developers.
The increasing diversity of real-time development tools and device application requirements has made life more complicated for developers. Determining whether to use an RTOS or Linux to meet real-time requirements should not be an additional source of risk. In either case, Mentor Embedded offers products and professional services to help engineering teams address the many challenges when implementing open source high-level operating systems like Linux and Android.
A New Approach to Innovation
A key differentiator in using an RTOS is the availability of middleware components, networking stacks, board support packages, and “out-of-the-box” embedded development tools that are ready for immediate use. Several semiconductor vendors are now providing free RTOS, such as Texas Instruments’ TI-RTOS, or Freescale’s MQX RTOS. (Mentor Graphics also provides a free license to use its Nucleus RTOS with its Sourcery CodeBench IDE development tools .),
Within this scenario, embedded developers have access to a highly capable development environment at a minimal cost to build a prototype since the solution provided includes a free RTOS, board support package(s), and an effective array of development tools. This all adds up to a complete embedded development ecosystem that includes customer support, which ultimately helps teams deliver innovative products to market faster and with greater confidence.
(Editor’s Note : Mentor Graphics has taken one additional step. The Nucleus Innovate Program targets small businesses and start-ups that generate less than $1M in annual revenue, by offering a complete embedded software development solution at no cost. This royalty-free program includes the Nucleus RTOS, the leading Sourcery CodeBench GNU toolchain, and ARM-based BSPs from leading vendors such as STMicroelectronics, Texas Instruments, and NXP. Targeted at developers using 32-bit single- or dual-core processors and MCUs, the program includes easy-to-use demonstrations and configurations to shorten development time for a broad range of applications in medical, automotive and consumer products. )
Jamie Little is the alliance marketing manager for Mentor Graphics Embedded Software Division. He also manages Mentor’s Nucleus Innovate Program targeting small businesses. He will be demonstrating Mentor Embedded products at this year’s DAC in Austin, Texas in booth #921, part of the ARM Connected Community Pavilion.