Use Case: Max Decodes JPEG Image Data

The following use case write-up comes from Mayank (Max), a Computer Engineering graduate student at Arizona State University.

At present, I am working as an Embedded Software Engineer Intern at Serious Integrated, Inc., located at Chandler, AZ. We develop touch screen-based display modules and communications modules for various commercial and industrial applications. With the Serious Human Interface™ Platform Total IDE (SHIPTide), you can build your first GUI, download it to hardware, and see it run in minutes.

I am working on decoding JPEG images on Renesas’ SuperH processor running Micrium’s uC/OS-III real-time operating system. I have to check whether the decoder is actually fetching and decoding the correct byte from the heap memory. While I was struggling with this, I was invited to try out the Initial State’s beta software.

My first challenge was to generate log files from an embedded platform to be visualized on Initial State’s cloud-based service. For that, I had to implement the functionality of writing text-based log files to some external memory (like an SD card) in the decoder.

Once I was able to successfully generate log files, I had no idea how to use them to visualize them using Initial State’s platform. This is where their support came in useful. Jamie, their CEO, explained to me in detail how I can generate meaningful log files to be analyzed. Upon following his instructions, I was successfully able to visualize my data and lo, I can see the bug right in front of eyes!

At first I used the Lines tool to view my data. Here I could see two things. The first was the sample point from where the decoder was reading erroneous byte values. You can see the point marked by the blue cursor in the following screenshot. After that point, the yellow and the pink signals are different.

max screenshot 1

The other thing that I noticed was that the decoder was reading the same data over and over again. This became clear when I deselected one of the signals. In another screenshot below, you can see that after the data is getting repeated after the blue cursor.

max screenshot 2

Next, I proceeded to use the Waves tool. It kind of tells the same thing, but through a different visualization. It was easier to take a glance at the entire 5,000 data points this way. Screenshot attached below.

max screenshot 3

Initial State helped me detect and solve the bug in hours that has been troubling me for days! This is when I realized why Initial State exists! I feel that Initial State’s tools are really powerful and could help engineers do what they do best – develop new solutions rather than detecting and fixing bugs!

As for the current software tools that Initial State has, it would be a great help if they could have more support for digital data in binary and hex forms, since this is what firmware engineers like us deal with most of the time! Also, if we can have greater flexibility in generating the type of log files (like different formats, not just CSV or similar), it’d be awesome.

Note: Thanks for the write-up, Max! As per your last point, we’re actively speaking with firmware engineers like you to learn more about what you need. We plan to support additional log file types and look forward to rolling out additional features to make your job easier. Stay tuned!


1 comments On Use Case: Max Decodes JPEG Image Data

Leave a reply:

Your email address will not be published.

Site Footer