Continuing our annual look back at the year’s top articles, we list the top 10 most-read articles of 2019. Perhaps reflecting the widely diverse requirements facing developers these days, this year’s list features a broad range of topics with some emphasis on low-power design, optimization, security and Flash. Read on for the top 10 articles of 2019 as determined by readership. If one of your favorites is missing, please add your top article in the comments below!
State machines have been the focus of design for many years in the hardware arena, but they are relatively new in the software arena. There are software packages to help automate, but in software there is still difficulty in covering all of the conditionals. The goal of this paper is to apply long-established principles, add some original detail, and thus allow individuals to routinely design their own state machines in software with no missed conditionals.
While assembly language is the best choice in this case, (almost all young) hardware engineers prefer nowadays to use C language even when the program is a relatively short control program. These 10 code snippets do nothing special other than offer a proof of the concept. More clever (and sophisticated) tricks can be found here in the references listed at the end of this article.
When ARM CPU cores were first validated though adoption by some of the premier names in computing including Apple, usage exploded especially for mobile applications. In retrospect the advantage was obvious – any device could be made much more flexible and feature-rich with an embedded processor. At the same time, that capability could be upgraded in software: A single hardware platform could drive multiple product releases through software-only upgrades.
Getting started with embedded development can be difficult and expensive, but in this article I will show you how to spin up FreeRTOS and the lwIP TCP/IP stack on a WiFi chip with a secure embedded web server in less than 30 minutes on a super low cost device.
Firmware over-the-air (FOTA) updates are required to remotely fix bugs and make enhancements to systems, including introducing new features and services. The use of FOTA is gaining momentum, thanks to advances in system connectivity and an industry shift toward more programmable silicon architectures that allow seamless FOTA as nonvolatile memories become more reliable, safe, and secure.
Securing the Internet of Things is critical not only for the integrity of data streams and software within each IoT application, but also for the integrity of the enterprise resources tied into those applications. IoT security is a complex problem, requiring a systematic approach for understanding possible threats and corresponding mitigation methods.
Debugging is an integral part of embedded systems as much as designing. Both can be rightly referred as two sides of the same coin. Considering the recent growth of the embedded systems in IoT space it is an advantage that engineers are equally good in debugging as they are in designing, but when an issue occurs at system level it becomes difficult to find out the root cause.
A trivial approach to IoT is to upload everything to the cloud and handle processing remotely. While this may work for small and isolated systems, when a plethora of systems are trying to upload information, system designers will need to consider the cost of network vs. local storage and processing. In this article, we will examine the often neglected but most important aspect of any sensor node – local memory.
Whether an embedded system runs on batteries or is connected to the grid, designing a system that is green and minimizes energy consumption is a common requirement for most systems. One of the biggest energy consumers in a modern embedded system is the microcontroller and understanding how to minimize its energy consumption is critical. In this post, we are going to look at the fundamental low power modes in the Arm Cortex-M processor core and how you can use them.
Data reliability being the most critical aspect of data storage, we need to either avoid errors or need a way to detect and correct them. In this article, we will discuss the different methods used to avoid errors, the methods to detect the errors which cannot be avoided and the techniques used to correct the errors. We will first discuss wear levelling used to avoid or reduce the effect of memory wear. In the second section we will discuss bad block management used to track and avoid the usage of bad blocks.