ARM first licensed the Cortex-M3 processor in 2005, followed by the Cortex-M0, M4, and most recently the M0+. All of these processors have been widely adopted by many leading silicon manufacturers and at the time of writing there are over 1000 standard devices available to today’s developer. Within all of these devices the Cortex-M processor is exactly the same, so for the first time an embedded systems developer has access to an industry standard processor within a small microcontroller. This emerging industry standard architecture has led to the development of the “Cortex Microcontroller Software Interface Standard” or CMSIS for short. CMSIS contains a number of specifications that are designed to standardize the way application code accesses features of the Cortex processor. This helps you to develop applications quickly and reuse code between different development tools. It is very important to have a thorough understanding of the different CMSIS specifications when starting development tools with a Cortex-M processor.