lOMoARcPSD|17337655
Embedded System Development Environment
Embedded Systems (APJ Abdul Kalam Technological University)
Studocu is not sponsored or endorsed by any college or university
Downloaded by Kadambala Dushyanth (19551a0483@gmail.com)
lOMoARcPSD|17337655
EMBEDDED SYSTEM DEVELOPMENT ENVIRONMENT
Components of Embedded development environment
➢ Host Computer
Acts as the heart of development environment.
➢ IDE Tools
Tools for firmware design and development
➢ Electronic Design Automation Tools
Embedded Hardware Design
➢ Emulator hardware
Debugging target board
➢ Signal Sources(function
generator)Simulates inputs to
target board
➢ Target Hardware
Debugging toolsCRO,
Multimeter ,Logic Analyser
For debugging hardware
➢ Target Hardware
❖ IDE
In Embedded System, IDE stands for an integrated environment for
developing
and debugging the target processor specific embedded firmware. An IDE is
also known as integrated design environment or integrated debugging
environment. IDE is a software package which bundles a “Text Editor”,
“Cross-compiler”, ”Linker” and a “Debugger” IDE is a software application
that provides facilities to computer programmers for software development.
Downloaded by Kadambala Dushyanth (19551a0483@gmail.com)
lOMoARcPSD|17337655
IDEs can either command line based or GUI based. IDE consists of
1. Text Editor or Source code editor
2. A compiler and an interpreter
3. Build automation tools
4. Debugger
5. Simulators
6. Emulators and logic analyzer
An example of IDE is Turbo C/C++ which provides platform on
windows for development of application programs with command line
interface. The other categoryof IDE is known as Visual IDE which provides
the platform for visual development environment, ex- Microsoft Visual
C++. IDEs used in Embedded firmware are slightly different from the
generic IDE used for high level language based development for desktop
applications. In Embedded applications, the IDE is either supplied by the
target processor/controller manufacturer or by third party vendors or as
Open source.
CROSS COMPILATION
Cross compilation is the process of converting a source code written
in high level language to a target processor/controller understandable
machine code. The conversion of the code is done by software running on
a processor/controller which is different from the target processor. The
software performing this operation is referred as the Cross-compiler. In
other words cross-compilation the process of cross platform
software/firmware development. A cross complier is a compiler that runs
on one type of processor architecture but produces object code for a
different type of processor architecture.
Downloaded by Kadambala Dushyanth (19551a0483@gmail.com)
lOMoARcPSD|17337655
Need for Cross Compiler
There are several advantages of using cross compiler. Some of them are
as below:
➢ By using cross compliers we can not only develop complex
Embedded System but reliability can be improved and maintenance is
easy.
➢ Knowledge of the processor instruction set is not required.
➢ Register allocation and addressing mode details are managed by the
compiler.
➢ The ability to combine variable selection with specific operations
improves program readability.
➢ Keywords and operational functions that more nearly resemble the
human thought process can be changed.
➢ Program development and debugging time will be dramatically reduced
when compared to assembly language programming.
➢ The library files that are supplied provide may standard routines that
may be incorporated into our application.
➢ Existing routine can be reused in new programs by utilizing the modular
programming techniques available with C.
➢ The C language is very portable and very popular.
Types of Files generated on Cross compilation
The various files generated during cross- compilation process are:
1. List File
2. Pre-processor Output file
3. Hex File (.hex)
4. Map File (File extension linker dependent)
Downloaded by Kadambala Dushyanth (19551a0483@gmail.com)
lOMoARcPSD|17337655
5. Object File (.obj)
1. List Files (.lst files)
➢ Generated at the time of cross compilation
➢ Contain information about cross compilation process like
✓ Cross compiler details
✓ Formatted source text
✓ Assembling code generated from the source file
✓ Symbol table
✓ Errors and warning detected by the cross compiler system
2. Preprocessor output file
➢ generated during cross compilation
➢ contain preprocessor output for the preprocessor instructions used in
the source file
➢ This file is used for verifying the operation of macros and
conditional preprocessor directives is a valid C file
➢ file extension is cross compiler dependent
3. Hex file
➢ The Hex file is an ASCII text file with lines of text that follow the
Intel Hex file format.
➢ Intel Hex files are often used to transfer the program and data that
would be stored in a Rom or EPROM.
4. Map Files
➢ Object file created contains relocatable codes i.e their location in memory
is not fixed.
➢ It is the responsibility of linker to link these object modules. The locator
Downloaded by Kadambala Dushyanth (19551a0483@gmail.com)
lOMoARcPSD|17337655
is responsible for locating the absolute address to each module in the code
memory. Map files are generated by the linker and loader. These files are
used to keep the information of linking and locating process. Map files
use extensions
.H,.HH,.HM depends on linker or loader
5. Object files
➢ It is the lowest level file format for any platform.
➢ Cross compiling each source module converts the various
Embedded instructions and other directives present in the module to
an object (.OBJ) file.
➢ The object file is specially formatted file with data records for symbolic
information, object code, debugging information etc.
➢ OMF 1 & OMF2 are the 2 object files supported by C51 Cross
compilerList of details included in object file are
1. Reserved memory for global variables
2. Public symbol(variable or function)names
3. External symbol(variable or function)references
4. Library files with which to link
5. Debugging information to help synchronize source lines with object
files
Downloaded by Kadambala Dushyanth (19551a0483@gmail.com)