Advertisement

Getting started with ARM embedded MCU design

Choosing the right ARM Cortex-based processor

Choosing the right processor is a critical decision as it defines a product's capabilities. When a processor is correctly sized, it supports the full suite of a product's functions and leaves headroom for growth. Overspecifying the processor will drive system cost up unnecessarily. An incorrectly chosen processor may run out of performance during the design cycle, leading to key features being eliminated or downsized. In a worst-case scenario, an improperly sized device in the field may not have the capacity for a critical update.

Software is also a very important consideration and often represents a majority of the development investment, both in terms of cost and time, so the optimal processor for an application also must have the right development resources supporting it. Finally, an application-specific perspective is required to determine how the needs of particular markets also affect processor and software requirements.

Making sense of the ARM cores

ARM offers several licensable cores to meet a wide range of application requirements. Microcontroller manufacturers obtain an ARM core architectural license to modify the core and design a complete processor or SoC around the ARM core. This includes integrating peripherals and memory, as well as adding application-specific features that can enhance performance and power efficiency. While many vendors design their own processor offering an ARM core, the resulting processors are not equal. ARM Cortex processors are used most frequently for embedded processing designs that need to feature low-power. These Cortex processors also provide a large amount of compatibility and scalability among each other.

Selecting the right ARM-Cortex processor for your application involves more than just estimating performance requirements. The first step in selecting the right ARM core for an application is to understand the three primary ARM-Cortex core families and the basic differences between them.  

Here is a description of each of the ARM cores in a nutshell:

ARM Cortex-A: Application processors based on the Cortex-A series core offer low power, along with exceptional 32-bit performance. This architecture supports multicore configurations, as well as optional advanced floating-point capabilities. The Cortex-A offers up to 13-stage technology with 1.5 to 2.5 DMIPS/MHz per core with advanced branch prediction. Its Neon integer and floating-point SIMD engine enable advanced media performance for applications. The series is tuned for memory streaming with one- to two-cycle cache access, pipelined loads and stores, and coupled (or integrated) level-2 caches.

With their high performance and advanced memory, Cortex-A–based MCUs are well suited for any product that needs to incorporate and run an advanced operating system, such as Windows, Linux, or Android. In addition, Cortex-A processors provide additional benefits through a few available technology extensions — TrustZone security extensions for secure computing applications and Jazelle technology for accelerating execution environments, such as Java, .Net, MSIL, Python, and Perl.

Because they are designed to serve as an application processor, common applications for Cortex-A–based processors include digital TV, home gateways, auto infotainment systems, industrial automation, base stations, and cloud computing.

ARM Cortex-R: Cortex-R was developed for real-time applications where low power and responsive-interrupt handling are needed. High performance is enabled with features such as high clock frequency, dual-core multiprocessing (AMP/SMP) configurations, and hardware SIMD instructions for high-performance DSP and media functions.

For real-time control, the Cortex-R core uses tightly coupled low-latency memory, which allows a fast response to real-time events. These real-time response features provide high DMIPS/MHz benchmark and clock frequency.

Unique to the Cortex-R core is the memory protection unit (MPU), dual-core lockstep configuration, and automated parity checking and error correction for hard and soft errors. These features set these cores apart for safety applications — such as automotive braking systems, renewable energy, safety monitors, mass storage controllers, networks, and printing. For example, Texas Instruments uses Cortex-R as a dual lockstep core, on its Hercules MCUs targeted at functional safety applications.

ARM Cortex-M:  The Cortex-M architecture was designed for applications requiring fast and highly deterministic interrupt management with the smallest footprint and low power consumption. If the end product needs to enable rich features, ARM Cortex-M cores run at a lower speed with shorter activity periods and its special sleep-mode architecture.

The Cortex-M offers a high-density instruction set and has smaller RAM, ROM, and flash requirements, which means smaller amounts of software code to lower silicon costs. If your product needs robust features while offering low-power modes, this is the core of choice. Cortex-M-based MCUs are excellent for most MCU-based applications, including mixed-signal devices, smart sensors, portable health and fitness devices, metering, and automotive electronics.

Choosing a vendor for your ARM-based processor

Because many silicon companies license the ARM cores, it's important to examine the differentiating elements the company includes with their ARM core — the process technology, integration, peripherals, intellectual property, and system expertise needed for your specific application. Software, development tools, and support are all also very important to keep design time short and to differentiate products using custom software tweaks.

For example, TI offers six platforms that contain ARM-based processors — with a wide range of cores to address varying performance, power, and cost requirements across nearly all application markets (see Fig. 1 ).

FAJH_TexasIns_1_Sep2013

Fig. 1:  TI offers six platforms that contain ARM-based processors — with a wide range of cores to  address varying performance, power, and cost requirements across nearly all application markets.

Many silicon companies offer scalability with ARM portfolios — both hardware (pin compatibility) and software. Given that software can drive more than 50 percent of a product's total development costs, developers need to be able to create multiple products on a single development effort.

Beginning development on ARM designs

Once the correct processor is identified, attention turns to the development tools. A strong tool suite can accelerate design, test and debug, but a processor that lacks a strong development environment will result in developers fighting their tools. This can delay a product's launch or require key differentiating features to be dropped in late design cycles.

Important development tool considerations include:

  • Maturity and completeness of the tool chain and the development environment, which helps developers identify potential issues early in the design cycle and resolve late-cycle hardware issues through software workarounds.
  • Availability of a range of development boards that provide a means for jumpstarting application development while hardware prototypes are designed.
  • Use of an OS to manage the multitude of tasks a system must perform. Feature-rich software development kits supporting each OS should include a wide range of example applications and middleware.
  • Efficient multiprocessing tools manage multi-processor, multicore and multi-threaded programming in a manner that makes much of the complexity transparent to developers.
  • An organized development community that is embraced by the silicon provider can provide support among its members through shared code and expertise.
  • System profiling and performance analysis tools provide extended lifetime of the device by getting more out of the part without having to buy more expensive or newer ones.

Some development kits

For hobbyists and engineers alike, one of the best ways to begin learning to develop with ARM is to take a hands-on approach using a basic, low-cost development kit. As an example, for entry-level development on ARM-based processors, TI recommends the following low-cost platforms:

  • Tiva C Series LaunchPad: This evaluation platform for the Tiva C Series ARM Cortex-M4 MCU is available for $12.99. The platform also supports TI's BoosterPacks, a series of modular plug-in boards that can stack on top of the LaunchPad baseboards, providing additionally functionality such as wireless, capacitive touch, and LED control.  
  • Hercules LaunchPad: For designers interested in ARM Cortex-R development or functional safety designs, the Hercules LaunchPad provides a platform at $19.99. This enables developers to evaluate the Hercules MCUs and experiment with the ARM Cortex-R dual-core very inexpensively.
  • BeagleBone Black: Based on TI's Sitara AM335x, the $45 BeagleBone Black development board provides an excellent introduction to both the ARM architecture and open source development. It is supported by a complete Linux operating system with full-featured web servers, native compilers and scripting languages, video analytics libraries and much more. Many complete operating and development environments are supported by community and third-party developers, such as Android, OpenEmbedded, Windows Embedded, QNX, Ubuntu, Symbian, Debian, Fedora, Gentoo, and FreeBSD.

Advertisement



Learn more about Texas Instruments

Leave a Reply