Proving the Business Case for the Internet of Things

Percepio detects bugs in IoT devices

Steve Rogerson
March 3, 2020

Swedish company Percepio has found a way to detect bugs in IoT devices and fix them before they cause problems, according to vice president Mike Skrtic (pictured), speaking at last week’s Embedded World in Nuremberg.
The company has announced DevAlert, a cloud service for IoT product organisations that provides immediate awareness of firmware problems in deployed devices and visual diagnostic information to speed resolution.
Embedded software applications typically contain three to five missed bugs per 1000 lines of code at the initial release. DevAlert is designed to make developers aware of these bugs as soon as they occur. The sooner an update can be provided, the fewer end-users will be affected. Reducing the time-to-repair for device software bugs, from the first symptoms until a correction is deployed, can result in higher product quality and more satisfied customers over the lifetime of the product.
“You get bugs in release code,” said Skrtic. “There is no way to stop them. Even Nasa gets the odd bug. What this does is leave the trace recorder in the code and if there is an error you get the last 500ns of trace data so you can see what happened up to the fault.”
DevAlert, which during its beta-testing period was known as Device Firmware Monitor, is a secure and scalable cloud service that works with Amazon Web Services (AWS) IoT Core and supports Free RTOS and Thread X firmware. Support for other RTOSes is available on demand.
“Our customers said they wanted something in IoT devices because if they send it up to the cloud, it is really hard to do,” said Skrtic. “It is more difficult than most people realise. But with ours, you can just plug it in. We deploy it on the devices, you get the errors instantly and fix the bugs. The error report then goes to the cloud so they can determine what the problem is and fix it before others have the problem.”
DevAlert comprises three components:

  • Classification engine – a fully managed cloud service that categorises alerts into unique issues and notifies the developers whenever new issues are found. This reduces the amount of analysis needed by the developers and shields them from being flooded with notifications, in case the same issue is detected in many devices. All alerts are stored in the database and can be retrieved for inspection, as well as for statistics reports that help developers assess the health of their fleet of deployed devices.
  • Firmware agent – a memory-efficient tracing recorder that provides a solid foundation based on 15 years of experience in RTOS event tracing. A memory buffer of just 4kbyte on the device can hold up to 1000 software events; four to eight times more than comparable event trace recorders. This is critical for IoT device developers as it allows even memory-constrained systems to store traces of sufficient length, and maintains low operational costs for cloud upload and storage.
  • Tracealyzer – an intuitive visual trace diagnostics tool that has been in development for more than a decade and has strong support from RTOS and silicon vendors. Tracealyzer enables developers to view reported traces, including events leading up to the error, in both high-level system overviews and a number of detailed views that allow developers to inspect the sequence of events from different angles and identify issues that cannot be seen using traditional debugging tools.
Percepio works closely with semiconductor vendors who have strong positions in the IoT development space to help their customers succeed. A number of partners have worked with Percepio to bring beta versions of DevAlert to their customers for testing.
“Utilising DevAlert, Percepio’s remote debugging tool, device manufacturers can now quickly identify and fix software in field-deployed IoT products,” said Gary Sugita, director of marketing at Cypress.
Laurent Hanus, ecosystem marketing manager at ST Microelectronics, added: “As good as the STM32 family of 32bit Arm Cortex-M MCUs is, and as powerful as the STM32 development ecosystem is, the underlying application code invariably contains bugs that can be difficult to find and fix. Unobtrusively running a powerful trace diagnostic programme such as DevAlert can help developers catch and squash bugs to minimise customer disruption.”
Also at the show, Percepio introduced support for embedded Linux systems in Tracealyzer v4.4. This latest version includes better visualisation and analysis capabilities designed for embedded Linux application developers and is packaged in an intuitive, modern user interface.
Tracealyzer transforms low-level trace data into a rich set of overviews enabling top-down exploratory analysis, making it easy to spot anomalies and drill down to see the details. This avoids many hours of frustrating guesswork, providing faster a higher level of confidence during debugging, verification and performance optimisation.
The Tracealyzer for Linux leverages the widely supported LTTng tracing framework, and has been verified with Wind River Linux LTS 2019.