Global Sources
EE Times-Asia
Stay in touch with EE Times Asia
EE Times-Asia > Embedded

Hardware/software co-dev't with emphasis on software

Posted: 06 Feb 2012 ?? ?Print Version ?Bookmark and Share

Keywords:EDA? hardware adaptation layer? IDE?

An important aspect of sharing the hardware definition is the ability to define peripheral registers and, extending that, to provide access privileges for fields within those registers to ensure the debugger treats read/write-modifiable bits carefully.

Hardware gives us clear-on-read bits and zero-to-toggle bits and all kinds of other transistor-sensible, but software-crazy, ways of handling status interfaces. Only a well-defined, machine-generated, definition of the hardware can protect users from time-wasting and unexpected results when debugging registers, or individual bits, in peripheral blocks.

With these sophisticated views into programmable hardware, it becomes possible to do more than simply check status registers and error conditions. For example, if the hardware supports register-controlled switches to enable flexible routing of peripheral I/O to device pins, the software developer can manipulate the internal wiring of the device from the debugger!

This may sound a little scary to some but, if the SVD information is correctly generated, it should be possible to limit the changes allowed to "safe" edits such as multiplexor channel selection on digital signals or switching analog inputs between two physical pins.

When the hardware tools generate debug information for the software developer, there is an opportunity to cut application development time considerably. As if that were not enough, it also offers the invaluable opportunity for early detection of hardware design errors because the software developer is far more likely to recognize unexpected behaviors when confusion and code re-working is not the norm.

Whole product for programmable devices

These days, the concept of a "whole product" is well understood and widely accepted as an essential element of success. It is no longer sufficient to have the best point tool or the sexiest silicon. The programmable solutions we use today can take many forms. They can be full-custom ASICs, integrating ARM cores and multiple IP blocks into highly specialized solutions.

Or they can be more general-purpose platforms comprising programmable silicon and design tools, such as the FPGA solutions from Altera and Xilinx, or the PSoC devices from Cypress Semiconductor. As different as these environments are, they share an all-too common problem of hindering the application development by failing to efficiently migrate hardware changes into the software domain.

I believe that this failure is rooted in a blinkered approach to the hardware design tools and IDEs used in these projects. While it is fun for a software diehard like me to (jokingly, honest) put all the blame on the hardware tools and engineers, the reality is that both tool sets are too focused on their particular disciplines.

It is rare to see either side add the features I have touched upon because that does not resonate with their customers. I believe that is changing, with products like PSoC Creator supporting device configuration on the programmable hardware and also integrating third-party IDEs, like the Keil?Vision IDE from ARM Ltd.

Enabling application development in the engineer's IDE of choice and empowering that tool with unique and powerful insight and control over the hardware platform is surely the route to more efficient product development and faster time-to-market. And putting a stop to the torture of engineers isn't a bad thing either.

About the author
Mark Saunders is a Senior Product Marketing Manager at Cypress Semiconductor. He has a First Class degree from the University of Leeds, England, and over 20 years of experience in embedded software and intellectual property (soft IP). He specializes in the development, support and marketing of embedded software tools, real-time operating systems, protocol stacks and middleware.

To download the PDF version, click here.

?First Page?Previous Page 1???2???3

Article Comments - Hardware/software co-dev't with emph...
*? You can enter [0] more charecters.
*Verify code:


Visit Asia Webinars to learn about the latest in technology and get practical design tips.

Back to Top