The Cortex Microcontroller Software Interface Standard (CMSIS) was first published by ARM in 2008; the RTOS variant, for real-time operating systems, followed in 2012. The purpose of this standard is to encourage software portability and interoperability (which would lead to increased sales of ARM chips) by describing a general architectural model for embedded systems, including specific resources and application programming interfaces (APIs).
Now along comes the Internet of Things (IoT), with every embedded manufacturer defining its own architecture and interfaces. It’s déjà vu: BetaMax versus VHS, Android versus iOS, Windows versus Linux. Can’t we as an industry learn from the past and adopt a standard architecture right up front? To that end, the authors propose that CMSIS-RTOS be adopted as a processor-agnostic, de facto architectural standard for IoT smart objects.
The paper is short, at only eight pages including diagrams and charts. It’s easy to read, with useful information such as the (republished) charts for “dimensions of the IoT” and “classification of IoT nodes,” interesting points of departure for any IoT discussion. The authors constructed sample applications from CMSIS reference code and charted comparisons between CMSIS, POSIX, and three popular RTOS variants (FreeRTOS, VxWorks, and X Real-Time Kernel). Their conclusion supports their hypothesis: CMSIS-RTOS is an appropriate architectural standard for many IoT devices.