Debugging a Shared Memory Problem in a multi-core design with virtual hardware
Embedded.com, (05/20/08, 12:20:00 PM EDT)
With multicore systems becoming the norm, software developers have found the debugging of such systems, using a physical hardware development board, to be very challenging, particularly when it comes to the integration of applications sharing data across multiple cores.
Over the past few years, the virtual hardware platform concept has emerged as a key new capability for software developers to improve their ability to debug software applications.
Virtual platforms are simulations of the device hardware and the environment it evolves in. They represent a new solution for software developers to improve their productivity. The benefits of virtual platforms for software development come from three major areas.
First, they remove the dependency on the physical silicon availability. Second, they provide a far superior solution for debug and analysis. Third, they provide a simplified and more easily sharable environment to the users.
Traditionally, software developers have used three different types of environments for the execution of the software under development: native compilation to the host development system or an OS simulator, reference development boards, or instruction set simulators. Each of them has been used successfully in the context of a simple hardware platform.
However, as hardware platform capabilities are increasing with multi-core support, these approaches are exhibiting some significant limitations, including limited observability and controllability of the hardware, poor representation of the final device hardware, and limited scalability. This article will demonstrate how a virtual platform can be used to debug a shared memory problem on a multi-core platform.
E-mail This Article | Printer-Friendly Page |
|
Related Articles
- Virtual Prototyping Environment for Multi-core SoC Hardware and Software Development
- Techniques for debugging an asymmetric multi-core application: Part 2
- Multi-core multi-threaded SoCs pose debugging hurdles
- Multi-core: A new challenge for debugging
- Leveraging OCP for Cache Coherent Traffic Within an Embedded Multi-core Cluster