Software Development Tools in Embedded System

Embedded systems are specialized computer systems designed to perform specific functions or tasks within larger systems. Developing software for embedded systems requires a different set of tools compared to traditional software development.

Here are various software development tools in embedded system used for system development.


  • It is a software module used for writing assembly, mnemonics or c code using keyboard of the host computer system (Development machine).
  • It provides the facilities of entry, addition, deletion, merging, storing of files etc and creates a source file.


  • Assembly language programs are not directly executable; they must be translated into machine language.
  • Assembler is a software program which translates assembly mnemonics into binary opcodes and generates executable binary file.
  • It also creates a list file which consists of addresses, source code (assembly language mnemonics), and hex codes (object codes). The list file is printable, the source hex file generated by assembler is essential to program (or burn) the microcontroller device.

Cross Assembler

It is useful to convert object codes for microcontrollers or processor to other codes for another microcontrollers or processor and vice versa.


It is a computer program that transforms the source code written in a programming or source language into target language i.e. binary code known as object code.

Cross Compiler

It is used to create executable code other than one on which the compiler is run. They are used to generate executables for embedded systems or multiple platforms.


  • Debugging is the process of finding an error or a source bug in the code, which is initially not taken into account.
  • With the help of debugger software, we can discover the bugs after the testing and simulating the actions of the codes the testing and simulating the actions of the codes.


It is used for relocation process. It is done during compilation also it can be done at run time by a relocating loader. It is a program that takes one or more objects generated by compiler and combines them into a single executable program.


  • A simulator is the software that simulates a hardware unit like emulator, peripheral, network and I/O devices on a PC. It defines a processor or processing device as well as various versions for the target system
  • Monitors the detailed information of as source code part with labels and symbols during the execution for each single step.
  • It provides the detailed information of the status of memory RAM and simulated ports, simulated peripheral devices of the defined target system.

Integrated Development Environment (IDE)

We have talked about several different pieces of software such as Text Editor, Assembler or Compiler, cross assembler or cross-complier, Linkers, simulators and Debugger. Now imagine that it can become quite a time-consuming challenge to alternate back and forth between all of these programs during the debugging process. This is where an integrated development environment (IDE) comes in.


  • It supports for defining a processor family and its version
  • Support a user definable assembler to support a new version or a type of processor.
  • Provides multiuser environment.
  • Supports conditional and unconditional break points
  • Provide debugger.


  • It duplicates the functions of one system using a different system, so that the second system behaves like the first system. A hardware emulator is an emulator which takes the form of hard ware device.
  • Emulators maintain the original look, feel, and behavior of the digital object as digital data itself.
  • Reduces labour hours.
  • It allows video games exclusive to one system to be played on another.
Circuit Emulator for Atmel 8051 Microcontrollers
Circuit Emulator for Atmel 8051 Microcontrollers

In –Circuit Emulator (ICE)

  • It is a hardware device used to debug the software of an embedded system.
  • It provides a window into the embedded system. The programmer uses the emulator to load programs into the embedded system, run them and view and change data used by the systems software.
  • It emulates the CPU of the embedded systems computer.
  • Recent ICEs enable a programmer to access the on-chip debug circuit that is integrated into the CPU via JTAG or BDM in order to debug the s/w of an embedded system.

Device Programmer

It is the hardware tool used to burn i.e. Load the hex or bin file into Microcontroller. FLASH microcontrollers can be programmed both in-circuit (in-system) and out-of-circuit.

Out-of-Circuit Programming

OTP microcontrollers are typically programmed out-of-circuit. That means the microcontroller is programmed before being soldered on the target board.

Out-of-Circuit device programmer
Out-of-Circuit device programmer for 8051 microcontroller

In-System Programming (ISP)

  • In In-circuit programming the microcontroller is already soldered into the target system and can be programmed via one of its communication interfaces (UART, SPI).
  • The signals required for programming routed to an in-system-programming (ISP) connector to which an ISP programmer can be hooked up. The ISP connector required varies from manufacturer to manufacturer and microcontroller to microcontroller
  • One big advantage of ISP programmers is the fact that they do not require expensive ZIF socket adapters. All you need is the ISP connector on your board and the microcontroller soldered onto the board to program.
in system programmer for 8051 microcontroller
In-system programmer for 8051 microcontroller

Target Board

  • It has a processor i.e. microprocessor or microcontroller, memory for image of the embedded software i.e. ROM memory for the implementation of the stack, temporary variables and memory buffers i.e. RAM , peripheral devices and interfaces such as RS 232 , 10/100-base Ethernet, parallel ports, USB port etc.
  • It consists microcontroller 8051, Monitor, flash memory, RAM, Serial Ports , parallel ports, system keyboard, system display etc.
Project development board for 8051 microcontroller, Software Development Tools in Embedded System,
Development board for 8051 Microcontroller

Recent posts

Leave a Comment

Your email address will not be published. Required fields are marked *