Premium Content

New Signal Chain Resources from Texas Instruments:

IDEs Of Change

Market consolidation and Eclipse narrow the number of availale platforms while expanding choices for developers.

Date Posted: April 27, 2006 12:00 AM
Author: William Wong

WHERE IS THE IMPROVEMENT?
Cheaper. Faster. And smarter? Integration has been a major improvement in IDEs. Likewise, incremental improvements in compiler tool chains have enhanced program size and efficiency, though these features tend to be relatively transparent in day-to-day IDE use.

So far, most IDE-specific enhancements involve editing, sourcecode manipulation, and screen management. Features like color coding are the norm. This goes for templates, keyword completion, and popup help for variable and function definitions.

Refactoring has become a more important feature, due to the increasing size and complexity of applications. Even simple renaming changes can break an application. Having the IDE handle this chore cuts down on potential problems, and it could reduce the number of induced bugs.

Another important aspect of IDE concerns screen management, thanks to larger monitors, multiple screens, and more powerful PCs that can switch quickly between a number of applications. The ability to see more information lets developers choose more quickly and examine more of the system, whether during editing or while debugging. Likewise, developers are having to track more information, such as the status of network makes or support for team or pair programming.

Additional screen real estate is always welcome during debugging. This is especially true for multiple task applications and multiple core debugging. More windows means more information about each task and each core.

Some systems like VisualDSP++ can add to the clutter with useful graphs that often tell more than a whole screen of numbers (Fig. 3). Unfortunately, many of these kinds of insightful features tend to be very vendor-specific.

Still, debugging seems to remain one area with limited IDE improvements. Craig Haller, president of Macraigor Systems, says that most developers tend to use the same debugging techniques from 30 years ago, from silly things like print statements to very basic use of breakpoints.

Many debuggers offer much more complex tools, but they're often unique to a particular IDE or are difficult to use. Often, they aren't used because the developer doesn't know about them. Or, the tool may be hard to use.

Tracing is a good example of an underutilized tool. Tracing was quite common in the past. The high cost of external in-circuit emulator (ICE) systems slowed its use, but it has enjoyed a resurgence as more chips incorporate trace support within the chip. Unfortunately, using trace information for debugging is even more of an art than using a regular debugger.

Tools like Green Hills Time Machine improved the situation with slick interfaces and easy-to-use analysis tools (Fig. 4). Green Hills is one of the few companies that's also managed to feed back the results of tracing to the compiler and linker for improved optimization. Inconsistent implementations of tracing support within an IDE seem to be the biggest obstacle to general use.

Some improvements to debugging have been coming from outside the IDEs. Virtutech's Simics system simulator shows how developers can gain access to more system information versus a conventional debugger, because the processor core itself is simulated. This can be very handy when targeting multicore environments. Here, the ability to stop or synchronize the system is easy with the simulator but often difficult in hardware.

Graphical programming IDEs like National Instruments' LabView hold an edge in presenting system status in a more revealing way. Most IDEs don't offer the ability to click on an object and set up a display of its status, which is updated while the application is running or when a breakpoint occurs—especially when the information is displayed in a graphical format.

Picking the right IDE remains a task with many options, even as the total number of unique platforms becomes smaller.

NEED MORE INFORMATION?

Arm
www.arm.com
Accelerated Technology
www.acceleratedtechnology.com
AdaCore
www.adacore.com
Analog Devices
www.analog.com
Atmel
www.atmel.com
Eclipse
www.eclipse.org
Freescale
www.freescale.com
Green Hills Software
www.ghs.com
IAR
www.iar.com
IBM
www.ibm.com
KDevelop
www.kdevelop.org
Keil
www.keil.com
Macraigor Systems
www.macraigor.com
Microchip
www.microchip.com
Microsoft
www.microsoft.com
MontaVista
www.mvista.com
National Instruments
www.labview.com
Netbeans
www.netbeans.com
Rabbit Semiconductor
www.rabbitsemiconductor.com
Sun
www.sun.com
Texas Instruments
www.ti.com
TimeSys
www.timesys.com
Virtutech
www.virtutech.com
Wind River
www.windriver.com
Zilog
www.zilog.com

multicore
Part Inventory
Go
powered by:
 

 
You must log on before posting a comment.

Are you a new visitor? Register Here
    There are no comments to display. Be the first one!