element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Embedded and Microcontrollers
  • Technologies
  • More
Embedded and Microcontrollers
Blog Debugging Embedded Systems: the Problems and Solutions
  • Blog
  • Forum
  • Documents
  • Quiz
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Embedded and Microcontrollers to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: Former Member
  • Date Created: 10 Jun 2016 10:57 AM Date Created
  • Views 873 views
  • Likes 1 like
  • Comments 5 comments
  • somnium
  • ide
  • drt
  • somniumdrt
  • eclipse
  • arm cortex-m
  • live expressions
  • debugging
Related
Recommended

Debugging Embedded Systems: the Problems and Solutions

Former Member
Former Member
10 Jun 2016

This blog is the first in a series on the new debug features in SOMNIUM DRT.

We all know from experience (and this is confirmed by many studies) that debugging takes up a significant part of the time in software development. Software systems are complex and debugging is hard. This is especially true for embedded systems where there may be real-time constraints on when data is received or sent, the timing of interrupts, and so on. This means that traditional techniques, such as breakpoints or changing to code to print out state information, cannot be used because they will drastically change the timing and therefore the behavior of the program. Program flow is often controlled by asynchronous and external events, for example inputs from touch sensors and other peripherals. Therefore the real-time behavior of the program cannot be understood simply by looking at the control flow in the source code.

SOMNIUM DRT includes features to support debugging embedded systems. One of these enables the live, non-intrusive display of interesting data. Another is the ability to trace program flow so you can step backwards and forwards through the execution history to see how you to to a particular state.

SOMNIUM DRT is is a set of development tools for ARM Cortex-M based devices [such as the Kinetis and LPC devices from NXP and the STM32 devices from STMicroelectronics]. It is fully compatible with industry-standard tools such as the GNU toolchain and Eclipse IDE. DRT uses our patented techniques to produce highly optimized code by exploiting information about the embedded processor, the memory system and other peripherals to deliver improved performance, lower code size and reduced energy use.

It also includes some great debugging tools such as trace, live expressions and fault diagnosis.

Live Expression View

The first of these is the live view of expressions. This enables you to see the value of global variables, and expressions using them, change as the program runs. This is minimally intrusive - it cycle-steals from the bus to grab the data but does not affect the processor itself - so there is far less chance that it will change the behavior of the running program. There are no source code changes required, you just need to click the icon in the expressions view to enable live updates. The debugger will periodically read the selected memory locations and update the values in the expressions view without interrupting program execution.

This video is unavailable.
You don't have permission to edit metadata of this video.

A free trial of DRT is available. DRT is able to automatically import projects from other Eclipse-based development environments, making it simple to migrate your projects to DRT so you can quickly see the benefits for yourself. Download your free trial today and try out these powerful debug features for yourself.

  • Sign in to reply
  • Former Member
    Former Member over 9 years ago in reply to krish2nasa

    In the currently released version of DRT, the Live Expression View is only supported with the SEGGER debug adapter. We now have it working with P&E and this will be included in the next release.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • krish2nasa
    krish2nasa over 9 years ago

    Do all these features (including Micro Trace Buffer) supported with PeMicro Multilink Universal FX debugger?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • DAB
    DAB over 9 years ago in reply to Former Member

    True, debugging begins as soon as something does not test to expectations.

     

    That is why a good test plan has enough component tests included to make sure that the hardware is working to spec.

     

    Then you can trace through the software to see where the data is being incorrectly processed.

     

    That is why I always test one thread at a time.  It limits your focus and keeps interoperability issues to a minimum.

     

    DAB

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • Former Member
    Former Member over 9 years ago in reply to DAB

    Hi DAB,

    I think that testing and debugging are rather different processes. However, I agree completely that having a good specification and a test plan right up front can reduce both the time spent debugging and the time spent testing.

    Jamie

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • DAB
    DAB over 9 years ago

    In formal engineering, we use the term testing.

     

    Test planning begins with requirements and is fleshed out during design.

     

    Often, the level of effort for testing is equal to or exceeds the effort to design and build a device.

     

    So some tools can help, but good testing/debugging begins with a full understanding of your system and what it needs to do, followed by a defined test to verify that the device works as expected.

     

    I have been on many a program where little or no budget was spent on test planning and disaster usually followed.

     

    DAB

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube