ABC Company Conference
Online German

„Nothing is so constant as change."
(Heraclitus, Greek philosopher)

Newsletter November 2023

                                              - The best decision
                   - Does TRACEALYZER fit into my project environment?
                                          - Dont reinvent the wheel
- Easy custom integration 
 - Remote Edge Observability with DevAlert
- Connect headless devices easily 

 Dear Customer,

Every developer wants universally applicable tools for their embedded development. However, hardware (processor type) and software (RTOS) architecture can limit the choice, making it a decision for the second-best rather than the best tool - even if you are in the mainstream. 

This is part of the reason why Software Development Kits (SDK) are becoming increasingly popular - even more so if they are easy to use and deploy.

The best decision 
SDKs allow you to decide on the best project tool and make its use possible for your own project.

You know the TRACEALYZER from Percepio. It provides trace observability for system-level debugging, verification and profiling for embedded, edge and IoT systems. Its advanced visualization and analysis capabilities enable product developers to reduce development time by debugging 10x faster.

Tracealyzer also helps developers verify software to ensure reliable operation, optimize software, and ultimately improve product performance.

However, does Tracealyzer fit into any project environment? To any C/C++ application? To every RTOS? Only if the tool can be fully integrated into the existing environment can you get the full benefit from the tool.

Does TRACEALYZER fit into my project environment?
Tracealyzer is available "out-of-the-box" for several popular real-time operating systems (RTOS), including FreeRTOS, ARM Keil RTX5, Linux, Zephyr and Azure RTOS ThreadX, for which Percepio provides and supports the integration code. 

To enable developers for other RTOS to benefit from trace observability, Percepio's first step was RTOS-independent bare-metal support in Tracealyzer v4.7, which enables application-level tracing for any C/C++ application

The new Percepio Tracealyzer SDK enables application and platform developers to create custom extensions to enable full trace observability for all C/C++ systems.

Tracealyzer SDK is a software development kit that enables platform developers to create custom observability solutions using Percepio Tracealyzer.

The new Tracealyzer Software Development Kit (SDK) provides a broader solution for any C/C++ software, enabling more developers to take full advantage of Percepio Tracealyzer's powerful capabilities, including RTOS awareness no matter what RTOS is used.

Dont reinvent the wheel
The Tracealyzer SDK allows developers to create their own extensions for full observability, including RTOS awareness and API tracing for deep runtime insight.

This is an excellent way for processor vendors and software platform providers to offer market-leading observability to their customers without having to reinvent the wheel.

The Tracealyzer SDK is suitable for both application developers and platform developers, such as silicon vendors, RTOS developers and middleware developers. All can benefit from the Tracealyzer SDK by achieving more design wins through better tool support.

For silicon vendors, the Tracealyzer SDK enables detailed observation not only at the RTOS and application level, but also for board support packages (BSPs), peripheral drivers, and hardware abstraction layers, increasing productivity for both customers and application engineers. This accelerates customer development and thus reduces time to production order.

Easy, custom-specific integration
The Tracealyzer SDK provides documentation and code samples that enable Percepio customers and partners to create custom integrations of Percepio TraceRecorder, Percepio's open-source event tracing library in C source code. Only a handful of TraceRecorder function calls are required to enable profiling and optimization of CPU load, software timing, and dynamic memory allocation, including support for identifying memory leaks.

Additional instrumentation can be added in any C/C++ API relevant to verification and debugging, such as communication stacks, drivers, and hardware abstraction layers. The Tracealyzer SDK also facilitates integration with AUTOSAR-based automotive software, and support for AUTOSAR "runnables" is already included.

The TraceRecorder library is not only intended for development, but can also remain active in production software to analyze anomalies during operation. This use case is supported by DevAlert, Percepio's cloud-connected solution for remote edge observability.

Remote Edge Observability with DevAlert
DevAlert alerts developers to system anomalies with detailed diagnostic information, including Tracealyzer traces, core dumps and other data types.

With the Tracealyzer SDK, DevAlert users can extend tracing and get more detailed information about issues and anomalies during customer operations, such as errors and failures due to elusive bugs or cybersecurity alerts.

TraceRecorder has been heavily optimized to be suitable not only for use in resource-constrained devices such as microcontrollers. Even in such devices, tracing an event is about 1000x faster than "printf" logging on a typical 115200 baud UART interface.

Therefore, the performance degradation caused by the TraceRecorder library is usually not noticeable and is often more than compensated for by the software optimization capabilities.

The TraceRecorder library is available on GitHub under the Apache 2.0 license. The Tracealyzer SDK is available here and can be used by any Percepio customer with an active Tracealyzer subscription.

Percepio provides commercial technical support for customers and partners who need assistance developing Tracealyzer SDK extensions, as well as for platform developers who wish to distribute Tracealyzer SDK extensions to customers with Percepio technical support. Open source projects can be supported on a case-by-case basis at no cost.

Learn more and access the Tracealyzer SDK. 

Connect headless devices easily
SEGGER's emUSB-Web offers a new, simplified way to configure displayless devices, so-called headless devices.

Connecting such devices is now as easy as plugging in a cable. emWeb uses a USB charging port to connect to a PC, enabling convenient configuration via a web browser.

The technology is available for all USB devices and significantly improves the user experience. Buttons or a display on the device are no longer necessary, as any standard PC can be used to operate the device.

A printer is a good example of using emUSB-Web. Instead of a conventional mini touch screen, emWeb via USB allows the printer to be configured without a display.

By connecting the printer via USB, WLAN or IP addresses, paper types, print quality and status information can be easily configured on the large screen of a PC. This not only saves manufacturers the cost of a display, but also eliminates the challenges of placing one. At the same time, the user experience is greatly improved.

Virtually any IoT device with a USB port can have a streamlined and simplified user interface with the use of emUSB-Web. SEGGER also uses this technology in its leading J-Link debug probes. emUSB-Web also offers significant benefits for headphones, speakers, solar inverters and many other products.

For more information on how it works and the savings in code and RAM, see the blog post "A whole new way to interact with headless devices" by David Noverraz or visit the emUSB-Web page.

A little more than seven weeks until Christmas - does that scare you? I hope not - in any case, the countdown to achieving our annual goals is on.

Let's make the most of the remaining time in 2023. In any case, I have provided you with ideas for your project!

Yours sincerely,
Marian A. Wosnitza

„Those who don’t want to do anything wrong,
 will not do everything right.“
(Franz Luven, German journalist)