electronics-journal.com
04
'22
Written on Modified on
Mouser News
Embedded Evolution: How the Embedded Industry Keeps Moving Ahead
This short blog takes a broad, holistic view of the embedded system development process and how it continues to change and adapt.
Over the last thirty years, the process of embedded development has changed considerably. The software toolchains used for coding, compiling, and debugging have also continued to evolve. Increasingly sophisticated and highly integrated hardware capabilities and industry trends, such as low power, connectivity, and security, all place demands on incorporating new toolchain features such as board support packages, drivers, and libraries.
The Evolution of Embedded Development
Not so long ago, most embedded systems lacked any connectivity. Security was not a consideration either. Their purpose was to control an appliance, for example, an industrial boiler controller or a domestic washing machine.
Many embedded developers learnt to program microcontrollers using bare-metal machine code techniques. Programming using opcodes was time-consuming, mind wrenching, and tedious. Thankfully, the next step to using assembly language eased the burden for early developers and paved the way for the shift towards adopting high-level languages like C.
C was initially developed for and became synonymous with the Unix operating system in the early 1980s. Designed to provide efficient, low-level access to memory resources and map to the machine code instructions of the underlying processor, it became a natural choice for embedded systems.
To encourage the adoption of their microcontrollers (MCUs) and microprocessors (MPUs), silicon vendors found themselves investing in developing integrated development environment (IDE) toolchains. The concept of open eco-systems didn't exist, leading most developers to build and maintain their own sets of libraries and functions. Also, each vendor's instruction set architecture was unique, and they typically sold drivers, libraries, and other proprietary IP to go with the devices.
How times have changed!
Embedded Development Today; How We Got Here
An embedded developer starting their career today enters a very different world. In the main, the embedded development industry is open. The availability of Arm's licence-based architecture came at a time when many silicon vendors found themselves burdened with the costs of advancing, promoting, and supporting their proprietary architectures in an increasingly competitive industry. Over the years, many leading MCU and MPU vendors have reduced their company architectural product offerings and increased their line-up of Arm-based devices. With an Arm core approach, vendors have benefited from the growing adoption of the Arm architecture and Arm's R&D investments. These vendors now differentiate their offerings from other Arm licensees by adding peripheral connectivity blocks, wireless transceivers, power management, and analogue capabilities.
The move to Arm also signalled a change away from vendor-specific IDEs as independent software companies established themselves. Vendor IDEs still exist, and in some cases, they moved capabilities forward quickly by acquiring IDE start-ups.
To ease the burden on developers facing an increasingly complex set of hardware devices and feature sets, vendors now invest in providing comprehensive board support packages and software resources. Examples include open-source libraries and firmware that abstract low-level hardware functions into convenient and straightforward high-level function calls.
The launch of Arduino and similar single-board computers (SBCs) such as BeagleBone and Raspberry Pi kickstarted an era of open-source development. These boards established eco-system communities of hardware and software companies and opened up microcontroller development to innovators and students. Linux became the dominant operating system on many SBCs, and wide availability to a real-time operating system leapt forward with the launch of FreeRTOS.
Today, the embedded development industry is all-encompassing. To further speed prototyping and time-constrained development cycles, vendors provide comprehensive evaluation modules, development boards, software development kits, and reference designs. As application trends such as the industrial internet of things (IIoT) established the priority for low power, battery-powered connected systems, vendors responded with additional sleep modes for the processor core and peripheral blocks. Balancing a processors standby and active power consumption profiles while quickly responding to application interrupts has become a key development challenge.
Low-code, event-driven scripts, and languages such as Node-red and light-weight communication stacks such as CoAP and MQTT have added an exciting aspect to embedded development. These methods are well suited to developing IoT/IIoT applications for resource-constrained ultra-low power microcontrollers.
Platform Deployments and Cloud-based IDEs Drive the Embedded Industry Forward
The embedded industry has recently experienced a wave of integrated hardware and software solutions such as Zerynth. These systems deliver a complete hardware platform and cloud-based infrastructure approach to rapidly provisioning an IoT/IIoT deployment. For an industrial automation machinery provider, for example, developing a bespoke embedded system and hosting a secure and reliable cloud compute infrastructure is daunting. It takes substantial time, involves considerable cost, and requires access to skilled expertise. Using commodity hardware allows IIoT application providers to differentiate their propositions via software functionality and incorporate necessary data security and encryption capabilities.
Collaborative, embedded development is now possible as many IDEs, such as TI Cloud Composer and Arm mbed, increasingly move online. Some cloud IDEs also support shared private and public GitHub code repositories, an essential aspect of many open source projects. Multi-platform and multi-architecture embedded development platforms such as PlatformIO offer a viable "one-stop" collaborative alternative to traditional toolchains with a complete IDE, repository, debugger, and static code analysis tools in a single online environment. Meanwhile, independent IDE and tool vendors, such as MikroE and Segger, are sharpening up their tools to incorporate RTOS and support new instruction set architectures such as RISC-V.
What’s Next?
Online development and collaboration platform usage have grown significantly during the pandemic, as many teams adjusted to working remotely. Early indications point to this approach continuing for the foreseeable future. As the embedded development world becomes increasingly virtual, we're likely to see cloud IDEs and development collaboration tools incorporate even more features and innovations in the coming year.
In September 2020, embedded tools vendor MikroE launched its Planet Debug service. Based on their Necto Studio IDE, they have removed the need for the hardware target device from the developer's desk. With Planet Debug embedded, developers can program and debug remotely anytime from anywhere in the world. Remote MikroE development platforms at MikroE are available within Necto Studio, and a video feed shows what is happening with the board in real-time.
It is early days for working with virtual hardware platforms, but innovation is at the heart of the embedded development community.
www.mouser.com