First Technology Transfer

Standard and Advanced Technical Training, Consultancy and Mentoring

ARM Cortex M Microcontroller Programming Courses

The ARM Cortex M Processor architecture family is aimed at developers of standalone low cost embedded systems using a 32 bit processor architecture. There are several family members. In order of increasing complexity and computational capabilities these are the M0, M3 and M4 families. ARM Cortex M core processor designs have been realised by a large number of companies including NXP, Atmel, Texas Instruments, Silabs, Freescale and STMicroelectronics. There are even multi core ARM Cortex M processors such as the LPC43xx family from NXP. ARM Cortex M processors are at the heart of many IoT (Internet of Things) devices. The BBC Microbit is based on an ARM Cortex M0 processor.

The ARM Cortex M microcontroller programming curriculum courses cover the currently most required topics which include assembly language programming, basic and advanced C programming, and C++ programming. There are also courses covering the programming of USB devices and and the programming Wireless applications. We can also provide CAN programming and application development courses if required. Because the Cortex M4 is designed, partly, with DSP programming in mind, this curriculum also includes a specific DSP programming module that can serve as either an introduction or refresher to DSP theory and concepts, and to DSP C programming using the ARM Cortex M4. There are various compilers and IDEs available for ARM Cortex M processors including those from Keil, IAR and Rowley Associates. Courses can be tailored, in general, to use a particular compiler and IDE. The standard courses come in both Keil and IAR variants.

The introduction of the Arduino (ARM Cortex M variants) and mbed programming frameworks has demonstrated the potential of C++ programming for developing applications for ARM Cortex M devices. The abstraction inherent in a well designed C++ application can result in software that is easier to port to new processors and architectures, and, it is with this in mind, that a C++ programming course is included in this curriculum.