Sunday, April 12, 2009

Embedded System Design Tools

Embedded System Design Tools

1. IDE ( Integrated Development Environemnt )

An IDE is software tool which runs of host machine, allowing the developer to enter the source code and build the project. An IDE consist of several applications like Compiler, Debugger software, Simulator, and other applictions etc).

Morever it provides an editor to enter your code and build it. Several IDEs are availabe for embedded software design depending upoon the target processor /controller used.

Here are the list of some IDEs and their associated tragets.

Keil IDE - ARM,ATMEL 89C51, LPC

MPLAB - All series of PIC microcontrollers like 18F458, PIC 32, dsPIC, etc

CCS Inc - IDE for PIC microcontroller, provide compiler for PIC microcontrollers

HiTech - Compiler with IDE for PIC microcontrollers

Workbench IDE – Supports wide range of processor

IAR - Supports wide range of processor

CCS - Code Compose Studio from Texas Instrument for DSP and microcontrollers

Tasking - Another IDE from altium

RVDS - IDE for ARM

The above mentioned are few examples. Lot of compilers and IDEs are avilable in market. A developer can select the IDE depends upoon the application , cost and prior experience.

2. Simulator

A simulator is a software tool that runs on you host machine and simulate the begaviour of the target hardware( processor/controller/DSP) and memory. A simulator is a host computer based program that simulates the behaviour of the target hardware to its instructions. We can observe the output using simulator output window.

The main adavntage of simulator is its low cost and it provides developer a chance to verify the firmware output before using debugger or actually testing the code in the hardware. The disadvantage its provides only simulation, not actual enviornments. You cannot exactly fix delay problems using a simulator, you have to go for debuuger or emulator.Uusally Simulator is a part of IDE. You dont have to but it seperately.

3. Debuggers

Debuggers are used to debug your firmware on the traget processor using your host sytems. Debuger is a combination of hardware and software. A debugger can be connected to host system through USB or serial port interface. The debugger software runs on both host system and the target processor.

In the host system, its usually integrated with the IDE and it allows you to watch memory location, and other microcontroller registers. On the other end another piece software runs on the target hardware, which accept the debug commands given by the debugger host host software and return the required data. Debugging allows the developer to set breakpoint in the program and watch the status of the registers. One disadvantage of debugging is that some program memory location will be used by the debug software. So only rest part of the program memory is available for loading source code. But the advantage is , only a quite few memory area is used for deubugging firmware. Eg. ICD2 Debugger for PIC.

4. On-Chip Debuggers

Many semiconductor vendors now integrate dedicated bebug circuitry intp their chips. Each vendor generally has its own proprietary name for this technology, such as OnCE, BDM, MPSD etc. Other vendors use software debugging through JTAG ( Joint Test Action Group ) ports.

Motorola BDM( Back Ground Debug Mode) uses five dedicated pins of the processor for on chip debugging. Many of the DSP processors use JTAG debugging like Texas Instrument JTAG.

5. Emulator

An Emulator also called as ICE ( In- Circuit Emulator) replaces the microprocessor in the target circuit and put the emulator in its place. The actual taget processor can be replaced with the emulator. An emulator is more costly than a debugger. An emulator is usually used after debugging to emulate the traget harware before porting the software to the orginal target borad.

6. Programmer / Burners

A programmer is a device which takes the executable file from the host computer and burn the program to the target hardware flash memory. Many programmers are available in market.Device specific programmers are avilable, but its limited to very few target controllers/processors, with the advantge of less cost. Another variant is universal programmer which can program almost all the controllers/processors available in the market. But its costly compared to the other counterpart.

No comments: