ARM DS-5 Streamline
From OMAPpedia
Contents |
[edit] Introduction
DS-5 is a tool available from ARM which provides an Eclipse user interface for debugging and perform profiling analysis. The profiling tool is provided as an extention via the Streamline Eclipse plugin. In this document, I will try to describe how to prepare an OMAP4 environment and also point to the documentation on how to install the tool. Moreover, as I went through adding more features to the tool, I'll go through the steps on how to add my extention too.
[edit] Prepare an OMAP4 board
The best is use an OMAP4 Pandaboard and install the latest available software to you. It can be either a TI Internal Ubuntu release or just the latest Ubuntu software. All the information can be found here: http://omapedia.org/wiki/OMAP_Ubuntu_Main. In the following section, you can also find information on how to install a Linaro image for Pandaboard, which is also Ubuntu based. This information is contained in David Stubbs' blog.
Once you have a Pandaboard up and running you can go ahead.
[edit] DS-5 installation and setup
First, on your Ubuntu Desktop PC, you will need to install DS-5 software tool.
- Either use the full version (license or trial period): http://www.arm.com/products/tools/software-tools/ds-5/index.php
- Or you can also use the community version: http://blogs.arm.com/software-enablement/633-arm-ds-5-community-edition-enabling-the-android-developer-community
All the steps are very well described in David Stubbs' blog: http://blogs.arm.com/software-enablement/545-debug-performance-analysis-of-linaro-images-with-arm-development-studio-5/
[edit] Adding a new feature to ARM Streamline
As an exercise, I decided to go through the gator kernel module source code and see if I could add an interesting feature. I found one that was missing for me: the CPU frequency. Actually, it would be an interesting value to display in the UI as on OMAP4 boards we support different frequency levels depending on the system load. Following the ARM recommendations (http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka14989.html), I took the mmaped.c sample code and made my proper event tracking cpufreq.c. All the source code is available here: https://gitorious.org/ubuntu-omap/arm-gator
Files that have been changed compared to original Linaro source code DS5 v5.8: http://git.linaro.org/gitweb?p=arm/ds5/gator.git;a=summary
- https://gitorious.org/ubuntu-omap/arm-gator/blobs/master/driver/gator_events_cpufreq.c
- https://gitorious.org/ubuntu-omap/arm-gator/blobs/master/daemon/events-omap.xml
Note that DS5 version 5.8 has an issue with displaying constant values. The issue is acknowledged by ARM engineers and a fix should come in versions after 5.9 release. See community support thread here: http://forums.arm.com/index.php?/topic/15510-ds-5-gator-module-customization/page__gopid__38049#entry38049