The initial public offering of the company, ARM, was similar to that of the chip design industry. It was expected that it would sell its own chips, but it was forced to switch to a profitable model with purely designed circuits due to financial difficulties. After ARM launched various processor core circuits in 1994, The ARM7TDMI (ARM7+16 bit Thumb+JTAG Debug+Fast Multiplier+enhanced ICE) processor core was introduced. This core has been widely popularized, and the popularity of ARM and its product business has gradually gained popularity.
After ARM, ARM9, ARM10, and AMR11 cores were introduced one after another. The original ARM7 also derived various versions for customers to choose from, ARM9/10/11 did. However, as time and technology developed, ARM decided to develop a new series of cores and gradually eliminate them. In addition to the old authorized core.
In 2008 ARM proposed a new series of cores under the name of Cortex, including Cortex-A, Cortex-R, Cortex-M, and the three series A, R, M. A series of three letters just like the security company focused on application processing. In the Application Processor (AP) market, the M series is the Microcontroller Unit (MCU) market, and the R series is also focused on the microcontroller market, but more emphasis is placed on real-time control applications such as industrial equipment control and automotive applications. Electronic and so on.
After the introduction of Cortex-A/R/M, ARM referred to the previous ARM7/9/10/11 series as the classic and classical series. It continues to provide authorization, but it gradually weakens, and it will focus on new technologies. Architecture of Cortex.
CMSIS tries to unify software standards
With the introduction of Cortex's new series, ARM also tried to solve some past problems. After many chip makers acquired ARM core authorization in the past, ARM did not ask how the chip makers updated the circuit in the chip, but did not ask the software development of the chip.
However, because chip companies are independent, even if different chip companies adopt the same ARM core, the way they manipulate the peripheral circuits, the development and writing of the programs are also different, and even different from the chips of the chip makers, compatibility, and exchange. Low sexuality, program writing can not be common and follow-on, resulting in repeated waste of software development, which makes it difficult for ARM to develop a complete and continuous ARM core software ecosystem.
Therefore, ARM proposed the CMSIS (Cortex Microcontroller Software Interface Standard) standard (Figure 1) to try to provide a common reference for each chip vendor. For chips that adopt the Cortex-M series core, if they follow this standard to develop software, they have higher General, continuity.
The reason why the Cortex-M series is locked lies in the ARM7TDMI, which is the most popular and popular core of the classic series. Most of the time, this core is positioned as a microcontroller by the chipmaker. CMSIS proposes to reduce the repeated development of the microcontroller software and it is difficult to exchange. Difficult to continue to use and other problems.
As for the newer development of the Cortex-A series, it has fewer packages, more computing power, more hardware resources, and less software development than ARM7TDMI, Cortex-M and other microcontrollers. In fact, ARM also proposed in 2009. After mbed, Linaro was proposed in 2010. Lianro tried to propose and construct a common ARM architecture Linux software ecosystem, so that the Linux software used in the Cortex-A series has a common follow-up standard. It is intended to reduce the amount of repetitive development of individual management. Complete and continuous software technology assets.
However, due to the strong development and popularity of Android (root based on Linux), Linaro's industrial importance has been reduced, Cortex-A series of major software ecosystem is already Android.
CMSIS architecture analysis
CMSIS is strictly speaking of the general term of an architecture. It contains a number of software components, such as CMSIS-CORE, CMSIS-Driver, CMSIS-RTOS, etc. The most basic part is CMSIS-CORE, which defines the access letter. Type, peripheral and interrupt definition, all other software if you want to control the Cortex-M core circuit, the core peripheral circuit or other peripheral circuits, etc., must pass CMSIS-CORE.
Two other important points outside CMSIS-CORE are CMSIS-Driver, CMSIS-RTOS, both of which are application program interfaces that can be used by application calls (calls, called onshore calls). The former provides consistent hardware-driven, control methods. The latter provides a consistent interactive calling method between applications and real-time operating systems.
CMSIS-Driver can also be defined by hardware vendors to define the Hardware Abstraction Layer (HAL) and to use the third party's middleware (Middleware) to call the CMSIS-RTOS. Only in the definition of the specification, the real-time real-time operating system (RTOS, real-time operating system on the other side of the bank) can be flexibly replaced, and it can be provided by the official ARM company, or it can be replaced by those provided by the cooperative industry, as long as it conforms to CMSIS- The RTOS specification can be replaced smoothly. The official ARM supply is called RTX and was obtained after ARM acquired Keil.
Other software components are selected depending on the requirements. CMSIS-SVD (System View Description), CMSIS-DAP (Debug Access Port), or CMSIS-DSP (Digital Signal Processing) for digital signal processing operation requirements are recommended for debugging. ), and proposed CMSIS-NN (Neural Network) for the needs of neural network computing.
Mbed further simplifies software development
ARM proposed CMSIS has reached the goal of advocating software specification, but CMSIS architecture design is still focused on professional software programmers. Microcontroller software development, as soon as Arduino was proposed in 2005, it has been a simple course towards civilians. The development has led to an increase in the number of software developers for microcontrollers, a decrease in age, and even a boost to Maker. In view of this, ARM has conducted more packaging simplification projects based on CMSIS standards. Presented mbed software standard.
Mbed did put forward more simple methods in development. In the past, the software engineer of the microcontroller had to install the development environment software on his own, but mbed was changed to a web-based development environment (Figure 2). Just apply for a free account password and login through the web page. Program development (compiler in the cloud, ARMCC C/C++ compiler).
After the program is written and compiled, it is not necessary to upload the program to the development board through the layer menu options. The development board is connected to the PC through the USB port and is considered as a pluggable port on the PC side. The USB flash drive, as long as the compiled file is dragged and dropped onto the flash drive, the upload operation is completed, and it is easy and intuitive.
Mbed development course changes
In 2009, mbed proposed that after 1.0 and 2.0 development, in 2013 and 2014, ARM and Intel also actively sought market opportunities because global semiconductor giants such as Intel and TSMC successively proposed the new market concept of the Internet of Things (IoT). Expanding technology deployments. For example, in 2013, Sensinode Oy, a software vendor in Finland, was acquired, and SSL SSL was acquired in 2014. TLS agreement software vendor PolarSSL acquired Israeli hardware encryption circuit designer Sansa Security in 2015, and acquired Bluetooth agreement and type software vendor Wicentric. Acquisition of Internet of Things encryption software provider Offspark et al.
In the wave of semiconductor industry mergers and acquisitions that opened in 2013, ARM itself was also acquired by SoftBank. Many observers talked about why Softbank bought ARM. The focus may be on 5G, V2X, etc., but there are also many Internet of Things. In the discussion.
After ARM acquired many IoT technology vendors, the acquired software was migrated to mbed, for example, after acquiring PolarSSL, it was renamed Mbed TLS, and mbed technology was expanded to be divided into mbed OS for sensor nodes, and gateway-side Mbed Device Server, also pushed the mbed version from 2.0 to 3.0, and also promoted the device-side information security technology mbed μVisor (Figure 3).
Mbed route regression
Since MBED has introduced a large number of Internet of Things related technologies, it cannot completely follow the compatibility of the original 2.0 version. The new 3.0 version becomes a fork, which is a branch of independent development, but this development has also caused the past mbed developers. Complaints. Therefore, ARM proposed mbed version 5.0 in 2016 and tried to unify the differences in the past. After mbed 5.0 was put forward, the version number obviously skipped 4.0. The main expectation is that “5.0 is the integrated version of 2.0 and 3.0.” 2+3=5.
Although it is an integrated version, mbed 5.0 inherits the original 2.0. The libraries in the past 2.0 era are almost always compatible, but not in the 3.0 version. The Internet of Things function in the past version 3.0 was reinterpreted in version 5.0, version 3.0. Considered as a short-term transition in overall development, the main line lies in the evolution of 2.0 to 5.0 (Figure 4).
In addition, ARM has further expanded the mbed development category. Since the application of the Internet of Things is mostly based on sensor measurements to the cloud, in the past ARM had proposed mbed Client and mbed Device Connector in 2015 as a technical solution for mbed devices connected to the cloud. Fast ARM launched mbed Cloud in November 2016 to replace mbed Client and mbed Device Connector and become a new cloud support technology. In 2017, ARM also enhanced the technology of sensing the ground in the field, and proposed the mbed edge to strengthen the gateway to the Internet of Things. Node management capabilities.
Based on mbed Micro:bit is booming
Mbed is a software development model and environment for the development of the people-to-people line. However, the development of control not only blows the civilian population, but also blew out the schoolchildren's style. The education sector has started to promote STEM/STEAM (Science, Technology, Engineering, Art, and Mathematics) learning. There are blocks, building-style image development environments, such as Arduino S4A (Scratch for Arduino), Google also proposed Blockly and so on.
Therefore, there are also companies based on MBED technology to develop a board for educational system for schoolchildren called Micro:bit (Figure 5). Micro:bit uses the same web development environment as mbed, without installing any software on the PC side. Development was carried out, but the development method was changed from C/C++ alphanumeric authoring development to building block modular development, and the uploading method was the same as mbed. Micro:bit setting was targeted at 11, 12 years old. Schoolchildren (Figure 6).
Micro:bit soon became a school textbook. Many governments have already purchased a large number of Micro:bit circuit boards and donated them to schools, such as the United Kingdom, Singapore, Malaysia, etc., and have promoted to more than 20 countries, and have received support from Microsoft, ARM and other technology companies. .
More matching development tools enhance mbed ease of use
As mentioned above, mbed only needs account login to use the web development environment and tools, but mbed is not limited to using the web version environment for program development. mbed also has many supporting development tools. For example, mbed also provides PC-side compilation. For example, the mbed CLI (Command Line Interface) with traditional command line interface operation; program testing with mbed Greentea (Generic Regression Environment for Test Automation, abbreviated as green tea); debugger with the mbed pyOCD library for debugging, except Misuse of firmware mbed DAPLink.
Or you can use professional program development tools such as μVision from Keil (acquired by ARM in 2005), Workbench from IAR, open source code from the GNU Compiler Collection, etc.; distributed version control of the code. On the Distributed Version Control System (DVCS), git, GitHub, mercurial, GitLab, and mbed also have their own mbed.org/code.
The mbed ecosystem is increasingly healthy
After a deeper and broader layout, the mbed ecosystem has become more robust. There have been more than 200,000 developers who have registered on the webpage, and there are more than 2 million unique webpages in the community. There are more than 10 chip vendors. , More than 20 board vendors, accumulatively launched more than 130 mbed system development boards, and many peripheral support parts, including 30 kinds of actuators, 61 kinds of communication function devices, 92 kinds of monitors, 59 kinds of expansion cards, 27 Internet of Things modules, 187 sensors, 17 robot modules, 15 storage devices, and even 8 online support services such as Twitter, IFTTT (If This Then That), etc. (Figure 7) ).
The mbed concept leads to followers/competitors
The development of mbed combined with a variety of elements such as affinity, maker culture, concept market of the Internet of Things, it seems that there is a trend of integrated operating systems. However, in fact, mbed still has similar competition standards, and it is not the only choice.
The first is Arduino, which was originally developed by Affinity. Arduino has been an 8-bit AVR architecture microcontroller since 2005. However, in recent years, it has been trying to upgrade. For example, the Arduino Zero development board was launched in 2014. Adopt Cortex-M0+ core, or introduce Arduino Due development board, the main control chip on the development board adopts Cortex-M3 core.
Second, after Intel introduced the ultra-small quark embedded processor in the x86 architecture in 2013, Intel’s Wind River also launched its instant operating system Rocket for Internet of Things applications in November 2015. February 2016 Transferred to the Linux Foundation for development, and changed its name to Zephyr, and received support from Intel, NXP, Nordic and other chip vendors.
The third is Huawei's LiteOS, claiming that 10KB of RAM memory is ready for execution, and it has been supported by STMicroelectronics, Atmel, NXP, and Silicon Labs. Mainland chip companies such as Beijing Zhaoyi Innovation, Shanghai Smart Microelectronics, and Huawei's Hisilicon Semiconductor also support it.
Fourth, Amazon hired FreeRTOS as a founding software engineer, and then launched its own version of Amazon FreeRTOS as part of Amazon's overall Edge Computing technology strategy.
All of the above four OSes are potential competing standards for mbed. The hardware resources required are also of the same order of magnitude, and they can operate with 16KB~64KB RAM memory. As for other well-known embedded operating systems, such as OpenWrt or Google. Android Things, both in the 8MB~64MB class, do not belong to the same level as mbed. The high and low complementary relationship is more than overlapping competition.
In the three software standards competing with mbed, the development of Arduino is not smooth. After the software implemented in the 8-bit AVR architecture is transplanted to the 32-bit Cortex-M architecture, there are still many bugs. In addition, most makers still prefer the original 8-bit system, and only a few use 32-bit yuan.
In terms of Zephyr, since Intel stopped the development of embedded Atom and Quark processors in 2017, Zephyrton's lack of support for echoing chips has greatly reduced momentum and will require new support or new directions.
Therefore, mbed's main competitor is estimated as Amazon FreeRTOS. First, before FreeRTOS is supported by Amazon, FreeRTOS has been used for more than 10 years. Second, it has acquired Amazon's blessing, including Amazon's official cloud service (Amazon Web Services, AWS). Support with Amazon's official hardware products (Fire series, Dash series). Amazon is the world's largest public cloud (Public Cloud) operator, in the Amazon hardware products also pay attention to small profits but quick turnover, and is not limited to open or licensed technology, such as Alexa Voice recognition technology is widely used in non-Amazon official hardware products, which are helpful to promote Amazon FreeRTOS.
However, Amazon FreeRTOS still needs to strengthen its affinity for development, and since Amazon announced support until November 2017, only four official development boards are approved. However, as mentioned earlier, mbed has reached 130, and mbed still has several advantages.
In addition, mbed may also compete with other embedded operating systems, such as μC/OS-II, embOS, which are both lightweight. These operating systems have existed for some time. If you compare with FreeRTOS mode, you can get support from some international technology companies. Development may change immediately. Or other new embedded operating system projects that have emerged in response to the concept of the Internet of Things, such as the Mongoose OS proposed by the Irish company, or an embedded operating system that has existed for a long time but has begun to focus on the Internet of Things, such as Contiki.
Finally, mbed's follow-up development may not be as expected, as Linaro's original intention has been implemented by Android, but even if ARM's original circuit licensing business is not lost, it is only others who dominate its software ecosystem, as Intel dominates x86. The chip, but it also does not dominate the x86 software ecosystem, but Microsoft, led by the Linux community.