Table of Contents

[hemmerling] ARM Embedded Systems ( ARM7, ARM8, ARM9, ARM11, Cortex )

Hardware

ARM7, ARM Cortex M3 - no MMU, without Operating System or small Realtime OS

ARM8, ARM9, ARM11, Cortex A8

ARM8, ARM9, ARM11, Cortex A8 with Linux

Cortex A8 with Linux or Android

  • BeagleBone ( see below ).

Realtime and Determinism

  • I was told by experts:
    • Legacy ARM 7, 9, 11 architecture - Deterministic I/O time was practically impossible. For I/O ( or interrupt routines ?! ), the C compilers generate 5 non-atomic commands, plus 2 other commands. It was necessary to disable interrupts for deterministic I/O operations - This is not acceptable for many applications and systems.
    • ARM Cortex architecture - Now there are just 3 atomic commands necessary for I/O ( or interrupt routines ?! ), but the sequence can be still interrupted of course. So either it is not necessary to disable interrupts for I/O operations, or at least the time with disabled interrupts is much shorter.
    • Interrupts.
      • Interrupt grouping is defined by ARM ( → ARM documentation ), not by the semiconductor manufacturers ). Especially, it is CPU specific!
      • The sequence of system initialisation.
      • Global interrupt flag is enabled.
        • Set clock.
        • Set peripherals ( after clock is set ).
        • Free IRQs.

BBC Micro Bit, based on Cortex-M0

Electric Imp, based on Cortex-M3

Espruino, based on ARM Cortex M3

Gnublin

The Micro Python board ( the Pyboard ) with STMicroelectronics STM32F405, based on ARM Cortex M4

  • The Micro Python board ( the pyboard ) is designed to run Micro Python: Python for microcontrollers, “a lean and fast implementation of the Python 3 programming language that is optimised to run on a microcontroller” → See Python.

Pogoplug, based on ARM v6 Architecture

Raspberry Pi 2, based on 4 x ARM Cortex A7

    • “Die Leistungsfähigkeit des Systems wurde demnach um den Faktor 6 gesteigert. Verantwortlich dafür ist die Auswechslung des bisherigen BCM2835-SoCs mit einem Kern durch den neuen BCM2836-Chip von Broadcom. In diesem arbeiten nun vier Cortex A7-Cores, die mit einer Taktfrequenz von maximal 900 Megahertz betrieben werden können”.
    • “Statt 512 Megabyte kommt nun 1 Gigabyte zum Einsatz”.
    • “Durch die neue Produktstrategie von Microsoft wird das Gerät zukünftig aber auch mit Windows 10 betrieben werden können. Microsoft wird den Angaben zufolge eine spezielle Lizenz für Bastler anbieten, die kostenlos eingesetzt werden kann”.

Raspberry Pi, based on ARM11

Hardware

ODROID

The Tools
Sales
Experts

Kano

May I put it on the market ? CE Compliance, MAC Address...

  1. AFAIK, there is a unique MAC address (1) - as the Raspberry uses a dedicated commercial Ethernet chip onboard, which supplies this MAC address ?!
  2. AFAIK Raspberry passed CE certification (2).
    • Your device in which your board operates, needs a CE certification too (3).
    • If so, and if your device fulfuls the conditions (1)+(2)+(3), You might put it on the market.
  • In opposite, evaluation boards and demonstration boards of chip manufacturers nowadays often include the Ethernet function in the CPU chip. They provide non-unique MAC addresses and USB client device numbers “for evaluation and development purposes only”.
    • You may not use use such boards freely in the Internet, with these non-unique MAC addresses.
    • To put it on the market, you must get a legal unique MAC address and / or a legal unique USB client address. Additionally the embedded device in which your board is operating, must be CE compliant.

Applications

Resources

Software

Literature

Teensy

Tessel, Tessel 2

Semiconductor Manufacturers

Analog Devices, Inc. -> Analog Devices Precision Analog Microcontrollers, based on ARM7

Altera Corporation ( now merged with Intel )

ARM Ltd.

Atmel Corporation

Cypress Semiconductor Corporation

Cypress Semiconductor Corporation -> PSoC 4 ( ARM Cortex M0 ), PSoC 5 ( ARM Cortex M3 ), PSoC 7 ( ARM Cortex M4 ) CPUs

Cypress Education & Training

Cypress Evaluation Boards with "PSoC 4" CPU

My "CY8CKIT-042 PSoC 4 Pioneer Kit"
My "CY8CKIT-042-BLE Bluetooth Low Energy Pioneer Development Kit"
My "S6SAE101A00SA1002 Solar-Powered IoT Device Kit"
CY8CKIT-043 PSoC 4 M-Series Prototyping Kit
CY5672 PRoC BLE Remote Control Reference Design Kit (RDK)

Cypress Evaluation Boards with "PSoC 5" CPU

Cypress IDE

Spansion Inc. ( formerly: Fujitsu ), now merged with Cypress Semiconductor Corporation -> FM3 – Cortex-M3 Microcontrollers

Fujitsu ( - 2013 )
Spansion Inc. ( 2013 - 2015 )
Cypress Semiconductor Corporation ( 2015 - )
Resources

Resources

Infineon XMC1000 ( -> Cortex M0 ), XMC4500 ( -> Cortex M4 )

The Company & its Products

Boards

The free IDE and App Generator "DAVE"

      • Infineon Technologies AG "xSPY" - “A free and flexible plug-in for DAVE to visualize data and to create an interface dashboard to control XMC target applications”.
      • The Eclipse help system contains detailed documentation of the DAVE Apps.
      • There is a free yet unreleased free tool “XMC Pinout Tool” for Windows. Ask Infineon FAE staff member “Joachim Lüdecke” for it!
      • I was told that with DAVE 3.2 it will be able to create own DAVE Apps!
      • DAVE Apps and Device Descriptions are normally downloaded from the web to the local Library Store directly from DAVE: “Help > Install DAVE Apps/Example Library”, “Work with”:
        • “DAVE Project Library Manager” → DAVE example projects.
        • “DAVE Apps Library Manager”, press button “Select All” → DAVE apps.
        • The app and project downloads for “Dave 3.1.10” and XMC4000 CPUs are stored at the directory of the logged-in user “MyUser”:
          C:\Users\MyUser\Infineon\D3LibraryStore_3.1.10\www.infineon.com\DAVE\Lib\DaveExampleProject\XMC4500
          C:\Users\MyUser\Infineon\D3LibraryStore_3.1.10\www.infineon.com\DaveAppLibrary\XMC4000\APPS
          C:\Users\MyUser\Infineon\D3LibraryStore_3.1.10\www.infineon.com\DaveAppLibrary\XMC4000\DEVICES
          

The IDE "MDK-ARM"

Resources

  • The chips of the XMC1000 series ( XMC1000, XMC1200, XMC1300 ):
    • Are suitable to work with 5 Volts power voltage, and so the I/O might be TTL compatible.
    • Have a built-in mathematical coprocessor with hardware implementations of:
  • The XMC4000 series is just for 3.3 Volts power voltage.
  • The A/D converter supports automatic boundary checking ( without CPU activation ), FIR /IIR filtering and building of a FIFO with 16 elements.

NVIDIA Tegra ( -> ARM11, Cortex-A9, Cortex-A15 )

Nvidia

Boards

Resources

NXP Semiconductors

NXP Semiconductors

Company & Products
My LPCXpresso Board, Target LPC1xxx => LPC1xxx, based on Cortex M0 & Cortex M3
My NTAG I2C DemoKit
My PN7120 NFC Controller SBC Kit
EM773 Energy Metering, Wireless Plug Meter Demo => EM773, based on Cortex M0

Freescale Semiconductor, Inc. ( now merged with NXP ) -> Kinetis ARM Cortex-M4 Microcontrollers

Company & Products
Freescale Freedom Development Platform ( Arduino )
Kinetis KwikStik
Tower System
Motor Control Applications
i.MX, based on Cortex A9
Vybrid ( ARM Cortex A5 + Cortex M4 )

Silicon Labs

The Company

My Boards

"EFM32" Zero Gecko Starter Kit -> ARM Cortex M0+
"EFM32" Wonder Gecko Starter Kit -> ARM Cortex-M4
Würth Elektronik "IC-744885 - Kit, Energy Harvesting Platform" with "EFM32" Giant Gecko Starter Kit -> ARM Cortex-M4

Resources

STMicroelectronics -> STM32, based on Cortex M0, M3, M4, M7

Texas Instruments

Code Composer Studio Cloud

Online Tools
Resources

OpenSource Arduino-based IDE with unlimited GNU-C Compiler for Texas Instruments Launchpads

Free Eclipse-based IDE with free ( limited ) ARM Compiler and unlimited GNU-C Compilers

  • Texas Instruments Code Composer Studio (CCStudio) Integrated Development Environment (IDE) - “Use CCS for free - By default when you install Code Composer Studio a free license will be enabled that supports working with development boards with an onboard debug interface, XDS100 class debug probes”.
    • “CCStudio 5.5.0” ist the latested IDE for host computers with Pentium III 80×86 CPU.
    • “CCStudio 6.0.1” and newer is just for host computers with 80×86 CPU which supports the SSE2 instruction set. The installation of “CCStudio 6.0.1” hangs on computers with CPUs which don´t support the SSE2 instruction set :-(:
      • Reason #1:
        • On my Athlon XP2800, the installation of “CCStudio 6.01” aborts, if the “Hercules Device Support” package for ARM targets is selected for installation.
      • Reason #2:
        • TI e2e Community "CCSv6 freezes during installation" - “AMD Athlon XP 2600+”. “The processor you are using does not support the SSE2 instruction set. Unfortunately, there is no workaround for this issue other than to use a newer computer”.
        • I got the same issue with my Athlon XP2800 computer, it hangs after this installation message:
          Installing com.ti.ccstudio.targetdb.props.default.win32...
          Unzipping <installation directory>/ccsv6/eclipse/downloads/targetdb_default_props_6.0.0.20131206.zip
          com.ti.ccstudio.targetdb.props.default.win32 installed
          Registering new target content products
          

Texas Instruments MSP432, based on Cortex M4

Texas Instruments Tiva ( current ) & Stellaris ( legacy )

Texas Instruments TMS570, based on Cortex R4

BeagleBoard -> Texas Instruments OMAP3530, based on ARM8

Pandaboard -> Texas Instruments OMAP4430, based on Cortex A9

Texas Instruments Sitara, based on Cortex A9

Sitara
Arduino Tre

BeagleBone -> Texas Instruments Sitara AM335x, based on Cortex-A8

My "SimpleLink Wi-Fi CC3200 LaunchPad" - CC3200, based on Cortex M4

Toshiba Electronic Components, Inc.

VIPAR GmbH -> VIPAR Internet Chip, based on Cortex M3

Xilinx -> Zynq7000 All Programmable SoC, based on Cortex A9

ARM Board Manufacturers

MPU Hardware

Events vs. Interrupts

  • Events vs. interrupts:
    • Events cause the MCU core to wake up, but no code is executed.
    • Interrupts cause the MCU core to wake up and to execute instructions ( jump to and execution of interrupt service routines ).
  • I was told by experts: With early releases of ( just StMicroelectronics ? ) Corex M0+ MPUs, there were problems with in events by the ARM core, but now with current production releases, this is past and now everything works fine.

Energy Efficiency

  • According to experts,
    • it is more energy efficient to wake up a MPU every second, which runs with high frequency,
    • then to run a MPU with low clock all the time.
  • , because chips in CMOS technology consume power, as soon as the MPU is active.

FIFO vs. DMA

  • According to experts, FIFO is an outdated concept of the 1980th and 1990th.
  • With current MCUs, incoming data is stored in a 16-32 bit shift register, and is then transfered by DMA to the target memory locations.

Assembly Language ( CPU Opcodes ) Reference

Software

ARM Software Development Systems, Compiler

Free online Development Systems

  • mbed - “Development Platform for Devices. The mbed development platform is the fastest way to create products based on ARM microcontrollers. The project is being developed by ARM, its Partners and the contributions of the global mbed Developer Community”.

Unlimited free / Open Source Development Systems

    • The free CooCox CoIDE.
    • The free CooCox CoFlash - “An easy-to-use stand-alone online flash programmer for ARM Cortex-M microcontrollers”.
    • The free CooCox CoCenter - “A software management platform”.
    • The free discontinued CooCox CoDebugger - “CoDebugger has been integrated in CoIDE now”.
    • The free discontinued CooCox CoBuilder - “CoBuilder has been integrated in CoIDE now”.
    • According to experts, the CooCox toolchain has just the usual basic debugging features, i.e.g start, stop, break.
    • I was told by experts, that the IDE and the compiler supports the STMicroelectronics F0 MPU, but some other CPUs not ?!
  1. “Em::Blocks” and successor “EmBitz”, both based on Code::Blocks”.
  2. GNU ARM toolchain for Windows/Cygwin, Linux.
  3. Hitex Development Tools GmbH "GNU Compiler Collection (GCC)" - “All ARM and Cortex development tools from Hitex are delivered with a GNU compiler edition built and tested by Hitex”.
    • The free edition is just free for “Cortex M” development and is based on the “winIDEA – Verified for all architectures” edition. Be aware that the just-commercial edition “Verified for TriCore, MPC5xxx/SPC5xxx, RH850 and RL78/78K architecture” is not suitable for “Cortex M” development.
    • How to download and install the free SDK for Python, “isystem connect SDK”, with the free “winIDEA Open”:
      • Failure:
        • On the “iSYSTEM” website, there is no download of SDK for “winIDEA Open” editions :-(. Especially it is not suitable to mix different versions of tool and SDK.
        • At the end of the installation process of “winIDEA Open”, there is the message “Please click on link below to install isystem.connect SDKs. isystem.connect SDKs on the web”. The link just points to the standard SDK download page :-(.
        • The menu item “Help / SDK / Download Python SDK” in the “winIDEA Open” application just points to the standard SDK download page :-(.
      • Success: The only option to download and install the free SDK for Python is at “Help / SDK / Download Python SDK” in the “winIDEA Open” application :-), by which the download of e.g. iSYSTEM.Python.SDK.9_12_209.zip, iSYSTEM.Python.SDK.9_12_238.zip is started.
  4. Martin THOMAS "ARM Projects" - “WinARM” for Windows.
    • The free IDE Raisonance SAS "Ride7" for Windows - “A free software tool that is available with Raisonance RKit C toolsets, RLink debugger/programmer and related tools such as our Primers and REva evaluation platforms”.
  5. The free Sourcery CodeBench Lite Edition - “Sourcery CodeBench Lite Edition is a free, unsupported version of Sourcery CodeBench, available for select processors”.
  6. The free Texas Instruments StarterWare for Windows and Linux - Software development for targets powered by some ARM and DSP CPUs ( AM1808, OMAPL138, C6748, AM335X ), but operating without operating system or even operating a low-level operating system.

Unlimited free / Open Source Development Systems for Linux Targets

Limited free Development Systems ( with unlimited commercial Edition )

Feature Lite Commercial
C, Assembler yes yes
C++ no :-( yes
Flash code size limit no :-) no

Free Debugger for ARM cores

Commercial Development Systems

Standard
Functional Safety

Free Simulators

  • The OpenSource ARM7 simulator Michael Dales "SWARM - Software ARM" for Linux.
  • I was told by experts, that even market-leading commercial development of “ARM Cortex” simulators was stopped, due to complexity.

Operating Systems for ARM

Realtime Language Platforms

ARM Cortex Microcontroller Software Interface Standard (CMSIS)

Training & Education

German Books

English Books

French Books

Electronic Media

Book Resources

Commercial Courses

Resources

Forums, Newsgroups

Appropriate OpenDirectory Directory Pages

 
en/arm.html.txt · Last modified: 2017/06/29 05:30 (external edit) · []
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki