A clear indication that you may have a deadlock problem is when multiple tasks suddenly stop executing, although no higher priority tasks are running.
Percepio is looking for a customer-facing engineer with solid skills in embedded software development. The main responsibility of this position is technical support, mainly pre-sales support.
Users of Express Logic ThreadX can now upgrade to Tracealyzer 4 and benefit from many of the new features we have been adding to the product over the last year.
Within Tracealyzer's trace view, tasks, events and state machines are now organized into view fields, collections of tasks, intervals or events. In this post, we are going to examine how you can use those views to simplify working with Tracealyzer.
By default, the Tracealyzer Recorder Library allows for tracing two kinds of information: (1) RTOS kernel events such as context-switches and RTOS API calls, and (2) User Events in the application code, such as debug logging, state changes and variable values. With the release of Tracealyzer 4.2.9 we added a third way to trace your [...]
Just in time for the winter break, we have released Tracealyzer 4.2.9 with some new improvements and bug fixes. Better support for large systems with many actors (tasks and ISRs), as the trace view can now hide inactive actors automatically. Tracealyzer will ask about enabling this feature if there are too many actors to fit [...]
On December 6, Percepio released version 4.2.8 of Tracealyzer, with support for Wind River VxWorks. VxWorks users can now take advantage of the new features in Tracealyzer 4, the largest update ever to our flagship application.
Xilinx development kit ZC702 features a Zynq 7000 programmable SoC, lots of RAM and on-board I/O connectors ranging from HDMI to Gigabit Ethernet and USB. We set out to build a Tracealyzer demo application for this board, based on FreeRTOS and lwIP, with live trace streaming over Ethernet. During this work we discovered an interesting issue [...]
Computer vision has become a core feature for all sorts of embedded systems. Therefore we have developed Tracealyzer for OpenVX, the world's first trace profiler for OpenVX and Embedded Vision/AI processors, in collaboration with Synopsys.
What if you want to visualize some application data in Tracealyzer, measure the time between two events or monitor a state machine? In this post, we will show how you can set up this kind of custom logging.
Good news! We have now updated both the Eclipse plugin and the Atmel Studio 7 plugin for Tracealyzer 4, making it even easier to analyze and debug RTOS-based software using Tracealyzer. The Eclipse plugin works with most Eclipse-based IDEs for Arm-based MCUs, such as Atollic TrueStudio, MCUXpresso, Simplicity Studio, etc. Both plugins support snapshot tracing of FreeRTOS, [...]
The Tracealyzer recorder for FreeRTOS, SafeRTOS or Micrium µC/OS can be configured to stream the trace data via any interface you might have available. If you have designed your own custom stream port but are having problems getting a reliable transfer or sufficient throughput, there are several things you can try.
Have you ever seen your embedded system behave strangely and had that sinking feeling that you might have a memory leak? Tracealyzer offers several different methods to detect memory leaks.
Quite a few embedded software developers don’t know whether their applications meet their timing requirements. In today's Tracealyzer Hands On post, we will explore how to use Tracealyzer to verify task timing and scheduling.
Tracealyzer version 4.2 features a completely rewritten main trace view, and adds support for, among other things, Wittenstein SafeRTOS and tracing via ST-LINK debug probes. It also runs on Linux, so embedded developers using Linux hosts are now able to upgrade to the new generation of Tracealyzer.
One of the biggest problems in embedded development today is understanding what a software stack or demo that you didn’t write is doing. In this post, we’ll examine how we can find this out using the Tracealyzer communication flow diagram.
In our new blog series Hands On, which launches today, we will examine many ways that developers can Tracealyzer besides debugging.
We are happy to announce an update of Tracealyzer, v4.1.5, bringing trace streaming support for IAR Embedded Workbench, allowing IAR users to fully benefit from the powerful capabilities of Tracealyzer 4 using IAR I-Jet probes. This leverages the ITM module found on most Arm Cortex-M3, M4 and M7 MCUs. With a fast debug [...]
Good news! As of version 4.1 (just released) Tracealyzer supports ITM tracing for ARM Cortex-M3, M4 and M7 MCUs. This is initially available for FreeRTOS and Micrium µC/OS-III, but support is planned for SafeRTOS and ThreadX soon. With a fast debug probe like Keil ULINKpro or ULINKplus, ITM allows for high data rates and low [...]
This spring has seen the release of Tracealyzer 4, Percepio's most significant update to Tracealyzer so far, but that is not all. We have also simplified our licensing options and introduced some new ones, including an all-inclusive subscription license that allows you to use Tracealyzer with all of our supported operating systems. No matter what [...]
"Top Ten" is a well-tested catch phrase that can be attached to restaurants in London, high buildings over the world and, well, just about anything. And rest assured there's also a list of the Top Ten Bugs in Firmware. Written by industry veteran Michael Barr, former editor-in-chief of Embedded Systems Programming magazine and author of [...]
Tracealyer 4 took Embedded World by storm. Interest was intense and people were really impressed. During the show, we asked seven industry leaders if we could film their reaction to Tracealyzer 4. All agreed, and this is the result … Tracealyzer 4 brings five major improvements: Brand new user interface – fresh, [...]
Embedded evangelist Jacob Beningo will present a free webinar on designing and debugging IoT applications. The webinar features topics like advanced RTOS application design techniques, event chaining and setting up an embedded connection to Amazon Web Services (AWS). Jacob will also use Percepio Tracealyzer to show how to trace an IoT application to not just understand how [...]
Do you struggle with bugs that are difficult to replicate and isolate? Most embedded software developers encounter such problems now and then. With increasingly complex multi-threaded RTOS-based systems, such issues are likely to become more and more common in the future. They can be very difficult and time consuming to solve, and sometimes developers resort [...]
A completely revamped user interface and a much improved live view are two of the most prominent features of the upcoming Tracealyzer 4, which we showed for the first time at Arm TechCon in October. We put together a series of short introduction videos where Tracealyzer 4 shows off its abilities. First out is the [...]
Deadlock is a well-known phenomenon even outside the embedded world. For a general description of deadlock, see this article; it is far better than anything I could ever hope to write. But I digress – back to deadlocks in RTOS-related programming. A clear indication that you may have a deadlock problem is when multiple tasks [...]
Priority inversion at work – the high-priority (red) task is blocked by lower priority tasks. The central idea underlying an RTOS with a fixed-priority scheduler is that a high-priority task should be scheduled ahead of one with lower priority. If necessary, the RTOS can even pre-empt the running task, forcing it to yield the CPU to [...]
When you have a task in your system that is supposed to execute at regular intervals, say for instance that it needs to read a sensor value every 5 milliseconds, then you have a system that is sensitive to random delays – also known as “jitter”. When your task experiences jitter, it sometimes has to [...]
In embedded systems using multitasking, you may run into a situation where some of your tasks run slowly or not at all. This is called task starvation (the affected tasks are starved of CPU time) and it can happen for a number of reasons; today we will look at one particular reason – a fixed [...]
There is no doubt a learning curve when you begin using a real-time operating system (RTOS) in your development. You will work at a higher abstraction level, using more or less parallel tasks rather than just subroutines, and you will need to consider how your tasks shall share data and the processor time with each [...]